Revolutions can be incomplete (they can form arcs).
Constructors
RevSurface
#| info (SerializationInfo) | Serialization data. |
| context (StreamingContext) | Serialization stream. |
Properties
Disposed
HasBrepForm
HasUserData
IsDeformable
IsDocumentControlled
IsShallowDuplicate
IsSubDFriendly
ObjectType
UserData
UserDictionary
Methods
ClosestPoint
ClosestSide
ComponentIndex
ConstructConstObject
This overload accepts a slice start and end angles.
This overload accepts a slice start and end angles.
Results can be (truncated) cones, cylinders and circular hyperboloids, or can fail.
If the operation succeeds, results can be (truncated) cones, cylinders and circular hyperboloids.
This overload accepts a slice start and end angles.
| cone (Cone) | A cone. |
| cylinder (Cylinder) | A cylinder. |
| sphere (Sphere) | A sphere. |
| torus (Torus) | A torus. |
CurvatureAt
DataCRC
| currentRemainder (uint) | The current remainder value. |
Degree
| direction (int) | 0 gets first parameter's domain, 1 gets second parameter's domain. |
DeleteAllUserStrings
| key (string) |
Dispose
Dispose
| disposing (bool) |
| direction (int) | 0 gets first parameter, 1 gets second parameter. |
DuplicateShallow
This behavior is overridden by implementing classes.
EnsurePrivateCopy
Evaluate
| u (double) | A U parameter. |
| v (double) | A V parameter. |
| numberDerivatives (int) | The number of derivatives. |
| point (out Point3d) | A point. This out parameter will be assigned during this call. |
| derivatives (out Vector3d[]) | A vector array. This out parameter will be assigned during this call. This can be null. |
Extend
| direction (int) | If 0, Surface.Domain(0) will include the interval. (the first surface parameter). If 1, Surface.Domain(1) will include the interval. (the second surface parameter). |
| interval (Interval) | If the interval is not included in surface domain, the surface will be extended so that its domain includes the interval. Note, this method will fail if the surface is closed in the specified direction. |
Extend
Fit
FitCurveToSurface
| trimCurve3d (Curve) | curve that will trim from one edge to the opposite |
| trimProjectionDir (Vector3d) | Vector for projection, or zero vector for no projection |
| tolerance (double) | 3d tolerance for projection, splitting, fitting... |
| Knots (IEnumerable<double>) | For TrimParamKnots=3, the custom knots to add |
| divideIntoSections (bool) | If true, the surface is divided at each knot |
| trimCurveOnSurface (ref Curve) | the actual trim curve as it is projected on or pulled to the surface |
| splitCurve (ref Curve) | the actual fit curve the split the surface |
FrameAt
This is the simple evaluation call with no error handling.
GetBoundingBox
| accurate (bool) | If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. Estimated bounding boxes are always similar to or larger than accurate bounding boxes. |
GetBoundingBox
GetBoundingBox
| plane (Plane) | Orientation plane for BoundingBox. |
GetBoundingBox
| xform (Transform) | Transformation to apply to object prior to the BoundingBox computation. The geometry itself is not modified. |
GetNextDiscontinuity
| direction (int) | If 0, then "u" parameter is checked. If 1, then the "v" parameter is checked. |
| continuityType (Continuity) | The desired continuity. |
| t0 (double) | Search begins at t0. If there is a discontinuity at t0, it will be ignored. This makes it possible to repeatedly call GetNextDiscontinuity and step through the discontinuities. |
| t1 (double) | (t0 != t1) If there is a discontinuity at t1 is will be ignored unless c is a locus discontinuity type and t1 is at the start or end of the curve. |
| cosAngleTolerance (double) | default = cos(1 degree) Used only when continuityType is G1_continuous or G2_continuous. If the cosine of the angle between two tangent vectors is <= cos_angle_tolerance, then a G1 discontinuity is reported. |
| curvatureTolerance (double) | (default = ON_SQRT_EPSILON) Used only when continuityType is G2_continuous. If K0 and K1 are curvatures evaluated from above and below and |K0 - K1| > curvature_tolerance, then a curvature discontinuity is reported. |
| t (out double) | if a discontinuity is found, then t reports the parameter at the discontinuity. |
GetNextDiscontinuity
| direction (int) | If 0, then "u" parameter is checked. If 1, then the "v" parameter is checked. |
| continuityType (Continuity) | The desired continuity. |
| t0 (double) | Search begins at t0. If there is a discontinuity at t0, it will be ignored. This makes it possible to repeatedly call GetNextDiscontinuity and step through the discontinuities. |
| t1 (double) | (t0 != t1) If there is a discontinuity at t1 is will be ignored unless c is a locus discontinuity type and t1 is at the start or end of the curve. |
| t (out double) | if a discontinuity is found, then t reports the parameter at the discontinuity. |
GetNurbsFormParameterFromSurfaceParameter
| surfaceS (double) | The parameter in the S, or sometimes U, direction, of this surface. |
| surfaceT (double) | The parameter in the T, or sometimes V, direction of this surface. |
| nurbsS (out double) | S on the NURBS form. |
| nurbsT (out double) | T on the NURBS form. |
GetObjectData
| info (SerializationInfo) | The System.Runtime.Serialization.SerializationInfo to populate with data. |
| context (StreamingContext) | The destination (see System.Runtime.Serialization.StreamingContext) for this serialization. |
GetSpanVector
| direction (int) | 0 gets first parameter's domain, 1 gets second parameter's domain. |
GetSurfaceParameterFromNurbsFormParameter
| nurbsS (double) | The parameter in the S, or sometimes U, direction of the NURBS form surface. |
| nurbsT (double) | The parameter in the T, or sometimes V, direction of the NURBS form surface. |
| surfaceS (out double) | S on this surface. |
| surfaceT (out double) | T o n this surface. |
GetSurfaceSize
| width (out double) | corresponds to the first surface parameter. |
| height (out double) | corresponds to the second surface parameter. |
| key (string) | id used to retrieve the string. |
GetUserStrings
HasNurbsForm
InterpolatedCurveOnSurface
| points (IEnumerable<Point3d>) | A list, an array or any enumerable set of points. |
| tolerance (double) | A tolerance value. |
InterpolatedCurveOnSurfaceUV
| points (IEnumerable<Point2d>) | List of at least two UV parameter locations on the surface. |
| tolerance (double) | Tolerance used for the fit of the push-up curve. Generally, the resulting interpolating curve will be within tolerance of the surface. |
| closed (bool) | If false, the interpolating curve is not closed. If true, the interpolating curve is closed, and the last point and first point should generally not be equal. |
| closedSurfaceHandling (int) | If 0, all points must be in the rectangular domain of the surface. If the surface is closed in some direction, then this routine will interpret each point and place it at an appropriate location in the covering space. This is the simplest option and should give good results. If 1, then more options for more control of handling curves going across seams are available. If the surface is closed in some direction, then the points are taken as points in the covering space. Example, if srf.IsClosed(0)=true and srf.IsClosed(1)=false and srf.Domain(0)=srf.Domain(1)=Interval(0,1) then if closedSurfaceHandling=1 a point(u, v) in points can have any value for the u coordinate, but must have 0<=v<=1. In particular, if points = { (0.0,0.5), (2.0,0.5) } then the interpolating curve will wrap around the surface two times in the closed direction before ending at start of the curve. If closed=true the last point should equal the first point plus an integer multiple of the period on a closed direction. |
InterpolatedCurveOnSurfaceUV
| points (IEnumerable<Point2d>) | List of at least two UV parameter locations on the surface. |
| tolerance (double) | Tolerance used for the fit of the push-up curve. Generally, the resulting interpolating curve will be within tolerance of the surface. |
IsAtSeam
IsAtSingularity
IsClosed
| direction (int) | 0 = U, 1 = V. |
IsCone
IsCone
| tolerance (double) | tolerance to use when checking. |
IsContinuous
| continuityType (Continuity) | The continuity type to sample. |
| u (double) | Surface u parameter to test. |
| v (double) | Surface v parameter to test. |
IsCylinder
IsCylinder
| tolerance (double) | tolerance to use when checking. |
IsExtrusion
IsExtrusion
| tolerance (double) | tolerance to use when checking. |
IsIsoparametric
| bbox (BoundingBox) | Bounding box to test. |
IsIsoparametric
IsIsoparametric
| curve (Curve) | Curve to test. |
IsoCurve
| direction (int) | 0 first parameter varies and second parameter is constant e.g., point on IsoCurve(0,c) at t is srf(t,c) This is a horizontal line from left to right 1 first parameter is constant and second parameter varies e.g., point on IsoCurve(1,c) at t is srf(c,t This is a vertical line from bottom to top. |
| constantParameter (double) | The parameter that was constant on the original surface. |
IsoCurve
| iso (IsoStatus) | IsoStatus.North returns the curve where U varies and V is V_max (paramter t is ignored) IsoStatus.East returns the curve where V varies and U is U_max (paramter t is ignored) IsoStatus.South returns the curve where U varies and V is V_min (paramter t is ignored) IsoStatus.West returns the curve where V varies and U is U_min (paramter t is ignored) IsoStatus.X returns the curve where V varies and U is t (if t is inside the U-domain) IsoStatus.Y returns the curve where U varies and V is t (if t is inside the V-domain) |
| t (double) | the parameter used if iso is X or Y. |
IsoCurve
| iso (IsoStatus) | IsoStatus.North returns the curve where U varies and V is V_max IsoStatus.East returns the curve where V varies and U is U_max IsoStatus.South returns the curve where U varies and V is V_min IsoStatus.West returns the curve where V varies and U is U_min |
IsPeriodic
| direction (int) | 0 = U, 1 = V. |
IsPlanar
IsPlanar
| tolerance (double) | tolerance to use when checking. |
IsSingular
| side (int) | side of parameter space to test 0 = south, 1 = east, 2 = north, 3 = west. |
IsSphere
IsSphere
| tolerance (double) | tolerance to use when checking. |
IsTorus
IsTorus
| tolerance (double) | tolerance to use when checking. |
IsValidWithLog
| log (out string) | A textual log. This out parameter is assigned during this call. |
LocalClosestPoint
| testPoint (Point3d) | A point to test against. |
| seedU (double) | The seed parameter in the U direction. |
| seedV (double) | The seed parameter in the V direction. |
| u (out double) | U parameter of the surface that is closest to testPoint. |
| v (out double) | V parameter of the surface that is closest to testPoint. |
MakeDeformable
MemoryEstimate
NonConstOperation
NormalAt
This is the simple evaluation call - it does not support error handling.
Offset
OnSwitchToNonConst
PointAt
Pullback
Pullback
Pushup
| curve2d (Curve) | a 2d curve whose image is in the surface's domain. |
| tolerance (double) | the maximum acceptable distance from the returned 3d curve to the image of curve_2d on the surface. |
| curve2dSubdomain (Interval) | The curve interval (a sub-domain of the original curve) to use. |
Pushup
Rebuild
| uDegree (int) | the output surface u degree. |
| vDegree (int) | the output surface u degree. |
| uPointCount (int) | The number of points in the output surface u direction. Must be bigger than uDegree (maximum value is 1000) |
| vPointCount (int) | The number of points in the output surface v direction. Must be bigger than vDegree (maximum value is 1000) |
RebuildOneDirection
| direction (int) | The direction (0 = U, 1 = V). |
| pointCount (int) | The number of points in the output surface in the "direction" direction. |
| loftType (LoftType) | The loft type |
| refitTolerance (double) | The refit tolerance. When in doubt, use the document's model absolute tolerance. |
RefitSimplySplitSurface
| trimCurve3d (Curve) | curve that will trim from one edge to the opposite |
| trimProjectionDir (Vector3d) | Vector for projection, or zero vector for no projection |
| tolerance (double) | 3d tolerance for projection, splitting, fitting... |
| knotAdditionMode (RefitTrimKnotMode) | 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 (int) | FOr TrimParamKnots != 3, the number of knots to add |
| Knots (IEnumerable<double>) | For TrimParamKnots=3, the custom knots to add |
| sectionMode (RefitTrimSectionMode) | 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 (int) | number of spans in the non-trim parameter |
| meetCurve (bool) | Drag the refit surfaces out to meet the original trim curve |
| oneSided (bool) | 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 (Point3d) | Active point |
| outputSurface (bool) | if true, output fit surfaces: srfLower and, if !bActivePt, srfUpper |
| outputCurve (bool) | if true, output fit curve: crvEdge |
| numSections (ref int) | |
| lowerSurface (List<Surface>) | Surfaces (# = nSections) below trim curve in srf's (u,v) domain |
| upperSurface (List<Surface>) | Surfaces (# = nSections) above trim curve in srf's (u,v) domain |
| edgeCurve (List<Curve>) | Curves (# = nSections) fit to trim curve with srf's u/v parameter |
| FitMeasurement (ref double) | Calculated based on trimParamSections |
| trimCurveOnSurface (ref Curve) | the actual trim curve as it is projected on or pulled to the surface |
| splitCurve (ref Curve) | the actual fit curve the split the surface |
RefitSplit
| curve (Curve) | The curve used to split the surface. It must be a simple division, from one edge of the parametric space to the opposite edge. |
| trimProjectionDir (Vector3d) | Vector for projection, or zero vector for no projection |
| tolerance (double) | 3d tolerance for projection, splitting, fitting... |
| Knots (IEnumerable<double>) | |
| bMeetCurve (bool) | |
| divideIntoSections (bool) | If true, the surface is divided at each knot |
| srfLower (List<Surface>) | Surfaces below trim curve in srf's (u,v) domain |
| srfUpper (List<Surface>) | Surfaces below trim curve in srf's (u,v) domain |
| edgeCurve (List<Curve>) | Curves (# = nSections) fit to trim curve with srf's u/v parameter |
| trimCurveOnSurface (ref Curve) | the actual trim curve as it is projected on or pulled to the surface |
| splitCurve (ref Curve) | the actual fit curve the split the surface |
Reverse
Reverse
| direction (int) | 0 for first parameter's domain, 1 for second parameter's domain. |
Rotate
Scale
| scaleFactor (double) | The uniform scaling factor. |
SetDomain
SetUserString
ShortPath
| start (Point2d) | start point of curve in parameter space. Points must be distinct in the domain of the surface. |
| end (Point2d) | end point of curve in parameter space. Points must be distinct in the domain of the surface. |
| tolerance (double) | tolerance used in fitting discrete solution. |
Smooth
| smoothFactor (double) | The smoothing factor, which controls how much control points move towards the average of the neighboring control points. |
| bXSmooth (bool) | When true control points move in X axis direction. |
| bYSmooth (bool) | When true control points move in Y axis direction. |
| bZSmooth (bool) | When true control points move in Z axis direction. |
| bFixBoundaries (bool) | When true the surface edges don't move. |
| coordinateSystem (SmoothingCoordinateSystem) | The coordinates to determine the direction of the smoothing. |
| plane (Plane) | If SmoothingCoordinateSystem.CPlane specified, then the construction plane. |
Smooth
| smoothFactor (double) | The smoothing factor, which controls how much control points move towards the average of the neighboring control points. |
| bXSmooth (bool) | When true control points move in X axis direction. |
| bYSmooth (bool) | When true control points move in Y axis direction. |
| bZSmooth (bool) | When true control points move in Z axis direction. |
| bFixBoundaries (bool) | When true the surface edges don't move. |
| coordinateSystem (SmoothingCoordinateSystem) | The coordinates to determine the direction of the smoothing. |
SpanCount
| direction (int) | 0 gets first parameter's domain, 1 gets second parameter's domain. |
Split
| direction (int) | 0 = The surface is split vertically. The "west" side is returned as the first surface in the array and the "east" side is returned as the second surface in the array. 1 = The surface is split horizontally. The "south" side is returned as the first surface in the array and the "north" side is returned as the second surface in the array |
| parameter (double) | value of constant parameter in interval returned by Domain(direction) |
ToJSON
| options (SerializationOptions) |
ToNurbsSurface
ToNurbsSurface
| tolerance (double) | tolerance to use when creating NURBS representation. |
| accuracy (out int) | 0 = unable to create NURBS representation with desired accuracy. 1 = success - returned NURBS parameterization matches the surface's to the desired accuracy. 2 = success - returned NURBS point locus matches the surface's to the desired accuracy and the domain of the NURBS surface is correct. However, this surface's parameterization and the NURBS surface parameterization may not match to the desired accuracy. This situation happens when getting NURBS representations of surfaces that have a transcendental parameterization like spheres, cylinders, and cones. |
Transform
| xform (Transform) | Transformation to apply to geometry. |
Translate
Translate
| translationVector (Vector3d) | A moving vector. |
Transpose
| inPlace (bool) |
Trim
TryGetCone
TryGetCone
| cone (out Cone) | On success, the cone parameters are filled in. |
TryGetCylinder
| cylinder (out Cylinder) | On success, the cylinder parameters are filled in. |
| tolerance (double) | tolerance to use when checking. |
TryGetCylinder
| cylinder (out Cylinder) | On success, the cylinder parameters are filled in. |
TryGetExtrusion
TryGetExtrusion
| extrusion (out Extrusion) | On success, the extrusion parameters are filled in. |
TryGetFiniteCylinder
TryGetPlane
TryGetPlane
| plane (out Plane) | On success, the plane parameters are filled in. |
TryGetSphere
TryGetSphere
| sphere (out Sphere) | On success, the sphere parameters are filled in. |
TryGetTorus
TryGetTorus
| torus (out Torus) | On success, the torus parameters are filled in. |
VariableOffset
| uMinvMin (double) | Offset distance at Domain(0).Min, Domain(1).Min. |
| uMinvMax (double) | Offset distance at Domain(0).Min, Domain(1).Max. |
| uMaxvMin (double) | Offset distance at Domain(0).Max, Domain(1).Min. |
| uMaxvMax (double) | Offset distance at Domain(0).Max, Domain(1).Max. |
| tolerance (double) | The offset tolerance. |
VariableOffset
| uMinvMin (double) | Offset distance at Domain(0).Min, Domain(1).Min. |
| uMinvMax (double) | Offset distance at Domain(0).Min, Domain(1).Max. |
| uMaxvMin (double) | Offset distance at Domain(0).Max, Domain(1).Min. |
| uMaxvMax (double) | Offset distance at Domain(0).Max, Domain(1).Max. |
| interiorParameters (IEnumerable<Point2d>) | An array of interior UV parameters to offset from. |
| interiorDistances (IEnumerable<double>) | >An array of offset distances at the interior UV parameters. |
| tolerance (double) | The offset tolerance. |