# Ray3d 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 = 48)]
[DebuggerDisplay("Pt({m_P.X},{m_P.Y},{m_P.Z}) Dir({m_V.X},{m_V.Y},{m_V.Z})")]
[Serializable]
public struct Ray3d : ISerializable, IEquatable<Ray3d>, IEpsilonComparable<Ray3d>
```

Represents an immutable ray in three dimensions, using position and direction.

## Constructors

- [Ray3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d/ctor.md): Initializes a new Ray3d instance.

## Properties

- [Direction](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d/direction.md): Gets the direction vector of this ray.
- [Position](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d/position.md): Gets the starting position of this ray.

## Methods

- [EpsilonEquals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d/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.ray3d/equals.md): (2 overloads) Determines whether the specified System.Object is a Ray3d and has the same values as the present ray.
- [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d/gethashcode.md): Computes a hashing number that represents the current ray.
- [PointAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d/pointat.md): Evaluates a point along the ray.
- [ISerializable.GetObjectData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d/system-runtime-serialization-iserializable-getobjectdata.md)

## Operators

- [operator ==](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d/op-equality.md): (static) Determines whether two [Ray3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d.md) have equal values.
- [operator !=](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d/op-inequality.md): (static) Determines whether two [Ray3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.ray3d.md) have different values.
