142 virtual void calcProjectionParameters(
Real& left,
Real& right,
Real& bottom,
Real& top)
const;
144 virtual void updateFrustum(
void)
const;
146 virtual void updateView(
void)
const;
148 virtual void updateFrustumImpl(
void)
const;
150 virtual void updateViewImpl(
void)
const;
151 virtual void updateFrustumPlanes(
void)
const;
153 virtual void updateFrustumPlanesImpl(
void)
const;
154 virtual void updateWorldSpaceCorners(
void)
const;
156 virtual void updateWorldSpaceCornersImpl(
void)
const;
157 virtual void updateVertexData(
void)
const;
158 virtual bool isViewOutOfDate(
void)
const;
159 virtual bool isFrustumOutOfDate(
void)
const;
161 virtual void invalidateFrustum(
void)
const;
163 virtual void invalidateView(
void)
const;
212 virtual void setFOVy(
const Radian& fovy);
216 virtual const Radian& getFOVy(
void)
const;
229 virtual void setNearClipDistance(
Real nearDist);
233 virtual Real getNearClipDistance(
void)
const;
255 virtual void setFarClipDistance(
Real farDist);
259 virtual Real getFarClipDistance(
void)
const;
269 virtual void setAspectRatio(
Real ratio);
273 virtual Real getAspectRatio(
void)
const;
286 virtual void setFrustumOffset(
const Vector2& offset);
301 virtual void setFrustumOffset(
Real horizontal = 0.0,
Real vertical = 0.0);
305 virtual const Vector2& getFrustumOffset()
const;
311 virtual void setFocalLength(
Real focalLength = 1.0);
315 virtual Real getFocalLength()
const;
321 virtual void setFrustumExtents(
Real left,
Real right,
Real top,
Real bottom);
323 virtual void resetFrustumExtents();
325 virtual void getFrustumExtents(
Real& outleft,
Real& outright,
Real& outtop,
Real& outbottom)
const;
337 virtual const Matrix4& getProjectionMatrixRS(
void)
const;
349 virtual const Matrix4& getProjectionMatrixWithRSDepth(
void)
const;
359 virtual const Matrix4& getProjectionMatrix(
void)
const;
363 virtual const Matrix4& getViewMatrix(
void)
const;
369 virtual void calcViewMatrixRelative(
const Vector3& relPos,
Matrix4& matToUpdate)
const;
388 virtual void setCustomViewMatrix(
bool enable,
392 {
return mCustomViewMatrix; }
413 virtual void setCustomProjectionMatrix(
bool enable,
417 {
return mCustomProjMatrix; }
423 virtual const Plane* getFrustumPlanes(
void)
const;
429 virtual const Plane& getFrustumPlane(
unsigned short plane )
const;
471 uint32 getTypeFlags(
void)
const;
477 Real getBoundingRadius(
void)
const;
483 const String& getMovableType(
void)
const;
486 void _notifyCurrentCamera(
Camera* cam);
495 void getWorldTransforms(
Matrix4* xform)
const;
498 Real getSquaredViewDepth(
const Camera* cam)
const;
509 virtual const Vector3* getWorldSpaceCorners(
void)
const;
526 virtual void setOrthoWindow(
Real w,
Real h);
531 virtual void setOrthoWindowHeight(
Real h);
536 virtual void setOrthoWindowWidth(
Real w);
539 virtual Real getOrthoWindowHeight()
const;
543 virtual Real getOrthoWindowWidth()
const;
550 virtual void enableReflection(
const Plane& p);
562 virtual void disableReflection(
void);
580 virtual bool projectSphere(
const Sphere& sphere,
609 virtual void enableCustomNearClipPlane(
const MovablePlane* plane);
630 virtual void enableCustomNearClipPlane(
const Plane& plane);
632 virtual void disableCustomNearClipPlane(
void);
635 {
return mObliqueDepthProjection; }
639 bool debugRenderables =
false);
645 virtual const Vector3& getPositionForViewUpdate(
void)
const;
647 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?