Castor3D  ..
Classes | Types publics | Fonctions membres publiques | Attributs publics | Attributs publics statiques | Types protégés | Attributs protégés | Liste de tous les membres
Référence de la classe Castor3D::SceneNode

La classe de gestion de noeud de scène. Plus de détails...

+ Graphe d'héritage de Castor3D::SceneNode:
+ Graphe de collaboration de Castor3D::SceneNode:

Classes

class  TextWriter
 SceneNode loader. Plus de détails...
 

Types publics

using OnChangedFunction = std::function< void(SceneNode const &) >
 
using OnChanged = Castor::Signal< OnChangedFunction >
 
typedef SceneNodePtrStrMap::iterator node_iterator
 
typedef SceneNodePtrStrMap::const_iterator node_const_iterator
 
typedef MovableObjectArray::iterator object_iterator
 
typedef MovableObjectArray::const_iterator object_const_iterator
 

Fonctions membres publiques

C3D_API SceneNode (Castor::String const &p_name, Scene &p_scene)
 Constructeur. Plus de détails...
 
C3D_API ~SceneNode ()
 Destructeur. Plus de détails...
 
C3D_API void Update ()
 Met à jour les matrices du noeud. Plus de détails...
 
C3D_API void AttachObject (MovableObject &p_object)
 Attache un MovableObject au noeud. Plus de détails...
 
C3D_API void DetachObject (MovableObject &p_object)
 Détache un MovableObject fu noeud. Plus de détails...
 
C3D_API void AttachTo (SceneNodeSPtr p_parent)
 Définit le noeud parent. Plus de détails...
 
C3D_API void Detach ()
 Détache le noeud de son parent. Plus de détails...
 
C3D_API bool HasChild (Castor::String const &p_name)
 
C3D_API void AddChild (SceneNodeSPtr p_child)
 Ajoute le noeud donné aux enfants de ce noeud, s'il n'y est pas encore. Plus de détails...
 
C3D_API void DetachChild (SceneNodeSPtr p_child)
 Détache un noeud des enfants de ce noeud, s'il en fait partie. Plus de détails...
 
C3D_API void DetachChild (Castor::String const &p_childName)
 Détache un noeud des enfants de ce noeud, s'il en fait partie. Plus de détails...
 
C3D_API void DetachAllChilds ()
 Détache tous les enfants de ce noeud. Plus de détails...
 
C3D_API void Yaw (Castor::Angle const &p_angle)
 Tourne le noeud autour de son axe Y. Plus de détails...
 
C3D_API void Pitch (Castor::Angle const &p_angle)
 Tourne le noeud autour de son axe Z. Plus de détails...
 
C3D_API void Roll (Castor::Angle const &p_angle)
 Tourne le noeud autour de son axe X. Plus de détails...
 
C3D_API void Rotate (Castor::Quaternion const &p_quat)
 Tourne le noeud d'une rotation donnée. Plus de détails...
 
C3D_API void Translate (Castor::Point3r const &p_t)
 Translate le noeud. Plus de détails...
 
C3D_API void Scale (Castor::Point3r const &p_s)
 Change l'échelle du noeud. Plus de détails...
 
C3D_API void SetOrientation (Castor::Quaternion const &p_orientation)
 Définit l'orientation du noeud. Plus de détails...
 
C3D_API void SetPosition (Castor::Point3r const &p_position)
 Définit la position relative du noeud. Plus de détails...
 
C3D_API void SetScale (Castor::Point3r const &p_scale)
 Définit l'échelle relative du noeud. Plus de détails...
 
C3D_API Castor::Point3r GetDerivedPosition () const
 Récupère la position absolue. Plus de détails...
 
C3D_API Castor::Quaternion GetDerivedOrientation () const
 Récupère l'orientation absolue. Plus de détails...
 
C3D_API Castor::Point3r GetDerivedScale () const
 Récupère l'échelle absolue. Plus de détails...
 
C3D_API Castor::Matrix4x4r const & GetTransformationMatrix () const
 Récupère la matrice de transformation relative. Plus de détails...
 
C3D_API Castor::Matrix4x4r const & GetDerivedTransformationMatrix () const
 Récupère la matrice de transformation absolue. Plus de détails...
 
Castor::Point3r const & GetPosition () const
 Récupère la position relative. Plus de détails...
 
