Click or drag to resize
DigitalRuneRayShape Class
Represents a ray, which can be used for ray casting.
Inheritance Hierarchy

Namespace: DigitalRune.Geometry.Shapes
Assembly: DigitalRune.Geometry (in DigitalRune.Geometry.dll) Version: 1.18.0.0 (1.18.2.14427)
Syntax
[SerializableAttribute]
public class RayShape : ConvexShape

The RayShape type exposes the following members.

Constructors
  NameDescription
Public methodRayShape
Initializes a new instance of the RayShape class.
Public methodRayShape(Ray)
Initializes a new instance of the RayShape class from a Ray.
Public methodRayShape(Vector3F, Vector3F, Single)
Initializes a new instance of the Line class with the given origin, direction and length.
Top
Methods
  NameDescription
Public methodClone
Creates a new Shape that is a clone (deep copy) of the current instance.
(Inherited from Shape.)
Protected methodCloneCore
Makes the instance a clone (deep copy) of the specified Shape.
(Overrides ShapeCloneCore(Shape).)
Protected methodCreateInstanceCore
When implemented in a derived class, creates a new instance of the Shape derived class.
(Overrides ShapeCreateInstanceCore.)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetAabb
Computes the axis-aligned bounding box (AABB) for this shape in local space.
(Inherited from Shape.)
Public methodGetAabb(Pose)
Computes the axis-aligned bounding box (AABB) for this shape positioned in world space using the given Pose.
(Inherited from Shape.)
Public methodGetAabb(Vector3F, Pose)
Computes the axis-aligned bounding box (AABB) for this shape positioned in world space using the given scale and Pose.
(Overrides ConvexShapeGetAabb(Vector3F, Pose).)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetMesh
Gets a mesh that represents this shape.
(Inherited from Shape.)
Public methodGetSupportPoint(Vector3F)
Gets a support point for a given direction.
(Overrides ConvexShapeGetSupportPoint(Vector3F).)
Public methodGetSupportPoint(Vector3F, Vector3F)
Gets a support point for a given direction and a given non-uniform scaling.
(Inherited from ConvexShape.)
Public methodGetSupportPointNormalized
Gets a support point for a given normalized direction vector.
(Overrides ConvexShapeGetSupportPointNormalized(Vector3F).)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetVolume
Gets the volume of this shape.
(Overrides ShapeGetVolume(Single, Int32).)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodOnChanged
Raises the Changed event.
(Inherited from Shape.)
Protected methodOnGetMesh
Called when a mesh should be generated for the shape.
(Overrides ConvexShapeOnGetMesh(Single, Int32).)
Public methodToString
Returns a String that represents the current Object.
(Overrides ObjectToString.)
Top
Properties
  NameDescription
Public propertyDirection
Gets or sets the direction of the ray.
Public propertyInnerPoint
Gets an inner point.
(Overrides ShapeInnerPoint.)
Public propertyLength
Gets or sets the finite length.
Public propertyOrigin
Gets or sets the origin of the ray.
Public propertyStopsAtFirstHit
Gets or sets a value indicating whether the ray stops at the first (closest) object that was hit.
Top
Events
  NameDescription
Public eventChanged
Occurs when the shape was changed.
(Inherited from Shape.)
Top
Remarks

This class can be used if an IGeometricObject with a ray shape is needed. Use the Ray structure instead if you need a lightweight representation of a ray (avoids allocating memory on the heap).

In contrast to a real ray, a RayShape object has a finite length! Infinite rays should not be used because finite rays are faster and produce less numerical problems.

Important: Do not put rays into composite shapes (for example CompositeShape). If a composite shape collides with another object, all contacts of this object pair are merged into a single ContactSet. Thus, ray hits of child rays of the composite shape are "merged" with normal contacts of other child shapes; the result is undefined.

See Also