Castor3D  ..
Classes | Types publics | Fonctions membres publiques | 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  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...
 

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

using Castor3D::SceneNode::MovableObjectPtrArray = std::list< MovableObjectWPtr >
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
using Castor3D::SceneNode::SceneNodePtrStrMap = std::map< Castor::String, SceneNodeWPtr >
protected

Documentation des constructeurs et destructeur

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.
virtual C3D_API Castor3D::SceneNode::~SceneNode ( )
virtual

Destructeur.

Documentation des fonctions membres

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
C3D_API void Castor3D::SceneNode::AttachObject ( MovableObjectSPtr  p_object)

Attache un MovableObject au noeud.

Paramètres
[in]p_objectL'objet à attacher
C3D_API void Castor3D::SceneNode::AttachTo ( SceneNodeSPtr  p_parent)

Définit le noeud parent.

Paramètres
[in]p_parentLe nouveau parent
node_iterator Castor3D::SceneNode::ChildsBegin ( )
inline

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

Renvoie
La valeur

Références m_childs.

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_childs.

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_childs.

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_childs.

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.

Paramètres
[in]p_childLe 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.

Paramètres
[in]p_childNameLe nom du noeud à détacher
C3D_API void Castor3D::SceneNode::DetachObject ( MovableObjectSPtr  p_object)

Détache un MovableObject fu noeud.

Paramètres
[in]p_objectL'objet à détacher
void Castor3D::SceneNode::GetAxisAngle ( Castor::Point3r &  p_axis,
Castor::Angle &  p_angle 
)
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.

SceneNodeSPtr Castor3D::SceneNode::GetChild ( Castor::String const &  p_name)
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_childs.

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

Récupère la map des enfants.

Renvoie
La valeur

Références m_childs.

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

Récupère l'orientation absolue.

Renvoie
La valeur
C3D_API Castor::Point3r Castor3D::SceneNode::GetDerivedPosition ( )

Récupère la position absolue.

Renvoie
La valeur
C3D_API Castor::Point3r Castor3D::SceneNode::GetDerivedScale ( )

Récupère l'échelle absolue.

Renvoie
La valeur
C3D_API Castor::Matrix4x4r const& Castor3D::SceneNode::GetDerivedTransformationMatrix ( )

Récupère la matrice de transformation absolue.

Renvoie
La valeur
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.

Paramètres
[in]p_rayLe rayon
[out]p_distanceReçoit la distance de la géométrie rencontrée
[out]p_nearestFaceReçoit la face dans la géométrie rencontrée
[out]p_nearestSubmeshReçoit le submesh de la géométrie rencontrée
Renvoie
La géométrie, nullptr si aucune
MovableObjectPtrArray const& Castor3D::SceneNode::GetObjects ( ) const
inline

Récupère la map des objets.

Renvoie
La valeur

Références m_objects.

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

Récupère l'orientation relative.

Renvoie
La valeur

Références m_orientation.

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

Récupère le noeud parent.

Renvoie
La valeur

Références m_parent.

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

Récupère la position relative.

Renvoie
La valeur

Références m_position.

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

Récupère l'échelle relative.

Renvoie
La valeur

Références m_scale.

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

Récupère la matrice de transformation relative.

Renvoie
La valeur
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é
bool Castor3D::SceneNode::IsDisplayable ( ) const
inline

Récupère le statut d'affichabilité

Renvoie
La valeur

Références m_displayable.

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.

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

Récupère le statut de visibilité

Renvoie
La valeur

Références m_visible.

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.

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.

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.

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.

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
uint32_t Castor3D::SceneNode::RegisterObject ( NodeChangedNotifyFunction  p_function)
inline

Enregistre un objet à notifier des changements.

Paramètres
[in]p_functionLa fonction de notification de l'objet.
Renvoie
L'indice de connexion.

Références m_signalChanged.

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
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
C3D_API void Castor3D::SceneNode::Scale ( Castor::Point3r const &  p_s)

Change l'échelle du noeud.

Paramètres
[in]p_sLa valeur d'échelle
C3D_API void Castor3D::SceneNode::SetOrientation ( Castor::Quaternion const &  p_orientation)

Définit l'orientation du noeud.

Paramètres
[in]p_orientationLa nouvelle orientation
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
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
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.

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

Translate le noeud.

Paramètres
[in]p_tThe La valeur de translation
void Castor3D::SceneNode::UnregisterObject ( uint32_t  p_index)
inline

Désnregistre un objet de la notification des changements.

Paramètres
[in]p_indexL'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.

Paramètres
[in]p_angleL'angle de rotation

Documentation des données membres

uint64_t Castor3D::SceneNode::Count
static

Le nombre total de noeuds de scène.

SceneNodePtrStrMap Castor3D::SceneNode::m_childs
protected

Les enfants de ce noeud.

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

bool Castor3D::SceneNode::m_derivedMtxChanged
protected

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

Référencé par IsModified().

Castor::Matrix4x4r Castor3D::SceneNode::m_derivedTransform
protected

la matrice de transformation absolue

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().

bool Castor3D::SceneNode::m_mtxChanged
protected

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

Référencé par IsModified().

MovableObjectPtrArray Castor3D::SceneNode::m_objects
protected

Les objets attachés à ce noeud.

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

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

L'orientation du noeud, relative au parent.

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

SceneNodeWPtr Castor3D::SceneNode::m_parent
protected

Le noeud parent.

Référencé par GetParent().

Castor::Point3r Castor3D::SceneNode::m_position
protected

La position du noeud, relative au parent.

Référencé par GetPosition().

Castor::Point3r Castor3D::SceneNode::m_scale
protected

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

Référencé par GetScale().

Castor::Signal< NodeChangedNotifyFunction > Castor3D::SceneNode::m_signalChanged
protected

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

Référencé par RegisterObject(), et UnregisterObject().

Castor::Matrix4x4r Castor3D::SceneNode::m_transform
protected

La matrice de transformation, relative au parent.

bool Castor3D::SceneNode::m_visible
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().


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