Castor::Quaternion const & GetOrientation () const
 Récupère l'orientation relative. Plus de détails...
 
Castor::Point3r const & GetScale () const
 Récupère l'échelle relative. Plus de détails...
 
void GetAxisAngle (Castor::Point3r &p_axis, Castor::Angle &p_angle) const
 Récupère l'orientation, en termes d'angle et d'axe. Plus de détails...
 
bool IsVisible () const
 Récupère le statut de visibilité Plus de détails...
 
bool IsDisplayable () const
 Récupère le statut d'affichabilité Plus de détails...
 
SceneNodeSPtr GetParent () const
 Récupère le noeud parent. Plus de détails...
 
SceneNodePtrStrMap const & GetChilds () const
 Récupère la map des enfants. Plus de détails...
 
node_iterator ChildsBegin ()
 Récupère un itérateur sur le premier enfant. Plus de détails...
 
node_const_iterator ChildsBegin () const
 Récupère un itérateur sur le premier enfant. Plus de détails...
 
node_iterator ChildsEnd ()
 Récupère un itérateur sur apèrs le dernier enfant. Plus de détails...
 
node_const_iterator ChildsEnd () const
 Récupère un itérateur sur apèrs le dernier enfant. Plus de détails...
 
MovableObjectArray const & GetObjects () const
 Récupère la map des objets. Plus de détails...
 
object_iterator ObjectsBegin ()
 Récupère un itérateur sur le premier objet attaché Plus de détails...
 
object_const_iterator ObjectsBegin () const
 Récupère un itérateur sur le premier objet attaché Plus de détails...
 
object_iterator ObjectsEnd ()
 Récupère un itérateur sur après le dernier objet attaché Plus de détails...
 
object_const_iterator ObjectsEnd () const
 Récupère un itérateur sur après le dernier objet attaché Plus de détails...
 
SceneNodeSPtr GetChild (Castor::String const &p_name) const
 Récupère l'enfant avec le nom donné Plus de détails...
 
bool IsModified () const
 Récupère le statut de modification des matrices de transformation. Plus de détails...
 
void SetVisible (bool p_visible)
 Définit le statut de visibilité du noeud. Plus de détails...
 

Attributs publics

OnChanged onChanged
 

Attributs publics statiques

static uint64_t Count
 Le nombre total de noeuds de scène. Plus de détails...
 

Types protégés

using SceneNodePtrStrMap = std::map< Castor::String, SceneNodeWPtr >
 
using MovableObjectArray = std::list< std::reference_wrapper< MovableObject > >
 

Attributs protégés

bool m_displayable
 
bool m_visible { true }
 
Castor::Quaternion m_orientation
 
Castor::Point3r m_position { 0.0_r, 0.0_r, 0.0_r }
 
Castor::Point3r m_scale { 1.0_r, 1.0_r, 1.0_r }
 
Castor::Matrix4x4r m_transform { 1.0_r }
 
bool m_mtxChanged { true }
 
Castor::Matrix4x4r m_derivedTransform { 1.0_r }
 
bool m_derivedMtxChanged { true }
 
SceneNodeWPtr m_parent
 
SceneNodePtrStrMap m_children
 
MovableObjectArray m_objects
 

Description détaillée

La classe de gestion de noeud de scène.

Auteur
Sylvain DOREMUS
Version
0.1
Date
09/02/2010
Remarques
Un noeud de scène est un parent pour à peu près tous les objets d'une scène : géométrie, caméra, ...

Documentation des définitions de type membres

◆ MovableObjectArray

using Castor3D::SceneNode::MovableObjectArray = std::list< std::reference_wrapper< MovableObject > >
protected

◆ node_const_iterator

typedef SceneNodePtrStrMap::const_iterator Castor3D::SceneNode::node_const_iterator

◆ node_iterator

typedef SceneNodePtrStrMap::iterator Castor3D::SceneNode::node_iterator

◆ object_const_iterator

typedef MovableObjectArray::const_iterator Castor3D::SceneNode::object_const_iterator

◆ object_iterator

typedef MovableObjectArray::iterator Castor3D::SceneNode::object_iterator

◆ OnChanged

◆ OnChangedFunction

using Castor3D::SceneNode::OnChangedFunction = std::function< void( SceneNode const & ) >

◆ SceneNodePtrStrMap

