|
const Node * | getParentNode () const noexcept |
|
Node * | getParentNode () noexcept |
|
Manager * | getSceneManager () |
|
void | addChild (Node &child) |
|
const std::vector< oe::scene::Node * > & | getChildren () noexcept |
|
const std::vector< oe::scene::Node * > & | getChildren () const noexcept |
|
void | setParent (Node &parent) noexcept |
| Change the parent of this node.
|
|
void | moveToRoot () noexcept |
| Detach the node from parent to make a root node.
|
|
void | foreachChildren (void(*func)(Node &, void *), const bool recursion=false, void *user_data=nullptr) |
| Do actions on children.
|
|
void | foreachChildren (std::function< void(Node &)> func, const bool recursion=false) |
| Do actions on children.
|
|
const std::string | getAbsoluteName (const std::string &separator="/") const noexcept |
| Get absolute name (from the hierarchy)
|
|
template<typename T = Node> |
T * | search (const std::string path, const std::string separator="/") |
| Search for a node among children using a name path.
|
|
bool | isVisible () const |
|
void | setVisible (const bool &is_visible=true) |
|
bool | canRender (const scene::Camera &camera) const |
|
const AABB & | getBoundingBox () const |
| Recompute and return bounding box from raw AABB.
|
|
const AABB | getEnglobingBoundingBox () const |
| Compute englobing bounding box including all children ones.
|
|
std::vector< Node * > | getAllParents () const |
| Get all node parents hierarchy of the node.
|
|
Transform | getAbsoluteTransform () const |
| Get Node transform relative from world origin.
|
|
glm::vec3 | getAbsolutePosition () const |
| Get Node position from world origin.
|
|
const glm::mat4 & | getAbsoluteModelMatrix () const |
| Get absolute model matrix (by taking the parents into account)
|
|
const glm::mat4 | getAbsoluteInverseModelMatrix () const |
| Get absolute inverse model matrix (by taking the parents into account)
|
|
glm::quat | getRotationNeededToLookAt (const glm::vec3 &target, const glm::vec3 &up=glm::vec3(0.f, 1.f, 0.f)) const |
| Get the rotation needed to orient the node at a specified target.
|
|
void | lookAt (const glm::vec3 &target, const glm::vec3 &up=glm::vec3(0.f, 1.f, 0.f)) |
| Orient the node to stare at a specified target.
|
|
virtual void | update (const double &delta, const int8_t flags=0) |
| Update the node.
|
|
void | generateModel (const bool recursive=true) const |
| Force regeneration of Models Matrices.
|
|
| Transform (const glm::vec3 &translation=glm::vec3(0.f), const glm::quat &rotation=glm::quat(1.f, 0.f, 0.f, 0.f), const glm::vec3 &scale=glm::vec3(1.f), const glm::vec3 &skew=glm::vec3(0.f), const glm::vec4 &perspective=glm::vec4(glm::vec3(0.f), 1.f)) |
| Generate Transform from its translation, rotation, scale values.
|
|
| Transform (const glm::mat4 &model) |
| Generate Transform from a model matrix.
|
|
const glm::vec3 & | getTranslation () const |
| Get Translation component value of the transform.
|
|
const glm::vec3 & | getPosition () const |
| Get Translation component value of the transform.
|
|
const glm::quat & | getRotation () const |
| Get Rotation component value of the transform.
|
|
const glm::vec3 & | getScale () const |
| Get Scaling component value of the transform.
|
|
const glm::vec3 & | getSkew () const |
| Get Skew component value of the transform.
|
|
const glm::vec4 & | getPerspective () const |
| get Perspective component value of the transform
|
|
void | setTranslation (const float x, const float y, const float z) |
| Translate to the specified position, filled component wise.
|
|
void | setPosition (const glm::vec3 &position) |
| Translate to the specified position.
|
|
void | setPosition (const float x, const float y, const float z) |
| Translate to the specified position.
|
|
void | setRotation (const float x, const float y, const float z) |
| Set rotation from Euler angles.
|
|
void | setRotation (const lit::Angle &x, const lit::Angle &y, const lit::Angle &z) |
| Relatively rotate the transform using a lit::Angle triad.
|
|
void | setScale (const float x, const float y, const float z) |
| Set scaling.
|
|
void | relativeTranslate (const glm::vec3 &translation) |
| Translate the transform from current position.
|
|
void | relativeTranslate (const float x, const float y, const float z) |
| Translate the transform from current position, component wise.
|
|
void | loadFromModel (const glm::mat4 &model) |
| Fill the transform from a model matrix.
|
|
void | relativeMove (const glm::vec3 &translation) |
| Move the transform relative to current translation.
|
|
void | relativeRotate (const glm::quat &quaternion) |
| Rotate the transform relative to current rotation.
|
|
void | relativeRotate (const float x, const float y, const float z) |
| Rotate the transform from Euler angles (component wise)
|
|
void | relativeRotate (const lit::Angle &x, const lit::Angle &y, const lit::Angle &z) |
| Relatively rotate the transform using a lit::Angle triad.
|
|
void | relativeScale (const glm::vec3 &scale) |
| Multiply current scale by the new one.
|
|
void | setSkew (const glm::vec3 &skew) |
| Set skew of the transform.
|
|
void | setPerspective (const glm::vec4 &perspective) |
| Set perspective effect of the transform.
|
|
void | interpolateWith (const float ratio, const Transform &target) |
| Interpolate this transform with another one.
|
|
void | fillFrom (const Transform &transform) |
| Fill current values from another transform.
|
|
template<TranslationType T> |
void | setTranslation (const T &translation) |
| Translate to the specified position.
|
|
template<RotationType R> |
void | setRotation (const R &rotation) |
| Get rotation quaternion from a generic type.
|
|
template<ScaleType S> |
void | setScale (const S &scale) |
| Set scale vector from a generic type.
|
|
template<TranslationType T> |
void | getTranslationAs (T &result) const |
| Get translation vector and fill in generic type.
|
|
template<RotationType R> |
void | getRotationAs (R &result) const |
| Get rotation quaternion and fill in generic type.
|
|
template<ScaleType S> |
void | getScaleAs (S &result) const |
| Get scale vector and fill in generic type.
|
|
glm::mat4 | getModelMatrix () const |
| Generate a Model matrix from the transform.
|
|
bool | isDirty () const |
| Check if something modified this transform.
|
|
| HasComponents (Node &entity) |
|
ComponentList< Node, NodeComponent > & | getComponents () noexcept |
| Get components bound to the entity.
|
|
const ComponentList< Node, NodeComponent > & | getComponents () const noexcept |
| Get components bound to the entity.
|
|
std::shared_ptr< T > | addComponent (Args &&... args) |
| Add a new a component.
|
|
std::shared_ptr< T > | addNamedComponent (const std::string &name, Args &&... args) |
| Add a new a component.
|
|
void | removeComponent (const std::string &name) |
| Remove a component.
|
|
const T * | getComponentByType () const noexcept |
| Fetch a component by its type.
|
|
T * | getComponentByType () noexcept |
| Fetch a component by its type.
|
|
T * | getComponentByName (const std::string &name) noexcept |
| Fetch a component when you know its name.
|
|
const T * | getComponentByName (const std::string &name) const noexcept |
| Fetch a component when you know its name.
|
|