OGRE-Next
4.0.0unstable
Object-Oriented Graphics Rendering Engine
|
Abstract class defining a movable object in a scene. More...
#include <OgreMovableObject.h>
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. More... | |
MovableObject (ObjectData *objectDataPtrs) | |
Don't use this constructor unless you know what you're doing. More... | |
virtual | ~MovableObject () |
Virtual destructor - read Scott Meyers if you don't know why this is needed. More... | |
LightList * | _getLightList () |
Returns a pointer to the current list of lights for this object. More... | |
SceneManager * | _getManager () const |
Get the manager of this object, if any (internal use only) More... | |
ObjectData & | _getObjectData () |
Returns a direct access to the ObjectData state. More... | |
const Matrix4 & | _getParentNodeFullTransform () const |
Returns the full transformation of the parent sceneNode or the attachingPoint node. More... | |
virtual void | _notifyAttached (Node *parent) |
Internal method called to notify the object that it has been attached to a node. More... | |
void | _notifyManager (SceneManager *man) |
Notify the object of it's manager (internal use only) More... | |
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. More... | |
virtual void | _releaseManualHardwareResources () |
Notifies the movable object that hardware resources were lost. More... | |
virtual void | _restoreManualHardwareResources () |
Notifies the movable object that hardware resources should be restored. More... | |
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. More... | |
void | addQueryFlags (uint32 flags) |
As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object. More... | |
void | addVisibilityFlags (uint32 flags) |
As setVisibilityFlags, except the flags passed as parameters are appended to the existing flags on this object. More... | |
void | detachFromParent () |
Detaches an object from a parent SceneNode if attached. More... | |
RealAsUint | getCachedDistanceToCamera () const |
Returns the distance to camera as calculated in cullFrustum() More... | |
Real | getCachedDistanceToCameraAsReal () const |
Returns the distance to camera as calculated in cullFrustum() More... | |
bool | getCastShadows () const |
Returns whether shadow casting is enabled for this object. More... | |
unsigned char | getCurrentMeshLod () const |
uint32 | getLightMask () const |
Get a bitwise mask which will filter the lights affecting this object. More... | |
Listener * | getListener () const |
Gets the current listener for this object. More... | |
Aabb | getLocalAabb () const |
Retrieves the local axis-aligned bounding box for this object. More... | |
float | getLocalRadius () const |
See getLocalAabb and getWorldRadius. More... | |
virtual const String & | getMovableType () const =0 |
Returns the type name of this object. More... | |
const String & | getName () const |
Returns the name of this object. More... | |
Node * | getParentNode () const |
Returns the node to which this object is attached. More... | |
SceneNode * | getParentSceneNode () const |
uint32 | getQueryFlags () const |
Returns the query flags relevant for this object. More... | |
Real | getRenderingDistance () const |
Gets the distance at which batches are no longer rendered. More... | |
Real | getRenderingMinPixelSize () const |
Returns the minimum pixel size an object needs to be in both screen axes in order to be rendered. More... | |
uint8 | getRenderQueueGroup () const |
Gets the queue group for this entity, see setRenderQueueGroup for full details. More... | |
Real | getShadowRenderingDistance () const |
Gets the distance at which batches are no longer casting shadows. More... | |
SkeletonInstance * | getSkeletonInstance () const |
UserObjectBindings & | getUserObjectBindings () |
Return an instance of user objects binding associated with this class. More... | |
const UserObjectBindings & | getUserObjectBindings () const |
Return an instance of user objects binding associated with this class. More... | |
uint32 | getVisibilityFlags () const |
Returns the visibility flags relevant for this object. More... | |
bool | getVisible () const |
Gets this object whether to be visible or not, if it has a renderable component. More... | |
Aabb | getWorldAabb () const |
Gets the axis aligned box in world space. More... | |
Aabb | getWorldAabbUpdated () |
Gets the axis aligned box in world space. More... | |
float | getWorldRadius () const |
Gets the bounding Radius scaled by max( scale.x, scale.y, scale.z ). More... | |
float | getWorldRadiusUpdated () |
Gets the bounding Radius scaled by max( scale.x, scale.y, scale.z ). More... | |
virtual void | instanceBatchCullFrustumThreaded (const Frustum *frustum, const Camera *lodCamera, uint32 combinedVisibilityFlags) |
bool | isAttached () const |
Returns true if this object is attached to a Node. More... | |
bool | isStatic () const |
Checks whether this MovableObject is static. More... | |
bool | isVisible () const |
Returns whether or not this object is supposed to be visible or not. More... | |
const LightList & | queryLights () const |
Gets a list of lights, ordered relative to how close they are to this movable object. More... | |
void | removeQueryFlags (uint32 flags) |
As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object. More... | |
void | removeVisibilityFlags (uint32 flags) |
As setVisibilityFlags, except the flags passed as parameters are removed from the existing flags on this object. More... | |
void | resetMeshLod () |
Sets mCurrentMeshLod to 0. More... | |
void | setCastShadows (bool enabled) |
Sets whether or not this object will cast shadows. More... | |
void | setLightMask (uint32 lightMask) |
Set a bitwise mask which will filter the lights affecting this object. More... | |
void | setListener (Listener *listener) |
Sets a listener for this object. More... | |
void | setLocalAabb (const Aabb box) |
Sets the local axis-aligned bounding box for this object. More... | |
void | setName (const String &name) |
Sets a custom name for this node. More... | |
void | setQueryFlags (uint32 flags) |
Sets the query flags for this object. More... | |
void | setRenderingDistance (Real dist) |
Sets the distance at which the object is no longer rendered. More... | |
void | setRenderingMinPixelSize (Real pixelSize) |
Sets the minimum pixel size an object needs to be in both screen axes in order to be rendered. More... | |
virtual void | setRenderQueueGroup (uint8 queueID) |
Sets the render queue group this entity will be rendered through. More... | |
void | setShadowRenderingDistance (Real dist) |
Sets the distance at which the object is no longer casting shadows. More... | |
bool | setStatic (bool bStatic) |
Turns this Node into static or dynamic. More... | |
void | setVisibilityFlags (uint32 flags) |
Sets the visibility flags for this object. More... | |
void | setVisible (bool visible) |
Tells this object whether to be visible or not, if it has a renderable component. More... | |
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. More... | |
const StringVector & | getAnimableValueNames () const |
Gets a list of animable value names for this object. More... | |
Public Member Functions inherited from Ogre::IdObject | |
IdObject (IdType id) | |
We don't call generateNewId() here, to prevent objects in the stack (i.e. More... | |
IdType | getId () const |
Get the unique id of this object. More... | |
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, MovableObjectArray &outCulledObjects, const CullFrustumPreparedData &pd) |
static void | cullFrustumPrepare (const Camera *frustum, uint32 sceneVisibilityFlags, const Camera *lodCamera, CullFrustumPreparedData &pd) |
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. More... | |
static uint32 | getDefaultLightMask () |
Get the default light mask for all future MovableObject instances. More... | |
static uint32 | getDefaultQueryFlags () |
Get the default query flags for all future MovableObject instances. More... | |
static uint32 | getDefaultVisibilityFlags () |
Get the default visibility flags for all future MovableObject instances. More... | |
static void | setDefaultLightMask (uint32 mask) |
Set the default light mask for all future MovableObject instances. More... | |
static void | setDefaultQueryFlags (uint32 flags) |
Set the default query flags for all future MovableObject instances. More... | |
static void | setDefaultVisibilityFlags (uint32 flags) |
Set the default visibility flags for all future MovableObject instances. More... | |
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). More... | |
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). More... | |
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.
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::ParticleSystemDef, 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::Rectangle2D, Ogre::v1::Rectangle2D, Ogre::ManualObject, Ogre::v1::ManualObject, and Ogre::v1::BillboardSet.
|
inlinevirtual |
Notifies the movable object that hardware resources should be restored.
Reimplemented in Ogre::Rectangle2D, and Ogre::v1::Rectangle2D.
|
inlinevirtual |
Internal method by which the movable object must add Renderable subclass instances to the rendering queue.
Reimplemented in Ogre::ParticleSystem, Ogre::v1::ManualObject, Ogre::Light, Ogre::v1::Entity, Ogre::v1::BillboardSet, Ogre::v1::BillboardChain, and Ogre::MovablePlane.
|
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 |
|
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::ParticleSystem2, Ogre::WireAabb, Ogre::v1::SimpleRenderable, Ogre::v1::RibbonTrail, Ogre::Rectangle2D, Ogre::v1::Rectangle2D, Ogre::ParticleSystem, Ogre::MovablePlane, Ogre::NullEntity, Ogre::ManualObject, Ogre::v1::ManualObject, Ogre::Light, Ogre::Item, Ogre::InternalCubemapProbe, Ogre::Frustum, Ogre::v1::Entity, Ogre::Decal, Ogre::Camera, Ogre::v1::BillboardSet, Ogre::v1::BillboardChain, Ogre::v1::Overlay, Ogre::VoxelVisualizer, and Ogre::IfdProbeVisualizer.
|
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.
void Ogre::MovableObject::resetMeshLod | ( | ) |
Sets mCurrentMeshLod to 0.
|
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::ParticleSystem, Ogre::Light, Ogre::InternalCubemapProbe, Ogre::v1::Entity, and Ogre::Decal.
|
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 |
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 |