SurfaceRefitSimplySplitSurface Method |
This routine accepts a 3-d trim curve (trimCrv3d).
The trim curve is assumed to run from one surface edge to the opposite edge;
this is referred to as a "simple" trim curve, roughly parallel to one of the
srf directions (either u or v). We refer to that parameter as the "trim parameter".
The routine splits the surface via the trim curve, and then refits either side
("upper" = "above the trim", and "lower" = "below the trim") as a set of
untrimmed Nurbs surfaces. The idea is to retain, as much as possible, the
Nurbs structure of srf, especially in the trim parameter.
Namespace:
Rhino.Geometry
Assembly:
RhinoCommon (in RhinoCommon.dll)
Since: 8.0
Syntax public bool RefitSimplySplitSurface(
Curve trimCurve3d,
Vector3d trimProjectionDir,
double tolerance,
RefitTrimKnotMode knotAdditionMode,
int numInsertKnots,
IEnumerable<double> Knots,
RefitTrimSectionMode sectionMode,
int numNonTrimSpans,
bool meetCurve,
bool oneSided,
Point3d PtActive,
bool outputSurface,
bool outputCurve,
ref int numSections,
List<Surface> lowerSurface,
List<Surface> upperSurface,
List<Curve> edgeCurve,
ref double FitMeasurement,
ref Curve trimCurveOnSurface,
ref Curve splitCurve
)
Public Function RefitSimplySplitSurface (
trimCurve3d As Curve,
trimProjectionDir As Vector3d,
tolerance As Double,
knotAdditionMode As RefitTrimKnotMode,
numInsertKnots As Integer,
Knots As IEnumerable(Of Double),
sectionMode As RefitTrimSectionMode,
numNonTrimSpans As Integer,
meetCurve As Boolean,
oneSided As Boolean,
PtActive As Point3d,
outputSurface As Boolean,
outputCurve As Boolean,
ByRef numSections As Integer,
lowerSurface As List(Of Surface),
upperSurface As List(Of Surface),
edgeCurve As List(Of Curve),
ByRef FitMeasurement As Double,
ByRef trimCurveOnSurface As Curve,
ByRef splitCurve As Curve
) As Boolean
Parameters
- trimCurve3d
- Type: Rhino.GeometryCurve
curve that will trim from one edge to the opposite - trimProjectionDir
- Type: Rhino.GeometryVector3d
Vector for projection, or zero vector for no projection - tolerance
- Type: SystemDouble
3d tolerance for projection, splitting, fitting... - knotAdditionMode
- Type: Rhino.GeometryRefitTrimKnotMode
0: no, don't add any
1: Yes, add nKnots knots, spaced regularly over the entire surface
2: Yes, add nKnots knots, spaced regularly PER EXISTING SPAN
3: Yes, add nKnots knots, as provided in the array Knots - numInsertKnots
- Type: SystemInt32
FOr TrimParamKnots != 3, the number of knots to add - Knots
- Type: System.Collections.GenericIEnumerableDouble
For TrimParamKnots=3, the custom knots to add - sectionMode
- Type: Rhino.GeometryRefitTrimSectionMode
0: no sections, just output one "upper" and one "lower" surface
1: Yes, divide into sections at each of the input surface's existing knots
2: Yes, divide into sections at each of the "nKnot" added knot values
3: Yes, divide into sections at ALL knot values (i.e. both 1 and 2) - numNonTrimSpans
- Type: SystemInt32
number of spans in the non-trim parameter - meetCurve
- Type: SystemBoolean
Drag the refit surfaces out to meet the original trim curve - oneSided
- Type: SystemBoolean
Inputting an "active" point means you only want one side of the "split" to be refit -
In other words, you want a "trim refit". Results will be returned in "srfLower" - PtActive
- Type: Rhino.GeometryPoint3d
Active point - outputSurface
- Type: SystemBoolean
if true, output fit surfaces: srfLower and, if !bActivePt, srfUpper - outputCurve
- Type: SystemBoolean
if true, output fit curve: crvEdge - numSections
- Type: SystemInt32
[Missing <param name="numSections"/> documentation for "M:Rhino.Geometry.Surface.RefitSimplySplitSurface(Rhino.Geometry.Curve,Rhino.Geometry.Vector3d,System.Double,Rhino.Geometry.RefitTrimKnotMode,System.Int32,System.Collections.Generic.IEnumerable{System.Double},Rhino.Geometry.RefitTrimSectionMode,System.Int32,System.Boolean,System.Boolean,Rhino.Geometry.Point3d,System.Boolean,System.Boolean,System.Int32@,System.Collections.Generic.List{Rhino.Geometry.Surface},System.Collections.Generic.List{Rhino.Geometry.Surface},System.Collections.Generic.List{Rhino.Geometry.Curve},System.Double@,Rhino.Geometry.Curve@,Rhino.Geometry.Curve@)"]
- lowerSurface
- Type: System.Collections.GenericListSurface
Surfaces (# = nSections) below trim curve in srf's (u,v) domain - upperSurface
- Type: System.Collections.GenericListSurface
Surfaces (# = nSections) above trim curve in srf's (u,v) domain - edgeCurve
- Type: System.Collections.GenericListCurve
Curves (# = nSections) fit to trim curve with srf's u/v parameter - FitMeasurement
- Type: SystemDouble
Calculated based on trimParamSections - trimCurveOnSurface
- Type: Rhino.GeometryCurve
the actual trim curve as it is projected on or pulled to the surface - splitCurve
- Type: Rhino.GeometryCurve
the actual fit curve the split the surface
Return Value
Type:
Booleantrue for zuccess, false for failure
See Also