143 virtual void calcProjectionParameters(
Real& left,
Real& right,
Real& bottom,
Real& top)
const;
145 virtual void updateFrustum(
void)
const;
147 virtual void updateView(
void)
const;
149 virtual void updateFrustumImpl(
void)
const;
151 virtual void updateViewImpl(
void)
const;
152 virtual void updateFrustumPlanes(
void)
const;
154 virtual void updateFrustumPlanesImpl(
void)
const;
155 virtual void updateWorldSpaceCorners(
void)
const;
157 virtual void updateWorldSpaceCornersImpl(
void)
const;
158 virtual void updateVertexData(
void)
const;
159 virtual bool isViewOutOfDate(
void)
const;
160 virtual bool isFrustumOutOfDate(
void)
const;
162 virtual void invalidateFrustum(
void)
const;
164 virtual void invalidateView(
void)
const;
213 virtual void setFOVy(
const Radian& fovy);
217 virtual const Radian& getFOVy(
void)
const;
230 virtual void setNearClipDistance(
Real nearDist);
234 virtual Real getNearClipDistance(
void)
const;
256 virtual void setFarClipDistance(
Real farDist);
260 virtual Real getFarClipDistance(
void)
const;
270 virtual void setAspectRatio(
Real ratio);
274 virtual Real getAspectRatio(
void)
const;
287 virtual void setFrustumOffset(
const Vector2& offset);
302 virtual void setFrustumOffset(
Real horizontal = 0.0,
Real vertical = 0.0);
306 virtual const Vector2& getFrustumOffset()
const;
312 virtual void setFocalLength(
Real focalLength = 1.0);
316 virtual Real getFocalLength()
const;
322 virtual void setFrustumExtents(
Real left,
Real right,
Real top,
Real bottom);
324 virtual void resetFrustumExtents();
326 virtual void getFrustumExtents(
Real& outleft,
Real& outright,
Real& outtop,
Real& outbottom)
const;
338 virtual const Matrix4& getProjectionMatrixRS(
void)
const;
350 virtual const Matrix4& getProjectionMatrixWithRSDepth(
void)
const;
360 virtual const Matrix4& getProjectionMatrix(
void)
const;
364 virtual const Matrix4& getViewMatrix(
void)
const;
370 virtual void calcViewMatrixRelative(
const Vector3& relPos,
Matrix4& matToUpdate)
const;
389 virtual void setCustomViewMatrix(
bool enable,
393 {
return mCustomViewMatrix; }
414 virtual void setCustomProjectionMatrix(
bool enable,
418 {
return mCustomProjMatrix; }
424 virtual const Plane* getFrustumPlanes(
void)
const;
430 virtual const Plane& getFrustumPlane(
unsigned short plane )
const;
472 uint32 getTypeFlags(
void)
const;
478 Real getBoundingRadius(
void)
const;
484 const String& getMovableType(
void)
const;
487 void _notifyCurrentCamera(
Camera* cam);
496 void getWorldTransforms(
Matrix4* xform)
const;
499 Real getSquaredViewDepth(
const Camera* cam)
const;
510 virtual const Vector3* getWorldSpaceCorners(
void)
const;
527 virtual void setOrthoWindow(
Real w,
Real h);
532 virtual void setOrthoWindowHeight(
Real h);
537 virtual void setOrthoWindowWidth(
Real w);
540 virtual Real getOrthoWindowHeight()
const;
544 virtual Real getOrthoWindowWidth()
const;
551 virtual void enableReflection(
const Plane& p);
563 virtual void disableReflection(
void);
581 virtual bool projectSphere(
const Sphere& sphere,
610 virtual void enableCustomNearClipPlane(
const MovablePlane* plane);
631 virtual void enableCustomNearClipPlane(
const Plane& plane);
633 virtual void disableCustomNearClipPlane(
void);
636 {
return mObliqueDepthProjection; }
640 bool debugRenderables =
false);
646 virtual const Vector3& getPositionForViewUpdate(
void)
const;
648 virtual const Quaternion& getOrientationForViewUpdate(
void)
const;
virtual bool isCustomViewMatrixEnabled(void) const
Returns whether a custom view matrix is in use.
A viewpoint from which the scene will be rendered.
virtual const Plane & getReflectionPlane(void) const
Returns the reflection plane of the frustum if appropriate.
Class encapsulating a standard 4x4 homogeneous matrix.
Matrix4 mViewMatrix
Pre-calced view matrix.
AxisAlignedBox mBoundingBox
float Real
Software floating point type.
const MovablePlane * mLinkedObliqueProjPlane
Pointer to oblique projection plane (automatically updated)
Matrix4 mProjMatrixRS
Pre-calced projection matrix for the specific render system.
OrientationMode mOrientationMode
Frustum orientation mode.
Defines a plane in 3D space.
Vector2 mFrustumOffset
Off-axis frustum center offset - default (0.0, 0.0)
Real mFarDist
Far clip distance - default 10000.
const MovablePlane * mLinkedReflectPlane
Pointer to a reflection plane (automatically updated)
ProjectionType mProjType
Orthographic or perspective?
Vector3 mLastParentPosition
A frustum represents a pyramid, capped at the near and far end which is used to represent either a vi...
static const Matrix4 IDENTITY
Radian mFOVy
y-direction field-of-view (default 45)
virtual bool isReflected(void) const
Returns whether this frustum is being reflected.
A 3D box aligned with the x/y/z axes.
Quaternion mLastParentOrientation
Stored versions of parent orientation / position.
bool mCustomProjMatrix
Are we using a custom projection matrix?
Real mNearDist
Near clip distance - default 100.
Plane mObliqueProjPlane
Fixed oblique projection plane.
Abstract class defining a movable object in a scene.
bool mRecalcWorldSpaceCorners
Something re the world space corners has changed.
Abstract class defining the interface all renderable objects must implement.
Implementation of a Quaternion, i.e.
virtual const Matrix4 & getReflectionMatrix(void) const
Returns the reflection matrix of the frustum if appropriate.
bool mRecalcFrustum
Something's changed in the frustum shape?
static String msMovableType
Shared class-level name for Movable type.
OrientationMode
Specifies orientation mode.
ProjectionType
Specifies perspective (realistic) or orthographic (architectural) projection.
Matrix4 mReflectMatrix
Derived reflection matrix.
Matrix4 mProjMatrixRSDepth
Pre-calced standard projection matrix but with render system depth range.
Real mOrthoHeight
Ortho height size (world units)
A sphere primitive, mostly used for bounds checking.
Standard 2-dimensional vector.
bool mRecalcVertexData
Something re the vertex data has changed.
Plane mLastLinkedObliqueProjPlane
Record of the last world-space oblique depth projection plane info used.
bool mReflect
Is this frustum to act as a reflection of itself?
Visitor object that can be used to iterate over a collection of Renderable instances abstractly...
Plane mReflectPlane
Fixed reflection plane.
Definition of a Plane that may be attached to a node, and the derived details of it retrieved simply...
Standard 3-dimensional vector.
virtual bool isCustomProjectionMatrixEnabled(void) const
Returns whether a custom projection matrix is in use.
Represents a convex volume bounded by planes.
static const String BLANK
Constant blank string, useful for returning by ref where local does not exist.
Summary class collecting together vertex source information.
bool mRecalcView
Something re the view pos has changed.
'New' rendering operation using vertex buffers.
Real mAspect
x/y viewport ratio - default 1.3333
virtual bool isCustomNearClipPlaneEnabled(void) const
Is a custom near clip plane in use?
Wrapper class which indicates a given angle value is in Radians.
static const Real INFINITE_FAR_PLANE_ADJUST
Small constant used to reduce far plane projection to avoid inaccuracies.
Class to manage the scene object rendering queue.
bool mRecalcFrustumPlanes
Something re the frustum planes has changed.
FrustumPlane
Worldspace clipping planes.
Specialisation of SharedPtr to allow SharedPtr to be assigned to MaterialPtr.
bool mFrustumExtentsManuallySet
Have the frustum extents been manually set?
Plane mLastLinkedReflectionPlane
Record of the last world-space reflection plane info used.
bool mObliqueDepthProjection
Is this frustum using an oblique depth projection?
Real mFocalLength
Focal length of frustum (for stereo rendering, defaults to 1.0)
Matrix4 mProjMatrix
Pre-calced standard projection matrix.
bool mCustomViewMatrix
Are we using a custom view matrix?