Class Ray
Represents a three dimensional line based on a point in space and a direction.
Inheritance
Implements
Namespace: FlaxEngine
Assembly: FlaxEngine.CSharp.dll
Syntax
[Unmanaged]
public sealed class Ray : ValueType, IEquatable<Ray>, IFormattable
Constructors
Ray(Vector3, Vector3)
Initializes a new instance of the Ray struct.
Declaration
public Ray(Vector3 position, Vector3 direction)
Parameters
Vector3
position
The position in three dimensional space of the origin of the ray. |
Vector3
direction
The normalized direction of the ray. |
Fields
Direction
The normalized direction in which the ray points.
Declaration
public Vector3 Direction
Field Value
Vector3
|
Identity
Identity ray (at zero origin pointing forwards).
Declaration
public static readonly Ray Identity
Field Value
Ray
|
Position
The position in three dimensional space where the ray starts.
Declaration
public Vector3 Position
Field Value
Vector3
|
Properties
Default
Methods
Equals(Ray)
Determines whether the specified Vector4 is equal to this instance.
Declaration
public bool Equals(Ray value)
Parameters
Ray
value
The Vector4 to compare with this instance. |
Returns
System.Boolean
|
Equals(ref Ray)
Determines whether the specified Vector4 is equal to this instance.
Declaration
public bool Equals(ref Ray value)
Parameters
Ray
value
The Vector4 to compare with this instance. |
Returns
System.Boolean
|
Equals(Object)
Determines whether the specified System.Object is equal to this instance.
Declaration
public override bool Equals(object value)
Parameters
System.Object
value
The System.Object to compare with this instance. |
Returns
System.Boolean
|
GetHashCode()
Returns a hash code for this instance.
Declaration
public override int GetHashCode()
Returns
System.Int32
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. |
GetPickRay(Single, Single, ref Viewport, ref Matrix)
Calculates a world space ray from 2d screen coordinates.
Declaration
public static Ray GetPickRay(float x, float y, ref Viewport viewport, ref Matrix vp)
Parameters
System.Single
x
The X coordinate on 2d screen. |
System.Single
y
The Y coordinate on 2d screen. |
Viewport
viewport
The screen viewport. |
Matrix
vp
The View*Projection matrix. |
Returns
Ray
The resulting ray. |
GetPoint(Single)
Gets a point at distance long ray.
Declaration
public Vector3 GetPoint(float distance)
Parameters
System.Single
distance
The distance from ray origin. |
Returns
Vector3
The calculated point. |
Intersects(BoundingBox)
Determines if there is an intersection between the current object and a BoundingBox.
Declaration
public bool Intersects(BoundingBox box)
Parameters
BoundingBox
box
The box to test. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref BoundingBox)
Determines if there is an intersection between the current object and a BoundingBox.
Declaration
public bool Intersects(ref BoundingBox box)
Parameters
BoundingBox
box
The box to test. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref BoundingBox, out Vector3)
Determines if there is an intersection between the current object and a BoundingBox.
Declaration
public bool Intersects(ref BoundingBox box, out Vector3 point)
Parameters
BoundingBox
box
The box to test. |
Vector3
point
When the method completes, contains the point of intersection, or Zero if there was no intersection. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref BoundingBox, out Single)
Determines if there is an intersection between the current object and a BoundingBox.
Declaration
public bool Intersects(ref BoundingBox box, out float distance)
Parameters
BoundingBox
box
The box to test. |
System.Single
distance
When the method completes, contains the distance of the intersection, or 0 if there was no intersection. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(BoundingSphere)
Determines if there is an intersection between the current object and a BoundingSphere.
Declaration
public bool Intersects(BoundingSphere sphere)
Parameters
BoundingSphere
sphere
The sphere to test. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref BoundingSphere)
Determines if there is an intersection between the current object and a BoundingSphere.
Declaration
public bool Intersects(ref BoundingSphere sphere)
Parameters
BoundingSphere
sphere
The sphere to test. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref BoundingSphere, out Vector3)
Determines if there is an intersection between the current object and a BoundingSphere.
Declaration
public bool Intersects(ref BoundingSphere sphere, out Vector3 point)
Parameters
BoundingSphere
sphere
The sphere to test. |
Vector3
point
When the method completes, contains the point of intersection, or Zero if there was no intersection. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref BoundingSphere, out Single)
Determines if there is an intersection between the current object and a BoundingSphere.
Declaration
public bool Intersects(ref BoundingSphere sphere, out float distance)
Parameters
BoundingSphere
sphere
The sphere to test. |
System.Single
distance
When the method completes, contains the distance of the intersection, or 0 if there was no intersection. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref Plane)
Determines if there is an intersection between the current object and a Plane.
Declaration
public bool Intersects(ref Plane plane)
Parameters
Plane
plane
The plane to test |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref Plane, out Vector3)
Determines if there is an intersection between the current object and a Plane.
Declaration
public bool Intersects(ref Plane plane, out Vector3 point)
Parameters
Plane
plane
The plane to test. |
Vector3
point
When the method completes, contains the point of intersection, or Zero if there was no intersection. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref Plane, out Single)
Determines if there is an intersection between the current object and a Plane.
Declaration
public bool Intersects(ref Plane plane, out float distance)
Parameters
Plane
plane
The plane to test. |
System.Single
distance
When the method completes, contains the distance of the intersection, or 0 if there was no intersection. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref Ray)
Determines if there is an intersection between the current object and a Ray.
Declaration
public bool Intersects(ref Ray ray)
Parameters
Ray
ray
The ray to test. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref Ray, out Vector3)
Determines if there is an intersection between the current object and a Ray.
Declaration
public bool Intersects(ref Ray ray, out Vector3 point)
Parameters
Ray
ray
The ray to test. |
Vector3
point
When the method completes, contains the point of intersection, or Zero if there was no intersection. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref Vector3)
Determines if there is an intersection between the current object and a point.
Declaration
public bool Intersects(ref Vector3 point)
Parameters
Vector3
point
The point to test. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref Vector3, ref Vector3, ref Vector3)
Determines if there is an intersection between the current object and a triangle.
Declaration
public bool Intersects(ref Vector3 vertex1, ref Vector3 vertex2, ref Vector3 vertex3)
Parameters
Vector3
vertex1
The first vertex of the triangle to test. |
Vector3
vertex2
The second vertex of the triangle to test. |
Vector3
vertex3
The third vertex of the triangle to test. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref Vector3, ref Vector3, ref Vector3, out Vector3)
Determines if there is an intersection between the current object and a triangle.
Declaration
public bool Intersects(ref Vector3 vertex1, ref Vector3 vertex2, ref Vector3 vertex3, out Vector3 point)
Parameters
Vector3
vertex1
The first vertex of the triangle to test. |
Vector3
vertex2
The second vertex of the triangle to test. |
Vector3
vertex3
The third vertex of the triangle to test. |
Vector3
point
When the method completes, contains the point of intersection, or Zero if there was no intersection. |
Returns
System.Boolean
Whether the two objects intersected. |
Intersects(ref Vector3, ref Vector3, ref Vector3, out Single)
Determines if there is an intersection between the current object and a triangle.
Declaration
public bool Intersects(ref Vector3 vertex1, ref Vector3 vertex2, ref Vector3 vertex3, out float distance)
Parameters
Vector3
vertex1
The first vertex of the triangle to test. |
Vector3
vertex2
The second vertex of the triangle to test. |
Vector3
vertex3
The third vertex of the triangle to test. |
System.Single
distance
When the method completes, contains the distance of the intersection, or 0 if there was no intersection. |
Returns
System.Boolean
Whether the two objects intersected. |
ToString()
Returns a System.String that represents this instance.
Declaration
public override string ToString()
Returns
System.String
A System.String that represents this instance. |
ToString(IFormatProvider)
Returns a System.String that represents this instance.
Declaration
public string ToString(IFormatProvider formatProvider)
Parameters
System.IFormatProvider
formatProvider
The format provider. |
Returns
System.String
A System.String that represents this instance. |
ToString(String)
Returns a System.String that represents this instance.
Declaration
public string ToString(string format)
Parameters
System.String
format
The format. |
Returns
System.String
A System.String that represents this instance. |
ToString(String, IFormatProvider)
Returns a System.String that represents this instance.
Declaration
public string ToString(string format, IFormatProvider formatProvider)
Parameters
System.String
format
The format. |
System.IFormatProvider
formatProvider
The format provider. |
Returns
System.String
A System.String that represents this instance. |
Operators
Equality(Ray, Ray)
Tests for equality between two objects.
Declaration
public static bool operator ==(Ray left, Ray right)
Parameters
Ray
left
The first value to compare. |
Ray
right
The second value to compare. |
Returns
System.Boolean
|
Inequality(Ray, Ray)
Tests for inequality between two objects.
Declaration
public static bool operator !=(Ray left, Ray right)
Parameters
Ray
left
The first value to compare. |
Ray
right
The second value to compare. |
Returns
System.Boolean
|