mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-06 21:57:47 +00:00
GEEKING
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
#pragma once
|
||||
|
||||
#include "Util/G3DCore.h"
|
||||
|
||||
namespace RBX
|
||||
{
|
||||
class Extents;
|
||||
}
|
||||
|
||||
namespace RBX
|
||||
{
|
||||
namespace Graphics
|
||||
{
|
||||
|
||||
class RenderCamera
|
||||
{
|
||||
public:
|
||||
RenderCamera();
|
||||
|
||||
void setViewCFrame(const CoordinateFrame& cframe, float roll = 0);
|
||||
void setViewMatrix(const Matrix4& value);
|
||||
|
||||
void setProjectionPerspective(float fovY, float aspect, float znear, float zfar);
|
||||
void setProjectionPerspective(float fovUpTan, float fovDownTan, float fovLeftTan, float fovRightTan, float znear, float zfar);
|
||||
void setProjectionOrtho(float width, float height, float znear, float zfar, bool halfPixelOffset = false);
|
||||
void setProjectionMatrix(const Matrix4& value);
|
||||
|
||||
void changeProjectionPerspectiveZ(float znear, float zfar);
|
||||
|
||||
const Matrix4& getViewMatrix() const { return view; }
|
||||
const Matrix4& getProjectionMatrix() const { return projection; }
|
||||
const Matrix4& getViewProjectionMatrix() const { return viewProjection; }
|
||||
|
||||
const Vector3& getPosition() const { return position; }
|
||||
const Vector3& getDirection() const { return direction; }
|
||||
|
||||
bool isVisible(const Extents& extents) const;
|
||||
bool isVisible(const Sphere& sphere) const;
|
||||
bool isVisible(const Extents& extents, const CoordinateFrame& cframe) const;
|
||||
|
||||
IntersectResult intersects(const Extents& extents) const;
|
||||
|
||||
private:
|
||||
Vector3 position;
|
||||
Vector3 direction;
|
||||
Matrix4 view;
|
||||
Matrix4 projection;
|
||||
|
||||
Matrix4 viewProjection;
|
||||
|
||||
struct FrustumPlane
|
||||
{
|
||||
Vector4 plane;
|
||||
Vector3 planeAbs;
|
||||
|
||||
FrustumPlane()
|
||||
{
|
||||
}
|
||||
|
||||
FrustumPlane(const Vector4& plane);
|
||||
};
|
||||
|
||||
FrustumPlane frustumPlanes[6];
|
||||
|
||||
void updateViewProjection();
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user