# Point3f 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 = 4, Size = 12)]
[DebuggerDisplay("({m_x}, {m_y}, {m_z})")]
[Serializable]
public struct Point3f : IEquatable<Point3f>, IComparable<Point3f>, IComparable, IEpsilonFComparable<Point3f>, IFormattable
```

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

## Constructors

- [Point3f](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/ctor.md): Initializes a new two-dimensional vector from two components.

## Properties

- [IsValid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/isvalid.md): Each coordinate of the point must pass the [RhinoMath.IsValidSingle(float)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinomath/isvalidsingle.md) test.
- [Origin](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/origin.md): (static) Gets the value of a point at location 0,0,0.
- [Unset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/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.point3f/x.md): Gets or sets the X (first) component of the vector.
- [Y](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/y.md): Gets or sets the Y (second) component of the vector.
- [Z](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/z.md): Gets or sets the Z (third) component of the vector.

## Methods

- [Add](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/add.md): (3 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)
- [CompareTo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/compareto.md): Compares this [Point3f](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f.md) with another [Point3f](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f.md). Component evaluation priority is first X, then Y, then Z.
- [DistanceTo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/distanceto.md): Computes the distance between two points.
- [DistanceToSquared](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/distancetosquared.md): Computes the squared distance between two points.
- [Divide](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/divide.md): (static) Divides a point by a factor. (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.point3f/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.point3f/equals.md): (2 overloads) Determines whether the specified System.Object is a Point3f and has the same values as the present point.
- [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/gethashcode.md): Computes a hash code for the present point.
- [Multiply](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/multiply.md): (2 overloads, static) Multiplies a point by a factor. (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.point3f/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)
- [Subtract](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/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)
- [IComparable.CompareTo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/system-icomparable-compareto.md)
- [ToString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/tostring.md): (2 overloads) Constructs the string representation for the current point.
- [Transform](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/transform.md): Transforms the present point in place. The transformation matrix acts on the left of the point. i.e., result = transformation*point

## Operators

- [operator +](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/op-addition.md): (2 overloads, static) Adds a point to another point.
- [operator /](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/op-division.md): (static) Divides a point by a factor.
- [operator ==](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/op-equality.md): (static) Determines whether two points have equal values.
- [operator >](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/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.point3f/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.point3f/op-inequality.md): (static) Determines whether two points have different values.
- [operator <](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/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.point3f/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.point3f/op-multiply.md): (2 overloads, static) Multiplies a point by a factor.
- [operator -](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/op-subtraction.md): (2 overloads, static) Subtracts a vector from a point.
- [operator -](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point3f/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.point3f/op-explicit.md): (2 overloads, static) Converts a double-precision point in a single-precision point. Needs explicit casting to help retain precision.
