# Point3d struct

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

```cs
[StructLayout(LayoutKind.Sequential, Pack = 8, Size = 24)]
[DebuggerDisplay("({m_x}, {m_y}, {m_z})")]
[Serializable]
public struct Point3d : ISerializable, IEquatable<Point3d>, IComparable<Point3d>, IComparable, IEpsilonComparable<Point3d>, ICloneable, IFormattable
```

Represents the three coordinates of a point in three-dimensional space, using [double](https://learn.microsoft.com/dotnet/api/system.double)-precision floating point values.

## Constructors

- [Point3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/ctor.md): (5 overloads) Initializes a new point by defining the X, Y and Z coordinates.

## Properties

- [IsValid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/isvalid.md): Each coordinate of the point must pass the [RhinoMath.IsValidDouble(double)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinomath/isvaliddouble.md) test.
- [MaximumCoordinate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/maximumcoordinate.md): Gets the largest (both positive and negative) valid coordinate in this point, or RhinoMath.UnsetValue if no coordinate is valid, as an absolute value.
- [MinimumCoordinate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/minimumcoordinate.md): Gets the smallest (both positive and negative) coordinate value in this point.
- [Origin](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/origin.md): (static) Gets the value of a point at location 0,0,0.
- [Unset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/unset.md): (static) Gets the value of a point at location RhinoMath.UnsetValue,RhinoMath.UnsetValue,RhinoMath.UnsetValue.
- [X](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/x.md): Gets or sets the X (first) coordinate of this point.
- [Y](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/y.md): Gets or sets the Y (second) coordinate of this point.
- [Z](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/z.md): Gets or sets the Z (third) coordinate of this point.

## Indexers

- [this[]](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/item.md): Gets or sets an indexed coordinate of this point.

## Methods

- [Add](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/add.md): (4 overloads, static) Sums up a point and a vector, and returns a new point. (Provided for languages that do not support operator overloading. You can use the + operator otherwise)
- [ArePointsCoplanar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/arepointscoplanar.md): (static) Determines whether a set of points is coplanar within a given tolerance.
- [CompareTo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/compareto.md): Compares this [Point3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d.md) with another [Point3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d.md). Component evaluation priority is first X, then Y, then Z.
- [CreateNoiseDistribution2D](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/createnoisedistribution2d.md): (static) Generates an array of two-dimensional points distributed according to the specified blue noise type.
- [CreateNoiseDistribution3D](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/createnoisedistribution3d.md): (static) Generates an array of three-dimensional points distributed according to the specified blue noise type.
- [CullDuplicates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/cullduplicates.md): (static) Removes duplicates in the supplied set of points.
- [DistanceTo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/distanceto.md): Computes the distance between two points.
- [DistanceToSquared](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/distancetosquared.md): Computes the square of the distance between two points. This method is usually largely faster than DistanceTo().
- [Divide](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/divide.md): (static) Divides a [Point3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d.md) by a number. (Provided for languages that do not support operator overloading. You can use the / operator otherwise)
- [EpsilonEquals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/epsilonequals.md): Check that all values in other are within epsilon of the values in this
- [Equals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/equals.md): (2 overloads) Determines whether the specified [object](https://learn.microsoft.com/dotnet/api/system.object) is a [Point3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d.md) and has the same values as the present point.
- [FromPoint3f](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/frompoint3f.md): (static) Converts a single-precision point in a double-precision point.
- [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/gethashcode.md): Computes a hash code for the present point.
- [Interpolate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/interpolate.md): Interpolate between two points.
- [Multiply](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/multiply.md): (2 overloads, static) Multiplies a [Point3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d.md) by a number. (Provided for languages that do not support operator overloading. You can use the * operator otherwise)
- [Negate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/negate.md): (static) Computes the additive inverse of all coordinates in the point, and returns the new point. (Provided for languages that do not support operator overloading. You can use the - unary operator otherwise)
- [SortAndCullPointList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/sortandcullpointlist.md): (static) Orders a set of points so they will be connected in a "reasonable polyline" order. Also, removes points from the list if their common distance exceeds a specified threshold.
- [Subtract](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/subtract.md): (2 overloads, static) Subtracts a vector from a point. (Provided for languages that do not support operator overloading. You can use the - operator otherwise)
- [ICloneable.Clone](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/system-icloneable-clone.md)
- [IComparable.CompareTo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/system-icomparable-compareto.md)
- [ISerializable.GetObjectData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/system-runtime-serialization-iserializable-getobjectdata.md)
- [ToString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/tostring.md): (2 overloads) Constructs the string representation for the current point.
- [Transform](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/transform.md): Transforms the present point in place. The transformation matrix acts on the left of the point. i.e., result = transformation*point
- [TryParse](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/tryparse.md): (static) Converts the string representation of a point to the equivalent Point3d structure.

## Operators

- [operator +](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-addition.md): (4 overloads, static) Sums up a point and a vector, and returns a new point.
- [operator /](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-division.md): (static) Divides a [Point3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d.md) by a number.
- [operator ==](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-equality.md): (static) Determines whether two Point3d have equal values.
- [operator >](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-greaterthan.md): (static) Determines whether the first specified point comes after (has superior sorting value than) the second point. Coordinates evaluation priority is first X, then Y, then Z.
- [operator >=](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-greaterthanorequal.md): (static) Determines whether the first specified point comes after (has superior sorting value than) the second point, or it is equal to it. Coordinates evaluation priority is first X, then Y, then Z.
- [operator !=](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-inequality.md): (static) Determines whether two Point3d have different values.
- [operator <](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-lessthan.md): (static) Determines whether the first specified point comes before (has inferior sorting value than) the second point. Coordinates evaluation priority is first X, then Y, then Z.
- [operator <=](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-lessthanorequal.md): (static) Determines whether the first specified point comes before (has inferior sorting value than) the second point, or it is equal to it. Coordinates evaluation priority is first X, then Y, then Z.
- [operator *](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-multiply.md): (2 overloads, static) Multiplies a [Point3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d.md) by a number.
- [operator -](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-subtraction.md): (2 overloads, static) Subtracts a vector from a point.
- [operator -](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-unarynegation.md): (static) Computes the additive inverse of all coordinates in the point, and returns the new point.

## Convertors

- [operator explicit](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-explicit.md): (2 overloads, static) Converts a vector in a point, needing casting.
- [operator implicit](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3d/op-implicit.md): (2 overloads, static) Converts a point in a control point, without needing casting.
