NurbsSurfacePointList

References
Provides access to the control points of a NURBS surface.

Properties

CountU

#Since v5.0
public int CountU { get; }
Gets the number of control points in the U direction of this surface.

CountV

#Since v5.0
public int CountV { get; }
Gets the number of control points in the V direction of this surface.

PointSize

#Since v6.9
public int PointSize { get; }
Returns the control point size, or the number of doubles per control point. For rational curves, PointSize = Surface.Dimension + 1. For non-rational curves, PointSize = Surface.Dimension.

Methods

EnsurePrivateCopy

#Since v5.0
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.

EpsilonEquals

#Since v5.4
public bool EpsilonEquals(NurbsSurfacePointList other, double epsilon)
Check that all values in other are within epsilon of the values in this
other (NurbsSurfacePointList)
epsilon (double)
EpsilonEquals

GetControlPoint

#Since v5.0
public ControlPoint GetControlPoint(int u, int v)
Gets the control point at the given (u, v) index.
u (int)Index of control point in the surface U direction.
v (int)Index of control point in the surface V direction.
The control point at the given (u, v) index.

GetGrevillePoint

#Since v5.0
public Point2d GetGrevillePoint(int u, int v)
Gets the 2-D Greville point associated with the control point at the given (u, v) index.
u (int)Index of control point in the surface U direction.
v (int)Index of control point in the surface V direction.
A Surface UV coordinate on success, Point2d.Unset on failure.

GetPoint

#Since v6.0
public bool GetPoint(int u, int v, out Point3d point)
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).
u (int)Index of control point in the surface U direction.
v (int)Index of control point in the surface V direction.
point (out Point3d)Coordinate of control point.
true on success, false on failure.

GetPoint

#Since v6.0
public bool GetPoint(int u, int v, out Point4d point)
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.
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.
true on success, false on failure.

GetWeight

#Since v6.0
public double GetWeight(int u, int v)
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.
u (int)Index of control-point along surface U direction.
v (int)Index of control-point along surface V direction.
The control point weight if successful, Rhino.Math.UnsetValue otherwise.

SetControlPoint

#Since v5.0
public bool SetControlPoint(int u, int v, ControlPoint cp)
Sets the control point at the given (u, v) index.
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.
true on success, false on failure.

SetControlPoint

#Since v5.0 Obsolete v6.0
public bool SetControlPoint(int u, int v, Point3d cp)
obsoleteUse one of the SetPoint() overrides
Sets the control point at the given (u, v) index.
u (int)Index of control point in the surface U direction.
v (int)Index of control point in the surface V direction.
cp (Point3d)The control point location to set (weight is assumed to be 1.0).
true on success, false on failure.

SetPoint

#Since v6.0
public bool SetPoint(int u, int v, double x, double y, double z, double weight)
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.
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.
true on success, false on failure.

SetPoint

#Since v6.0
public bool SetPoint(int u, int v, double x, double y, double z)
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).
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.
true on success, false on failure.

SetPoint

#Since v6.0
public bool SetPoint(int u, int v, Point3d point, double weight)
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).
u (int)Index of control point in the surface U direction.
v (int)Index of control point in the surface V direction.
point (Point3d)Coordinates of the control point.
weight (double)Weight of control point.
true on success, false on failure.

SetPoint

#Since v6.0
public bool SetPoint(int u, int v, Point3d point)
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).
u (int)Index of control point in the surface U direction.
v (int)Index of control point in the surface V direction.
point (Point3d)Coordinate of control point.
true on success, false on failure.

SetPoint

#Since v6.0
public bool SetPoint(int u, int v, Point4d point)
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.
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.
true on success, false on failure.

SetWeight

#Since v6.0
public bool SetWeight(int u, int v, double weight)
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.
u (int)Index of control-point along surface U direction.
v (int)Index of control-point along surface V direction.
weight (double)The control point weight.
true if successful, false otherwise.
Explicit

IEnumerable.GetEnumerator

#
IEnumerator IEnumerable.GetEnumerator()

UVNDirectionsAt

#Since v7.0
public bool UVNDirectionsAt(int u, int v, out Vector3d uDir, out Vector3d vDir, out Vector3d nDir)
Calculates the U, V, and N directions of a NURBS surface control point similar to the method used by Rhino's MoveUVN command.
u (int)Index of control-point along surface U direction.
v (int)Index of control-point along surface V direction.
uDir (out Vector3d)The U direction.
vDir (out Vector3d)The V direction.
nDir (out Vector3d)The N direction.
true if successful, false otherwise.

ValidateSpacing

#Since v6.0
public bool ValidateSpacing(double closeTolerance, double stackTolerance, out IndexPair[] closeIndices, out IndexPair[] stackedIndices)
Simple check of distance between adjacent control points
closeTolerance (double)
stackTolerance (double)
closeIndices (out IndexPair[])
stackedIndices (out IndexPair[])