#include <OgreMovableObject.h>
Inheritance diagram for Ogre::MovableObject:
Public Types | |
typedef std::vector< ShadowRenderable * > | ShadowRenderableList |
typedef VectorIterator< ShadowRenderableList > | ShadowRenderableListIterator |
Public Methods | |
MovableObject () | |
Constructor. | |
virtual | ~MovableObject () |
Virtual destructor - read Scott Meyers if you don't know why this is needed. | |
virtual const String & | getName (void) const=0 |
Returns the name of this object. | |
virtual const String & | getMovableType (void) const=0 |
Returns the type name of this object. | |
virtual Node * | getParentNode (void) const |
Returns the node to which this object is attached. | |
virtual void | _notifyAttached (Node *parent, bool isTagPoint=false) |
Internal method called to notify the object that it has been attached to a node. | |
virtual bool | isAttached (void) const |
Returns true if this object is attached to a SceneNode or TagPoint. | |
virtual void | _notifyCurrentCamera (Camera *cam)=0 |
Internal method to notify the object of the camera to be used for the next rendering operation. | |
virtual const AxisAlignedBox & | getBoundingBox (void) const=0 |
Retrieves the local axis-aligned bounding box for this object. | |
virtual Real | getBoundingRadius (void) const=0 |
Retrieves the radius of the origin-centered bounding sphere for this object. | |
virtual const AxisAlignedBox & | getWorldBoundingBox (bool derive=false) const |
Retrieves the axis-aligned bounding box for this object in world coordinates. | |
virtual const Sphere & | getWorldBoundingSphere (bool derive=false) const |
Retrieves the worldspace bounding sphere for this object. | |
virtual void | _updateRenderQueue (RenderQueue *queue)=0 |
Internal method by which the movable object must add Renderable subclass instances to the rendering queue. | |
virtual void | setVisible (bool visible) |
Tells this object whether to be visible or not, if it has a renderable component. | |
virtual bool | isVisible (void) const |
Returns whether or not this object is supposed to be visible or not. | |
virtual void | setUserObject (UserDefinedObject *obj) |
Call this to associate your own custom user object instance with this MovableObject. | |
virtual UserDefinedObject * | getUserObject (void) |
Retrieves a pointer to a custom application object associated with this movable by an earlier call to setUserObject. | |
virtual void | setRenderQueueGroup (RenderQueueGroupID queueID) |
Sets the render queue group this entity will be rendered through. | |
virtual RenderQueueGroupID | getRenderQueueGroup (void) const |
Gets the queue group for this entity, see setRenderQueueGroup for full details. | |
virtual Matrix4 | _getParentNodeFullTransform (void) const |
return the full transformation of the parent sceneNode or the attachingPoint node | |
virtual void | setQueryFlags (unsigned long flags) |
Sets the query flags for this object. | |
virtual void | addQueryFlags (unsigned long flags) |
As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object. | |
virtual void | removeQueryFlags (unsigned long flags) |
As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object. | |
virtual unsigned long | getQueryFlags (void) const |
Returns the query flags relevant for this object. | |
EdgeData * | getEdgeList (void) |
Define a default implementation of method from ShadowCaster which implements no shadows. | |
ShadowRenderableListIterator | getShadowVolumeRenderableIterator (ShadowTechnique shadowTechnique, const Light *light, HardwareIndexBufferSharedPtr *indexBuffer, bool extrudeVertices, Real extrusionDist, unsigned long flags=0) |
Define a default implementation of method from ShadowCaster which implements no shadows. | |
const AxisAlignedBox & | getLightCapBounds (void) const |
Overridden member from ShadowCaster. | |
const AxisAlignedBox & | getDarkCapBounds (const Light &light, Real dirLightExtrusionDist) const |
Overridden member from ShadowCaster. | |
void | setCastShadows (bool enabled) |
Sets whether or not this object will cast shadows. | |
bool | getCastShadows (void) const |
Returns whether shadow casting is enabled for this object. | |
Real | getPointExtrusionDistance (const Light *l) const |
Get the distance to extrude for a point/spot light. | |
Static Public Methods | |
void | extrudeVertices (HardwareVertexBufferSharedPtr vertexBuffer, size_t originalVertexCount, const Vector4 &lightPos, Real extrudeDist) |
Utility method for extruding vertices based on a light. | |
Protected Methods | |
Real | getExtrusionDistance (const Vector3 &objectPos, const Light *light) const |
Helper moethod for calculating extrusion distance. | |
virtual void | updateEdgeListLightFacing (EdgeData *edgeData, const Vector4 &lightPos) |
Tells the caster to perform the tasks necessary to update the edge data's light listing. | |
virtual void | generateShadowVolume (EdgeData *edgeData, HardwareIndexBufferSharedPtr indexBuffer, const Light *light, ShadowRenderableList &shadowRenderables, unsigned long flags) |
Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it. | |
virtual void | extrudeBounds (AxisAlignedBox &box, const Vector4 &lightPos, Real extrudeDist) const |
Utility method for extruding a bounding box. | |
Protected Attributes | |
Node * | mParentNode |
node to which this object is attached | |
bool | mParentIsTagPoint |
bool | mVisible |
Is this object visible? | |
UserDefinedObject * | mUserObject |
User defined object which is linked to this object. | |
RenderQueueGroupID | mRenderQueueID |
The render queue to use when rendering this object. | |
unsigned long | mQueryFlags |
Flags determining whether this object is included / excluded from scene queries. | |
AxisAlignedBox | mWorldAABB |
Cached world AABB of this object. | |
Sphere | mWorldBoundingSphere |
AxisAlignedBox | mWorldDarkCapBounds |
World space AABB of this object's dark cap. | |
bool | mCastShadows |
Does this object cast shadows? |
Definition at line 44 of file OgreMovableObject.h.
|
Definition at line 125 of file OgreShadowCaster.h. |
|
Definition at line 126 of file OgreShadowCaster.h. Referenced by Ogre::Entity::getShadowVolumeRenderableIterator(). |
|
Constructor.
Definition at line 35 of file OgreMovableObject.cpp. References mCastShadows, mParentIsTagPoint, mParentNode, mQueryFlags, mRenderQueueID, mUserObject, mVisible, mWorldAABB, Ogre::RENDER_QUEUE_MAIN, and Ogre::AxisAlignedBox::setNull(). |
|
Virtual destructor - read Scott Meyers if you don't know why this is needed.
Definition at line 47 of file OgreMovableObject.cpp. References mParentIsTagPoint, and mParentNode. |
|
return the full transformation of the parent sceneNode or the attachingPoint node
Definition at line 94 of file OgreMovableObject.cpp. References Ogre::Node::_getFullTransform(), and mParentNode. Referenced by Ogre::Entity::cacheBoneMatrices(), Ogre::TagPoint::getParentEntityTransform(), getWorldBoundingBox(), Ogre::SubEntity::getWorldTransforms(), Ogre::Entity::EntityShadowRenderable::getWorldTransforms(), and Ogre::BillboardSet::getWorldTransforms(). |
|
Internal method called to notify the object that it has been attached to a node.
Reimplemented in Ogre::Entity. Definition at line 56 of file OgreMovableObject.cpp. References mParentIsTagPoint, and mParentNode. Referenced by Ogre::SceneNode::attachObject(), Ogre::Entity::attachObjectImpl(), Ogre::SceneNode::detachAllObjects(), Ogre::SceneNode::detachObject(), and Ogre::SceneNode::~SceneNode(). |
|
Internal method to notify the object of the camera to be used for the next rendering operation.
Implemented in Ogre::BillboardSet, Ogre::Entity, Ogre::Frustum, Ogre::Light, Ogre::SimpleRenderable, and Ogre::TerrainRenderable. Referenced by Ogre::OctreeNode::_addToRenderQueue(), and Ogre::BspSceneManager::processVisibleLeaf(). |
|
Internal method by which the movable object must add Renderable subclass instances to the rendering queue.
Implemented in Ogre::BillboardSet, Ogre::Entity, Ogre::Frustum, Ogre::Light, Ogre::SimpleRenderable, and Ogre::TerrainRenderable. Referenced by Ogre::BspSceneManager::processVisibleLeaf(). |
|
As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object.
Definition at line 174 of file OgreMovableObject.h. |
|
Utility method for extruding a bounding box.
Definition at line 274 of file OgreShadowCaster.cpp. References Ogre::AxisAlignedBox::getAllCorners(), Ogre::AxisAlignedBox::getMaximum(), Ogre::AxisAlignedBox::getMinimum(), Ogre::Vector3::makeCeil(), Ogre::Vector3::makeFloor(), Ogre::Vector3::normalise(), Ogre::Real, Ogre::AxisAlignedBox::setExtents(), Ogre::Vector4::w, Ogre::Vector4::x, Ogre::Vector3::x, Ogre::Vector4::y, Ogre::Vector3::y, Ogre::Vector4::z, and Ogre::Vector3::z. Referenced by getDarkCapBounds(). |
|
Utility method for extruding vertices based on a light.
Definition at line 235 of file OgreShadowCaster.cpp. References Ogre::Vector3::normalise(), Ogre::Real, Ogre::Vector4::w, Ogre::Vector3::x, Ogre::Vector4::x, Ogre::Vector3::y, Ogre::Vector4::y, Ogre::Vector3::z, and Ogre::Vector4::z. Referenced by Ogre::Entity::getShadowVolumeRenderableIterator(). |
|
Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it.
Definition at line 37 of file OgreShadowCaster.cpp. References Ogre::EdgeData::Edge::degenerate, Ogre::EdgeData::edgeGroups, Ogre::EdgeData::EdgeGroup::edges, Ogre::ShadowRenderable::getLightCapRenderable(), Ogre::ShadowRenderable::getRenderOperationForUpdate(), Ogre::Light::getType(), Ogre::IndexData::indexCount, Ogre::RenderOperation::indexData, Ogre::IndexData::indexStart, Ogre::EdgeData::Triangle::lightFacing, Ogre::SRF_EXTRUDE_TO_INFINITY, Ogre::SRF_INCLUDE_DARK_CAP, Ogre::SRF_INCLUDE_LIGHT_CAP, Ogre::EdgeData::triangles, Ogre::EdgeData::Edge::triIndex, Ogre::VertexData::vertexCount, Ogre::EdgeData::EdgeGroup::vertexData, Ogre::EdgeData::EdgeGroup::vertexSet, Ogre::EdgeData::Triangle::vertexSet, Ogre::EdgeData::Triangle::vertIndex, and Ogre::EdgeData::Edge::vertIndex. Referenced by Ogre::Entity::getShadowVolumeRenderableIterator(). |
|
Retrieves the local axis-aligned bounding box for this object.
Implemented in Ogre::BillboardSet, Ogre::Entity, Ogre::Frustum, Ogre::Light, Ogre::SimpleRenderable, and Ogre::TerrainRenderable. Referenced by getWorldBoundingBox(). |
|
Retrieves the radius of the origin-centered bounding sphere for this object.
Implemented in Ogre::BillboardSet, Ogre::Camera, Ogre::Entity, Ogre::Frustum, Ogre::Light, Ogre::Rectangle2D, Ogre::WireBoundingBox, and Ogre::TerrainRenderable. Referenced by Ogre::BspIntersectionSceneQuery::execute(), getWorldBoundingSphere(), and Ogre::BspLevel::tagNodesWithMovable(). |
|
Returns whether shadow casting is enabled for this object.
Implements Ogre::ShadowCaster. Definition at line 212 of file OgreMovableObject.h. Referenced by Ogre::OctreeNode::_addToRenderQueue(), Ogre::SubEntity::getCastsShadows(), Ogre::SceneManager::prepareShadowTextures(), Ogre::BspSceneManager::processVisibleLeaf(), Ogre::SceneManager::ShadowCasterSceneQueryListener::queryResult(), Ogre::SceneManager::renderAdditiveStencilShadowedQueueGroupObjects(), Ogre::SceneManager::renderModulativeStencilShadowedQueueGroupObjects(), and Ogre::SceneManager::renderModulativeTextureShadowedQueueGroupObjects(). |
|
Overridden member from ShadowCaster.
Implements Ogre::ShadowCaster. Definition at line 135 of file OgreMovableObject.cpp. References Ogre::ShadowCaster::extrudeBounds(), Ogre::Light::getAs4DVector(), getLightCapBounds(), mWorldDarkCapBounds, and Ogre::Real. |
|
Define a default implementation of method from ShadowCaster which implements no shadows.
Implements Ogre::ShadowCaster. Reimplemented in Ogre::Entity. Definition at line 184 of file OgreMovableObject.h. |
|
Helper moethod for calculating extrusion distance.
Definition at line 320 of file OgreShadowCaster.cpp. References Ogre::Light::getAttenuationRange(), Ogre::Light::getDerivedPosition(), Ogre::Vector3::length(), and Ogre::Real. Referenced by getPointExtrusionDistance(). |
|
Overridden member from ShadowCaster.
Implements Ogre::ShadowCaster. Definition at line 129 of file OgreMovableObject.cpp. References getWorldBoundingBox(). Referenced by getDarkCapBounds(). |
|
Returns the type name of this object.
Implemented in Ogre::BillboardSet, Ogre::Camera, Ogre::Entity, Ogre::Frustum, Ogre::Light, Ogre::ParticleSystem, Ogre::SimpleRenderable, and Ogre::TerrainRenderable. |
|
Returns the name of this object.
Implemented in Ogre::BillboardSet, Ogre::Camera, Ogre::Entity, Ogre::Frustum, Ogre::Light, Ogre::ParticleSystem, Ogre::SimpleRenderable, and Ogre::TerrainRenderable. Referenced by Ogre::SceneNode::attachObject(), and Ogre::Entity::attachObjectImpl(). |
|
Returns the node to which this object is attached.
Definition at line 62 of file OgreMovableObject.cpp. References mParentNode. Referenced by Ogre::TagPoint::_updateFromParent(), Ogre::BspIntersectionSceneQuery::execute(), Ogre::TagPoint::getLights(), Ogre::SubEntity::getLights(), Ogre::SubEntity::getSquaredViewDepth(), Ogre::Entity::EntityShadowRenderable::getWorldOrientation(), Ogre::Entity::EntityShadowRenderable::getWorldPosition(), Ogre::TagPoint::needUpdate(), Ogre::BspSceneManager::processVisibleLeaf(), and Ogre::SceneManager::ShadowCasterSceneQueryListener::queryResult(). |
|
Get the distance to extrude for a point/spot light.
Implements Ogre::ShadowCaster. Definition at line 145 of file OgreMovableObject.cpp. References Ogre::Node::_getDerivedPosition(), Ogre::ShadowCaster::getExtrusionDistance(), mParentNode, and Ogre::Real. |
|
Returns the query flags relevant for this object.
Definition at line 181 of file OgreMovableObject.h. Referenced by Ogre::BspIntersectionSceneQuery::execute(). |
|
Gets the queue group for this entity, see setRenderQueueGroup for full details.
Definition at line 89 of file OgreMovableObject.cpp. References mRenderQueueID, and Ogre::RenderQueueGroupID. |
|
Define a default implementation of method from ShadowCaster which implements no shadows.
Implements Ogre::ShadowCaster. Reimplemented in Ogre::Entity. Definition at line 186 of file OgreMovableObject.h. References Ogre::Real, and Ogre::ShadowTechnique. |
|
Retrieves a pointer to a custom application object associated with this movable by an earlier call to setUserObject.
Definition at line 142 of file OgreMovableObject.h. |
|
Retrieves the axis-aligned bounding box for this object in world coordinates.
Implements Ogre::ShadowCaster. Definition at line 106 of file OgreMovableObject.cpp. References _getParentNodeFullTransform(), getBoundingBox(), mWorldAABB, and Ogre::AxisAlignedBox::transform(). Referenced by Ogre::BspIntersectionSceneQuery::execute(), getLightCapBounds(), Ogre::BspSceneManager::processVisibleLeaf(), and Ogre::SceneManager::ShadowCasterSceneQueryListener::queryResult(). |
|
Retrieves the worldspace bounding sphere for this object.
Definition at line 118 of file OgreMovableObject.cpp. References Ogre::Node::_getDerivedPosition(), getBoundingRadius(), mParentNode, mWorldBoundingSphere, Ogre::Sphere::setCenter(), and Ogre::Sphere::setRadius(). Referenced by Ogre::SceneManager::ShadowCasterSceneQueryListener::queryResult(). |
|
Returns true if this object is attached to a SceneNode or TagPoint.
Definition at line 67 of file OgreMovableObject.cpp. References mParentNode. Referenced by Ogre::Entity::attachObjectToBone(). |
|
Returns whether or not this object is supposed to be visible or not.
Definition at line 78 of file OgreMovableObject.cpp. References mVisible. Referenced by Ogre::OctreeNode::_addToRenderQueue(), Ogre::SceneManager::_populateLightList(), Ogre::BspSceneManager::processVisibleLeaf(), and Ogre::SceneManager::ShadowCasterSceneQueryListener::queryResult(). |
|
As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object.
Definition at line 178 of file OgreMovableObject.h. |
|
Sets whether or not this object will cast shadows.
Definition at line 210 of file OgreMovableObject.h. Referenced by Ogre::SceneManager::setSkyBox(), Ogre::SceneManager::setSkyDome(), and Ogre::SceneManager::setSkyPlane(). |
|
Sets the query flags for this object.
Definition at line 170 of file OgreMovableObject.h. |
|
Sets the render queue group this entity will be rendered through.
Definition at line 84 of file OgreMovableObject.cpp. References mRenderQueueID, and Ogre::RenderQueueGroupID. |
|
Call this to associate your own custom user object instance with this MovableObject.
Definition at line 138 of file OgreMovableObject.h. |
|
Tells this object whether to be visible or not, if it has a renderable component.
Reimplemented in Ogre::Light. Definition at line 73 of file OgreMovableObject.cpp. References mVisible. |
|
Tells the caster to perform the tasks necessary to update the edge data's light listing. Can be overridden if the subclass needs to do additional things.
Definition at line 31 of file OgreShadowCaster.cpp. References Ogre::EdgeData::updateTriangleLightFacing(). Referenced by Ogre::Entity::getShadowVolumeRenderableIterator(). |
|
Does this object cast shadows?
Definition at line 65 of file OgreMovableObject.h. Referenced by Ogre::BillboardSet::BillboardSet(), and MovableObject(). |
|
Definition at line 49 of file OgreMovableObject.h. Referenced by _notifyAttached(), MovableObject(), and ~MovableObject(). |
|
|
Flags determining whether this object is included / excluded from scene queries.
Definition at line 57 of file OgreMovableObject.h. Referenced by MovableObject(). |
|
The render queue to use when rendering this object.
Definition at line 55 of file OgreMovableObject.h. Referenced by Ogre::Entity::_updateRenderQueue(), Ogre::BillboardSet::_updateRenderQueue(), getRenderQueueGroup(), MovableObject(), and setRenderQueueGroup(). |
|
User defined object which is linked to this object.
Definition at line 53 of file OgreMovableObject.h. Referenced by MovableObject(). |
|
Is this object visible?
Definition at line 51 of file OgreMovableObject.h. Referenced by Ogre::Camera::Camera(), Ogre::Frustum::Frustum(), isVisible(), MovableObject(), and setVisible(). |
|
Cached world AABB of this object.
Definition at line 59 of file OgreMovableObject.h. Referenced by getWorldBoundingBox(), and MovableObject(). |
|
Definition at line 61 of file OgreMovableObject.h. Referenced by getWorldBoundingSphere(). |
|
World space AABB of this object's dark cap.
Definition at line 63 of file OgreMovableObject.h. Referenced by getDarkCapBounds(). |
Copyright © 2002-2003 by The OGRE Team
Last modified Fri May 14 23:26:41 2004