OGRE 2.1
Object-Oriented Graphics Rendering Engine
|
Class providing a much simplified interface to generating manual objects with custom geometry. More...
#include <OgreManualObject.h>
Classes | |
class | ManualObjectSection |
Built, renderable section of geometry. More... | |
Public Types | |
typedef FastArray< MovableObject * > | MovableObjectArray |
@See SceneManager::cullFrustum | |
typedef vector< ManualObjectSection * >::type | SectionList |
Public Member Functions | |
ManualObject (IdType id, ObjectMemoryManager *objectMemoryManager, SceneManager *manager) | |
virtual | ~ManualObject () |
LightList * | _getLightList () |
Returns a pointer to the current list of lights for this object. | |
SceneManager * | _getManager (void) 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 (void) 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 (void) |
@See Node::_callMemoryChangeListeners | |
virtual void | _notifyStaticDirty (void) const |
Called by SceneManager when it is telling we're a static MovableObject being dirty Don't call this directly. | |
void | _releaseManualHardwareResources () |
Notifies the movable object that hardware resources were lost. | |
virtual void | _restoreManualHardwareResources () |
Notifies the movable object that hardware resources should be restored. | |
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. | |
virtual void | begin (const String &materialName, OperationType opType=OT_TRIANGLE_LIST, const String &groupName=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) |
Start defining a part of the object. | |
virtual void | beginUpdate (size_t sectionIndex) |
Start the definition of an update to a part of the object. | |
virtual void | clear (void) |
Completely clear the contents of the object. | |
virtual void | colour (const ColourValue &col) |
Add a vertex colour to a vertex. | |
virtual void | colour (Real r, Real g, Real b, Real a=1.0f) |
Add a vertex colour to a vertex. | |
virtual MeshPtr | convertToMesh (const String &meshName, const String &groupName=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, bool buildShadowMapBuffers=true) |
Convert this object to a Mesh. | |
virtual AnimableValuePtr | createAnimableValue (const String &valueName) |
Create a reference-counted AnimableValuePtr for the named value. | |
void | detachFromParent (void) |
Detaches an object from a parent SceneNode if attached. | |
virtual ManualObjectSection * | end (void) |
Finish defining the object and compile the final renderable version. | |
virtual void | estimateIndexCount (size_t icount) |
Estimate the number of indices ahead of time. | |
virtual void | estimateVertexCount (size_t vcount) |
Estimate the number of vertices ahead of time. | |
const StringVector & | getAnimableValueNames (void) const |
Gets a list of animable value names for this object. | |
RealAsUint | getCachedDistanceToCamera (void) const |
Returns the distance to camera as calculated in @cullFrustum. | |
Real | getCachedDistanceToCameraAsReal (void) const |
Returns the distance to camera as calculated in @cullFrustum. | |
bool | getCastShadows (void) const |
Returns whether shadow casting is enabled for this object. | |
virtual size_t | getCurrentIndexCount () const |
Get the number of indices in the section currently being defined (returns 0 if no section is in progress). | |
unsigned char | getCurrentMeshLod (void) const |
virtual size_t | getCurrentVertexCount () const |
Get the number of vertices in the section currently being defined (returns 0 if no section is in progress). | |
virtual bool | getDynamic () const |
Gets whether this object is marked as dynamic. | |
EdgeData * | getEdgeList (void) |
Implement this method to enable stencil shadows. | |
IdType | getId () const |
Get the unique id of this object. | |
bool | getKeepDeclarationOrder () const |
Gets whether or not the declaration order is to be kept or not. | |
uint32 | getLightMask () const |
Get a bitwise mask which will filter the lights affecting this object. | |
Listener * | getListener (void) const |
Gets the current listener for this object. | |
Aabb | getLocalAabb (void) const |
Retrieves the local axis-aligned bounding box for this object. | |
float | getLocalRadius (void) const |
See getLocalAabb and getWorldRadius. | |
const String & | getMovableType (void) const |
Returns the type name of this object. | |
const String & | getName (void) const |
Returns the name of this object. | |
unsigned int | getNumSections (void) const |
Retrieves the number of ManualObjectSection objects making up this ManualObject. | |
Node * | getParentNode (void) const |
Returns the node to which this object is attached. | |
SceneNode * | getParentSceneNode (void) const |
uint32 | getQueryFlags (void) const |
Returns the query flags relevant for this object. | |
Real | getRenderingDistance (void) 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 (void) const |
Gets the queue group for this entity, see setRenderQueueGroup for full details. | |
ManualObjectSection * | getSection (unsigned int index) const |
Gets a pointer to a ManualObjectSection, i.e. | |
Real | getShadowRenderingDistance (void) const |
Gets the distance at which batches are no longer casting shadows. | |
SkeletonInstance * | getSkeletonInstance (void) const |
bool | getUseIdentityProjection (void) const |
Returns whether or not to use an 'identity' projection. | |
bool | getUseIdentityView (void) const |
Returns whether or not to use an 'identity' view. | |
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 (void) const |
Returns the visibility flags relevant for this object. | |
bool | getVisible (void) 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 bool | getWriteOnly () const |
Gets wheter this object has geometry buffer marked as write only. | |
bool | hasEdgeList (void) |
Overridden member from ShadowCaster. | |
virtual void | index (uint32 idx) |
Add a vertex index to construct faces / lines / points via indexing rather than just by a simple list of vertices. | |
virtual void | instanceBatchCullFrustumThreaded (const Frustum *frustum, const Camera *lodCamera, uint32 combinedVisibilityFlags) |
@See InstancingTheadedCullingMethod, | |
bool | isAttached (void) const |
Returns true if this object is attached to a Node. | |
bool | isStatic () const |
Checks whether this MovableObject is static. @See setStatic. | |
bool | isVisible (void) const |
Returns whether or not this object is supposed to be visible or not. | |
virtual void | normal (const Vector3 &norm) |
Add a vertex normal to the current vertex. | |
virtual void | normal (Real x, Real y, Real z) |
Add a vertex normal to the current vertex. | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete (void *ptr, void *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info | |
void * | operator new (size_t sz, void *ptr) |
placement operator new | |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info | |
bool | operator() (const IdObject &left, const IdObject &right) |
bool | operator() (const IdObject *left, const IdObject *right) |
virtual void | position (const Vector3 &pos) |
Add a vertex position, starting a new vertex at the same time. | |
virtual void | position (Real x, Real y, Real z) |
Add a vertex position, starting a new vertex at the same time. | |
virtual void | quad (uint32 i1, uint32 i2, uint32 i3, uint32 i4) |
Add a set of 4 vertex indices to construct a quad (out of 2 triangles); this is a shortcut to calling index() 6 times, or triangle() twice. | |
const LightList & | queryLights (void) 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. | |
virtual void | setDynamic (bool dyn) |
Use before defining geometry to indicate that you intend to update the geometry regularly and want the internal structure to reflect that. | |
void | setKeepDeclarationOrder (bool keepOrder) |
Sets whether or not to keep the original declaration order when queuing the renderables. | |
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. | |
virtual void | setMaterialName (size_t subIndex, const String &name, const String &group=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) |
Alter the material for a subsection of this object after it has been specified. | |
void | setName (const String &name) |
Sets a custom name for this node. | |
void | setQueryFlags (uint32 flags) |
Sets the query flags for this object. | |
virtual void | setReadable (bool readable) |
Use before defining geometry to indicate that you intend to be able to read back from the geometry buffers again down the line (object convertion to v2, physics engine body creation... | |
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 | setUseIdentityProjection (bool useIdentityProjection) |
Sets whether or not to use an 'identity' projection. | |
void | setUseIdentityView (bool useIdentityView) |
Sets whether or not to use an 'identity' view. | |
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. | |
virtual void | setWriteOnly (bool writeOnly) |
Same as setReadable, but with the invese scemantic. | |
virtual void | tangent (const Vector3 &tan) |
Add a vertex tangent to the current vertex. | |
virtual void | tangent (Real x, Real y, Real z) |
Add a vertex tangent to the current vertex. | |
virtual void | textureCoord (const Vector2 &uv) |
Add a texture coordinate to the current vertex. | |
virtual void | textureCoord (const Vector3 &uvw) |
Add a texture coordinate to the current vertex. | |
virtual void | textureCoord (const Vector4 &xyzw) |
Add a texture coordinate to the current vertex. | |
virtual void | textureCoord (Real u) |
Add a texture coordinate to the current vertex. | |
virtual void | textureCoord (Real u, Real v) |
Add a texture coordinate to the current vertex. | |
virtual void | textureCoord (Real u, Real v, Real w) |
Add a texture coordinate to the current vertex. | |
virtual void | textureCoord (Real x, Real y, Real z, Real w) |
Add a texture coordinate to the current vertex. | |
virtual void | triangle (uint32 i1, uint32 i2, uint32 i3) |
Add a set of 3 vertex indices to construct a triangle; this is a shortcut to calling index() 3 times. | |
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 |
Class providing a much simplified interface to generating manual objects with custom geometry.
@See SceneManager::cullFrustum
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::v1::ManualObject::ManualObject | ( | IdType | id, |
ObjectMemoryManager * | objectMemoryManager, | ||
SceneManager * | manager | ||
) |
|
virtual |
|
inlineinherited |
Returns a pointer to the current list of lights for this object.
|
inlineinherited |
Get the manager of this object, if any (internal use only)
|
inlineinherited |
Returns a direct access to the ObjectData state.
Returns the full transformation of the parent sceneNode or the attachingPoint node.
Internal method called to notify the object that it has been attached to a node.
Reimplemented in Ogre::v1::Entity, Ogre::v1::InstancedEntity, and Ogre::ParticleSystem.
|
inlineinherited |
Notify the object of it's manager (internal use only)
@See Node::_callMemoryChangeListeners
Reimplemented in Ogre::v1::InstancedEntity, and Ogre::Item.
Called by SceneManager when it is telling we're a static MovableObject being dirty Don't call this directly.
Reimplemented in Ogre::v1::InstancedEntity.
|
inlinevirtual |
Notifies the movable object that hardware resources were lost.
Reimplemented from Ogre::MovableObject.
Notifies the movable object that hardware resources should be restored.
|
virtual |
Internal method by which the movable object must add Renderable subclass instances to the rendering queue.
Reimplemented from Ogre::MovableObject.
As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object.
As setVisibilityFlags, except the flags passed as parameters are appended to the existing flags on this object.
|
virtual |
Start defining a part of the object.
materialName | The name of the material to render this part of the object with. |
opType | The type of operation to use to render. |
Start the definition of an update to a part of the object.
sectionIndex | The index of the section you want to update. The first call to begin() would have created section 0, the second section 1, etc. |
|
staticinherited |
@See SceneManager::buildLightList
globalLightList | List of lights already culled against all possible frustums and reorganized contiguously for SoA |
|
staticinherited |
Completely clear the contents of the object.
|
virtual |
Add a vertex colour to a vertex.
Add a vertex colour to a vertex.
r,g,b,a | Colour components expressed as floating point numbers from 0-1 |
|
virtual |
Convert this object to a Mesh.
meshName | The name to give the mesh |
groupName | The resource group to create the mesh in |
buildShadowMapBuffers | True to create an optimized copy of the vertex buffers for efficient shadow mapping. |
|
inlinevirtualinherited |
Create a reference-counted AnimableValuePtr for the named value.
Reimplemented in Ogre::Light.
References Ogre::Exception::ERR_ITEM_NOT_FOUND, and OGRE_EXCEPT.
|
staticinherited |
|
staticinherited |
@See SceneManager::cullLights &
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 (@See SceneManager::createCamera) |
Detaches an object from a parent SceneNode if attached.
|
virtual |
Finish defining the object and compile the final renderable version.
Estimate the number of indices ahead of time.
Estimate the number of vertices ahead of time.
|
inlineinherited |
Gets a list of animable value names for this object.
References Ogre::Exception::ERR_ITEM_NOT_FOUND, and OGRE_EXCEPT.
|
inlineinherited |
Returns the distance to camera as calculated in @cullFrustum.
Returns the distance to camera as calculated in @cullFrustum.
Returns whether shadow casting is enabled for this object.
Get the number of indices in the section currently being defined (returns 0 if no section is in progress).
Get the number of vertices in the section currently being defined (returns 0 if no section is in progress).
Get the default query flags for all future MovableObject instances.
Get the default visibility flags for all future MovableObject instances.
Gets whether this object is marked as dynamic.
Implement this method to enable stencil shadows.
|
inlineinherited |
Get the unique id of this object.
|
inline |
Gets whether or not the declaration order is to be kept or not.
|
inlineinherited |
Get a bitwise mask which will filter the lights affecting this object.
Gets the current listener for this object.
Retrieves the local axis-aligned bounding box for this object.
See getLocalAabb and getWorldRadius.
Returns the type name of this object.
Implements Ogre::MovableObject.
Returns the name of this object.
Retrieves the number of ManualObjectSection objects making up this ManualObject.
Returns the node to which this object is attached.
Returns the query flags relevant for this object.
Gets the distance at which batches are no longer rendered.
|
inlineinherited |
Returns the minimum pixel size an object needs to be in both screen axes in order to be rendered.
Gets the queue group for this entity, see setRenderQueueGroup for full details.
ManualObjectSection * Ogre::v1::ManualObject::getSection | ( | unsigned int | index | ) | const |
Gets a pointer to a ManualObjectSection, i.e.
a part of a ManualObject.
Gets the distance at which batches are no longer casting shadows.
|
inlineinherited |
Returns whether or not to use an 'identity' projection.
Returns whether or not to use an 'identity' view.
|
inlineinherited |
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.
|
inlineinherited |
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.
Returns the visibility flags relevant for this object.
Reserved visibility flags are not returned.
Gets this object whether to be visible or not, if it has a renderable component.
|
inherited |
Gets the axis aligned box in world space.
|
inherited |
Gets the axis aligned box in world space.
|
inherited |
Gets the bounding Radius scaled by max( scale.x, scale.y, scale.z ).
|
inherited |
Gets the bounding Radius scaled by max( scale.x, scale.y, scale.z ).
Gets wheter this object has geometry buffer marked as write only.
Add a vertex index to construct faces / lines / points via indexing rather than just by a simple list of vertices.
idx | A vertex index from 0 to 4294967295. |
|
inlinevirtualinherited |
@See InstancingTheadedCullingMethod,
Returns true if this object is attached to a Node.
|
inherited |
Checks whether this MovableObject is static. @See setStatic.
Returns whether or not this object is supposed to be visible or not.
Add a vertex normal to the current vertex.
Add a vertex normal to the current vertex.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
placement operator new
|
inlineinherited |
|
inlineinherited |
array operator new, with debug line info
Add a vertex position, starting a new vertex at the same time.
Add a vertex position, starting a new vertex at the same time.
Add a set of 4 vertex indices to construct a quad (out of 2 triangles); this is a shortcut to calling index() 6 times, or triangle() twice.
It's only valid for triangle list operations.
i1,i2,i3,i4 | 4 vertex indices from 0 to 4294967295 defining a quad. |
Gets a list of lights, ordered relative to how close they are to this movable object.
As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object.
As setVisibilityFlags, except the flags passed as parameters are removed from the existing flags on this object.
Sets whether or not this object will cast shadows.
Set the default query flags for all future MovableObject instances.
Set the default visibility flags for all future MovableObject instances.
Use before defining geometry to indicate that you intend to update the geometry regularly and want the internal structure to reflect that.
Sets whether or not to keep the original declaration order when queuing the renderables.
keepOrder | Whether to keep the declaration order or not. |
Set a bitwise mask which will filter the lights affecting this object.
Sets a listener for this object.
Sets the local axis-aligned bounding box for this object.
|
virtual |
Alter the material for a subsection of this object after it has been specified.
subIndex | The index of the subsection to alter |
name | The name of the new material to use |
Sets a custom name for this node.
Doesn't have to be unique
Sets the query flags for this object.
Use before defining geometry to indicate that you intend to be able to read back from the geometry buffers again down the line (object convertion to v2, physics engine body creation...
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. |
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). |
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::v1::Entity, Ogre::Light, and Ogre::ParticleSystem.
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. |
Turns this Node into static or dynamic.
Sets whether or not to use an 'identity' projection.
Sets whether or not to use an 'identity' view.
Sets the visibility flags for this object.
Tells this object whether to be visible or not, if it has a renderable component.
Same as setReadable, but with the invese scemantic.
Add a vertex tangent to the current vertex.
Add a vertex tangent to the current vertex.
Add a texture coordinate to the current vertex.
Add a texture coordinate to the current vertex.
Add a texture coordinate to the current vertex.
Add a texture coordinate to the current vertex.
Add a texture coordinate to the current vertex.
Add a texture coordinate to the current vertex.
Add a texture coordinate to the current vertex.
Add a set of 3 vertex indices to construct a triangle; this is a shortcut to calling index() 3 times.
It is only valid for triangle lists.
i1,i2,i3 | 3 vertex indices from 0 to 4294967295 defining a face. |
|
staticinherited |
@See SceneManager::updateAllBounds
|
inherited |
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.
|
inherited |
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.
|
inherited |