Property | Type | Description | |
---|---|---|---|
Initialize | void |
Method | Description | |
---|---|---|
CalcViewMatrixRelative ( Vector3 texProjRelativeOrigin, |
||
DisableCustomNearClipPlane ( ) : void |
Disables any custom near clip plane.
|
|
DisableReflection ( ) : void |
Disables reflection modification previously turned on with EnableReflection(Plane).
|
|
EnableCustomNearClipPlane ( IDerivedPlaneProvider plane ) : void |
Links the frustum to a custom near clip plane, which can be used to clip geometry in a custom manner without using user clip planes. There are several applications for clipping a scene arbitrarily by a single plane; the most common is when rendering a reflection to a texture, and you only want to render geometry that is above the water plane (to do otherwise results in artefacts). Whilst it is possible to use user clip planes, they are not supported on all cards, and sometimes are not hardware accelerated when they are available. Instead, where a single clip plane is involved, this technique uses a 'fudging' of the near clip plane, which is available and fast on all hardware, to perform as the arbitrary clip plane. This does change the shape of the frustum, leading to some depth buffer loss of precision, but for many of the uses of this technique that is not an issue. This version of the method links to a plane, rather than requiring a by-value plane definition, and therefore you can make changes to the plane (e.g. by moving / rotating the node it is attached to) and they will automatically affect this object. This technique only works for perspective projection. |
|
EnableCustomNearClipPlane ( |
Links the frustum to a custom near clip plane, which can be used to clip geometry in a custom manner without using user clip planes. There are several applications for clipping a scene arbitrarily by a single plane; the most common is when rendering a reflection to a texture, and you only want to render geometry that is above the water plane (to do otherwise results in artefacts). Whilst it is possible to use user clip planes, they are not supported on all cards, and sometimes are not hardware accelerated when they are available. Instead, where a single clip plane is involved, this technique uses a 'fudging' of the near clip plane, which is available and fast on all hardware, to perform as the arbitrary clip plane. This does change the shape of the frustum, leading to some depth buffer loss of precision, but for many of the uses of this technique that is not an issue. This version of the method links to a plane, rather than requiring a by-value plane definition, and therefore you can make changes to the plane (e.g. by moving / rotating the node it is attached to) and they will automatically affect this object. This technique only works for perspective projection. |
|
EnableReflection ( IDerivedPlaneProvider plane ) : void |
Modifies this frustum so it always renders from the reflection of itself through the plane specified. Note that this version of the method links to a plane so that changes to it are picked up automatically. This is obviously useful for performing planar reflections. |
|
EnableReflection ( |
Modifies this camera so it always renders from the reflection of itself through the plane specified. This is obviously useful for rendering planar reflections. |
|
Frustum ( ) : System |
Default constructor.
|
|
Frustum ( string name ) : System | ||
GetCustomParameter ( int index ) : Vector4 | ||
GetFrustumExtents ( float &left, float &right, float &top, float &bottom ) : void | ||
GetSquaredViewDepth ( |
||
GetWorldTransforms ( |
||
IsObjectVisible ( |
Overloaded method.
|
|
IsObjectVisible ( |
Tests whether the given box is visible in the Frustum.
|
|
IsObjectVisible ( |
Overloaded method.
|
|
IsObjectVisible ( |
Tests whether the given sphere is in the viewing frustum.
|
|
IsObjectVisible ( Vector3 vertex ) : bool |
Overloaded method.
|
|
IsObjectVisible ( Vector3 vertex, FrustumPlane &culledBy ) : bool |
Tests whether the given 3D point is in the viewing frustum.
|
|
NotifyCurrentCamera ( |
|
|
ProjectSphere ( |
||
ResetFrustumExtents ( ) : void | ||
SetCustomParameter ( int index, Vector4 val ) : void | ||
SetCustomProjectionMatrix ( bool enable ) : void | ||
SetCustomProjectionMatrix ( bool enable, |
||
SetCustomViewMatrix ( bool enable ) : void | ||
SetCustomViewMatrix ( bool enable, |
||
SetFrustumExtents ( float left, float right, float top, float bottom ) : void | ||
SetOrthoWindow ( float w, float h ) : void |
Set view area size for orthographic mode. Note that this method adjusts the frustum's aspect ratio. |
|
UpdateCustomGpuParameter ( |
||
UpdateRenderQueue ( |
Implemented to add outself to the rendering queue.
|
|
this ( FrustumPlane plane ) : |
An indexer that accepts a FrustumPlane enum value and return the appropriate plane side of the Frustum.
|
Method | Description | |
---|---|---|
CalculateProjectionParameters ( Real &vpLeft, Real &vpRight, Real &vpBottom, Real &vpTop ) : void | ||
GetOrientationForViewUpdate ( ) : |
Get the derived orientation of this frustum.
|
|
GetPositionForViewUpdate ( ) : Vector3 |
Get the derived position of this frustum.
|
|
InvalidateFrustum ( ) : void |
Signal to update frustum information.
|
|
InvalidateView ( ) : void |
Signal to update view information.
|
|
UpdateFrustum ( ) : void |
Updates the frustum data.
|
|
UpdateFrustumPlanes ( ) : void | ||
UpdateVertexData ( ) : void | ||
UpdateView ( ) : void |
Updates the view matrix.
|
|
UpdateWorldSpaceCorners ( ) : void | ||
_updateFrustum ( ) : void | ||
_updateFrustumPlanes ( ) : void | ||
_updateView ( ) : void | ||
_updateWorldSpaceCorners ( ) : void | ||
dispose ( bool disposeManagedResources ) : void |
Class level dispose method When implementing this method in an inherited class the following template should be used; protected override void dispose( bool disposeManagedResources ) { if ( !isDisposed ) { if ( disposeManagedResources ) { // Dispose managed resources. } // There are no unmanaged resources to release, but // if we add them, they need to be released here. } // If it is available, make the call to the // base class's Dispose(Boolean) method base.dispose( disposeManagedResources ); } |
Method | Description | |
---|---|---|
Initialize ( ) : void |
public CalcViewMatrixRelative ( Vector3 texProjRelativeOrigin, |
||
texProjRelativeOrigin | Vector3 | |
tmp | ||
return | void |
protected CalculateProjectionParameters ( Real &vpLeft, Real &vpRight, Real &vpBottom, Real &vpTop ) : void | ||
vpLeft | Real | |
vpRight | Real | |
vpBottom | Real | |
vpTop | Real | |
return | void |
public EnableCustomNearClipPlane ( IDerivedPlaneProvider plane ) : void | ||
plane | IDerivedPlaneProvider | The plane to link to to perform the clipping. |
return | void |
public EnableCustomNearClipPlane ( |
||
plane | The plane to link to to perform the clipping. | |
return | void |
public EnableReflection ( IDerivedPlaneProvider plane ) : void | ||
plane | IDerivedPlaneProvider | |
return | void |
public EnableReflection ( |
||
plane | ||
return | void |
public GetCustomParameter ( int index ) : Vector4 | ||
index | int | |
return | Vector4 |
public GetFrustumExtents ( float &left, float &right, float &top, float &bottom ) : void | ||
left | float | |
right | float | |
top | float | |
bottom | float | |
return | void |
protected GetOrientationForViewUpdate ( ) : |
||
return |
protected GetPositionForViewUpdate ( ) : Vector3 | ||
return | Vector3 |
public GetSquaredViewDepth ( |
||
camera | ||
return | float |
public GetWorldTransforms ( |
||
matrices | ||
return | void |
public IsObjectVisible ( |
||
box | ||
return | bool |
public IsObjectVisible ( |
||
box | Bounding box to be checked. | |
culledBy | FrustumPlane | /// Optional FrustrumPlane params which will be filled by the plane which culled /// the box if the result was false. /// |
return | bool |
public IsObjectVisible ( |
||
sphere | ||
return | bool |
public IsObjectVisible ( |
||
sphere | Bounding sphere to be checked. | |
culledBy | FrustumPlane | /// Optional FrustrumPlane params which will be filled by the plane which culled /// the box if the result was false. /// |
return | bool |
public IsObjectVisible ( Vector3 vertex ) : bool | ||
vertex | Vector3 | |
return | bool |
public IsObjectVisible ( Vector3 vertex, FrustumPlane &culledBy ) : bool | ||
vertex | Vector3 | 3D point to check for frustum visibility. |
culledBy | FrustumPlane | /// Optional FrustrumPlane params which will be filled by the plane which culled /// the box if the result was false. /// |
return | bool |
public NotifyCurrentCamera ( |
||
camera | ||
return | void |
public ProjectSphere ( |
||
sphere | ||
left | float | |
top | float | |
right | float | |
bottom | float | |
return | bool |
public SetCustomParameter ( int index, Vector4 val ) : void | ||
index | int | |
val | Vector4 | |
return | void |
public SetCustomProjectionMatrix ( bool enable ) : void | ||
enable | bool | |
return | void |
public SetCustomProjectionMatrix ( bool enable, |
||
enable | bool | |
projMatrix | ||
return | void |
public SetCustomViewMatrix ( bool enable ) : void | ||
enable | bool | |
return | void |
public SetCustomViewMatrix ( bool enable, |
||
enable | bool | |
viewMatrix | ||
return | void |
public SetFrustumExtents ( float left, float right, float top, float bottom ) : void | ||
left | float | |
right | float | |
top | float | |
bottom | float | |
return | void |
public SetOrthoWindow ( float w, float h ) : void | ||
w | float | Width of the area to be visible |
h | float | Height of the area to be visible |
return | void |
public UpdateCustomGpuParameter ( |
||
entry | ||
gpuParams | ||
return | void |
public UpdateRenderQueue ( |
||
queue | ||
return | void |
protected _updateWorldSpaceCorners ( ) : void | ||
return | void |
protected dispose ( bool disposeManagedResources ) : void | ||
disposeManagedResources | bool | True if Unmanaged resources should be released. |
return | void |
public this ( FrustumPlane plane ) : |
||
plane | FrustumPlane | |
return |
protected AxisAlignedBox,Axiom.Math _boundingBox | ||
return |
protected bool _frustumExtentsManuallySet | ||
return | bool |
protected Quaternion,Axiom.Math _lastParentOrientation | ||
return |
protected Material,Axiom.Graphics _material | ||
return |
protected Matrix4,Axiom.Math _projectionMatrix | ||
return |
protected Matrix4,Axiom.Math _projectionMatrixRS | ||
return |
protected Matrix4,Axiom.Math _projectionMatrixRSDepth | ||
return |
protected bool _recalculateFrustumPlanes | ||
return | bool |
protected bool _recalculateWorldSpaceCorners | ||
return | bool |
protected VertexData,Axiom.Graphics _vertexData | ||
return |
protected Matrix4,Axiom.Math _viewMatrix | ||
return |
protected Plane,Axiom.Math lastLinkedObliqueProjPlane | ||
return |
protected Plane,Axiom.Math lastLinkedReflectionPlane | ||
return |
protected IDerivedPlaneProvider linkedObliqueProjPlane | ||
return | IDerivedPlaneProvider |
protected IDerivedPlaneProvider linkedReflectionPlane | ||
return | IDerivedPlaneProvider |
protected Plane,Axiom.Math obliqueProjPlane | ||
return |
protected RenderOperation,Axiom.Graphics renderOperation | ||
return |