Instance Methods | Class Methods | Properties | List of all members
CC3ShadowVolumeMeshNode Class Reference

#import <CC3ShadowVolumes.h>

Inheritance diagram for CC3ShadowVolumeMeshNode:
Inheritance graph

Instance Methods

(void) - drawToStencilWithVisitor:
- Instance Methods inherited from CC3MeshNode
(CC3Material *) - __deprecated
(void) - __deprecated
(void) - __deprecated
(void) - __deprecated
(void) - __deprecated
(void) - addTexture:
(CC3Face- deformedFaceAt:
(CC3Vector- deformedFaceCenterAt:
(CC3Vector- deformedFaceNormalAt:
(CC3Plane- deformedFacePlaneAt:
(CC3Vector- deformedVertexLocationAt:fromFaceAt:
(void) - drawWithVisitor:
(CC3Mesh *) - ensureMesh
(void) - expectsVerticallyFlippedTexture:inTextureUnit:
(BOOL) - expectsVerticallyFlippedTextureInTextureUnit:
(CC3Face- faceAt:
(CC3Vector- faceCenterAt:
(GLuint) - faceCountFromVertexCount:
(GLuint) - faceCountFromVertexIndexCount:
(CC3Face- faceFromIndices:
(CC3FaceIndices- faceIndicesAt:
(CC3FaceNeighbours- faceNeighboursAt:
(CC3Vector- faceNormalAt:
(CC3Plane- facePlaneAt:
(GLuint) - findFirst:globalIntersections:ofGlobalRay:acceptBackFaces:acceptBehindRay:
(GLuint) - findFirst:intersections:ofLocalRay:acceptBackFaces:acceptBehindRay:
(void) - flipHorizontallyTextureUnit:
(void) - flipTexturesHorizontally
(void) - flipTexturesVertically
(void) - flipVerticallyTextureUnit:
(CC3Material *) - makeMaterial
(CC3Mesh *) - makeMesh
(void) - moveMeshOriginTo:
(void) - moveMeshOriginToCenterOfGeometry
(void) - movePivotTo:
(void) - populateAsBitmapFontLabelFromString:fromFontFile:andLineHeight:andTextAlignment:andRelativeOrigin:andTessellation:
(void) - populateAsCenteredRectangleWithSize:
(void) - populateAsCenteredRectangleWithSize:andTessellation:
(void) - populateAsCenteredRectangleWithSize:andTessellation:withTexture:invertTexture:
(void) - populateAsCenteredRectangleWithSize:withTexture:invertTexture:
(void) - populateAsCenteredTexturedRectangleWithSize:
(void) - populateAsCenteredTexturedRectangleWithSize:andTessellation:
(void) - populateAsCubeMappedSolidBox:
(void) - populateAsDiskWithRadius:andTessellation:
(void) - populateAsHollowConeWithRadius:height:andTessellation:
(void) - populateAsLineStripWith:vertices:andRetain:
(void) - populateAsRectangleWithSize:andPivot:
(void) - populateAsRectangleWithSize:andPivot:andTessellation:
(void) - populateAsRectangleWithSize:andPivot:andTessellation:withTexture:invertTexture:
(void) - populateAsRectangleWithSize:andPivot:withTexture:invertTexture:
(void) - populateAsRectangleWithSize:andRelativeOrigin:
(void) - populateAsRectangleWithSize:andRelativeOrigin:andTessellation:
(void) - populateAsSolidBox:
(void) - populateAsSolidBox:withCorner:
(void) - populateAsSphereWithRadius:andTessellation:
(void) - populateAsTexturedBox:
(void) - populateAsTexturedBox:withCorner:
(void) - populateAsTexturedRectangleWithSize:andPivot:
(void) - populateAsTexturedRectangleWithSize:andPivot:andTessellation:
(void) - populateAsTriangle:withTexCoords:andTessellation:
(void) - populateAsWireBox:
(CC3Mesh *) - prepareParametricMesh
(void) - removeAllTextures
(void) - removeLocalShaders
(void) - repeatTexture:
(void) - repeatTexture:forTextureUnit:
(CC3ShaderProgram *) - selectShaderProgram
(void) - setTexture:forTextureUnit:
(void) - setTextureRectangle:forTextureUnit:
(void) - setVertexBitangent:at:
(void) - setVertexBoneIndex:forBoneInfluence:at:
(void) - setVertexBoneIndices:at:
(void) - setVertexBoneWeights:at:
(void) - setVertexColor4B:at:
(void) - setVertexColor4F:at:
(void) - setVertexHomogeneousLocation:at:
(void) - setVertexIndex:at:
(void) - setVertexLocation:at:
(void) - setVertexMatrixIndex:forVertexUnit:at:
(void) - setVertexMatrixIndices:at:
(void) - setVertexNormal:at:
(void) - setVertexTangent:at:
(void) - setVertexTexCoord2F:at:
(void) - setVertexTexCoord2F:at:forTextureUnit:
(void) - setVertexTexCoord2F:forTextureUnit:at:
(void) - setVertexWeight:forBoneInfluence:at:
(void) - setVertexWeight:forVertexUnit:at:
(void) - setVertexWeights:at:
(CC3Texture *) - textureForTextureUnit:
(CGRect) - textureRectangleForTextureUnit:
(void) - updateGLBuffers
(void) - updateVertexBitangentsGLBuffer
(void) - updateVertexBoneIndicesGLBuffer
(void) - updateVertexBoneWeightsGLBuffer
(void) - updateVertexColorsGLBuffer
(void) - updateVertexIndicesGLBuffer
(void) - updateVertexLocationsGLBuffer
(void) - updateVertexNormalsGLBuffer
(void) - updateVertexTangentsGLBuffer
(void) - updateVertexTextureCoordinatesGLBuffer
(void) - updateVertexTextureCoordinatesGLBufferForTextureUnit:
(CC3Vector- vertexBitangentAt:
(GLuint) - vertexBoneIndexForBoneInfluence:at:
(GLvoid *) - vertexBoneIndicesAt:
(GLfloat *) - vertexBoneWeightsAt:
(ccColor4B) - vertexColor4BAt:
(ccColor4F) - vertexColor4FAt:
(GLuint) - vertexCountFromFaceCount:
(CC3Vector4- vertexHomogeneousLocationAt:
(GLuint) - vertexIndexAt:
(GLuint) - vertexIndexCountFromFaceCount:
(CC3Vector- vertexLocationAt:
(GLuint) - vertexMatrixIndexForVertexUnit:at:
(GLvoid *) - vertexMatrixIndicesAt:
(CC3Vector- vertexNormalAt:
(CC3Vector- vertexTangentAt:
(ccTex2F) - vertexTexCoord2FAt:
(ccTex2F) - vertexTexCoord2FAt:forTextureUnit:
(ccTex2F) - vertexTexCoord2FForTextureUnit:at:
(GLfloat) - vertexWeightForBoneInfluence:at:
(GLfloat) - vertexWeightForVertexUnit:at:
(GLfloat *) - vertexWeightsAt:
- Instance Methods inherited from CC3LocalContentNode
(void) - checkDrawingOrder
(CC3Box- localContentBoundingBoxRelativeTo:
- Instance Methods inherited from CC3Node
(void) - addAndLocalizeChild:
(void) - addAnimation:asTrack:
(GLuint) - addAnimationFrom:to:
(void) - addAnimationFrom:to:asTrack:
(GLuint) - addAnimationFrom:to:ofBaseTrack:
(void) - addAnimationFrom:to:ofBaseTrack:asTrack:
(GLuint) - addAnimationFromCAFFile:
(void) - addAnimationFromCAFFile:asTrack:
(GLuint) - addAnimationFromCAFFile:linkedToCSFFile:
(void) - addAnimationFromCAFFile:linkedToCSFFile:asTrack:
(GLuint) - addAnimationFromFrame:toFrame:
(void) - addAnimationFromFrame:toFrame:asTrack:
(GLuint) - addAnimationFromFrame:toFrame:ofBaseTrack:
(void) - addAnimationFromFrame:toFrame:ofBaseTrack:asTrack:
(GLuint) - addAnimationFromPODFile:
(void) - addAnimationFromPODFile:asTrack:
(GLuint) - addAnimationInResource:
(void) - addAnimationInResource:asTrack:
(void) - addAnimationState:
(void) - addAxesDirectionMarkers
(void) - addChild:
(void) - addContentFromPODFile:
(void) - addContentFromPODFile:withName:
(void) - addContentFromPODResourceFile:
(void) - addContentFromPODResourceFile:withName:
(void) - addDirectionMarker
(void) - addDirectionMarkerColored:inDirection:
(void) - addShadowVolumes
(void) - addShadowVolumesForLight:
(void) - addTransformListener:
(void) - alignInvertedTextures
(void) - alignTextures
(GLfloat) - animationBlendingWeightOnTrack:
(CCTime) - animationTimeOnTrack:
(NSString *) - appendStructureDescriptionTo:withIndent:
(void) - applyEffectNamed:inPFXResourceFile:
(void) - applyEffectNamed:inPFXResourceNamed:
(void) - applyLocalTransformsTo:
(CC3Node *) - asBumpMapLightTrackingWrapper
(CC3Node *) - asCameraTrackingWrapper
(CC3Node *) - asOrientingWrapper
(CC3Node *) - asTrackingWrapper
(void) - bindRestPose
(CC3Box- boundingBoxRelativeTo:
(void) - buildTransformMatrixWithVisitor:
(void) - cleanupActions
(CC3Node *) - closestNodeIntersectedByGlobalRay:
(BOOL) - containsAnimationOnTrack:
(id) - copy
(id) - copyWithName:
(void) - createBoundingVolume
(void) - createBoundingVolumes
(void) - createGLBuffers
(void) - createSkinnedBoundingVolumes
(CC3NodeBoundingVolume *) - defaultBoundingVolume
(void) - deleteBoundingVolumes
(void) - deleteGLBuffers
(NSString *) - describeAnimationStateForFrames:
(NSString *) - describeAnimationStateForFrames:fromTime:toTime:
(NSString *) - describeCurrentAnimationState
(void) - disableAllAnimation
(void) - disableAllAnimationOnTrack:
(void) - disableAllLocationAnimation
(void) - disableAllQuaternionAnimation
(void) - disableAllScaleAnimation
(void) - disableAnimation
(void) - disableAnimationOnTrack:
(void) - disableLocationAnimation
(void) - disableQuaternionAnimation
(void) - disableScaleAnimation
(BOOL) - doesIntersectBoundingVolume:
(BOOL) - doesIntersectFrustum:
(BOOL) - doesIntersectGlobalRay:
(BOOL) - doesIntersectNode:
(void) - doNotBufferVertexBitangents
(void) - doNotBufferVertexBoneIndices
(void) - doNotBufferVertexBoneWeights
(void) - doNotBufferVertexColors
(void) - doNotBufferVertexContent
(void) - doNotBufferVertexIndices
(void) - doNotBufferVertexLocations
(void) - doNotBufferVertexNormals
(void) - doNotBufferVertexPointSizes
(void) - doNotBufferVertexTangents
(void) - doNotBufferVertexTextureCoordinates
(void) - enableAllAnimation
(void) - enableAllAnimationOnTrack:
(void) - enableAllLocationAnimation
(void) - enableAllQuaternionAnimation
(void) - enableAllScaleAnimation
(void) - enableAnimation
(void) - enableAnimationOnTrack:
(void) - enableLocationAnimation
(void) - enableQuaternionAnimation
(void) - enableScaleAnimation
(void) - ensureRigidSkeleton
(void) - establishAnimationFrameAt:
(void) - establishAnimationFrameAt:onTrack:
(NSArray *) - flatten
(void) - flattenInto:
(void) - flipNormals
(void) - freezeAllInanimatesOnTrack:
(void) - freezeIfInanimateOnTrack:
(CCAction *) - getActionByTag:
(CC3NodeAnimation *) - getAnimationOnTrack:
(CC3NodeAnimationState *) - getAnimationStateOnTrack:
(CC3MeshNode *) - getMeshNodeNamed:
(CC3Node *) - getNodeNamed:
(CC3Node *) - getNodeTagged:
(CC3ShadowVolumeMeshNode *) - getShadowVolumeForLight:
(CC3Vector- globalLocationOfGlobalRayIntesection:
(CC3Matrix *) - globalRotationMatrix
(BOOL) - hasShadowVolumes
(BOOL) - hasShadowVolumesForLight:
(void) - hide
(BOOL) - isAnimationEnabledOnTrack:
(BOOL) - isDescendantOf:
(BOOL) - isShadowVisible
(void) - linkToPODNodes:
(CC3Vector- locationOfGlobalRayIntesection:
(void) - markAnimationDirty
(void) - markBoundingVolumeDirty
(void) - markTransformDirty
(PODStructPtr- nodePODStructAtIndex:fromPODResource:
(CC3NodePuncturingVisitor *) - nodesIntersectedByGlobalRay:
(void) - nodeWasDestroyed:
(void) - nodeWasTransformed:
(NSInteger) - numberOfRunningActions
(void) - pauseAllActions
(void) - prewarmForShadowVolumes
(void) - reattachBonesFrom:
(void) - releaseRedundantContent
(void) - remove
(void) - removeAllChildren
(void) - removeAllDirectionMarkers
(void) - removeAllTransformListeners
(void) - removeAnimation:
(void) - removeAnimationState:
(void) - removeAnimationTrack:
(void) - removeChild:
(void) - removeShaders
(void) - removeShadowVolumes
(void) - removeShadowVolumesForLight:
(void) - removeTransformListener:
(void) - resumeAllActions
(void) - retainVertexBitangents
(void) - retainVertexBoneIndices
(void) - retainVertexBoneWeights
(void) - retainVertexColors
(void) - retainVertexContent
(void) - retainVertexIndices
(void) - retainVertexLocations
(void) - retainVertexNormals
(void) - retainVertexPointSizes
(void) - retainVertexTangents
(void) - retainVertexTextureCoordinates
(void) - rotateBy:
(void) - rotateByAngle:aroundAxis:
(void) - rotateByAngle:aroundAxis:atLocation:
(void) - rotateByQuaternion:
(CCAction *) - runAction:
(CCAction *) - runAction:withTag:
(void) - selectShaders
(void) - setAnimationBlendingWeight:onTrack:
(void) - setSkeletalBoundingVolume:
(void) - show
(void) - stopAction:
(void) - stopActionByTag:
(void) - stopAllActions
(void) - touchDisableAll
(void) - touchEnableAll
(void) - trackTargetWithVisitor:
(void) - transformAndDrawWithVisitor:
(void) - translateBy:
(void) - updateAfterTransform:
(void) - updateBeforeTransform:
(void) - wasAdded
(void) - wasRemoved
- Instance Methods inherited from CC3Identifiable
(id) - copyAsClass:
(void) - copyUserDataFrom:
(id) - copyWithName:asClass:
(id) - copyWithZone:withName:
(id) - copyWithZone:withName:asClass:
(BOOL) - deriveNameFrom:
(BOOL) - deriveNameFrom:usingSuffix:
(NSString *) - fullDescription
(id) - init
(id) - initAtIndex:fromPODResource:
(void) - initUserData
(id) - initWithName:
(id) - initWithTag:
(id) - initWithTag:withName:
(GLuint) - nextTag
(void) - populateFrom:
- Instance Methods inherited from <CC3ShadowProtocol>
(void) - updateShadow

Class Methods

(BOOL) + defaultVisible
(void) + setDefaultVisible:


BOOL shouldDrawTerminator
- Properties inherited from CC3MeshNode
CC3Mesh *meshModel __deprecated
ccColor4F pureColor __deprecated
BOOL hasPremultipliedAlpha __deprecated
GLuint vertexUnitCount __deprecated
GLenum matrixIndexType __deprecated
ccColor4F ambientColor
ccBlendFunc blendFunc
CCColorRef color
ccColor4F diffuseColor
GLenum drawingMode
CC3NormalScaling effectiveNormalScalingMethod
ccColor4F emissionColor
BOOL expectsVerticallyFlippedTextures
GLuint faceCount
BOOL hasRigidSkeleton
BOOL hasSkeleton
BOOL hasTextureAlpha
BOOL hasTexturePremultipliedAlpha
BOOL isDrawingPointSprites
BOOL isOpaque
BOOL isUsingGLBuffers
CCOpacity opacity
int podMaterialIndex
GLfloat reflectivity
GLfloat shininess
BOOL shouldApplyOpacityToColor
BOOL shouldCacheFaces
BOOL shouldDrawLowAlpha
BOOL shouldUseLighting
BOOL shouldUseLightProbes
ccColor4F specularColor
GLuint textureCount
CGRect textureRectangle
GLuint vertexBoneCount
GLenum vertexBoneIndexType
GLenum vertexColorType
CC3VertexContent vertexContentTypes
GLuint vertexCount
GLuint vertexIndexCount
- Properties inherited from CC3LocalContentNode
CC3Box globalLocalContentBoundingBox
CC3Vector globalLocalContentCenterOfGeometry
CC3Box localContentBoundingBox
CC3Vector localContentCenterOfGeometry
BOOL shouldDrawLocalContentWireframeBox
- Properties inherited from CC3Node
CC3Vector sceneUpDirection __deprecated
CC3Vector worldUpDirection __deprecated
GLfloat scaleTolerance __deprecated
CC3Vector globalLightLocation __deprecated
CC3Matrix *transformMatrix __deprecated
CC3Matrix *transformMatrixInverted __deprecated
CC3Node *dirtiestAncestor __deprecated
CC3Matrix *parentTransformMatrix __deprecated
CC3Scene *world __deprecated
BOOL shouldCleanupWhenRemoved __deprecated
ccColor4F ambientColor
ccBlendFunc blendFunc
CC3Box boundingBox
GLfloat boundingVolumePadding
GLfloat cameraDistanceProduct
CC3Vector centerOfGeometry
NSArray * children
CCColorRef color
BOOL containsAnimation
GLfloat decalOffsetFactor
GLfloat decalOffsetUnits
GLenum depthFunction
ccColor4F diffuseColor
NSArray * directionMarkers
ccColor4F emissionColor
BOOL expectsVerticallyFlippedTextures
CC3Vector forwardDirection
CC3Box globalBoundingBox
CC3Vector globalCenterOfGeometry
CC3Vector globalForwardDirection
CC3Vector4 globalHomogeneousPosition
CC3Vector4 globalLightPosition
CC3Vector globalLocation
CC3Vector globalRightDirection
CC3Vector globalRotation
CC3Vector globalScale
CC3Vector globalUpDirection
BOOL hasLocalContent
BOOL hasSoftBodyContent
BOOL hasTarget
BOOL isAnimationEnabled
BOOL isBasePODNode
BOOL isBillboard
BOOL isCamera
BOOL isLight
BOOL isLightProbe
BOOL isMeshNode
BOOL isOpaque
BOOL isRunning
BOOL isScene
BOOL isShadowVolume
BOOL isTouchable
BOOL isTrackingForBumpMapping
BOOL isTransformDirty
BOOL isTransformRigid
BOOL isUniformlyScaledGlobally
BOOL isUniformlyScaledLocally
GLenum lineSmoothingHint
GLfloat lineWidth
CC3Vector location
CC3NormalScaling normalScalingMethod
CCOpacity opacity
GLint podContentIndex
GLint podParentIndex
GLint podTargetIndex
CC3Vector projectedLocation
CGPoint projectedPosition
CC3Quaternion quaternion
CC3Vector referenceUpDirection
GLfloat reflectivity
const char * renderStreamGroupMarker
CC3Vector rightDirection
CC3Vector rotation
GLfloat rotationAngle
CC3Vector rotationAxis
CC3Vector scale
GLfloat shadowExpansionLimitFactor
GLushort shadowLagCount
GLushort shadowLagFactor
GLfloat shadowOffsetFactor
GLfloat shadowOffsetUnits
NSArray * shadowVolumes
GLfloat shadowVolumeVertexOffsetFactor
GLfloat shininess
BOOL shouldAddShadowVolumeEndCapsOnlyWhenNeeded
BOOL shouldAllowTouchableWhenInvisible
BOOL shouldApplyOpacityAndColorToMeshContent
BOOL shouldAutoremoveWhenEmpty
BOOL shouldAutotargetCamera
BOOL shouldBlendAtFullOpacity
BOOL shouldCacheFaces
BOOL shouldCastShadows
BOOL shouldCastShadowsWhenInvisible
BOOL shouldCullBackFaces
BOOL shouldCullFrontFaces
BOOL shouldDisableDepthMask
BOOL shouldDisableDepthTest
BOOL shouldDrawAllBoundingVolumes
BOOL shouldDrawAllDescriptors
BOOL shouldDrawAllLocalContentWireframeBoxes
BOOL shouldDrawAllWireframeBoxes
BOOL shouldDrawBoundingVolume
BOOL shouldDrawDescriptor
BOOL shouldDrawInClipSpace
BOOL shouldDrawWireframeBox
BOOL shouldIgnoreRayIntersection
BOOL shouldInheritTouchability
BOOL shouldLogIntersectionMisses
BOOL shouldLogIntersections
BOOL shouldShadowBackFaces
BOOL shouldShadowFrontFaces
BOOL shouldSmoothLines
BOOL shouldStopActionsWhenRemoved
BOOL shouldTrackTarget
BOOL shouldUseClockwiseFrontFaceWinding
BOOL shouldUseFixedBoundingVolume
BOOL shouldUseLighting
BOOL shouldUseLightProbes
BOOL shouldUseSmoothShading
CC3Vector skeletalScale
ccColor4F specularColor
NSString * structureDescription
CC3Vector targetLocation
CC3TargettingConstraint targettingConstraint
BOOL touchEnabled
NSSet * transformListeners
GLfloat uniformScale
CC3Vector upDirection
BOOL visible
GLint zOrder
- Properties inherited from CC3Identifiable
NSObject *sharedUserData __deprecated
NSString * name
NSString * nameSuffix
GLint podIndex
BOOL shouldIncludeInDeepCopy
GLuint tag
NSObject * userData
- Properties inherited from <CC3Cacheable>
NSString * name
- Properties inherited from <CC3ShadowProtocol>

Detailed Description

The mesh node used to build a shadow volume.

A single CC3ShadowVolumeMeshNode instance represents the shadow from a single light for a single shadow-casting node.

As a mesh node, the CC3ShadowVolumeMeshNode instance is added as a child to the node whose shadow is to be represented. To automatically create a CC3ShadowVolumeMeshNode and add it to the shadow-casting node, use the addShadowVolumesForLight: method on the shadow-casting node (or any structural ancestor of that node).

CC3ShadowVolumeMeshNode implements the CC3ShadowProtocol. The implementation of the updateShadow method populates a shadow volume mesh that encompasses the volume of space shadowed by the shadow-casting node. Any other object with this shadow volume will be shadowed by that node.

The shadow volume mesh of this node is invisible in itself, but by depth-testing against other drawn nodes, a stencil is created indicating which view pixels will be in shadow. Those view pixels are then darkened accordingly.

Of all shadowing techniques, shadow volumes result in the most accurate shadows, but are also the most computationally intensive.

Shadow volumes use a stencil buffer to determine the areas that require shading. The stencil buffer must be allocated within the EAGLView when the view is created and initialized. Under iOS, the sencil buffer is combined with the depth buffer, and you create a stencil buffer by passing the value GL_DEPTH24_STENCIL8 as the depth format argument in the CCGLView method viewWithFrame:pixelFormat:depthFormat:preserveBackbuffer:sharegroup:multiSampling:numberOfSamples:.

Method Documentation

+ (BOOL) defaultVisible

Returns the default value to which the visible property will be set when an instance is created and initialized.

The initial value of this property is NO. Normally, shadow volumes affect the contents of the stencil buffer, but are not directly visible themselves. However, during development debugging, you can set this property to YES to make the shadow volumes visible within the scene, to help visualize how the shadow volumes are interacting with the scene.

- (void) drawToStencilWithVisitor: (CC3NodeDrawingVisitor *)  visitor

Draws this node to a stencil.

The stencil is marked wherever another node intersects the mesh volume of this node, and is therefore in shadow.

The application should not use this method. The method signature, and use of this method will change as additional shadow-casting techniques are introduced.

+ (void) setDefaultVisible: (BOOL)  defaultVisible

Sets the default value to which the visible property will be set when an instance is created and initialized.

The initial value of this property is NO. Normally, shadow volumes affect the contents of the stencil buffer, but are not directly visible themselves. However, during development debugging, you can set this property to YES to make the shadow volumes visible within the scene, to help visualize how the shadow volumes are interacting with the scene.

Property Documentation

- (BOOL) shouldDrawTerminator

Indicates that this should display the terminator line of the shadow-casting node.

The terminator line is the line that separates the illuminated side of the shadow-casting object from the dark side. It defines the start of the shadow volume mesh that is attached to the shadow-casting node.

This property can be useful for diagnostics during development. This property only has effect if the visible property is set to YES for this shadow-volume node.

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