• Creation:
• Given a parametrically bounded BSpline (NURBS) surface.
• Given a BSpline surface and 2D parameter space BSpline curves (automatic generation of 3D curves).
• Given a BSpline surface and 3D model space BSpline curves (automatic generation of 2D curves).
• Given both 2D parameter space and 3D model space BSpline curves.
• Creation of individual topological elements (vertices, edges, faces) using "Euler like" topological operators.
• Creation of solids or open shells by sewing trimmed surfaces with matching edges.
• Creation of solids or open shells via. topology table structures.
• Primitive Creation: box, sphere, cylinder, cone, torus, surface of extrusion, and surface of revolution.
• Ray Firing: a highly optimized and precise trimmed surface based ray firing that is able to compute up to 30,000 ray/surface intersections per second. Ray firing is valuable for display and for optical analysis and many other applications.
• Sweeping:
• Sweep faces, edges, and vertices to the same dimension or to a higher dimension.
• The sweep of a face to the same dimension produces a copy of the face at the terminal position. The sweep of a face to a higher dimension produces a solid volume between the original face and the terminal position face.
• The sweep of an edge to the same dimension produces a copy of the edge at the terminal position. The sweep of an edge to a higher dimension produces a face between the original edge and the terminal position edge.
• The sweep of a vertex to the same dimension produces a copy of the vertex at the terminal position. The sweep of a vertex to a higher dimension produces an edge between the original vertex and the terminal position vertex.
• The NonManifold Sweeping is designed as an objectoriented framework. Application developers can easily create new geometric sweeps by implementing a new subclass that produces the geometry for the sweep operation while the framework builds the topology for the sweep.
• Surfacebased Filleting and Blending:
• Creation of constant radius fillets between two trimmed surfaces.
• Creation of a blend surface between two curves on the same or different surfaces.
• Blending of 3, 4 or more tangential corner surfaces.
• Optional trimming of input surfaces to create a smooth set of 3 surfaces.
• Query Topological/Geometric/Property Information:
• Retrieval of topological adjacency relationships between faces, loops, edges, and vertices.
• Retrieval of all faces, edges, or vertices in a trimmed surface.
• Retrieval of geometric information (point, 2D and 3D curve, surface) corresponding to topological elements (vertex, edge, face).
• Retrieval of the bounding box of a trimmed surface.
• Retrieval of trim boundary with loop and orientation information.
• Compute mass properties such as area, volume, centroid, etc. Faces can be assigned different thickness attributes to give them volumetric properties. Edges can be assigned cross sectional area attributes to give them volumetric properties.
• Curve Generators:
• Planar Sectioning: generation of model space and parameter space curves corresponding to intersection of infinite plane with the trimmed surface.
• Parallel Projection: generation of model space and parameter space curves corresponding to the parallel projection of a curve onto a surface.
• Generation of isoparameteric (cross hatch) curves.
• Silhouette curves
• Intersectors:
• Intersection of a curve and a trimmed surface.
• Intersection of a point and a trimmed surface  dropping a model space point to the trimmed surface.
• Intersection of two trimmed surfaces.
• Topological intersection and insertion of intersection topology.
• Hidden Line/Curve Removal of solids and open shells.
• Classification Operations (Inside/Outside/On boundary classification):
• Classification of parameter space points relative to the trim boundary.
• Classification of parameter space or model space curves relative to the trim boundary.
• Classification of points as inside/outside/on a solid.
• Measurement Utilities (Minimization, Maximization, Normalization, Projected Minimization, Projected Maximization, Directed Minimization, Projected Angle Between, Linear Collision Detection):
• Between point and trimmed surface/solid/shell, e.g.
• Minimization , Maximization , Normalization
• Between curve and trimmed surface/solid/shell.
• Between two trimmed surfaces/solids/shells, e.g.
• Maximization , Normalization , Minimization
• Advanced Trimming Tools:
• Detect and fix loop orientation.
• Detect and fix loop order.
• Detect and fix outer and inner loops.
• Detect and fix loops that cross seams.
• Trimmed Surface Interfaces:
• Output to the NLib trimmed surface tessellator.
• Output to the CrackFree trimmed surface tessellator.
• Output to OpenGL display interface.
• Output to OpenGL through the NURBS based Curve/Surface/Trimmed Surface interface and through IntegrityWare's POPLib tessellator.
• Input and output to IGES, STEP, SAT, VDAFS via translators.
• Boolean 2D : Union, Intersection, and Difference of planar faces
• Mirror of a Solid or Open Shell.
• Errors and Validity: Various tools to check validity of topology and geometry.
• Attributes:
• Ability to define new attributes as a subclass of existing IwAttribute class that inherits one of two standard behavior types (copy attribute when doing a copy/split or reference same attribute when doing a copy/split).
• Ability to save attributes to a the file using inherited read/write methods.
• The ability to maintain attribute information even when application defining the attribute is not present utilizing a IwGenericAttribute class.
• Polygon Modeling:
• Polygon Boolean Tools Union, Intersection, and Difference.
• Polygon Decimation (reduction) that simplifies complex polygon meshes to optimize them for display or other applications.
• Polygonal Ray Firing, Measurement, Interference Detection, and Sectioning.
• Tessellation
• Given one or more of the following parameters: Chord Height Tolerance, Angular Tolerance, Maximum Aspect Ratio, Maximum Polygon Edge Length, Minimum UV Polygon Edge Length.
• Using proprietary algorithms to refine the tessellation only where required to produce a valid set of triangles.
• Object Oriented Curve and Surface Subdivision Classes to allow user modification of tessellation criteria during the tessellation process. For example, in a graphical application the user could adjust tessellation criteria based on distance from an "Eye Point" of the geometry being subdivided. This customizability feature enables the Tessellation Library to easily be adapted to different applications.
• Output as a topological data structure which contains a connected set of polygons with 3D points, UV points and surface normals.
• Output to 3D points and surface normals via user call back functions.
• Output of Triangles, Quadrilaterals, and Triangle Strips.
• Output Stereo Lithography (STL)files and ProEngineer SLP files.
