Protected Attributes

CC3ShadowCastingVolume Class Reference

A bounding volume that encloses a volume that includes the camera frustum plus the space between the camera frustum and a light. More...

#import <CC3Light.h>

Inheritance diagram for CC3ShadowCastingVolume:
Inheritance graph
[legend]
Collaboration diagram for CC3ShadowCastingVolume:
Collaboration graph
[legend]

List of all members.

Protected Attributes

GLuint planeCount
CC3Plane planes [11]
GLuint vertexCount
CC3Vector vertices [9]

Detailed Description

A bounding volume that encloses a volume that includes the camera frustum plus the space between the camera frustum and a light.

Nodes that intersect this volume will cast a shadow from that light into the frustum, and that shadow will be visible. Shadows cast by nodes outside this volume will not intersect the frustum and will not be visible. This volume is used to cull the updating and drawing of shadows, that will not be visible, to improve performance.

The number of planes in this bounding volume will be between six and eleven, depending on where the light is located. The number of vertices will be between five and nine.

The shadow casting volume is a type of bounding volume and therefore supports methods for testing whether locations, rays, shapes, and other bounding volumes intersect its volume.


Member Data Documentation

- (GLuint) planeCount [protected]

For bounding volumes that are described in terms of a hull of vertices and planes, this property returns the number of planes in the array returned by the planes property.

Not all bounding volumes are based on vertices and planes, and this abstract implementation returns zero. Subclasses that make use of vertices and planes will allocate the underlying array and override this implementation.

Implements CC3BoundingVolume.

- (CC3Plane planes[11]) [protected]

For bounding volumes that are described in terms of a hull of vertices and planes, this property returns the array of planes that define the boundary surface of this bounding volume.

The planes are defined in the global coordinate system. The number of planes in the array is specified by the planeCount property.

Not all bounding volumes are based on vertices and planes, and this abstract implementation returns the NULL pointer. Subclasses that make use of vertices and planes will allocate the underlying array and override this implementation.

Implements CC3BoundingVolume.

- (GLuint) vertexCount [protected]

Returns the number of vertices in the array returned by the vertices property.

The value returned depends on whether the light has a specific location, or is directional. If the light is directional, the location of the light is at infinity, and is not used when comparing the vertices with other bounding volumes.

Consequently, if the light has a specific location, that location will be included in the array returned by the vertices property, and the value returned by this property will reflect that. If the light is directional, the light location will not be included in the array returned by the vertices property, and the value returned by this property reflects that, and will be one less than if the light has a specific location.

Implements CC3LightCameraBridgeVolume.

- (CC3Vector vertices[9]) [protected]

For bounding volumes that are described in terms of a hull of vertices and planes, this property returns the array of vertices at the points where the planes intersect.

The vertices are defined in the global coordinate system. The number of vertices in the array is defined by the vertexCount property.

The returned vertices are not in any defined order.

Not all bounding volumes are based on vertices and planes, and this abstract implementation returns the NULL pointer. Subclasses that make use of vertices and planes will allocate the underlying array and override this implementation.

Implements CC3BoundingVolume.


The documentation for this class was generated from the following file: