Pyrogenesis  trunk
Public Member Functions | Public Attributes | Private Attributes | List of all members
CCamera Class Reference

#include <Camera.h>

Collaboration diagram for CCamera:
Collaboration graph
[legend]

Public Member Functions

 CCamera ()
 
 ~CCamera ()
 
void SetProjection (float nearp, float farp, float fov)
 
void SetProjection (const CMatrix3D &matrix)
 
void SetProjectionTile (int tiles, int tile_x, int tile_y)
 
CMatrix3DGetProjection ()
 
const CMatrix3DGetProjection () const
 
CMatrix3DGetOrientation ()
 
const CMatrix3DGetOrientation () const
 
CMatrix3D GetViewProjection () const
 
void UpdateFrustum (const CBoundingBoxAligned &scissor=CBoundingBoxAligned(CVector3D(-1.0f,-1.0f,-1.0f), CVector3D(1.0f, 1.0f, 1.0f)))
 
void ClipFrustum (const CPlane &clipPlane)
 
const CFrustumGetFrustum () const
 
void SetViewPort (const SViewPort &viewport)
 
const SViewPortGetViewPort () const
 
float GetNearPlane () const
 
float GetFarPlane () const
 
float GetFOV () const
 
void GetCameraPlanePoints (float dist, CVector3D pts[4]) const
 
void BuildCameraRay (int px, int py, CVector3D &origin, CVector3D &dir) const
 
void GetScreenCoordinates (const CVector3D &world, float &x, float &y) const
 
CVector3D GetWorldCoordinates (int px, int py, bool aboveWater=false) const
 
CVector3D GetWorldCoordinates (int px, int py, float h) const
 
CVector3D GetFocus () const
 
void LookAt (const CVector3D &camera, const CVector3D &orientation, const CVector3D &up)
 
void LookAlong (CVector3D camera, CVector3D focus, CVector3D up)
 
void Render (int intermediates=0) const
 Render: Renders the camera's frustum in world space. More...
 

Public Attributes

CMatrix3D m_Orientation
 
CMatrix3D m_ProjMat
 

Private Attributes

float m_NearPlane
 
float m_FarPlane
 
float m_FOV
 
SViewPort m_ViewPort
 
CFrustum m_ViewFrustum
 

Constructor & Destructor Documentation

CCamera::CCamera ( )
CCamera::~CCamera ( )

Member Function Documentation

void CCamera::BuildCameraRay ( int  px,
int  py,
CVector3D origin,
CVector3D dir 
) const
void CCamera::ClipFrustum ( const CPlane clipPlane)
void CCamera::GetCameraPlanePoints ( float  dist,
CVector3D  pts[4] 
) const
float CCamera::GetFarPlane ( ) const
inline
CVector3D CCamera::GetFocus ( ) const
float CCamera::GetFOV ( ) const
inline
const CFrustum& CCamera::GetFrustum ( ) const
inline
float CCamera::GetNearPlane ( ) const
inline
CMatrix3D& CCamera::GetOrientation ( )
inline
const CMatrix3D& CCamera::GetOrientation ( ) const
inline
CMatrix3D& CCamera::GetProjection ( )
inline
const CMatrix3D& CCamera::GetProjection ( ) const
inline
void CCamera::GetScreenCoordinates ( const CVector3D world,
float &  x,
float &  y 
) const
const SViewPort& CCamera::GetViewPort ( ) const
inline
CMatrix3D CCamera::GetViewProjection ( ) const
inline
CVector3D CCamera::GetWorldCoordinates ( int  px,
int  py,
bool  aboveWater = false 
) const
CVector3D CCamera::GetWorldCoordinates ( int  px,
int  py,
float  h 
) const
void CCamera::LookAlong ( CVector3D  camera,
CVector3D  focus,
CVector3D  up 
)
void CCamera::LookAt ( const CVector3D camera,
const CVector3D orientation,
const CVector3D up 
)
void CCamera::Render ( int  intermediates = 0) const

Render: Renders the camera's frustum in world space.

The caller should set the color using glColorXy before calling Render.

Parameters
intermediatesdetermines how many intermediate distance planes should be hinted at between the near and far planes
void CCamera::SetProjection ( float  nearp,
float  farp,
float  fov 
)
void CCamera::SetProjection ( const CMatrix3D matrix)
inline
void CCamera::SetProjectionTile ( int  tiles,
int  tile_x,
int  tile_y 
)
void CCamera::SetViewPort ( const SViewPort viewport)
void CCamera::UpdateFrustum ( const CBoundingBoxAligned scissor = CBoundingBoxAligned(CVector3D(-1.0f, -1.0f, -1.0f), CVector3D(1.0f, 1.0f, 1.0f)))

Member Data Documentation

float CCamera::m_FarPlane
private
float CCamera::m_FOV
private
float CCamera::m_NearPlane
private
CMatrix3D CCamera::m_Orientation
CMatrix3D CCamera::m_ProjMat
CFrustum CCamera::m_ViewFrustum
private
SViewPort CCamera::m_ViewPort
private

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