sead
Loading...
Searching...
No Matches
sead::PerspectiveProjection Class Reference

#include <seadProjection.h>

Inherits sead::Projection.

Public Member Functions

 PerspectiveProjection ()
 PerspectiveProjection (f32 near, f32 far, f32 fovy_rad, f32 aspect)
 ~PerspectiveProjection () override
void set (f32 _near, f32 _far, f32 fovy_rad, f32 aspect)
void setNear (f32 near)
void setFar (f32 far)
void setFovx (f32 fovx)
void setFovy (f32 fovy)
void setAspect (f32 aspect)
void setOffset (const Vector2f &offset)
void createDividedProjection (PerspectiveProjection *dst, s32 partno_x, s32 partno_y, s32 divnum_x, s32 divnum_y) const
f32 getNear () const
f32 getFar () const
f32 getFovy () const
f32 getAspect () const
const Vector2fgetOffset () const
f32 getTop () const
f32 getBottom () const
f32 getLeft () const
f32 getRight () const
void setTBLR (f32 top, f32 bottom, f32 left, f32 right)
Type getProjectionType () const override
void doUpdateMatrix (Matrix44f *dst) const override
void doScreenPosToCameraPosTo (Vector3f *dst, const Vector3f &screen_pos) const override
Public Member Functions inherited from sead::Projection
 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 void doUpdateDeviceMatrix (Matrix44f *dst, const Matrix44f &src, Graphics::DevicePosture pose) const

Private Member Functions

void setFovy_ (f32 fovy)
f32 calcNearClipHeight_ () const
f32 calcNearClipWidth_ () const

Private Attributes

f32 mNear
f32 mFar
f32 mAngle
f32 mFovySin
f32 mFovyCos
f32 mFovyTan
f32 mAspect
Vector2f mOffset

Additional Inherited Members

Public Types inherited from sead::Projection
enum  Type { cType_Perspective = 0 , cType_Ortho = 1 , cType_Undefined = 2 }

Constructor & Destructor Documentation

◆ PerspectiveProjection() [1/2]

sead::PerspectiveProjection::PerspectiveProjection ( )

◆ PerspectiveProjection() [2/2]

sead::PerspectiveProjection::PerspectiveProjection ( f32 near,
f32 far,
f32 fovy_rad,
f32 aspect )

◆ ~PerspectiveProjection()

sead::PerspectiveProjection::~PerspectiveProjection ( )
override

Member Function Documentation

◆ set()

void sead::PerspectiveProjection::set ( f32 _near,
f32 _far,
f32 fovy_rad,
f32 aspect )

◆ setNear()

void sead::PerspectiveProjection::setNear ( f32 near)
inline

◆ setFar()

void sead::PerspectiveProjection::setFar ( f32 far)
inline

◆ setFovx()

void sead::PerspectiveProjection::setFovx ( f32 fovx)

◆ setFovy()

void sead::PerspectiveProjection::setFovy ( f32 fovy)
inline

◆ setAspect()

void sead::PerspectiveProjection::setAspect ( f32 aspect)
inline

◆ setOffset()

void sead::PerspectiveProjection::setOffset ( const Vector2f & offset)
inline

◆ createDividedProjection()

void sead::PerspectiveProjection::createDividedProjection ( PerspectiveProjection * dst,
s32 partno_x,
s32 partno_y,
s32 divnum_x,
s32 divnum_y ) const

◆ getNear()

f32 sead::PerspectiveProjection::getNear ( ) const
inline

◆ getFar()

f32 sead::PerspectiveProjection::getFar ( ) const
inline

◆ getFovy()

f32 sead::PerspectiveProjection::getFovy ( ) const
inline

◆ getAspect()

f32 sead::PerspectiveProjection::getAspect ( ) const
inline

◆ getOffset()

const Vector2f & sead::PerspectiveProjection::getOffset ( ) const
inline

◆ getTop()

f32 sead::PerspectiveProjection::getTop ( ) const

◆ getBottom()

f32 sead::PerspectiveProjection::getBottom ( ) const

◆ getLeft()

f32 sead::PerspectiveProjection::getLeft ( ) const

◆ getRight()

f32 sead::PerspectiveProjection::getRight ( ) const

◆ setTBLR()

void sead::PerspectiveProjection::setTBLR ( f32 top,
f32 bottom,
f32 left,
f32 right )

◆ getProjectionType()

Type sead::PerspectiveProjection::getProjectionType ( ) const
inlineoverridevirtual

Implements sead::Projection.

◆ doUpdateMatrix()

void sead::PerspectiveProjection::doUpdateMatrix ( Matrix44f * dst) const
overridevirtual

Implements sead::Projection.

◆ doScreenPosToCameraPosTo()

void sead::PerspectiveProjection::doScreenPosToCameraPosTo ( Vector3f * dst,
const Vector3f & screen_pos ) const
overridevirtual

Implements sead::Projection.

◆ setFovy_()

void sead::PerspectiveProjection::setFovy_ ( f32 fovy)
private

◆ calcNearClipHeight_()

f32 sead::PerspectiveProjection::calcNearClipHeight_ ( ) const
inlineprivate

◆ calcNearClipWidth_()

f32 sead::PerspectiveProjection::calcNearClipWidth_ ( ) const
inlineprivate

Member Data Documentation

◆ mNear

f32 sead::PerspectiveProjection::mNear
private

◆ mFar

f32 sead::PerspectiveProjection::mFar
private

◆ mAngle

f32 sead::PerspectiveProjection::mAngle
private

◆ mFovySin

f32 sead::PerspectiveProjection::mFovySin
private

◆ mFovyCos

f32 sead::PerspectiveProjection::mFovyCos
private

◆ mFovyTan

f32 sead::PerspectiveProjection::mFovyTan
private

◆ mAspect

f32 sead::PerspectiveProjection::mAspect
private

◆ mOffset

Vector2f sead::PerspectiveProjection::mOffset
private