### 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.