using Castor3D::SceneNode::SceneNodePtrStrMap = std::map< Castor::String, SceneNodeWPtr >
protected

Documentation des constructeurs et destructeur

◆ SceneNode()

C3D_API Castor3D::SceneNode::SceneNode ( Castor::String const &  p_name,
Scene p_scene 
)

Constructeur.

Paramètres
[in]p_nameLe nom du noeud.
[in]p_sceneLa scène parente.

◆ ~SceneNode()

C3D_API Castor3D::SceneNode::~SceneNode ( )

Destructeur.

Documentation des fonctions membres

◆ AddChild()

C3D_API void Castor3D::SceneNode::AddChild ( SceneNodeSPtr  p_child)

Ajoute le noeud donné aux enfants de ce noeud, s'il n'y est pas encore.

Paramètres
[in]p_childLe noeud à ajouter

◆ AttachObject()

C3D_API void Castor3D::SceneNode::AttachObject ( MovableObject p_object)

Attache un MovableObject au noeud.

Paramètres
[in]p_objectL'objet à attacher

◆ AttachTo()

C3D_API void Castor3D::SceneNode::AttachTo ( SceneNodeSPtr  p_parent)

Définit le noeud parent.

Paramètres
[in]p_parentLe nouveau parent

◆ ChildsBegin() [1/2]

node_iterator Castor3D::SceneNode::ChildsBegin ( )
inline

Récupère un itérateur sur le premier enfant.

Renvoie
La valeur

Références m_children.

◆ ChildsBegin() [2/2]

node_const_iterator Castor3D::SceneNode::ChildsBegin ( ) const
inline

Récupère un itérateur sur le premier enfant.

Renvoie
La valeur

Références m_children.

◆ ChildsEnd() [1/2]

node_iterator Castor3D::SceneNode::ChildsEnd ( )
inline

Récupère un itérateur sur apèrs le dernier enfant.

Renvoie
La valeur

Références m_children.

◆ ChildsEnd() [2/2]

node_const_iterator Castor3D::SceneNode::ChildsEnd ( ) const
inline

Récupère un itérateur sur apèrs le dernier enfant.

Renvoie
La valeur

Références m_children.

◆ Detach()

C3D_API void Castor3D::SceneNode::Detach ( )

Détache le noeud de son parent.

◆ DetachAllChilds()

C3D_API void Castor3D::SceneNode::DetachAllChilds ( )

Détache tous les enfants de ce noeud.

◆ DetachChild() [1/2]

C3D_API void Castor3D::SceneNode::DetachChild ( SceneNodeSPtr  p_child)

Détache un noeud des enfants de ce noeud, s'il en fait partie.

Paramètres
[in]p_childLe noeud à détacher

◆ DetachChild() [2/2]

C3D_API void Castor3D::SceneNode::DetachChild ( Castor::String const &  p_childName)

Détache un noeud des enfants de ce noeud, s'il en fait partie.

Paramètres
[in]p_childNameLe nom du noeud à détacher

◆ DetachObject()

C3D_API void Castor3D::SceneNode::DetachObject ( MovableObject p_object)

Détache un MovableObject fu noeud.

Paramètres
[in]p_objectL'objet à détacher

◆ GetAxisAngle()

void Castor3D::SceneNode::GetAxisAngle ( Castor::Point3r &  p_axis,
Castor::Angle &  p_angle 
) const
inline

Récupère l'orientation, en termes d'angle et d'axe.

Paramètres
[out]p_axisReçoit l'axe
[out]p_angleReçoit l'angle

Références m_orientation.

◆ GetChild()

SceneNodeSPtr Castor3D::SceneNode::GetChild ( Castor::String const &  p_name) const
inline

Récupère l'enfant avec le nom donné

Paramètres
[in]p_nameLe nom de l'enfant
Renvoie
La valeur, nullptr si non trouvé

Références m_children.

◆ GetChilds()

SceneNodePtrStrMap const& Castor3D::SceneNode::GetChilds ( ) const
inline

Récupère la map des enfants.

Renvoie
La valeur

Références m_children.

◆ GetDerivedOrientation()

C3D_API Castor::Quaternion Castor3D::SceneNode::GetDerivedOrientation ( ) const

Récupère l'orientation absolue.

Renvoie
La valeur

◆ GetDerivedPosition()

