NurbsSurfacePointList
Referencespublic sealed class NurbsSurfacePointList : IEnumerable<ControlPoint>, IEpsilonComparable<NurbsSurfacePointList>
Provides access to the control points of a NURBS surface.
Properties
Gets the number of control points in the U direction of this surface.
Gets the number of control points in the V direction of this surface.
Methods
public void EnsurePrivateCopy()
If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.
Check that all values in other are within epsilon of the values in this
Parameters:
| other (NurbsSurfacePointList) | |
| epsilon (double) |
Implements: EpsilonEquals
Gets the control point at the given (u, v) index.
Gets the 2-D Greville point associated with the control point at the given (u, v) index.
Gets a world 3-D, or Euclidean, control point at the given (u, v) index. The 4-D representation is (x, y, z, 1.0).
Gets a homogeneous control point at the given (u, v) index, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).
Remarks: For expert use only. If you do not understand homogeneous coordinates, then use the override that returns world 3-D, or Euclidean, coordinates.
Parameters:
| u (int) | Index of control point in the surface U direction. |
| v (int) | Index of control point in the surface V direction. |
| point (out Point4d) | Coordinate and weight of control point. |
Returns: true on success, false on failure.
Gets the weight of a control point at the given (u, v) index. Note, if the surface is non-rational, the weight will be 1.0.
Sets the control point at the given (u, v) index.
Parameters:
| u (int) | Index of control point in the surface U direction. |
| v (int) | Index of control point in the surface V direction. |
| cp (ControlPoint) | The control point to set. |
Returns: true on success, false on failure.
obsoleteUse one of the SetPoint() overrides
Sets the control point at the given (u, v) index.
Sets a homogeneous control point at the given (u, v) index, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).
Remarks: For expert use only. If you do not understand homogeneous coordinates, then use an override that accepts world 3-D, or Euclidean, coordinates as input.
Parameters:
| u (int) | Index of control point in the surface U direction. |
| v (int) | Index of control point in the surface V direction. |
| x (double) | X coordinate of control point. |
| y (double) | Y coordinate of control point. |
| z (double) | Z coordinate of control point. |
| weight (double) | Weight of control point. |
Returns: true on success, false on failure.
Sets a world 3-D, or Euclidean, control point at the given (u, v) index. The 4-D representation is (x, y, z, 1.0).
Sets a world 3-D, or Euclidean, control point and weight at a given index. The 4-D representation is (x*w, y*w, z*w, w).
Sets a world 3-D, or Euclidean, control point at the given (u, v) index. The 4-D representation is (x, y, z, 1.0).
Sets a homogeneous control point at the given (u, v) index, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).
Remarks: For expert use only. If you do not understand homogeneous coordinates, then use an override that accepts world 3-D, or Euclidean, coordinates as input.
Parameters:
| u (int) | Index of control point in the surface U direction. |
| v (int) | Index of control point in the surface V direction. |
| point (Point4d) | Coordinate and weight of control point. |
Returns: true on success, false on failure.
Sets the weight of a control point at the given (u, v) index. Note, if the surface is non-rational, it will be converted to rational.
Calculates the U, V, and N directions of a NURBS surface control point similar to the method used by Rhino's MoveUVN command.
public bool ValidateSpacing(double closeTolerance, double stackTolerance, out IndexPair[] closeIndices, out IndexPair[] stackedIndices)
Simple check of distance between adjacent control points
Parameters:
| closeTolerance (double) | |
| stackTolerance (double) | |
| closeIndices (out IndexPair[]) | |
| stackedIndices (out IndexPair[]) |