# Functions

### Curve/Point

IwCurve::GlobalPointSolve

• minimization - SM_SO_MINIMIZE - find points on curve closest to point
• maximization - SM_SO_MAXIMIZE - find points on curve farthest from point
• normalization - IW_SO_NORMALIZE - find points on curve where tangent is perpendicular to vector to the point
• intersection - IW_SO_INTERSECT - find where points intersect a curve
• at distance - IW_SO_AT_DISTANCE - find point on curve at given distance from point
• signed directed minimize - IW_SO_SIGNED_DIRECTED_MINIMIZE - projected operation to find where a point touches the curve when being moved along a given vector
• directed minimization - IW_SO_DIRECTED_MINIMIZE - find points on curve of the minimal projected distance between the point and curve along a given vector which is parallel to the projection plane
• directed maximization - IW_SO_DIRECTED_MAXIMIZE - find points on curve of the maximum projected distance between the point and curve along given vector which is parallel to the projection plane
• projected minimization - IW_SO_PROJECTED_MINIMIZE - find points on curve minimum projected distance between the point and curve
• projected maximization - IW_SO_PROJECTED_MAXIMIZE - find points on curve of the maximum projected distance between the point and curve

IwCurve::GlobalPropertyAnalysis

• find inflection points, intersection of plane or cylinder, silhouette points, maximum and minimum first derivatives on the curve, angle to plane
• see documentation on IwCurvePropertyType for additional curve properties

### Curve/Curve

IwCurve::GlobalCurveSolve

• minimization - IW_SO_MINIMIZE - find points where distance between two curves is minimal
• maximization - IW_SO_MAXIMIZE - find points where distance between two curves is maximal
• normalization - IW_SO_NORMALIZE - find points on two curves where the tangents are perpendicular to the vector between the curves
• at distance - IW_SO_AT_DISTANCE - find points on the two curves at given distance and same angle between them
• signed directed minimize - IW_SO_SIGNED_DIRECTED_MINIMIZE - projected operation to find first point two curves touch when being moved along a given vector
• directed minimization - IW_SO_DIRECTED_MINIMIZE - find points of the minimal projected distance between two curves along a given vector which is parallel to the projection plane
• directed maximization - IW_SO_DIRECTED_MAXIMIZE - find points of the maximum projected distance between two curves along given vector which is parallel to the projection plane
• projected tangency - IW_SO_PROJECTED_TANGENCY - find points where projections of curves become tangent
• signed angle minimization - IW_SO_SIGNED_ANGLE_MINIMIZE - find first points where projections of curves touch when being rotated about point
• projected minimization - IW_SO_PROJECTED_MINIMIZE - find points minimum distance between projections of two curves
• projected maximization - IW_SO_PROJECTED_MAXIMIZE - find points maximum distance between projections of two curves
• projected intersection - IW_SO_PROJECTED_INTERSECT - find points where projected curves intersect

IwCurve::GlobalCurveIntersect - curve/curve intersection - including coincidence, tangency and grazing conditions
IwCurve::GlobalCurveSelfIntersect - curve self intersection - including coincidence, tangency and grazing conditions

### Trimmed Surface(s)/Point

IwTopologySolver::BrepPointSolve

• minimization - IW_SO_MINIMIZE - find points on the trimmed surface(s) closest to the point
• maximization - IW_SO_MAXIMIZE - find points on the trimmed surface(s) farthest from the point
• normalization - IW_SO_NORMALIZE - find points on the trimmed surface(s) where normal is parallel to vector to the point
• intersection - IW_SO_INTERSECT - find points where the point intersects the trimmed surface(s) to with a given tolerance
• projected minimization - IW_SO_PROJECTED_MINIMIZE - find points where projection of the point and the trimmed surface(s) are minimized
• projected maximization - IW_SO_PROJECTED_MAXIMIZE - find points where projection of the point and the trimmed surface(s) are maximized
• rayfiring - IW_SO_RAYFIRE - find first point(s) where ray intersects the trimmed surface(s)

