SMLib Manual

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.