![]() |
OGRE-Next 3.0.0
Object-Oriented Graphics Rendering Engine
|
Abstract class defining a movable object in a scene. More...
#include <OgreMovableObject.h>
Inheritance diagram for Ogre::MovableObject:Classes | |
| class | Listener |
| Listener which gets called back on MovableObject events. More... | |
Public Types | |
| typedef FastArray< MovableObject * > | MovableObjectArray |
Public Member Functions | |
| MovableObject (IdType id, ObjectMemoryManager *objectMemoryManager, SceneManager *manager, uint8 renderQueueId) | |
| Constructor. | |
| MovableObject (ObjectData *objectDataPtrs) | |
| Don't use this constructor unless you know what you're doing. | |
| virtual | ~MovableObject () |
| Virtual destructor - read Scott Meyers if you don't know why this is needed. | |
| LightList * | _getLightList () |
| Returns a pointer to the current list of lights for this object. | |
| SceneManager * | _getManager () const |
| Get the manager of this object, if any (internal use only) | |
| ObjectData & | _getObjectData () |
| Returns a direct access to the ObjectData state. | |
| const Matrix4 & | _getParentNodeFullTransform () const |
| Returns the full transformation of the parent sceneNode or the attachingPoint node. | |
| virtual void | _notifyAttached (Node *parent) |
| Internal method called to notify the object that it has been attached to a node. | |
| void | _notifyManager (SceneManager *man) |
| Notify the object of it's manager (internal use only) | |
| virtual void | _notifyParentNodeMemoryChanged () |
| virtual void | _notifyStaticDirty () const |
| Called by SceneManager when it is telling we're a static MovableObject being dirty Don't call this directly. | |
| virtual void | _releaseManualHardwareResources () |
| Notifies the movable object that hardware resources were lost. | |
| virtual void | _restoreManualHardwareResources () |
| Notifies the movable object that hardware resources should be restored. | |
| virtual void | _updateRenderQueue (RenderQueue *queue, Camera *camera, const Camera *lodCamera) |
| Internal method by which the movable object must add Renderable subclass instances to the rendering queue. | |
| void | addQueryFlags (uint32 flags) |
| As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object. | |
| void | addVisibilityFlags (uint32 flags) |
| As setVisibilityFlags, except the flags passed as parameters are appended to the existing flags on this object. | |
| void | detachFromParent () |
| Detaches an object from a parent SceneNode if attached. | |
| RealAsUint | getCachedDistanceToCamera () const |
| Returns the distance to camera as calculated in cullFrustum() | |
| Real | getCachedDistanceToCameraAsReal () const |
| Returns the distance to camera as calculated in cullFrustum() | |
| bool | getCastShadows () const |
| Returns whether shadow casting is enabled for this object. | |
| unsigned char | getCurrentMeshLod () const |
| uint32 | getLightMask () const |
| Get a bitwise mask which will filter the lights affecting this object. | |
| Listener * | getListener () const |
| Gets the current listener for this object. | |
| Aabb | getLocalAabb () const |
| Retrieves the local axis-aligned bounding box for this object. | |
| float | getLocalRadius () const |
| See getLocalAabb and getWorldRadius. | |
| virtual const String & | getMovableType () const =0 |
| Returns the type name of this object. | |
| const String & | getName () const |
| Returns the name of this object. | |
| Node * | getParentNode () const |
| Returns the node to which this object is attached. | |
| SceneNode * | getParentSceneNode () const |
| uint32 | getQueryFlags () const |
| Returns the query flags relevant for this object. | |
| Real | getRenderingDistance () const |
| Gets the distance at which batches are no longer rendered. | |
| Real | getRenderingMinPixelSize () const |
| Returns the minimum pixel size an object needs to be in both screen axes in order to be rendered. | |
| uint8 | getRenderQueueGroup () const |
| Gets the queue group for this entity, see setRenderQueueGroup for full details. | |
| Real | getShadowRenderingDistance () const |
| Gets the distance at which batches are no longer casting shadows. | |
| SkeletonInstance * | getSkeletonInstance () const |
| UserObjectBindings & | getUserObjectBindings () |
| Return an instance of user objects binding associated with this class. | |
| const UserObjectBindings & | getUserObjectBindings () const |
| Return an instance of user objects binding associated with this class. | |
| uint32 | getVisibilityFlags () const |
| Returns the visibility flags relevant for this object. | |
| bool | getVisible () const |
| Gets this object whether to be visible or not, if it has a renderable component. | |
| Aabb | getWorldAabb () const |
| Gets the axis aligned box in world space. | |
| Aabb | getWorldAabbUpdated () |
| Gets the axis aligned box in world space. | |
| float | getWorldRadius () const |
| Gets the bounding Radius scaled by max( scale.x, scale.y, scale.z ). | |
| float | getWorldRadiusUpdated () |
| Gets the bounding Radius scaled by max( scale.x, scale.y, scale.z ). | |
| virtual void | instanceBatchCullFrustumThreaded (const Frustum *frustum, const Camera *lodCamera, uint32 combinedVisibilityFlags) |
| bool | isAttached () const |
| Returns true if this object is attached to a Node. | |
| bool | isStatic () const |
| Checks whether this MovableObject is static. | |
| bool | isVisible () const |
| Returns whether or not this object is supposed to be visible or not. | |
| const LightList & | queryLights () const |
| Gets a list of lights, ordered relative to how close they are to this movable object. | |
| void | removeQueryFlags (uint32 flags) |
| As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object. | |
| void | removeVisibilityFlags (uint32 flags) |
| As setVisibilityFlags, except the flags passed as parameters are removed from the existing flags on this object. | |
| void | setCastShadows (bool enabled) |
| Sets whether or not this object will cast shadows. | |
| void | setLightMask (uint32 lightMask) |
| Set a bitwise mask which will filter the lights affecting this object. | |
| void | setListener (Listener *listener) |
| Sets a listener for this object. | |
| void | setLocalAabb (const Aabb box) |
| Sets the local axis-aligned bounding box for this object. | |
| void | setName (const String &name) |
| Sets a custom name for this node. | |
| void | setQueryFlags (uint32 flags) |
| Sets the query flags for this object. | |
| void | setRenderingDistance (Real dist) |
| Sets the distance at which the object is no longer rendered. | |
| void | setRenderingMinPixelSize (Real pixelSize) |
| Sets the minimum pixel size an object needs to be in both screen axes in order to be rendered. | |
| virtual void | setRenderQueueGroup (uint8 queueID) |
| Sets the render queue group this entity will be rendered through. | |
| void | setShadowRenderingDistance (Real dist) |
| Sets the distance at which the object is no longer casting shadows. | |
| bool | setStatic (bool bStatic) |
| Turns this Node into static or dynamic. | |
| void | setVisibilityFlags (uint32 flags) |
| Sets the visibility flags for this object. | |
| void | setVisible (bool visible) |
| Tells this object whether to be visible or not, if it has a renderable component. | |
Public Member Functions inherited from Ogre::AnimableObject | |
| AnimableObject () | |
| virtual | ~AnimableObject () |
| virtual AnimableValuePtr | createAnimableValue (const String &valueName) |
| Create a reference-counted AnimableValuePtr for the named value. | |
| const StringVector & | getAnimableValueNames () const |
| Gets a list of animable value names for this object. | |
Public Member Functions inherited from Ogre::IdObject | |
| IdObject (IdType id) | |
| We don't call generateNewId() here, to prevent objects in the stack (i.e. | |
| IdType | getId () const |
| Get the unique id of this object. | |
| bool | operator() (const IdObject &left, const IdObject &right) |
| bool | operator() (const IdObject *left, const IdObject *right) |
Static Public Member Functions | |
| static void | buildLightList (const size_t numNodes, ObjectData t, const LightListInfo &globalLightList) |
| static void | calculateCastersBox (const size_t numNodes, ObjectData t, uint32 sceneVisibilityFlags, AxisAlignedBox *outBox) |
| static void | cullFrustum (const size_t numNodes, ObjectData t, const Camera *frustum, uint32 sceneVisibilityFlags, MovableObjectArray &outCulledObjects, const Camera *lodCamera) |
| static void | cullLights (const size_t numNodes, ObjectData t, uint32 sceneLightMask, LightListInfo &outGlobalLightList, const FrustumVec &frustums, const FrustumVec &cubemapFrustums) |
| See SceneManager::cullLights & see MovableObject::cullFrustum. | |
| static uint32 | getDefaultLightMask () |
| Get the default light mask for all future MovableObject instances. | |
| static uint32 | getDefaultQueryFlags () |
| Get the default query flags for all future MovableObject instances. | |
| static uint32 | getDefaultVisibilityFlags () |
| Get the default visibility flags for all future MovableObject instances. | |
| static void | setDefaultLightMask (uint32 mask) |
| Set the default light mask for all future MovableObject instances. | |
| static void | setDefaultQueryFlags (uint32 flags) |
| Set the default query flags for all future MovableObject instances. | |
| static void | setDefaultVisibilityFlags (uint32 flags) |
| Set the default visibility flags for all future MovableObject instances. | |
| static void | updateAllBounds (const size_t numNodes, ObjectData t) |
Public Attributes | |
| size_t | mGlobalIndex |
| Index in the vector holding this MO reference (could be our parent node, or a global array tracking all movable objecst to avoid memory leaks). | |
| size_t | mParentIndex |
| Index in the vector holding this MO reference (could be our parent node, or a global array tracking all movable objecst to avoid memory leaks). | |
| RenderableArray | mRenderables |
Static Public Attributes | |
| static const FastArray< Real > | c_DefaultLodMesh |
Abstract class defining a movable object in a scene.
| frustum | Frustum to clip against |
| sceneVisibilityFlags | Combined scene's visibility flags (i.e. viewport | scene). Set LAYER_SHADOW_CASTER bit if you want to exclude non-shadow casters. |
| outCulledObjects | Out. List of objects that are (fully or partially) inside the frustum and should be rendered |
| lodCamera | Camera in which lod levels calculations are based (i.e. during shadow pass renders) Note however, we only use this camera to calulate if should be visible according to mUpperDistance |
| Ogre::MovableObject::MovableObject | ( | IdType | id, |
| ObjectMemoryManager * | objectMemoryManager, | ||
| SceneManager * | manager, | ||
| uint8 | renderQueueId ) |
Constructor.
Referenced by Ogre::NullEntity::NullEntity(), Ogre::WireAabb::getTrackedObject(), Ogre::MovableObject::Listener::objectAttached(), Ogre::MovableObject::Listener::objectDestroyed(), Ogre::MovableObject::Listener::objectDetached(), and Ogre::WireAabb::track().
| Ogre::MovableObject::MovableObject | ( | ObjectData * | objectDataPtrs | ) |
Don't use this constructor unless you know what you're doing.
|
virtual |
Virtual destructor - read Scott Meyers if you don't know why this is needed.
|
inline |
Returns a pointer to the current list of lights for this object.
|
inline |
Get the manager of this object, if any (internal use only)
|
inline |
Returns a direct access to the ObjectData state.
| const Matrix4 & Ogre::MovableObject::_getParentNodeFullTransform | ( | ) | const |
Returns the full transformation of the parent sceneNode or the attachingPoint node.
|
virtual |
Internal method called to notify the object that it has been attached to a node.
Reimplemented in Ogre::ParticleSystem, and Ogre::v1::Entity.
|
inline |
Notify the object of it's manager (internal use only)
|
inlinevirtual |
Reimplemented in Ogre::Item.
|
inlinevirtual |
Called by SceneManager when it is telling we're a static MovableObject being dirty Don't call this directly.
|
inlinevirtual |
Notifies the movable object that hardware resources were lost.
Reimplemented in Ogre::ManualObject, Ogre::v1::BillboardSet, Ogre::v1::ManualObject, and Ogre::v1::Rectangle2D.
|
inlinevirtual |
Notifies the movable object that hardware resources should be restored.
Reimplemented in Ogre::v1::Rectangle2D.
|
inlinevirtual |
Internal method by which the movable object must add Renderable subclass instances to the rendering queue.
Reimplemented in Ogre::Light, Ogre::MovablePlane, Ogre::ParticleSystem, Ogre::v1::BillboardChain, Ogre::v1::BillboardSet, Ogre::v1::Entity, and Ogre::v1::ManualObject.
|
inline |
As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object.
|
inline |
As setVisibilityFlags, except the flags passed as parameters are appended to the existing flags on this object.
|
static |
| globalLightList | List of lights already culled against all possible frustums and reorganized contiguously for SoA |
|
static |
|
static |
|
static |
See SceneManager::cullLights & see MovableObject::cullFrustum.
Produces the global list of visible lights that is needed in buildLightList
| outGlobalLightList | Output, a list of lights, contiguously placed |
| frustums | An array of all frustums we need to check against |
| cubemapFrustums | An array of all frustums that are used at least once as cubemaps |
| void Ogre::MovableObject::detachFromParent | ( | ) |
Detaches an object from a parent SceneNode if attached.
|
inline |
Returns the distance to camera as calculated in cullFrustum()
|
inline |
Returns the distance to camera as calculated in cullFrustum()
|
inline |
Returns whether shadow casting is enabled for this object.
|
inline |
|
inlinestatic |
Get the default light mask for all future MovableObject instances.
|
inlinestatic |
Get the default query flags for all future MovableObject instances.
|
inlinestatic |
Get the default visibility flags for all future MovableObject instances.
|
inline |
Get a bitwise mask which will filter the lights affecting this object.
|
inline |
Gets the current listener for this object.
| Aabb Ogre::MovableObject::getLocalAabb | ( | ) | const |
Retrieves the local axis-aligned bounding box for this object.
| float Ogre::MovableObject::getLocalRadius | ( | ) | const |
See getLocalAabb and getWorldRadius.
|
pure virtual |
Returns the type name of this object.
Implemented in Ogre::Camera, Ogre::Decal, Ogre::Frustum, Ogre::InternalCubemapProbe, Ogre::Item, Ogre::Light, Ogre::ManualObject, Ogre::MovablePlane, Ogre::NullEntity, Ogre::ParticleSystem, Ogre::Rectangle2D, Ogre::v1::BillboardChain, Ogre::v1::BillboardSet, Ogre::v1::Entity, Ogre::v1::ManualObject, Ogre::v1::Overlay, Ogre::v1::Rectangle2D, Ogre::v1::RibbonTrail, Ogre::v1::SimpleRenderable, and Ogre::WireAabb.
|
inline |
Returns the name of this object.
|
inline |
Returns the node to which this object is attached.
|
inline |
|
inline |
Returns the query flags relevant for this object.
|
inline |
Gets the distance at which batches are no longer rendered.
|
inline |
Returns the minimum pixel size an object needs to be in both screen axes in order to be rendered.
|
inline |
Gets the queue group for this entity, see setRenderQueueGroup for full details.
|
inline |
Gets the distance at which batches are no longer casting shadows.
|
inline |
|
inline |
Return an instance of user objects binding associated with this class.
You can use it to associate one or more custom objects with this class instance.
|
inline |
Return an instance of user objects binding associated with this class.
You can use it to associate one or more custom objects with this class instance.
|
inline |
Returns the visibility flags relevant for this object.
Reserved visibility flags are not returned.
|
inline |
Gets this object whether to be visible or not, if it has a renderable component.
| Aabb Ogre::MovableObject::getWorldAabb | ( | ) | const |
Gets the axis aligned box in world space.
| Aabb Ogre::MovableObject::getWorldAabbUpdated | ( | ) |
Gets the axis aligned box in world space.
| float Ogre::MovableObject::getWorldRadius | ( | ) | const |
Gets the bounding Radius scaled by max( scale.x, scale.y, scale.z ).
| float Ogre::MovableObject::getWorldRadiusUpdated | ( | ) |
Gets the bounding Radius scaled by max( scale.x, scale.y, scale.z ).
|
inlinevirtual |
|
inline |
Returns true if this object is attached to a Node.
| bool Ogre::MovableObject::isStatic | ( | ) | const |
Checks whether this MovableObject is static.
| bool Ogre::MovableObject::isVisible | ( | ) | const |
Returns whether or not this object is supposed to be visible or not.
|
inline |
Gets a list of lights, ordered relative to how close they are to this movable object.
|
inline |
As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object.
|
inline |
As setVisibilityFlags, except the flags passed as parameters are removed from the existing flags on this object.
|
inline |
Sets whether or not this object will cast shadows.
|
inlinestatic |
Set the default light mask for all future MovableObject instances.
|
inlinestatic |
Set the default query flags for all future MovableObject instances.
|
inlinestatic |
Set the default visibility flags for all future MovableObject instances.
|
inline |
Set a bitwise mask which will filter the lights affecting this object.
|
inline |
Sets a listener for this object.
| void Ogre::MovableObject::setLocalAabb | ( | const Aabb | box | ) |
Sets the local axis-aligned bounding box for this object.
|
inline |
Sets a custom name for this node.
Doesn't have to be unique
|
inline |
Sets the query flags for this object.
|
inline |
Sets the distance at which the object is no longer rendered.
| dist | Distance beyond which the object will not be rendered (the default is FLT_MAX, which means objects are always rendered). Values equal or below zero will be ignored, and cause an assertion in debug mode. |
|
inline |
Sets the minimum pixel size an object needs to be in both screen axes in order to be rendered.
| pixelSize | Number of minimum pixels (the default is 0, which means objects are always rendered). |
|
virtual |
Sets the render queue group this entity will be rendered through.
| queueID | Enumerated value of the queue group to use. See the enum RenderQueueGroupID for what kind of values can be used here. |
Reimplemented in Ogre::Decal, Ogre::InternalCubemapProbe, Ogre::Light, Ogre::ParticleSystem, and Ogre::v1::Entity.
|
inline |
Sets the distance at which the object is no longer casting shadows.
| dist | Distance beyond which the object will not cast shadows (the default is FLT_MAX, which means objects are always casting shadows). Values equal or below zero will be ignored, and cause an assertion in debug mode. |
| bool Ogre::MovableObject::setStatic | ( | bool | bStatic | ) |
Turns this Node into static or dynamic.
|
inline |
Sets the visibility flags for this object.
|
inline |
Tells this object whether to be visible or not, if it has a renderable component.
|
static |
References RESTRICT_ALIAS.
| size_t Ogre::MovableObject::mGlobalIndex |
Index in the vector holding this MO reference (could be our parent node, or a global array tracking all movable objecst to avoid memory leaks).
Used for O(1) removals.
| size_t Ogre::MovableObject::mParentIndex |
Index in the vector holding this MO reference (could be our parent node, or a global array tracking all movable objecst to avoid memory leaks).
Used for O(1) removals.
| RenderableArray Ogre::MovableObject::mRenderables |