![]() |
OGRE-Next 3.0.0
Object-Oriented Graphics Rendering Engine
|
#include <OgreManualObject2.h>
Classes | |
class | ManualObjectSection |
Built, renderable section of geometry. More... | |
Public Types | |
typedef vector< ManualObjectSection * >::type | SectionList |
![]() | |
typedef FastArray< MovableObject * > | MovableObjectArray |
Public Member Functions | |
ManualObject (IdType id, ObjectMemoryManager *objectMemoryManager, SceneManager *manager) | |
~ManualObject () override | |
void | _releaseManualHardwareResources () override |
Notifies the movable object that hardware resources were lost. | |
virtual_l1 void | begin (const String &datablockName, OperationType opType=OT_TRIANGLE_LIST) |
Start defining a part of the object. | |
virtual_l1 void | beginUpdate (size_t sectionIndex) |
Start the definition of an update to a part of the object. | |
virtual_l1 void | clear () |
Completely clear the contents of the object. | |
virtual_l1 void | colour (const ColourValue &col) |
Add a vertex diffuse colour to a vertex. | |
virtual_l1 void | colour (Real r, Real g, Real b, Real a=1.0f) |
Add a vertex diffuse colour to a vertex. | |
virtual_l1 MeshPtr | convertToMesh (const String &meshName, const String &groupName=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, bool buildShadowMapBuffers=true) |
Convert this object to a Mesh. | |
size_t | currentIndexCount () |
Get the current count of indices when building a new buffer. | |
size_t | currentVertexCount () |
Get the current count of vertices when building a new buffer. | |
virtual_l1 ManualObjectSection * | end () |
Finish defining the object and compile the final renderable version. | |
virtual_l1 void | estimateIndexCount (size_t icount) |
Estimate the number of indices ahead of time. | |
virtual_l1 void | estimateVertexCount (size_t vcount) |
Estimate the number of vertices ahead of time. | |
virtual_l1 size_t | getCurrentIndexCount () const |
Get the number of indices in the section currently being defined (returns 0 if no section is in progress). | |
virtual_l1 size_t | getCurrentVertexCount () const |
Get the number of vertices in the section currently being defined (returns 0 if no section is in progress). | |
const String & | getMovableType () const override |
Returns the type name of this object. | |
unsigned int | getNumSections () const |
Retrieves the number of ManualObjectSection objects making up this ManualObject. | |
ManualObjectSection * | getSection (const Ogre::String &name) const |
Gets a pointer to a previously named ManualObjectSection (via ManualObjectSection::setName). | |
ManualObjectSection * | getSection (unsigned int index) const |
Gets a pointer to a ManualObjectSection, i.e. | |
virtual_l1 void | index (uint32 idx) |
Add a vertex index to construct faces / lines / points. | |
virtual_l1 void | line (uint32 i1, uint32 i2) |
Add a set of 2 vertex indices to construct a line; this is a shortcut to calling index() 2 times. | |
virtual_l1 void | normal (const Vector3 &norm) |
Add a vertex normal to the current vertex. | |
virtual_l1 void | normal (Real x, Real y, Real z) |
Add a vertex normal to the current vertex. | |
virtual_l1 void | position (const Vector3 &pos) |
Add a vertex position, starting a new vertex at the same time. | |
virtual_l1 void | position (Real x, Real y, Real z) |
Add a vertex position, starting a new vertex at the same time. | |
virtual_l1 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. | |
void | removeSection (unsigned int idx) |
Removes the section with given index. | |
void | setDatablock (size_t subIndex, const String &name) |
Alter the material for a subsection of this object after it has been specified. | |
virtual_l1 void | specular (const ColourValue &col) |
Add a vertex specular colour to a vertex. | |
virtual_l1 void | specular (Real r, Real g, Real b, Real a=1.0f) |
Add a vertex specular colour to a vertex. | |
virtual_l1 void | tangent (const Vector3 &tan) |
Add a vertex tangent to the current vertex. | |
virtual_l1 void | tangent (Real x, Real y, Real z) |
Add a vertex tangent to the current vertex. | |
virtual_l1 void | textureCoord (const Vector2 &uv) |
Add a texture coordinate to the current vertex. | |
virtual_l1 void | textureCoord (const Vector3 &uvw) |
Add a texture coordinate to the current vertex. | |
virtual_l1 void | textureCoord (const Vector4 &xyzw) |
Add a texture coordinate to the current vertex. | |
virtual_l1 void | textureCoord (Real u) |
Add a texture coordinate to the current vertex. | |
virtual_l1 void | textureCoord (Real u, Real v) |
Add a texture coordinate to the current vertex. | |
virtual_l1 void | textureCoord (Real u, Real v, Real w) |
Add a texture coordinate to the current vertex. | |
virtual_l1 void | textureCoord (Real x, Real y, Real z, Real w) |
Add a texture coordinate to the current vertex. | |
virtual_l1 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. | |
![]() | |
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 | _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. | |
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. | |
![]() | |
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. | |
![]() | |
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) |
Additional Inherited Members | |
![]() | |
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) |
![]() | |
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 const FastArray< Real > | c_DefaultLodMesh |
typedef vector<ManualObjectSection*>::type Ogre::ManualObject::SectionList |
Ogre::ManualObject::ManualObject | ( | IdType | id, |
ObjectMemoryManager * | objectMemoryManager, | ||
SceneManager * | manager ) |
|
override |
|
inlineoverridevirtual |
Notifies the movable object that hardware resources were lost.
Reimplemented from Ogre::MovableObject.
References clear().
virtual_l1 void Ogre::ManualObject::begin | ( | const String & | datablockName, |
OperationType | opType = OT_TRIANGLE_LIST ) |
Start defining a part of the object.
datablockName | The name of the datablock to render this part of the object with. |
opType | The type of operation to use to render. |
References Ogre::OT_TRIANGLE_LIST, and virtual_l1.
virtual_l1 void Ogre::ManualObject::beginUpdate | ( | size_t | sectionIndex | ) |
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. |
References virtual_l1.
virtual_l1 void Ogre::ManualObject::clear | ( | ) |
Completely clear the contents of the object.
References virtual_l1.
Referenced by _releaseManualHardwareResources().
virtual_l1 void Ogre::ManualObject::colour | ( | const ColourValue & | col | ) |
Add a vertex diffuse colour to a vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::colour | ( | Real | r, |
Real | g, | ||
Real | b, | ||
Real | a = 1.0f ) |
Add a vertex diffuse colour to a vertex.
r,g,b,a | Colour components expressed as floating point numbers from 0-1 |
References virtual_l1.
virtual_l1 MeshPtr Ogre::ManualObject::convertToMesh | ( | const String & | meshName, |
const String & | groupName = ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, | ||
bool | buildShadowMapBuffers = true ) |
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. |
References Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME.
size_t Ogre::ManualObject::currentIndexCount | ( | ) |
Get the current count of indices when building a new buffer.
size_t Ogre::ManualObject::currentVertexCount | ( | ) |
Get the current count of vertices when building a new buffer.
virtual_l1 ManualObjectSection * Ogre::ManualObject::end | ( | ) |
Finish defining the object and compile the final renderable version.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::estimateIndexCount | ( | size_t | icount | ) |
Estimate the number of indices ahead of time.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::estimateVertexCount | ( | size_t | vcount | ) |
Estimate the number of vertices ahead of time.
References virtual_l1.
virtual_l1 size_t Ogre::ManualObject::getCurrentIndexCount | ( | ) | const |
Get the number of indices in the section currently being defined (returns 0 if no section is in progress).
References virtual_l1.
virtual_l1 size_t Ogre::ManualObject::getCurrentVertexCount | ( | ) | const |
Get the number of vertices in the section currently being defined (returns 0 if no section is in progress).
References virtual_l1.
|
overridevirtual |
Returns the type name of this object.
Implements Ogre::MovableObject.
unsigned int Ogre::ManualObject::getNumSections | ( | ) | const |
Retrieves the number of ManualObjectSection objects making up this ManualObject.
ManualObjectSection * Ogre::ManualObject::getSection | ( | const Ogre::String & | name | ) | const |
Gets a pointer to a previously named ManualObjectSection (via ManualObjectSection::setName).
ManualObjectSection * Ogre::ManualObject::getSection | ( | unsigned int | index | ) | const |
virtual_l1 void Ogre::ManualObject::index | ( | uint32 | idx | ) |
Add a vertex index to construct faces / lines / points.
idx | A vertex index from 0 to 4294967295. |
References virtual_l1.
Referenced by Ogre::Volume::MeshBuilder::addCubeToManualObject(), and getSection().
virtual_l1 void Ogre::ManualObject::line | ( | uint32 | i1, |
uint32 | i2 ) |
Add a set of 2 vertex indices to construct a line; this is a shortcut to calling index() 2 times.
It is only valid for line lists.
i1,i2 | 2 vertex indices from 0 to 4294967295 defining a face. |
References virtual_l1.
virtual_l1 void Ogre::ManualObject::normal | ( | const Vector3 & | norm | ) |
Add a vertex normal to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::normal | ( | Real | x, |
Real | y, | ||
Real | z ) |
Add a vertex normal to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::position | ( | const Vector3 & | pos | ) |
Add a vertex position, starting a new vertex at the same time.
References virtual_l1.
Referenced by Ogre::Volume::MeshBuilder::addCubeToManualObject().
virtual_l1 void Ogre::ManualObject::position | ( | Real | x, |
Real | y, | ||
Real | z ) |
Add a vertex position, starting a new vertex at the same time.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::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.
It's only valid for triangle list operations.
i1,i2,i3,i4 | 4 vertex indices from 0 to 4294967295 defining a quad. |
References virtual_l1.
void Ogre::ManualObject::removeSection | ( | unsigned int | idx | ) |
Removes the section with given index.
idx | Index of section to remove. |
void Ogre::ManualObject::setDatablock | ( | size_t | subIndex, |
const String & | name ) |
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 datablock to use |
References virtual_l1.
virtual_l1 void Ogre::ManualObject::specular | ( | const ColourValue & | col | ) |
Add a vertex specular colour to a vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::specular | ( | Real | r, |
Real | g, | ||
Real | b, | ||
Real | a = 1.0f ) |
Add a vertex specular colour to a vertex.
r,g,b,a | Colour components expressed as floating point numbers from 0-1 |
References virtual_l1.
virtual_l1 void Ogre::ManualObject::tangent | ( | const Vector3 & | tan | ) |
Add a vertex tangent to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::tangent | ( | Real | x, |
Real | y, | ||
Real | z ) |
Add a vertex tangent to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::textureCoord | ( | const Vector2 & | uv | ) |
Add a texture coordinate to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::textureCoord | ( | const Vector3 & | uvw | ) |
Add a texture coordinate to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::textureCoord | ( | const Vector4 & | xyzw | ) |
Add a texture coordinate to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::textureCoord | ( | Real | u | ) |
Add a texture coordinate to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::textureCoord | ( | Real | u, |
Real | v ) |
Add a texture coordinate to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::textureCoord | ( | Real | u, |
Real | v, | ||
Real | w ) |
Add a texture coordinate to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::textureCoord | ( | Real | x, |
Real | y, | ||
Real | z, | ||
Real | w ) |
Add a texture coordinate to the current vertex.
References virtual_l1.
virtual_l1 void Ogre::ManualObject::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.
It is only valid for triangle lists.
i1,i2,i3 | 3 vertex indices from 0 to 4294967295 defining a face. |
References virtual_l1.