|
| InstancedEntity (IdType id, ObjectMemoryManager *objectMemoryManager, InstanceBatch *batchOwner, uint32 instanceID, BoneMemoryManager *boneMemoryManager, InstancedEntity *sharedTransformEntity=NULL) |
|
virtual | ~InstancedEntity () |
|
LightList * | _getLightList () |
| Returns a pointer to the current list of lights for this object. More...
|
|
SceneManager * | _getManager (void) const |
| Get the manager of this object, if any (internal use only) More...
|
|
ObjectData & | _getObjectData () |
| Returns a direct access to the ObjectData state. More...
|
|
InstanceBatch * | _getOwner () const |
|
const Matrix4 & | _getParentNodeFullTransform (void) const |
| Returns the full transformation of the parent sceneNode or the attachingPoint node. More...
|
|
virtual void | _notifyAttached (Node *parent) |
| Overloaded so we can register ourselves for updating our animations. More...
|
|
void | _notifyManager (SceneManager *man) |
| Notify the object of it's manager (internal use only) More...
|
|
virtual void | _notifyParentNodeMemoryChanged (void) |
| Node::_callMemoryChangeListeners More...
|
|
virtual void | _notifyStaticDirty (void) const |
| Called by SceneManager when it is telling we're a static MovableObject being dirty Don't call this directly. More...
|
|
void | _updateRenderQueue (RenderQueue *queue, Camera *camera, const Camera *lodCamera) |
| Do nothing, InstanceBatch takes care of this. 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...
|
|
virtual AnimableValuePtr | createAnimableValue (const String &valueName) |
| Create a reference-counted AnimableValuePtr for the named value. More...
|
|
void | detachFromParent (void) |
| Detaches an object from a parent SceneNode if attached. More...
|
|
const StringVector & | getAnimableValueNames (void) const |
| Gets a list of animable value names for this object. More...
|
|
const AxisAlignedBox & | getBoundingBox (void) const |
|
RealAsUint | getCachedDistanceToCamera (void) const |
| Returns the distance to camera as calculated in . More...
|
|
Real | getCachedDistanceToCameraAsReal (void) const |
| Returns the distance to camera as calculated in . More...
|
|
bool | getCastShadows (void) const |
| Returns whether shadow casting is enabled for this object. More...
|
|
unsigned char | getCurrentMeshLod (void) const |
|
const Vector4 & | getCustomParam (unsigned char idx) |
|
IdType | getId () const |
| Get the unique id of this object. More...
|
|
uint32 | getLightMask () const |
| Get a bitwise mask which will filter the lights affecting this object. More...
|
|
Listener * | getListener (void) const |
| Gets the current listener for this object. More...
|
|
Aabb | getLocalAabb (void) const |
| Retrieves the local axis-aligned bounding box for this object. More...
|
|
float | getLocalRadius (void) const |
| See getLocalAabb and getWorldRadius. More...
|
|
const String & | getMovableType (void) const |
| Returns the type name of this object. More...
|
|
const String & | getName (void) const |
| Returns the name of this object. More...
|
|
Node * | getParentNode (void) const |
| Returns the node to which this object is attached. More...
|
|
SceneNode * | getParentSceneNode (void) const |
|
uint32 | getQueryFlags (void) const |
| Returns the query flags relevant for this object. More...
|
|
Real | getRenderingDistance (void) 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 (void) const |
| Gets the queue group for this entity, see setRenderQueueGroup for full details. More...
|
|
SkeletonInstance * | getSkeleton (void) const |
|
SkeletonInstance * | getSkeletonInstance (void) const |
|
Real | getSquaredViewDepth (const Camera *cam) const |
| This is used by our batch owner to get the closest entity's depth, returns infinity when not attached to a scene node. More...
|
|
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 (void) const |
| Returns the visibility flags relevant for this object. More...
|
|
bool | getVisible (void) 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...
|
|
bool | hasSkeleton (void) const |
|
virtual void | instanceBatchCullFrustumThreaded (const Frustum *frustum, const Camera *lodCamera, uint32 combinedVisibilityFlags) |
| InstancingTheadedCullingMethod, More...
|
|
bool | isAttached (void) const |
| Returns true if this object is attached to a Node. More...
|
|
virtual bool | isInScene (void) const |
|
bool | isInUse () const |
| Tells if the entity is in use. More...
|
|
bool | isStatic () const |
| Checks whether this MovableObject is static. setStatic. More...
|
|
bool | isVisible (void) const |
| Returns whether or not this object is supposed to be visible or not. More...
|
|
void | operator delete (void *ptr) |
|
void | operator delete (void *ptr, void *) |
|
void | operator delete (void *ptr, const char *, int, const char *) |
|
void | operator delete[] (void *ptr) |
|
void | operator delete[] (void *ptr, const char *, int, const char *) |
|
void * | operator new (size_t sz, const char *file, int line, const char *func) |
| operator new, with debug line info More...
|
|
void * | operator new (size_t sz) |
|
void * | operator new (size_t sz, void *ptr) |
| placement operator new More...
|
|
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
| array operator new, with debug line info More...
|
|
void * | operator new[] (size_t sz) |
|
bool | operator() (const IdObject *left, const IdObject *right) |
|
bool | operator() (const IdObject &left, const IdObject &right) |
|
const LightList & | queryLights (void) 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 | setCastShadows (bool enabled) |
| Sets whether or not this object will cast shadows. More...
|
|
void | setCustomParam (unsigned char idx, const Vector4 &newParam) |
| Sets the custom parameter for this instance. 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...
|
|
bool | setStatic (bool bStatic) |
| Turns this Node into static or dynamic. More...
|
|
void | setTransformLookupNumber (uint16 num) |
| Sets the transformation look up number. 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...
|
|
bool | shareTransformWith (InstancedEntity *slave) |
| Shares the entire transformation with another InstancedEntity. More...
|
|
void | stopSharingTransform () |
|
- See also
- InstanceBatch to understand how instancing works.
Instanced entities work in a very similar way as how an Entity works, as this interface tries to mimic it as most as possible to make the transition between Entity and InstancedEntity as straightforward and simple as possible. There are a couple inherent limitations, for example setRenderQueueGroup only works on the InstanceBatch level, not the individual instance. This limits Z sorting for alpha blending quite significantly An InstancedEntity won't appear in scene until a SceneNode is attached to them. Once the InstancedEntity is no longer needed, call InstanceBatch::removeInstancedEntity to put them back into a queue so the batch can return it back again when a new instance is requested.
- Internally, instanced entities that are not visible (i.e. by setting setVisible(false) or when they don't have a SceneNode attached to them) a Zero world matrix is sent to the vertex shader which in turn causes a zero area triangle. This obviously means no Vertex shader benefit, but saves a bit of pixel shader processing power. Also this means this object won't be considered when sizing the InstanceBatch's bounding box.
- Each instance has an instance ID unique within the batch, which matches the ID sent to the vertex shader by some techniques (like InstanceBatchShader).
- Differences between Entity and InstancedEntity: Setting RenderQueueGroup and other Renderable stuff works at InstanceBatch level, not InstancedEntity. This is obviously a limitation from instancing in general, not this particular implementation
- Author
- Matias N. Goldberg ("dark_sylinc")
- Version
- 1.0