C3D_API Castor::Point3r Castor3D::SceneNode::GetDerivedPosition ( ) const

Récupère la position absolue.

Renvoie
La valeur

◆ GetDerivedScale()

C3D_API Castor::Point3r Castor3D::SceneNode::GetDerivedScale ( ) const

Récupère l'échelle absolue.

Renvoie
La valeur

◆ GetDerivedTransformationMatrix()

C3D_API Castor::Matrix4x4r const& Castor3D::SceneNode::GetDerivedTransformationMatrix ( ) const

Récupère la matrice de transformation absolue.

Renvoie
La valeur

◆ GetObjects()

MovableObjectArray const& Castor3D::SceneNode::GetObjects ( ) const
inline

Récupère la map des objets.

Renvoie
La valeur

Références m_objects.

◆ GetOrientation()

Castor::Quaternion const& Castor3D::SceneNode::GetOrientation ( ) const
inline

Récupère l'orientation relative.

Renvoie
La valeur

Références m_orientation.

◆ GetParent()

SceneNodeSPtr Castor3D::SceneNode::GetParent ( ) const
inline

Récupère le noeud parent.

Renvoie
La valeur

Références m_parent.

◆ GetPosition()

Castor::Point3r const& Castor3D::SceneNode::GetPosition ( ) const
inline

Récupère la position relative.

Renvoie
La valeur

Références m_position.

◆ GetScale()

Castor::Point3r const& Castor3D::SceneNode::GetScale ( ) const
inline

Récupère l'échelle relative.

Renvoie
La valeur

Références m_scale.

◆ GetTransformationMatrix()

C3D_API Castor::Matrix4x4r const& Castor3D::SceneNode::GetTransformationMatrix ( ) const

Récupère la matrice de transformation relative.

Renvoie
La valeur

◆ HasChild()

C3D_API bool Castor3D::SceneNode::HasChild ( Castor::String const &  p_name)
Paramètres
[in]p_nameLe nom du noeud
Renvoie
true si un des enfants de ce noeud a le nom donné

◆ IsDisplayable()

bool Castor3D::SceneNode::IsDisplayable ( ) const
inline

Récupère le statut d'affichabilité

Renvoie
La valeur

Références m_displayable.

◆ IsModified()

bool Castor3D::SceneNode::IsModified ( ) const
inline

Récupère le statut de modification des matrices de transformation.

Renvoie
La valeur

Références m_derivedMtxChanged, et m_mtxChanged.

◆ IsVisible()

bool Castor3D::SceneNode::IsVisible ( ) const
inline

Récupère le statut de visibilité

Renvoie
La valeur

Références m_visible.

◆ ObjectsBegin() [1/2]

object_iterator Castor3D::SceneNode::ObjectsBegin ( )
inline

Récupère un itérateur sur le premier objet attaché

Renvoie
La valeur

Références m_objects.

◆ ObjectsBegin() [2/2]

object_const_iterator Castor3D::SceneNode::ObjectsBegin ( ) const
inline

Récupère un itérateur sur le premier objet attaché

Renvoie
La valeur

Références m_objects.

◆ ObjectsEnd() [1/2]

object_iterator Castor3D::SceneNode::ObjectsEnd ( )
inline

Récupère un itérateur sur après le dernier objet attaché

Renvoie
La valeur

Références m_objects.

◆ ObjectsEnd() [2/2]

object_const_iterator Castor3D::SceneNode::ObjectsEnd ( ) const
inline

Récupère un itérateur sur après le dernier objet attaché

Renvoie
La valeur

Références m_objects.

◆ Pitch()

C3D_API void Castor3D::SceneNode::Pitch ( Castor::Angle const &  p_angle)

Tourne le noeud autour de son axe Z.

Paramètres
[in]p_angleL'angle de rotation

◆ Roll()

C3D_API void Castor3D::SceneNode::Roll ( Castor::Angle const &  p_angle)

Tourne le noeud autour de son axe X.

Paramètres
[in]p_angleL'angle de rotation

◆ Rotate()

C3D_API void Castor3D::SceneNode::Rotate ( Castor::Quaternion const &  p_quat)

Tourne le noeud d'une rotation donnée.

Paramètres
[in]p_quatLa rotation à appliquer

◆ Scale()

C3D_API void Castor3D::SceneNode::Scale ( Castor::Point3r const &  p_s)

