# TSNLib™ Features

### Tessellation

Enables the creation of crack-free tessellations. POPLib enables users to select from a variety of tessellation criteria to produce polygons optimized for various applications.

Produces crack-free polygonal meshes for connected sets of trimmed surfaces or solids at all tessellation tolerances. Performance makes it suitable for highly interactive applications.

### Curve and Surface Functions

Curve/Point Solver

a. Minimization of a point and curve. Finds the closest point between a curve and a point. Note that some points have multiple closest points because of curve symmetry.
b. Normalization of point and curve. Finds position on a curve where vector from a point to a curve is perpendicular to the curve’s tangent vector.
c. Maximization of point and curve. Finds the farthest point between a curve and a point.
d. At Distance between of point and curve. Finds the position on a curve at a given distance from a point.

Curve/Curve Solver

a. Minimization and maximization of two symmetric nurbs. Note that multiple answers result when more than one minimum or maximum points fall within the user specified tolerance.
b. Normalization between two curves finds all points where the vector between two points is perpendicular to the tangent vectors of the curves at those points.
c. At Distance between two curves finds corresponding points on two curves which are at a given distance and the angle between the tangent vectors are equivalent.

Curve/Curve Intersection

a. Produces either single points or coincident segments.

Curve Self-Intersection

a. Finds points where the curve crosses itself.

Curve Properties and Analysis

a. Intersection of a curve with an infinite plane.
b. 3D Silhouette Computation (perspective – blue, parallel projection – red).
c. Points on curve where tangent is parallel to a given vector.
d. Inflection points of a curve – points with zero curvature.

Curve Properties and Analysis continued

a. Minimum (red) and maximum (blue) first derivative magnitudes.
b. Minimum (red) and maximum (blue) radius of curvature.
c. Find first derivative (blue) and radius of curvature(red) of given magnitude.
d. Find points on curve where first derivative is perpendicular to a given axis (blue – X axis, red – Y axis).
e. Find points on a curve where first derivative is perpendicular to any axis.

Surface/Point Solver

a. Minimization (closest point) between a point and a surface.

Surface/Point Solver

a. Normalization of a point and a surface.

Surface/Curve Solver

a. Minimization (red) and maximization (blue) of the distance between a curve and a surface.

Curve/Surface Intersection.

a. Minimization (red) and maximization of the distance between two surfaces.

Dropping Curves

a. Produce a 2D parameter space image of a 3D curve.

Offseting/Insetting Composite Curves

a. Shown are linear extension and corner filleting.

### Trim Surface Functions

Trimmed Surface displayed with cross hatch

Creation of Trimmed Surfaces/Curve Generators

• Creation from a parametrically bounded B-Spline (NURBS) surface.
• Creation from a B-Spline surface and 2-D parameter space B-Spline curves (automatic generation of 3-D model space curves).
• Creation from a B-Spline surface and 3-D model space B-Spline curves (automatic generation of 2-D parameter space curve).
• Creation with both 2-D parameter space and 3-D model space B-Spline curves.
• Creation of individual topological elements (vertices, edges, faces) using “Euler like” topological operators.
• The ability to adjust the operational tolerance of the Trimmed Surface to compensate for “gaps” found in the input data generated by different modeling systems.
• The ability to represent “seams” on closed surfaces as a single edge which occurs twice in the trimming boundary.
• Generation of iso-parameteric (cross hatch) curves

Classification of parameter space points

a. Classification Operations – Classification of parameter space points relative to the trim boundary.

Classification of curves

a. Classification Operations – Classification of parameter space or model space curves relative to the trim boundary.

Planar sectioning

a. Curve Generators – Planar Sectioning – generation of model space and parameter space curves corresponding to intersection of infinite plane with the Trimmed Surface.

Planar sectioning

a. Curve Generators – Planar Sectioning – generation of model space and parameter space curves corresponding to intersection of infinite plane with the Trimmed Surface.

Point/Trimmed Surface Minimization

a. Measurement Utilities – Point and Trimmed Surface/Solid/Open Shell/Shape.

Point/Trimmed Surface Maximization

a. Measurement Utilities – Point and Trimmed Surface/Solid/Open Shell/Shape.

Point/Trimmed Surface Normalization

a. Measurement Utilities – Point and Trimmed Surface/Solid/Open Shell/Shape.

Curve/Trimmed Surface Minimization

a. Measurement Utilities – Curve and Trimmed Surface/Solid/Open Shell/Shape.

Maximization between two Trimmed Surfaces

a. Measurement Utilities – Two Trimmed Surfaces/Solids/Open Shells/Shape.

Normalization between two Trimmed Surfaces

a. Measurement Utilities – Two Trimmed Surfaces/Solids/Open Shells/Shape.

Minimization between two Trimmed Surfaces

a. Measurement Utilities – Two Trimmed Surfaces/Solids/Open Shells/Shape.

Output to the NLib Tessellator

a. Trimmed Surface Interfaces – Output to the NLib Trimmed Surface tessellator.

Output OpenGL Trimmed Surface Interface

a. Trimmed Surface Interfaces – Output to OpenGL through the NURBS based curve/surface/Trimmed Surface interface.

Analytical Hidden Line Removal

a. Hidden Curve Removal – Analytical hidden curve removal of Solids and Open Shells.

2D Booleans

a. 2-D Boolean Operations – Union, Intersection, and Difference of faces defined on coincident planes in space.

Non-Manifold Sweeping

a. Non-Manifold Sweeping – The ability to 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 Non-Manifold Sweeping is designed as an Object-Oriented 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.

Precise Ray/Trimmed Surface Intersection

a. Ray Firing – TSLib has a highly optimized and precise Trimmed Surface based Ray Firing. It is able to compute up to 30,000 ray/surface intersections per second. The Ray Firing can be used as a basis for optical analysis or for display.

### Offset Loops

This example shows the offset of multiple composite curves (loops) of special interest to numerical control.