NLib Functionality | |

## Contents- Creation of common curves
- Creation of common surfaces
- Advanced surface construction methods
- Creation of curves and surfaces by data fitting
- Evaluation of curves and surfaces
- Transformations, projections and interactive shaping tools
- Geometric tools
- Triangular tessellation of trimmed surfaces
- Conversion between forms
- Conversion of NL_IGES curves and surfaces
- Curve and surface extensions and boundary modifications, with continuity control
- Miscellaneous curve and surface routines
- Scalar-valued functions of one or two variables
- A complete set of functions to process Bezier curves and surfaces
- B-spline and basis functions
- Differentiation of curves, surfaces, and basis functions with respect to a knot
- Symbolic operators
- Basic geometric computations and constructions
- Basic math routines
- Other utilities
- Curve and surface error handling
## Creation of common curves- Circles and circular arcs
N_CreateCircArc Create a circle/circular arc N_CreateQuadraticArc Create a quadratic circle/circular arc N_CreateQuarticArc Create a quartic degree 4 circle/circular arc N_CreateQuinticArc Create a quintic circle/circular arc N_CreateCubicSemiCircle Create a cubic semi-circle N_CreateBoundedCircArc Create Bezier cubic/quartic circular arc <=180 degrees N_ApproxCircArcWithCrv Approximate circle full or arc with non-rational curve - Conics and conic arcs
N_CreateEllipticalArc Create a ellipse/elliptical arc N_CreateConicArc Create a conic arc - Straight line segments
N_CrvLineFromPtAndVector Create a line as a curve - Degenerate point curve
N_CrvDegenFromPt Create point as a degenerate curve
## Creation of common surfaces- Bilinear surfaces and planes
N_CreateSrfCornerPts Create bilinear surface - Cones and cylinders full or patches
N_CreateCylCone Create a cylinder/cone surface/patch - Spheres and tori full or patches
N_CreateSphere Create a sphere/spherical patch N_CreateTorus Create a torus/toroidal patch N_FitSphereToPtsGlobal Best fitting sphere to a set of points N_FitSphereToPtsLocal Best fitting sphere to a set of points N_ApproxRevolvedSrfWithSrf Non-rational approximation of surface of revolution N_ApproxSphereWithSrf Non-rational approximation of sphere N_ApproxTorusWithSrf Non-rational approximation of a torus - General extruded surfaces TABCYL
N_CreateSrfExtrudeCrv Create a generalized cylinder - Ruled surfaces
N_CreateRuledSrf Create a ruled surface between two arbitrary curves N_CreateRuledSrfFromBoundaryCrvs Ruled surface of two curves using symbolic operators - Surfaces of revolution full or partial
N_CreateRevolvedSrf Create surface of revolution - Ellipsoids, elliptic paraboloids and hyperboloids
of one sheet full or patches
N_CreateEllipsoid Create a ellipsoid/patch N_CreateHyperboloid Create a hyperboloid of one sheet/hyperbolic patch N_CreateParaboloid Create a elliptic paraboloid/patch
## Advanced surface construction methods- Swung surfaces
N_CreateSwungSrf Create a swung surface - Interpolative skinning, with or without a spine
curve
N_CreateSkinSpine General spine curve-based surface skinning - Approximative skinning with error bound specified
yields impressive data reduction
N_CreateSkinSrf General surface skinning N_CreateSkinSrfApproxTol Approximative surface skinning with error bound N_CreateSkinSrfApprox Approximative surface skinning N_CreateSkinSrfApproxParams Approximate surface skinning with given knot vector N_CreateSkinSrfParams Surface skinning with given parameters and knot vector - Interpolative and approximative skinning with rail
curves and cross-boundary continuity constraints
N_CreateSkinSrfBoundaryContinuity Approximate skinning with boundary conditions and rails - Translational swept surface
N_CreateTransSweepSrf Create a translational sweep surface - Swept surface, arbitrary trajectory curve,
interpolative or approximative to within specified error bound
N_CreateSweepSrf Create a swept surface N_CreateSweepScale Swept NURBS surface with boundary conditions - Gordon surface through a compatible curve
network
N_CreateGordonSrf Gordon surface through compatible non-rational curves - Bilinear Coons surface
N_CreateCoonsSrf Bilinear Coons surface through four boundary curves - Bicubic Coons surface
N_CreateCoonsBoundaryCrvs Bicubic Coons surface through boundary and derivatives N_CreateCoonsSrfTwist Bicubic Coons surface through four boundary curves - N-sided patch
N_FillNSidedHole N-sided patch construction to boundary and derivatives - Join surfaces
N_SrfJoin Join two surfaces at a common boundary
## Creation of curves and surfaces by data fitting- Global curve interpolation to point data arbitrary
degree
N_FitCrvInterp Global curve interpolation with arbitrary degree N_FitCrvInterpGivenParams Curve interpolation with specified knot vector - Global curve
interpolation to point and end derivative data arbitrary degree
N_FitCrvDerivs Curve interpolation with end derivatives specified N_FitCrvTangents Curve interpolation with end tangents specified N_FitCrvDerivsMatrix Curve interpolation with end derivatives and matrix N_FitCrvDerivMatrix Curve interpolation with end derivative and matrix N_FitCrvFirstDeriv Curve interpolation with first derivatives specified N_FitCrvFirstDerivAndKnots Curve interpolation with first derivatives & knot vector N_FitCrvKnotsAndDerivs Curve interpolation with end derivatives and knot vector N_FitCrvLstSqEnds Least Squares Curve Fit to Points, with End Conditions N_FitCrvKnotsAndDeriv Curve interpolation with end derivative and knot vector - Cubic spline curve interpolation
N_FitCubicSplineInterp Cubic spline interpolation - Global least squares curve approximation to
point data arbitrary degree
N_FitCrvWeightedLstSq Weighted & constrained least-squares curve approximation N_FitCrvWeightedLstSqPeriodic Weighted/constrained least-squares periodic with knot vector N_FitCrvWeightedLstSqKnots Weighted/constrained least-squares with knot vector N_FitCrvApprox Curve approximation with error bound specified N_FitCrvApproxKnots Curve approximation with specified knot vector N_FitCrvCubicApprox Data approximation with piecewise cubic segments N_FitCrvApproxKnotsAndTangentsTol Curve approximation with error bound & end constraints N_ApproxConeWithSrf Non-rational approximation of cylinder or cone N_ApproxArcWithCrv Non-rational approximation of a circle or arc N_FitArcToPts Best fitting circle or circular arc to a set of points N_FitCrvCubicTangents Local NL_C1 cubic curve interpolation with end tangents N_FitHermite Fit Hermite curve to end kth and (k+1)th derivatives N_FitLineToPts Best fitting line segment to a set of random points N_FitPlaneToPts Best fitting plane to random points N_FitCrvLstSqEnds Least squares curve fit to points - Approximation of the offset of a curve
N_CrvOffset Offset of NLib curve N_CrvOffsetFuncVariableDir Functional offset of NLib curve using point sampling N_CrvOffsetApprox Approximate offset of NLib curve with nonrational curve N_CrvOffsetPtSampling Offset of NLib curve using point sampling - Offset of a connected set of curves with trimming and filleting
- Approximation of procedurally defined curves to within
tolerance
N_ApproxProcCrvWithCrv Approximate procedural curve with error bound specified - Mapping of
a uv-domain curve onto its surface
N_ApproxCrvOnSrfWithCrv Approximate curve on surface from uv-curve - Approximation of a curve with a nonrational curve of specified
degree
N_ApproxNurbsWithNonRatCrv Approximate curve with non-rational curve N_ApproxG1CrvWithCrv Approximate any NL_G1 NLib curve with nonrational curve N_ApproxCrvWithPolyline Piecewise linear polygonal approximation of a curve - Global
surface interpolation to point data arbitrary degrees
N_FitSrfToPts Global surface interpolation with arbitrary degrees N_FitSrfInterpTangents Surface interpolation with tangent constraints N_FitSrfToPtsKnots Surface interpolation with given knot vectors - Global
least squares surface approximation to point data arbitrary
degrees
N_FitSrfLstSqApprox Global surface appoximation with arbitrary degree N_FitSrfApproxTol Surface approximation with error bound specified N_FitSrfApproxTangentsTol Surface approximation with error bounds and tangents N_FitSrfLstSqKnots Surface approximation with given knot vectors N_FitSrfLstSqBoundary Least squares surface approximation to random points N_FitSrfLstSqPeriodic Periodic Least squares approximation to random points N_fitRandomPN Surface fit to random Points and Normals N_FitPtsNormals Surface fit to array of Points, Normals - Approximation of
the offset of a surface
N_SrfOffsetFunc Functional offset Surface using point sampling N_SrfOffset Offset of surface using point sampling - Approximation of
a surface with a nonrational surface of specified degree
N_ApproxNurbsWithNonRatSrf Approximate surface with non-rational surface - Global weighted and constrained least squares curve approximation arbitrary degree
- Local
NL_C1-continuous non-rational cubic curve interpolation
N_FitCrvCubic Curve interpolation with NL_C1 non-rational cubic curves - Local NL_G1- or
NL_C1-continuous parabolic curve interpolation
N_FitCrvParabArcs Curve interpolation with piecewise parabolic arcs - Local
NL_G1-continuous rational quadratic curve interpolation
N_FitCrvConics Curve interpolation with piecewise conic arcs - NL_G1-continous
bi-arc curve interpolation
N_FitCrvArcs Curve interpolation with piecewise circular arcs - Local data
approximation with NL_G1-continuous quadratic curves
N_FitCrvConicsApprox Data approximation with piecewise conic segments - Local data approximation with NL_G1-continuous cubic curves
- Global curve approximation / data reduction with error bound specified arbitrary degree
- Local
NL_C1,1-continuous non-rational bicubic surface interpolation
N_FitSrfInterpBicubic Surface interpolation with C11 bicubic surfaces - Global surface approximation / data reduction with error bound specified arbitrary degree
- Curve/surface interpolation and approximation functions that allow specification of boundary constraints, including tangent/derivative vectors
## Evaluation of curves and surfaces- Compute point
and derivatives of arbitrary order on a curve
N_CrvEval Compute a point on a curve N_CrvDerivs Compute derivatives of a curve N_CrvEvalTangent Unit tangent and point of a curve - Compute the
Frenet frame on a curve at a given point
N_CrvEvalFrenetFrame Compute the Frenet frame of a curve at a given point - Compute point
and partial derivatives of arbitrary order on a NURBS surface
N_SrfEvalPt Compute a point on a surface N_SrfDerivs Compute derivatives of a surface - Compute the
surface normal vector at a given point
N_SrfEvalPtPtDerivNormal Compute the surface normal at given parameter values N_SrfEvalPtNormalDeriv Compute 1st and 2nd derivatives of UNIT surface normal - Compute
curvature on curves and surfaces
N_CrvGetCurvatureDeriv Compute derivative of curvature of curve N_CrvEvalCurvature Compute curvature and osculating circle of a curve N_SrfEvalPtCurvature Compute Gaussian, mean and principal curvatures N_SrfEvalPtDerivCPt Derivative of a NURBS surface wrt a control point - Cross Boundary
derivatives
N_CreateDerivField Cross-boundary derivative from surface, end twists and derivatives N_CrossBoundaryDerivsVectorField Cross-boundary derivative data from vector field
## Transformations, projections and interactive shaping tools- Translation, rotation and
scaling of curves and surfaces
N_CrvTranslate Translate a curve N_CrvFromCrvTranslation Translate a curve, but not in place N_CrvRotateAboutAxis Rotate a curve about a general axis N_CrvScale Scale a curve with respect to a point N_CrvTransform Transform a curve given a 4x4 matrix N_SrfTranslate Translate a surface N_SrfRotateAtPt Rotate a surface about a general axis N_SrfScale Scale a surface with respect to a point N_SrfTransform Transform a surface given a 4x4 matrix - Parallel and perspective
projection of curves and surfaces onto a plane
N_CrvProjectOntoPlane Project a curve onto a plane N_SrfProjectOntoPlane Project a surface onto a plane - Reposition curve/surface
control points to obtain desired translational changes
N_CrvShapeModifyCPts Reposition curve control points N_SrfShapeModifyCPts Reposition surface control points - Modify curve/surface weights to obtain desired perspective changes
- Curve warping
N_CrvShapeWarp Warp curve N_CrvShapeApproxPts Shape curve to approximate given points N_CrvShapeApproxPtsUpdate Shape curve to approximate given points N_CrvShapeInterp Shape curve to interpolate given points N_CrvShapeDerivConstraintsOver Constraint-based curve shaping with interp or approx N_FitCrvShape Interpolate points based on curve shaping - Surface region warping and
polyline warping
N_SrfShapeRegionWarp Surface region warp N_SrfShapePolylineWarp Surface polyline warp - Curve flattening
N_CrvShapeFlatten Flatten a curve - Surface modification
N_SrfShapeFlatten Flatten a surface N_SrfShapeApproxPts Shape surface to approximate given points N_SrfShapeDerivConstraints Constraint-based surface shaping with interp or approx N_SrfShapeInterp Shape surface to interpolate given points - Curve bending
N_CrvShapeBend Bend a curve - Surface axial and central
bending
N_SrfShapeAxialBend Surface axial bending N_SrfShapeCentralBend Surface central bending - Curve axial deformations:
pinch, taper, twist and shear
N_CrvShapeAxialDeform Axial deformations of curves - Surface axial deformations:
pinch, taper, twist and shear
N_SrfShapeAxialDeform Axial deformations of surfaces N_FitSrfApproxShape Approximatte random points based on surface shaping N_FitSrfInterpShape Interpolate points based on surface shaping - Constraint-based curve
modification via control point repositioning
N_CrvShapeDerivConstraints Constraint-based curve modification - Constraint-based surface modification via control point repositioning
## Geometric tools- Knot insertion and knot
refinement curves and surfaces
N_CrvInsertKnot Insert a knot into a curve N_CrvRefine Refine a curve with a given knot vector N_tooCrvCleanSpans Curve remove excessive knots and control points N_SrfInsertKnot Insert a new knot into a surface N_SrfReplaceKnotVector Refine a surface with a given knot vector N_BasisSplitLongestSpan Add knots to knot vector N_BasisIncreaseKnotMult Increase multiplicity of internal knots N_BasisInsertKnots Refine knot vector N_BasisSplitNLongestSpans Refine knot interval - Inverse knot insertion curves and surfaces
N_CrvInverseKnotInsert Curve inverse knot insertion N_SrfInsertKnotPt Surface inverse knot insertion - Decomposition into piecewise Bezier form curves and
surfaces
N_CrvDecomposeBez Decompose a curve into Bezier pieces N_SrfDecomposeToBez Decompose a surface into Bezier patches - Knot removal curves and surfaces, including "cleaning"
routines data reduction with boundary constraints
N_CrvRemoveKnots Remove all removable knots from a curve N_CrvRemoveAllKnotsConstraints Remove all removable knots from curve with constraints N_CrvRemoveKnot Remove one knot multiple times from a curve N_CrvShapeRemoveKnots Remove all removable knots from a curve being shaped N_SrfRemoveAllKnots Remove all removable knots from a surface N_SrfRemoveKnotConditional Remove one knot from a surface multiple times N_SrfRemoveKnotsKeepBoundaries Remove knots from surface with boundary constraints N_SrfShapeRemoveKnots Remove all removable knots from a surface being shaped - Degree elevation curves and surfaces
N_CrvElevateDegree Elevate the degree of a curve N_SrfElevateDegree Elevate the degree of a surface - Degree reduction curves and surfaces
N_CrvReduceDegreeOnce Reduce the degree of a curve N_CrvReduceDegree Reduce the degree of a curve as much as possible N_SrfReduceDegree Reduce the degree of a surface N_SrfReduceDegreeToTol Reduce the degree of a surface as much as possible - Subcurve and subsurface extraction
N_CrvExtractCrvSeg Extract a curve segment from a curve N_SrfExtractPatch Extract a segment patch from a surface N_SrfExtractBoundaryCrvs Extract boundary curves from surface - Curve and surface splitting
N_CrvSplit Split a curve at a given parameter N_SrfSplit Split a surface at a given parameter - Extraction of isoparametric curves from surfaces
N_SrfExtractIsoCrv Extract iso-curve from surface - Reparameterize a curve
N_SrfReparamMultKnots Reparameterize curves with respect to arc length N_SrfReparamFunc Reparameterize a curve with a B-spline function N_CrvReparamRat Curve reparameterization with linear rational function - Make curve end weights equal
- Reparameterize a
surfaceN_SrfReparamArcLength Reparameterize
surfaces with respect to arc length
N_SrfReparmRat Surface reparameterization with linear rational function
## Triangular tessellation of trimmed surfaces- N_TessTrimmedSrf Tessellate a trimmed surface
- ST_TessRegionOfRectangles Triangulate a trimmed region bounded by many outer loops
## Conversion between forms- Conversion from NURBS to piecewise
Bezier or polynomial spline form
N_CrvNurbsToPiecewise Convert curve into piecewise power basis form N_ConvertNurbsToPowerBasis Convert surface into piecewise power basis form - Conversion from piecewise Bezier or
polynomial form to NURBS form
N_CrvPiecewiseToNurbs Convert a piecewise power basis curve to form N_ConvertPiecesToNurbs Convert a piecewise power basis surface to form - An extensive set of routines to support the evaluation and processing of Bezier and polynomial curves and surfaces
## Conversion of NL_IGES curves and surfaces- N_Iges100Arc Create circular
arc from NL_IGES Entity 100 data
N_Iges102CompositeCrv Create composite curve from NL_IGES Entity 102 data N_Iges104ConicArc Create conic arc from NL_IGES Entity 104 data N_Iges106LinearCrv Create degree 1 curve from NL_IGES Entity 106 data N_Iges108Plane Create bounded plane from NL_IGES Entity 108 data N_Iges100Line Create bounded line from NL_IGES Entity 110 data N_Iges112CrvNonRat Create curve from NL_IGES Entity 112 data N_Iges114NonRatSrf Create surface from NL_IGES Entity 114 data N_Iges118RuledSrf Create ruled surface from NL_IGES Entity 118 data N_Iges120RevolvedSrf Create revolved surface from NL_IGES Entity 120 data N_Iges122ExtrudedSrf Create extruded surface from NL_IGES Entity 122 data N_Iges124Matrix 4x4 transformation matrix from NL_IGES Entity 124 data N_Iges126Crv Create curve from NL_IGES Entity 126 data N_Iges128Srf Create surface from NL_IGES Entity 128 data
## Curve and surface extensions and boundary modifications, with continuity controlN_CrvExtendByDist Extend a curve a given distanceN_CrvExtendToPt Extend a curve to a point N_SrfModifyBoundaryCrv Modify surface to assume new boundary curve N_SrfExtendByDist Extend a surface a given distance N_SrfExtendToCrv Extend a surface to a curve ## Miscellaneous curve and surface routines- Arc length of a curve segment
N_CrvArcLength Compute arc length of segment of curve - Project a point to a curve or
surface closest point projection, given a point on a curve/surface,
to determine the corresponding parameter space value
N_CrvClosestPtMultiple Global curve point inversion/projection N_CrvClosestPt Curve point inversion/projection using Newton's method N_SrfGetClosestPt Surface point inversion/projection using Newton's method - Given a tangent direction on a
surface, determine the corresponding direction in parameter
space
N_InvertTangentSrfCrv Surface curve tangent vector inversion - Reverse parameter direction of a
curve or surface
N_CrvReverse Reverse a curve N_SrfReverse Reverse a surface - Unclamp a clamped curve or surface
- Scale/translate the parameter domains of a curve or surface
- Various conic utilities; e.g.
determine type of conic, implicit equation of conic, and geometric
characteristics of a conic vertex, radii, axes, etc
N_ConicCalcGeomDef Compute geometric definition of conic N_CalcConicImplicitEq Compute the implicit equation of a conic curve N_CalcConicShapeFactor Compute conic shape invariance N_ConicGetType Determine the type of conic - Computation of minmax box of curves
and surfaces
N_CrvGetBBox Compute min-max box of a curve N_SrfGetBBox Compute min-max box of a surface - Make a set of curves or surfaces
compatible same degrees and knots
N_CrvsMakeCompatible Make curves compatible N_CrvsMakeCompatibleAdjKnots Make curves compatible using knot adjustment N_CrvsMakeCompatibleApprox Make curves compatible using approximation N_CrvsMakeCompatibleConstraints Make curves compatible with approximation & constraints N_MakeSrfsCompatibleUV Make surfaces compatible - Analyze curves for cusps, straight line segments, and degeneracy’s.
- Curve and surface cleaning, with
reparameterization for enhanced cleaning of piecewise Bezier curves
and surfaces
N_CrvRemoveAllKnotsArcLen Clean curve N_CrvRemoveKnotsTangentConstraints Clean curve with end tangent control N_CrvRemoveDegenSegs Remove degenerate segments of a curve N_SrfRemoveAllKnotsArcLen Clean surface N_SrfReparmAndRemoveKnotsKeepBoundaries Clean surface with boundary constraints - Approximately equally spaced points on a curve
- Points on a surface
N_SrfEvalPtGrid Compute a grid of points on a surface N_SrfEvenSpacedPts Compute equally spaced points on a surface
## Scalar-valued functions of one or two variables- Creation of scalar-valued NURBS
- Functions of 1 or 2 parameters
- Evaluation of scalar-valued functions, including derivatives of any order
## A complete set of functions to process Bezier curves and surfaces## B-spline and basis functionsEvaluation of rational and non-rational basis functions.
## Differentiation of curves, surfaces, and basis functions with respect to a knot- N_SrfDerivKnot
Compute derivatives of a surface wrt a knot
N_CrvEvalFirstDerivKnot First derivative of a curve with respect to a knot
also see: N_BasisKnotDerivs, N_CrvRatBasisKnotDeriv, N_BiBasisKnotDeriv N_SrfRatBasisKnotDeriv, N_BasisIKnotDeriv N_CrvRatBasisIKnotDeriv, N_SrfRatBasisIKnotDeriv ## Symbolic operators- Extract derivative curves and surfaces
- Compute maximum bounds on magnitudes of curve/surface derivatives
- Form linear combinations of curves/surfaces
- Extract the surface of normal
vectors to a surface
N_ApproxNormalSrfWithSrf Approximate unit normal surface of NLib surface - Compute various products of curves, surfaces, and functions
## Basic geometric computations and constructionsAn extensive set of functions to perform basic geometric operations on vectors, lines, polygons, and planes; this includes distances, projections, intersections, bounding boxes, transformations, closure, and containment tests ## Basic math routinesAn extensive set of functions to perform basic mathematical and numerical operations such as matrix algebra, solution to linear systems of equations, Horner evaluation of polynomials, polynomial root finding, and computation of the binomial coefficients ## Other utilitiesA very large set of low-level curve and surface utilities; e.g. copy a curve or surface, input/output a curve or surface from/to an ASCII or NL_IGES file, inquire curve or surface attributes closed?, rational?, etc ## Curve and surface error handlingAn extensive set of functions to check validate object data and set error flags; e.g. validate the data defining a curve or surface object, and check if a parameter is within valid bound ## Legal StuffAll of the software and documentation received with this release is copyrighted bySolid Modeling
Solutions, Inc. You distribute source code or
documentation for this software outside of the company and the site which owns
the license. The standard license agreement allows you to freely distribute
object code in any application which may not contain a
programmatic interface. All software and documentation is considered does notinformation and the proprietary
of Solid
Modeling Solutions, Inc. This document contains intellectual property
information which is deemed proprietary.
trade secretCopyright © 1998-2010 Solid Modeling Solutions
All rights reserved. |