Change l'échelle du noeud.

Paramètres
[in]p_sLa valeur d'échelle

◆ SetOrientation()

C3D_API void Castor3D::SceneNode::SetOrientation ( Castor::Quaternion const &  p_orientation)

Définit l'orientation du noeud.

Paramètres
[in]p_orientationLa nouvelle orientation

◆ SetPosition()

C3D_API void Castor3D::SceneNode::SetPosition ( Castor::Point3r const &  p_position)

Définit la position relative du noeud.

Paramètres
[in]p_positionLa nouvelle valeur

◆ SetScale()

C3D_API void Castor3D::SceneNode::SetScale ( Castor::Point3r const &  p_scale)

Définit l'échelle relative du noeud.

Paramètres
[in]p_scaleLa nouvelle valeur

◆ SetVisible()

void Castor3D::SceneNode::SetVisible ( bool  p_visible)
inline

Définit le statut de visibilité du noeud.

Paramètres
[in]p_visibleLa nouvelle valeur

Références m_visible.

◆ Translate()

C3D_API void Castor3D::SceneNode::Translate ( Castor::Point3r const &  p_t)

Translate le noeud.

Paramètres
[in]p_tThe La valeur de translation

◆ Update()

C3D_API void Castor3D::SceneNode::Update ( )

Met à jour les matrices du noeud.

◆ Yaw()

C3D_API void Castor3D::SceneNode::Yaw ( Castor::Angle const &  p_angle)

Tourne le noeud autour de son axe Y.

Paramètres
[in]p_angleL'angle de rotation

Documentation des données membres

◆ Count

uint64_t Castor3D::SceneNode::Count
static

Le nombre total de noeuds de scène.

◆ m_children

SceneNodePtrStrMap Castor3D::SceneNode::m_children
protected

Les enfants de ce noeud.

Référencé par ChildsBegin(), ChildsEnd(), GetChild(), et GetChilds().

◆ m_derivedMtxChanged

bool Castor3D::SceneNode::m_derivedMtxChanged { true }
protected

Dit si la matrice de transformation absolue doit être recalculée.

Référencé par IsModified().

◆ m_derivedTransform

Castor::Matrix4x4r Castor3D::SceneNode::m_derivedTransform { 1.0_r }
protected

la matrice de transformation absolue.

◆ m_displayable

bool Castor3D::SceneNode::m_displayable
protected

Dit si le noeud est affichable. Il est affichable si son parent est le noeud racine ou s'il est affichable.

Référencé par IsDisplayable().

◆ m_mtxChanged

bool Castor3D::SceneNode::m_mtxChanged { true }
protected

Dit si la matrice de transformation relative doit être recalculée.

Référencé par IsModified().

◆ m_objects

MovableObjectArray Castor3D::SceneNode::m_objects
protected

Les objets attachés à ce noeud.

Référencé par GetObjects(), ObjectsBegin(), et ObjectsEnd().

◆ m_orientation

Castor::Quaternion Castor3D::SceneNode::m_orientation
protected

L'orientation du noeud, relative au parent.

Référencé par GetAxisAngle(), et GetOrientation().

◆ m_parent

SceneNodeWPtr Castor3D::SceneNode::m_parent
protected

Le noeud parent.

Référencé par GetParent().

◆ m_position

Castor::Point3r Castor3D::SceneNode::m_position { 0.0_r, 0.0_r, 0.0_r }
protected

La position du noeud, relative au parent.

Référencé par GetPosition().

◆ m_scale

Castor::Point3r Castor3D::SceneNode::m_scale { 1.0_r, 1.0_r, 1.0_r }
protected

La mise à l'échelle du noeud, relative au parent.

Référencé par GetScale().

◆ m_transform

Castor::Matrix4x4r Castor3D::SceneNode::m_transform { 1.0_r }
protected

La matrice de transformation, relative au parent.

◆ m_visible

bool Castor3D::SceneNode::m_visible { true }
protected

Le statut de visibilité. Si un noeud est caché, tous les objets qui y sont attachés sont cachés aussi.

Référencé par IsVisible(), et SetVisible().

◆ onChanged

OnChanged Castor3D::SceneNode::onChanged

Signal utilisé pour notifier aux objets attachés que le noeud a changé.


La documentation de cette classe a été générée à partir du fichier suivant :