Encapsulates Ray3D, preventing use of struct literal syntax. This allows us to guarantee that
Ray3d direction is normalized, because it can only be instantiated with the constructor.
Global plugin state used to enable or disable all ray casting for a given type T.
Holds computed intersection information
A 3D ray, with an origin and direction. The direction is guaranteed to be normalized.
Marks an entity as pickable, with type T.
RayCastSource component is used to generate rays with the specified
is generated when the RayCastSource is initialized, either by waiting for update_raycast system
to process the ray, or by using a
Cast a ray on a mesh, and returns the intersection
Checks if a ray intersects a mesh, and returns the nearest intersection if one exists.
Updates the 3d cursor to be in the pointed world coordinates