Castor3D
..
|
La classe de gestion de noeud de scène. Plus de détails...
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 |
La classe de gestion de noeud de scène.
|
protected |
typedef SceneNodePtrStrMap::const_iterator Castor3D::SceneNode::node_const_iterator |
typedef SceneNodePtrStrMap::iterator Castor3D::SceneNode::node_iterator |
typedef MovableObjectArray::const_iterator Castor3D::SceneNode::object_const_iterator |
typedef MovableObjectArray::iterator Castor3D::SceneNode::object_iterator |
using Castor3D::SceneNode::OnChanged = Castor::Signal< OnChangedFunction > |
using Castor3D::SceneNode::OnChangedFunction = std::function< void( SceneNode const & ) > |
|
protected |
Constructeur.
[in] | p_name | Le nom du noeud. |
[in] | p_scene | La scène parente. |
C3D_API Castor3D::SceneNode::~SceneNode | ( | ) |
Destructeur.
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.
[in] | p_child | Le noeud à ajouter |
C3D_API void Castor3D::SceneNode::AttachObject | ( | MovableObject & | p_object | ) |
Attache un MovableObject au noeud.
[in] | p_object | L'objet à attacher |
C3D_API void Castor3D::SceneNode::AttachTo | ( | SceneNodeSPtr | p_parent | ) |
Définit le noeud parent.
[in] | p_parent | Le nouveau parent |
|
inline |
|
inline |
|
inline |
|
inline |
C3D_API void Castor3D::SceneNode::Detach | ( | ) |
Détache le noeud de son parent.
C3D_API void Castor3D::SceneNode::DetachAllChilds | ( | ) |
Détache tous les enfants de ce noeud.
C3D_API void Castor3D::SceneNode::DetachChild | ( | SceneNodeSPtr | p_child | ) |
Détache un noeud des enfants de ce noeud, s'il en fait partie.
[in] | p_child | Le noeud à détacher |
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.
[in] | p_childName | Le nom du noeud à détacher |
C3D_API void Castor3D::SceneNode::DetachObject | ( | MovableObject & | p_object | ) |
Détache un MovableObject fu noeud.
[in] | p_object | L'objet à détacher |
|
inline |
Récupère l'orientation, en termes d'angle et d'axe.
[out] | p_axis | Reçoit l'axe |
[out] | p_angle | Reçoit l'angle |
Références m_orientation.
|
inline |
Récupère l'enfant avec le nom donné
[in] | p_name | Le nom de l'enfant |
Références m_children.
|
inline |
C3D_API Castor::Quaternion Castor3D::SceneNode::GetDerivedOrientation | ( | ) | const |
Récupère l'orientation absolue.
C3D_API Castor::Point3r Castor3D::SceneNode::GetDerivedPosition | ( | ) | const |
Récupère la position absolue.
C3D_API Castor::Point3r Castor3D::SceneNode::GetDerivedScale | ( | ) | const |
Récupère l'échelle absolue.
C3D_API Castor::Matrix4x4r const& Castor3D::SceneNode::GetDerivedTransformationMatrix | ( | ) | const |
Récupère la matrice de transformation absolue.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
C3D_API Castor::Matrix4x4r const& Castor3D::SceneNode::GetTransformationMatrix | ( | ) | const |
Récupère la matrice de transformation relative.
C3D_API bool Castor3D::SceneNode::HasChild | ( | Castor::String const & | p_name | ) |
[in] | p_name | Le nom du noeud |
true
si un des enfants de ce noeud a le nom donné
|
inline |
|
inline |
Récupère le statut de modification des matrices de transformation.
Références m_derivedMtxChanged, et m_mtxChanged.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
C3D_API void Castor3D::SceneNode::Pitch | ( | Castor::Angle const & | p_angle | ) |
Tourne le noeud autour de son axe Z.
[in] | p_angle | L'angle de rotation |
C3D_API void Castor3D::SceneNode::Roll | ( | Castor::Angle const & | p_angle | ) |
Tourne le noeud autour de son axe X.
[in] | p_angle | L'angle de rotation |
C3D_API void Castor3D::SceneNode::Rotate | ( | Castor::Quaternion const & | p_quat | ) |
Tourne le noeud d'une rotation donnée.
[in] | p_quat | La rotation à appliquer |
C3D_API void Castor3D::SceneNode::Scale | ( | Castor::Point3r const & | p_s | ) |
Change l'échelle du noeud.
[in] | p_s | La valeur d'échelle |
C3D_API void Castor3D::SceneNode::SetOrientation | ( | Castor::Quaternion const & | p_orientation | ) |
Définit l'orientation du noeud.
[in] | p_orientation | La nouvelle orientation |
C3D_API void Castor3D::SceneNode::SetPosition | ( | Castor::Point3r const & | p_position | ) |
Définit la position relative du noeud.
[in] | p_position | La nouvelle valeur |
C3D_API void Castor3D::SceneNode::SetScale | ( | Castor::Point3r const & | p_scale | ) |
Définit l'échelle relative du noeud.
[in] | p_scale | La nouvelle valeur |
|
inline |
Définit le statut de visibilité du noeud.
[in] | p_visible | La nouvelle valeur |
Références m_visible.
C3D_API void Castor3D::SceneNode::Translate | ( | Castor::Point3r const & | p_t | ) |
Translate le noeud.
[in] | p_t | The La valeur de translation |
C3D_API void Castor3D::SceneNode::Update | ( | ) |
Met à jour les matrices du noeud.
C3D_API void Castor3D::SceneNode::Yaw | ( | Castor::Angle const & | p_angle | ) |
Tourne le noeud autour de son axe Y.
[in] | p_angle | L'angle de rotation |
|
static |
Le nombre total de noeuds de scène.
|
protected |
Les enfants de ce noeud.
Référencé par ChildsBegin(), ChildsEnd(), GetChild(), et GetChilds().
|
protected |
Dit si la matrice de transformation absolue doit être recalculée.
Référencé par IsModified().
|
protected |
la matrice de transformation absolue.
|
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().
|
protected |
Dit si la matrice de transformation relative doit être recalculée.
Référencé par IsModified().
|
protected |
Les objets attachés à ce noeud.
Référencé par GetObjects(), ObjectsBegin(), et ObjectsEnd().
|
protected |
L'orientation du noeud, relative au parent.
Référencé par GetAxisAngle(), et GetOrientation().
|
protected |
Le noeud parent.
Référencé par GetParent().
|
protected |
La position du noeud, relative au parent.
Référencé par GetPosition().
|
protected |
La mise à l'échelle du noeud, relative au parent.
Référencé par GetScale().
|
protected |
La matrice de transformation, relative au parent.
|
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 Castor3D::SceneNode::onChanged |
Signal utilisé pour notifier aux objets attachés que le noeud a changé.