Castor3D
..
|
La classe de gestion de noeud de scène. Plus de détails...
Classes | |
class | BinaryParser |
class | TextLoader |
SceneNode loader. Plus de détails... | |
Types publics | |
typedef SceneNodePtrStrMap::iterator | node_iterator |
typedef SceneNodePtrStrMap::const_iterator | node_const_iterator |
typedef MovableObjectPtrArray::iterator | object_iterator |
typedef MovableObjectPtrArray::const_iterator | object_const_iterator |
Fonctions membres publiques | |
C3D_API | SceneNode (Castor::String const &p_name, Scene &p_scene) |
Constructeur. Plus de détails... | |
virtual C3D_API | ~SceneNode () |
Destructeur. Plus de détails... | |
C3D_API void | AttachObject (MovableObjectSPtr p_object) |
Attache un MovableObject au noeud. Plus de détails... | |
C3D_API void | DetachObject (MovableObjectSPtr 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 GeometrySPtr | GetNearestGeometry (Ray *p_ray, real &p_distance, FaceSPtr *p_nearestFace, SubmeshSPtr *p_nearestSubmesh) |
Récupère la géométrie la plus proche de ce noeud et de ses enfants, qui sera touchée par le rayon. Plus de détails... | |
C3D_API Castor::Point3r | GetDerivedPosition () |
Récupère la position absolue. Plus de détails... | |
C3D_API Castor::Quaternion | GetDerivedOrientation () |
Récupère l'orientation absolue. Plus de détails... | |
C3D_API Castor::Point3r | GetDerivedScale () |
Récupère l'échelle absolue. Plus de détails... | |
C3D_API Castor::Matrix4x4r const & | GetTransformationMatrix () |
Récupère la matrice de transformation relative. Plus de détails... | |
C3D_API Castor::Matrix4x4r const & | GetDerivedTransformationMatrix () |
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) |
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... | |
MovableObjectPtrArray 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) |
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... | |
uint32_t | RegisterObject (NodeChangedNotifyFunction p_function) |
Enregistre un objet à notifier des changements. Plus de détails... | |
void | UnregisterObject (uint32_t p_index) |
Désnregistre un objet de la notification des changements. Plus de détails... | |
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 | MovableObjectPtrArray = std::list< MovableObjectWPtr > |
Attributs protégés | |
bool | m_displayable |
Dit si le noeud est affichable. Il est affichable si son parent est le noeud racine ou s'il est affichable. Plus de détails... | |
bool | m_visible |
Le statut de visibilité. Si un noeud est caché, tous les objets qui y sont attachés sont cachés aussi. Plus de détails... | |
Castor::Quaternion | m_orientation |
L'orientation du noeud, relative au parent. Plus de détails... | |
Castor::Point3r | m_position |
La position du noeud, relative au parent. Plus de détails... | |
Castor::Point3r | m_scale |
La mise à l'échelle du noeud, relative au parent. Plus de détails... | |
Castor::Matrix4x4r | m_transform |
La matrice de transformation, relative au parent. Plus de détails... | |
bool | m_mtxChanged |
Dit si la matrice de transformation relative doit être recalculée. Plus de détails... | |
Castor::Matrix4x4r | m_derivedTransform |
la matrice de transformation absolue Plus de détails... | |
bool | m_derivedMtxChanged |
Dit si la matrice de transformation absolue doit être recalculée. Plus de détails... | |
SceneNodeWPtr | m_parent |
Le noeud parent. Plus de détails... | |
SceneNodePtrStrMap | m_childs |
Les enfants de ce noeud. Plus de détails... | |
MovableObjectPtrArray | m_objects |
Les objets attachés à ce noeud. Plus de détails... | |
Castor::Signal< NodeChangedNotifyFunction > | m_signalChanged |
Signal utilisé pour notifier aux objets attachés que le noeud a changé. Plus de détails... | |
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 MovableObjectPtrArray::const_iterator Castor3D::SceneNode::object_const_iterator |
typedef MovableObjectPtrArray::iterator Castor3D::SceneNode::object_iterator |
|
protected |
C3D_API Castor3D::SceneNode::SceneNode | ( | Castor::String const & | p_name, |
Scene & | p_scene | ||
) |
Constructeur.
[in] | p_name | Le nom du noeud. |
[in] | p_scene | La scène parente. |
|
virtual |
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 | ( | MovableObjectSPtr | 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 | ( | MovableObjectSPtr | 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_childs.
|
inline |
C3D_API Castor::Quaternion Castor3D::SceneNode::GetDerivedOrientation | ( | ) |
Récupère l'orientation absolue.
C3D_API Castor::Point3r Castor3D::SceneNode::GetDerivedPosition | ( | ) |
Récupère la position absolue.
C3D_API Castor::Point3r Castor3D::SceneNode::GetDerivedScale | ( | ) |
Récupère l'échelle absolue.
C3D_API Castor::Matrix4x4r const& Castor3D::SceneNode::GetDerivedTransformationMatrix | ( | ) |
Récupère la matrice de transformation absolue.
C3D_API GeometrySPtr Castor3D::SceneNode::GetNearestGeometry | ( | Ray * | p_ray, |
real & | p_distance, | ||
FaceSPtr * | p_nearestFace, | ||
SubmeshSPtr * | p_nearestSubmesh | ||
) |
Récupère la géométrie la plus proche de ce noeud et de ses enfants, qui sera touchée par le rayon.
[in] | p_ray | Le rayon |
[out] | p_distance | Reçoit la distance de la géométrie rencontrée |
[out] | p_nearestFace | Reçoit la face dans la géométrie rencontrée |
[out] | p_nearestSubmesh | Reçoit le submesh de la géométrie rencontrée |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
C3D_API Castor::Matrix4x4r const& Castor3D::SceneNode::GetTransformationMatrix | ( | ) |
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 |
|
inline |
Enregistre un objet à notifier des changements.
[in] | p_function | La fonction de notification de l'objet. |
Références m_signalChanged.
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 |
|
inline |
Désnregistre un objet de la notification des changements.
[in] | p_index | L'indice de connexion. |
Références m_signalChanged.
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 |
Signal utilisé pour notifier aux objets attachés que le noeud a changé.
Référencé par RegisterObject(), et UnregisterObject().
|
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().