### Trimmed Surface/Curve

IwTopologySolver::BrepCurveSolve

• minimization - IW_SO_MINIMIZE - find points on the trimmed surface(s) closest to the curve
• maximization - IW_SO_MAXIMIZE - find points on the trimmed surface(s) farthest from the curve
• normalization - IW_SO_NORMALIZE - find points on the trimmed surface(s) where normal is parallel to vector to the curve
• intersection - IW_SO_INTERSECT - find points where the curve intersects the trimmed surface(s) to with a given tolerance
• projected minimization - IW_SO_PROJECTED_MINIMIZE - find points where projection of the curve and the trimmed surface(s) are minimized
• projected maximization - IW_SO_PROJECTED_MAXIMIZE - find points where projection of the curve and the trimmed surface(s) are maximized

### Trimmed Surface/Trimmed Surface

IwTopologySolver::BrepBrepSolve

• minimization - IW_SO_MINIMIZE - find closest points between the two sets of trimmed surfaces
• maximization - IW_SO_MAXIMIZE - find farthest points between the two sets of trimmed surfaces
• normalization - IW_SO_NORMALIZE - find normal points between the two sets of trimmed surfaces
• intersection IW_SO_INTERSECT - find points where the two sets of trimmed surfaces intersect to with a given tolerance
• projected minimization - IW_SO_PROJECTED_MINIMIZE - find points where projection of the two sets of trimmed surfaces are minimized
• projected maximization - IW_SO_PROJECTED_MAXIMIZE - find points where projection of the two sets of trimmed surfaces are maximized

### Surface Silhouette Curves

IwBSplineSurface::CreateSilhouetteCurves

• detects all silhouette curves, identifies iso-parametric curves and processes singularities

### Dropping Curves

• Create the 2-D parameter space curves corresponding to a 3-D curve which lies on or near a trimmed surface that is at least a C1 surface. Use IwSurface::DropCurve
• Parallel projection of a curve onto a surface resulting in both the 3-D and 2-D space curves. Use IwBSplineSurface::CreateParallelProjectionCurves
• Projection with trimming of curve to surface boundary and internal discontinuties. Use IwSurface::DropAndTrimCurve

### Topological/Geometrical Query Operations

• retrieval of topological adjacency relationships between faces IwFace) , loops (>IwLoop), edges IwEdge) and vertices>IwVertex); See as an example IwEdge::FindRadialSector
• direct retrieval of all faces, edges or vertices in a trimmed surface. See as an example IwFace::GetEdges
• retrieval of geometric information (point, 2-D and 3-D curve, surface) corresponding to topological elements (vertex, edge, face). For example: IwEdge::GetCurve;and IwFace::GetSurface
• retrieval of the boundary box of a trimmed surface. Use IwFace::CalculateBoundingBox
• retrieval of trim boundary with loop and orientation information. Use IwFace::GetLoops

### Numerical Utility Classes

• integration - IwIntegrator
• one-dimensional Newton based local solver algorithm - IwLocalSolve1d
• n-dimensional Newton based local solver algorithm - IwLocalSolveNd

### Miscellaneous Classes

• curve cache decomposition into Bezier segments - IwCurveCache
• surface cache decomposition into bi-Bezier segments - IwSurfaceCache
• cache manager - IwCacheMgr
• fixed sized memory allocation manager - IwMemBlockMgr
• utility representation of an iso-parametric curve on surface - IwCrvOnSurf

### SMLib Plus Classes

• IwPrimitiveCreation - class and methods for creating solid primitives and performing 2D Boolean operations.
• IwTopologySweep - class and methods for doing topological portion of Non-Manifold Sweeping.
• IwSweepGeometryCreation - abstract method for geometric portion of sweeping operations.
• IwTranslationalSweepGeomtry, IwRotationalSweepGeometry
• IwTrimmingTools - tools to help convert between different trimming formats including unordered loops, unoriented loops, loops that cross seams.
Last updated on Apr 29, 2024.