You.i Engine
CYIRay Class Reference

Detailed Description

Encapsulates the origin and direction points of a ray.

This class can be used to describe a pick ray. When a CYIActionEvent occurs the CYISceneManager method CreatePickRay will populate this class with the vectors describing the action based on the location of the camera and view port.

Resulting collisions vectors are intersection between the ray and another element. The CYIRay is used with CYIAABB (Axis Aligned Bounding Box) but not limited to that scenario.

See also
http://www.cs.utah.edu/~awilliam/box/box.pdf

The collision detection function should be ready to handle one ore more of m_unit components sets to 0.0. This would result in having a component of m_oneOverUnit set to +/- INF.

See also
http://steve.hollasch.net/cgindex/coding/ieeefloat.html
http://standards.ieee.org/findstds/standard/754-2008.html

#include <event/YiRay.h>

Public Member Functions

 CYIRay ()
 
 CYIRay (const glm::vec3 &rStart, const glm::vec3 &rEnd)
 
void Create (const glm::vec3 &start, const glm::vec3 &end)
 
CYIRay Transform (const glm::mat4 &matrix) const
 
const glm::vec3 & GetOrigin () const
 
const glm::vec3 & GetUnit () const
 
const glm::vec3 & GetOneOverUnit () const
 

Constructor & Destructor Documentation

◆ CYIRay() [1/2]

CYIRay::CYIRay ( )

◆ CYIRay() [2/2]

CYIRay::CYIRay ( const glm::vec3 &  rStart,
const glm::vec3 &  rEnd 
)

Member Function Documentation

◆ Create()

void CYIRay::Create ( const glm::vec3 &  start,
const glm::vec3 &  end 
)

Creates a ray pointing from start to end.

◆ GetOneOverUnit()

const glm::vec3 & CYIRay::GetOneOverUnit ( ) const
inline

Returns the local space collision vector which is (1.0 / unit vector). It is used for the intersection function optimisation.

◆ GetOrigin()

const glm::vec3 & CYIRay::GetOrigin ( ) const
inline

Returns the origin vector.

◆ GetUnit()

const glm::vec3 & CYIRay::GetUnit ( ) const
inline

Returns the unit vector.

◆ Transform()

CYIRay CYIRay::Transform ( const glm::mat4 &  matrix) const

Returns a transformed copy of this ray.


The documentation for this class was generated from the following file: