#include "Library/Projection/Projection.h" namespace al { f32 Projection::getTop() const { return mBase.getTop(); } f32 Projection::getBottom() const { return mBase.getBottom(); } f32 Projection::getLeft() const { return mBase.getLeft(); } f32 Projection::getRight() const { return mBase.getRight(); } f32 Projection::getNear() const { return mBase.getNear(); } f32 Projection::getFar() const { return mBase.getFar(); } void Projection::setFovy(f32 fovy) { mFovy = fovy; mFocalLength = tanf(fovy * 0.5f); } void Projection::setAspect(f32 aspect) { mBase.setAspect(aspect); mAspect = aspect; } void Projection::setNear(f32 near) { mBase.setNear(near); mNear = near; } void Projection::setFar(f32 far) { mBase.setFar(far); mFar = far; } f32 Projection::calcNearClipHeight() { return 2 * getNear() * mFocalLength; } f32 Projection::calcNearClipWidth() { return calcNearClipHeight() * mBase.getAspect(); } void Projection::setTop(f32 top) { mTop = top; } void Projection::setBottom(f32 bottom) { mBottom = bottom; } void Projection::setLeft(f32 left) { mLeft = left; } void Projection::setRight(f32 right) { mRight = right; } void Projection::setOffset(const sead::Vector2f& offset) { mBase.setOffset(offset); mOffset.set(offset); } f32 Projection::getAspect() const { return mBase.getAspect(); } f32 Projection::getFovy() const { return mBase.getFovy(); } const sead::Matrix44f& Projection::getProjMtx() const { return mBase.getDeviceProjectionMatrix(); } const sead::Matrix44f& Projection::getProjInvMtx() const { return mInvMtx; } } // namespace al