sead
Loading...
Searching...
No Matches
sead::Projection Class Referenceabstract

#include <seadProjection.h>

Inherited by sead::FrustumProjection, sead::OrthoProjection, and sead::PerspectiveProjection.

Public Types

enum  Type { cType_Perspective = 0 , cType_Ortho = 1 , cType_Undefined = 2 }

Public Member Functions

 Projection ()
virtual ~Projection ()
void setDirty ()
void setDeviceDirty ()
void setDevicePosture (Graphics::DevicePosture pose)
const Matrix44fgetProjectionMatrix () const
Matrix44fgetProjectionMatrixMutable ()
const Matrix44fgetDeviceProjectionMatrix () const
void cameraPosToScreenPos (Vector3f *dst, const Vector3f &camera_pos) const
void screenPosToCameraPos (Vector3f *dst, const Vector3f &screen_pos) const
void screenPosToCameraPos (Vector3f *dst, const Vector2f &screen_pos) const
void project (Vector2f *dst, const Vector3f &camera_pos, const Viewport &viewport) const
void unproject (Vector3f *dst, const Vector3f &screen_pos, const Camera &camera) const
void unprojectRay (Ray< Vector3f > *dst, const Vector3f &screen_pos, const Camera &camera) const
virtual Type getProjectionType () const =0
virtual void doUpdateMatrix (Matrix44f *dst) const =0
virtual void doUpdateDeviceMatrix (Matrix44f *dst, const Matrix44f &src, Graphics::DevicePosture pose) const
virtual void doScreenPosToCameraPosTo (Vector3f *dst, const Vector3f &screen_pos) const =0

Private Member Functions

void updateMatrixImpl_ () const

Private Attributes

bool mDirty
bool mDeviceDirty
Matrix44f mMatrix
Matrix44f mDeviceMatrix
Graphics::DevicePosture mDevicePosture
f32 mDeviceZScale
f32 mDeviceZOffset

Member Enumeration Documentation

◆ Type

Enumerator
cType_Perspective 
cType_Ortho 
cType_Undefined 

Constructor & Destructor Documentation

◆ Projection()

sead::Projection::Projection ( )

◆ ~Projection()

sead::Projection::~Projection ( )
virtual

Member Function Documentation

◆ setDirty()

void sead::Projection::setDirty ( )
inline

◆ setDeviceDirty()

void sead::Projection::setDeviceDirty ( )
inline

◆ setDevicePosture()

void sead::Projection::setDevicePosture ( Graphics::DevicePosture pose)
inline

◆ getProjectionMatrix()

const Matrix44f & sead::Projection::getProjectionMatrix ( ) const

◆ getProjectionMatrixMutable()

Matrix44f & sead::Projection::getProjectionMatrixMutable ( )

◆ getDeviceProjectionMatrix()

const Matrix44f & sead::Projection::getDeviceProjectionMatrix ( ) const

◆ cameraPosToScreenPos()

void sead::Projection::cameraPosToScreenPos ( Vector3f * dst,
const Vector3f & camera_pos ) const

◆ screenPosToCameraPos() [1/2]

void sead::Projection::screenPosToCameraPos ( Vector3f * dst,
const Vector3f & screen_pos ) const

◆ screenPosToCameraPos() [2/2]

void sead::Projection::screenPosToCameraPos ( Vector3f * dst,
const Vector2f & screen_pos ) const

◆ project()

void sead::Projection::project ( Vector2f * dst,
const Vector3f & camera_pos,
const Viewport & viewport ) const

◆ unproject()

void sead::Projection::unproject ( Vector3f * dst,
const Vector3f & screen_pos,
const Camera & camera ) const

◆ unprojectRay()

void sead::Projection::unprojectRay ( Ray< Vector3f > * dst,
const Vector3f & screen_pos,
const Camera & camera ) const

◆ getProjectionType()

virtual Type sead::Projection::getProjectionType ( ) const
pure virtual

◆ doUpdateMatrix()

virtual void sead::Projection::doUpdateMatrix ( Matrix44f * dst) const
pure virtual

◆ doUpdateDeviceMatrix()

void sead::Projection::doUpdateDeviceMatrix ( Matrix44f * dst,
const Matrix44f & src,
Graphics::DevicePosture pose ) const
virtual

◆ doScreenPosToCameraPosTo()

virtual void sead::Projection::doScreenPosToCameraPosTo ( Vector3f * dst,
const Vector3f & screen_pos ) const
pure virtual

◆ updateMatrixImpl_()

void sead::Projection::updateMatrixImpl_ ( ) const
private

Member Data Documentation

◆ mDirty

bool sead::Projection::mDirty
mutableprivate

◆ mDeviceDirty

bool sead::Projection::mDeviceDirty
mutableprivate

◆ mMatrix

Matrix44f sead::Projection::mMatrix
private

◆ mDeviceMatrix

Matrix44f sead::Projection::mDeviceMatrix
private

◆ mDevicePosture

Graphics::DevicePosture sead::Projection::mDevicePosture
private

◆ mDeviceZScale

f32 sead::Projection::mDeviceZScale
private

◆ mDeviceZOffset

f32 sead::Projection::mDeviceZOffset
private