# NurbsCurvePointList class

Namespace: [Rhino.Geometry.Collections](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.geometry.collections.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
public class NurbsCurvePointList : IEnumerable<ControlPoint>, IEpsilonComparable<NurbsCurvePointList>, IList<ControlPoint>
```

Provides access to the control points of a NURBS curve.

## Properties

- [ControlPolygonLength](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/controlpolygonlength.md): Gets the length of the polyline connecting all control points.
- [Count](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/count.md): Gets the number of control points in this curve.
- [PointSize](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/pointsize.md): Returns the control point size, or the number of doubles per control point. For rational curves, PointSize = Curve.Dimension + 1. For non-rational curves, PointSize = Curve.Dimension.
- [ICollection<ControlPoint>.IsReadOnly](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/system-collections-generic-icollection-rhino-geometry-controlpoint-isreadonly.md): Returns false.

## Indexers

- [this[]](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/item.md): Gets or sets the control point location at the given index.

## Methods

- [ChangeEndWeights](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/changeendweights.md): Use a combination of scaling and reparameterization to change the end weights to the specified values.
- [Contains](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/contains.md): Determines if this list contains an item.
- [ControlPolygon](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/controlpolygon.md): Constructs a polyline through all the control points. Note that periodic curves generate a closed polyline with fewer points than control-points.
- [CopyTo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/copyto.md): Copied the list to an array.
- [EnsurePrivateCopy](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/ensureprivatecopy.md): 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](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/epsilonequals.md): Check that all values in other are within epsilon of the values in this
- [GetPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/getpoint.md): (2 overloads) Gets a world 3-D, or Euclidean, control point at the given index. The 4-D representation is (x, y, z, 1.0).
- [GetWeight](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/getweight.md): Gets the weight of a control point at the given index. Note, if the curve is non-rational, the weight will be 1.0.
- [IndexOf](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/indexof.md): Gets the index of a control point, or -1.
- [MakeNonRational](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/makenonrational.md): Converts the curve to a Non-rational NURBS curve. Non-rational curves have unweighted control points.
- [MakeRational](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/makerational.md): Converts the curve to a Rational NURBS curve. Rational NURBS curves have weighted control points.
- [SetPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/setpoint.md): (5 overloads) Sets a homogeneous control point at the given 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).
- [SetWeight](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/setweight.md): Sets the weight of a control point at the given index Note, if the curve is non-rational, it will be converted to rational.
- [ICollection<ControlPoint>.Add](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/system-collections-generic-icollection-rhino-geometry-controlpoint-add.md)
- [ICollection<ControlPoint>.Clear](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/system-collections-generic-icollection-rhino-geometry-controlpoint-clear.md)
- [ICollection<ControlPoint>.Remove](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/system-collections-generic-icollection-rhino-geometry-controlpoint-remove.md)
- [IEnumerable<ControlPoint>.GetEnumerator](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/system-collections-generic-ienumerable-rhino-geometry-controlpoint-getenumerator.md)
- [IList<ControlPoint>.Insert](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/system-collections-generic-ilist-rhino-geometry-controlpoint-insert.md)
- [IList<ControlPoint>.RemoveAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/system-collections-generic-ilist-rhino-geometry-controlpoint-removeat.md)
- [IEnumerable.GetEnumerator](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/system-collections-ienumerable-getenumerator.md)
- [UVNDirectionsAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/uvndirectionsat.md): Calculates the U, V, and N directions of a NURBS curve control point similar to the method used by Rhino's MoveUVN command.
- [ValidateSpacing](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.nurbscurvepointlist/validatespacing.md): Simple check of distance between adjacent control points
