Saga3D API Documentation
1.0-RC4
|
A scene node displaying a static mesh. More...
#include <IMeshSceneNode.h>
Public Member Functions | |
IMeshSceneNode (const std::shared_ptr< IMesh > &mesh, const std::shared_ptr< ISceneNode > &parent, const std::shared_ptr< ISceneManager > &mgr, const glm::vec3 &position=glm::vec3(0, 0, 0), const glm::vec3 &rotation=glm::vec3(0, 0, 0), const glm::vec3 &scale=glm::vec3(1, 1, 1)) | |
Constructor. More... | |
~IMeshSceneNode () | |
virtual void | setPipeline (video::PipelineHandle pipeline) override |
virtual void | onRegisterSceneNode (video::RenderPassHandle pass) override |
This method is called just before the rendering process of the whole scene. More... | |
virtual void | onUnregisterSceneNode (video::RenderPassHandle pass) override |
virtual const core::aabbox3d< float > & | getBoundingBox () const override |
returns the axis aligned bounding box of this node More... | |
virtual E_SCENE_NODE_TYPE | getType () const override |
Returns type of the scene node. More... | |
virtual void | setMesh (const std::shared_ptr< IMesh > &mesh) |
Sets a new mesh. More... | |
virtual const std::shared_ptr< IMesh > & | getMesh () const |
Returns the current mesh. More... | |
![]() | |
ISceneNode (const std::shared_ptr< ISceneNode > &parent, const std::shared_ptr< ISceneManager > &mgr, const glm::vec3 &position=glm::vec3(0, 0, 0), const glm::vec3 &rotation=glm::vec3(0, 0, 0), const glm::vec3 &scale=glm::vec3(1.0f, 1.0f, 1.0f)) | |
Constructor. More... | |
virtual void | onEvent (const SDL_Event &event) override |
Called when an SDL event is fired. More... | |
virtual | ~ISceneNode () |
Destructor. More... | |
void | setID (const ID id) |
const auto | getID () const |
void | setOnRender (std::function< void()> func) |
void | onRender () |
bool | hasDrawCommands () const |
void | setDrawCommands (video::DrawCommandList &&list) |
const auto & | getDrawCommands () const |
auto | getTexture (int slot) const |
auto & | getTextures () |
void | setTexture (int slot, video::TextureHandle texture) |
auto | getPipeline () const |
virtual void | onAnimate (const float time) |
onAnimate() is called just before rendering the whole scene. More... | |
virtual const std::string & | getName () const |
Returns the name of the node. More... | |
virtual void | setName (const std::string &name) |
Sets the name of the node. More... | |
virtual const core::aabbox3d< float > | getTransformedBoundingBox () const |
Get the axis aligned, transformed and animated absolute bounding box of this node. More... | |
virtual void | getTransformedBoundingBoxEdges (std::vector< glm::vec3 > &edges) const |
virtual const glm::mat4 & | getAbsoluteTransformation () const |
Get the absolute transformation of the node. Is recalculated every onAnimate()-call. More... | |
virtual glm::mat4 | getRelativeTransformation () const |
Returns the relative transformation of the scene node. More... | |
virtual bool | isVisible () const |
Returns whether the node should be visible (if all of its parents are visible). More... | |
virtual bool | isTrulyVisible () const |
Check whether the node is truly visible, taking into accounts its parents' visibility. More... | |
virtual void | setVisible (bool isVisible) |
Sets if the node should be visible or not. More... | |
virtual void | addChild (const std::shared_ptr< ISceneNode > &child) |
Adds a child to this scene node. More... | |
virtual bool | removeChild (const std::shared_ptr< ISceneNode > &child) |
virtual void | removeAll () |
Removes all children of this scene node. More... | |
virtual void | remove () |
Removes this scene node from the scene. More... | |
virtual void | addAnimator (const std::shared_ptr< ISceneNodeAnimator > &animator) |
Adds an animator which should animate this node. More... | |
const auto & | getAnimators () const |
Get a list of all scene node animators. More... | |
virtual void | removeAnimator (const std::shared_ptr< ISceneNodeAnimator > &animator) |
Removes an animator from this scene node. More... | |
virtual void | removeAnimators () |
Removes all animators from this scene node. More... | |
virtual const glm::vec3 & | getScale () const |
Gets the scale of the scene node relative to its parent. More... | |
virtual void | setScale (const glm::vec3 &scale) |
Sets the relative scale of the scene node. More... | |
virtual const glm::vec3 & | getRotation () const |
Gets the rotation of the node relative to its parent. More... | |
virtual void | setRotation (const glm::vec3 &rotation) |
Sets the rotation of the node relative to its parent. More... | |
virtual const glm::vec3 & | getPosition () const |
Gets the position of the node relative to its parent. More... | |
virtual void | setPosition (const glm::vec3 &newpos) |
Sets the position of the node relative to its parent. More... | |
virtual glm::vec3 | getAbsolutePosition () const |
Gets the absolute position of the node in world coordinates. More... | |
const std::vector< std::shared_ptr< ISceneNode > > & | getChildren () const |
Returns a const reference to the list of all children. More... | |
virtual void | setParent (const std::shared_ptr< ISceneNode > &newParent) |
Changes the parent of the scene node. More... | |
virtual void | updateAbsolutePosition () |
Returns the triangle selector attached to this scene node. More... | |
const std::shared_ptr< ISceneNode > & | getParent () const |
Returns the parent of this scene node. More... | |
virtual std::shared_ptr< ISceneNode > | clone (const std::shared_ptr< ISceneNode > &newParent=0) |
Creates a clone of this scene node and its children. More... | |
virtual const std::shared_ptr< ISceneManager > & | getSceneManager () const |
Retrieve the scene manager for this node. More... | |
![]() | |
virtual | ~IEventReceiver () |
Destructor. More... | |
Protected Attributes | |
std::shared_ptr< IMesh > | Mesh = nullptr |
core::aabbox3d< float > | Box |
![]() | |
ID | NodeID = INVALID_ID |
A clone function for the ISceneNode members. More... | |
std::string | Name |
Name of the scene node. More... | |
glm::mat4 | AbsoluteTransformation |
Absolute transformation of the node. More... | |
glm::vec3 | RelativeTranslation |
Relative translation of the scene node. More... | |
glm::vec3 | RelativeRotation |
Relative rotation of the scene node. More... | |
glm::vec3 | RelativeScale |
Relative scale of the scene node. More... | |
std::shared_ptr< ISceneNode > | Parent = nullptr |
Pointer to the parent. More... | |
std::vector< std::shared_ptr< ISceneNode > > | Children |
List of all children of this node. More... | |
std::array< video::STexture::HandleType, video::MAX_NODE_TEXTURES > | Textures = { video::NULL_GPU_RESOURCE_HANDLE } |
Texture list. More... | |
std::vector< std::shared_ptr< ISceneNodeAnimator > > | Animators |
List of all animator nodes. More... | |
std::shared_ptr< ISceneManager > | SceneManager = nullptr |
Pointer to the scene manager. More... | |
std::function< void()> | OnRenderCallback = nullptr |
Custom hook into rendering process of the scene node. More... | |
video::DrawCommandList | DrawCommands |
video::PipelineHandle | Pipeline = video::NULL_GPU_RESOURCE_HANDLE |
bool | IsVisible = true |
Is the node visible? More... | |
A scene node displaying a static mesh.
Definition at line 18 of file IMeshSceneNode.h.
|
inline |
Constructor.
Use setMesh() to set the mesh to display.
Definition at line 25 of file IMeshSceneNode.h.
|
inline |
Definition at line 35 of file IMeshSceneNode.h.
|
inlineoverridevirtual |
returns the axis aligned bounding box of this node
Implements saga::scene::ISceneNode.
Definition at line 75 of file IMeshSceneNode.h.
|
inlinevirtual |
Returns the current mesh.
Definition at line 92 of file IMeshSceneNode.h.
|
inlineoverridevirtual |
Returns type of the scene node.
returns the material based on the zero based index i. To get the amount of materials used by this scene node, use getMaterialCount(). This function is needed for inserting the node into the scene hirachy on a optimal position for minimizing renderstate changes, but can also be used to directly modify the material of a scene node.
Reimplemented from saga::scene::ISceneNode.
Definition at line 86 of file IMeshSceneNode.h.
|
inlineoverridevirtual |
This method is called just before the rendering process of the whole scene.
Nodes may register themselves in the render pipeline during this call, precalculate the geometry which should be renderered, and prevent their children from being able to register themselves if they are clipped by simply not calling their onRegisterSceneNode method. If you are implementing your own scene node, you should overwrite this method with an implementation code looking like this:
Reimplemented from saga::scene::ISceneNode.
Definition at line 53 of file IMeshSceneNode.h.
|
inlineoverridevirtual |
Reimplemented from saga::scene::ISceneNode.
Definition at line 62 of file IMeshSceneNode.h.
|
inlinevirtual |
Sets a new mesh.
Definition at line 89 of file IMeshSceneNode.h.
|
inlineoverridevirtual |
Reimplemented from saga::scene::ISceneNode.
Definition at line 40 of file IMeshSceneNode.h.
|
protected |
Definition at line 96 of file IMeshSceneNode.h.
|
protected |
Definition at line 95 of file IMeshSceneNode.h.