36 lines
705 B
C++
36 lines
705 B
C++
#ifndef CRAY_H
|
|
#define CRAY_H
|
|
|
|
#include "CVector3f.h"
|
|
|
|
class CRay
|
|
{
|
|
CVector3f mOrigin;
|
|
CVector3f mDirection;
|
|
|
|
public:
|
|
CRay();
|
|
CRay(const CVector3f& Origin, const CVector3f& Direction);
|
|
~CRay();
|
|
const CVector3f& Origin() const;
|
|
const CVector3f& Direction() const;
|
|
void SetOrigin(const CVector3f& Origin);
|
|
void SetDirection(const CVector3f& Direction);
|
|
|
|
CRay Transformed(const CTransform4f& Matrix) const;
|
|
CVector3f PointOnRay(float Distance) const;
|
|
};
|
|
|
|
// ************ INLINE FUNCTIONS ************
|
|
inline const CVector3f& CRay::Origin() const
|
|
{
|
|
return mOrigin;
|
|
}
|
|
|
|
inline const CVector3f& CRay::Direction() const
|
|
{
|
|
return mDirection;
|
|
}
|
|
|
|
#endif // CRAY_H
|