Representa un esqueleto completo con articulaciones jerárquicas. Más...
#include <GESkeleton.h>
Métodos públicos | |
| GESkeleton () | |
| Constructor del esqueleto. | |
| ~GESkeleton () | |
| Destructor del esqueleto. | |
| void | initialize (GEGraphicsContext *gc, GERenderingContext *rc) |
| Inicializa los recursos gráficos del esqueleto. | |
| void | destroy (GEGraphicsContext *gc) |
| Destruye los recursos asociados al esqueleto. | |
| void | update (GEGraphicsContext *gc, uint32_t index, glm::mat4 view, glm::mat4 projection) |
| Actualiza el esqueleto (transformaciones y memoria intermedia). | |
| void | addCommands (VkCommandBuffer commandBuffer, VkPipelineLayout pipelineLayout, int index) |
| Añade comandos de dibujo del esqueleto al command buffer. | |
| void | setLight (GELight light) |
| Asigna la luz para el esqueleto. | |
| GEBalljoint * | findJoint (const std::string &jointName) |
| Busca una articulación por nombre. | |
| GEBalljoint * | getRoot () const |
| Obtiene la primera articulación raíz (pelvis). | |
| const std::vector< GEBalljoint * > & | getRootJoints () const |
| Obtiene todas las articulaciones raíz. | |
| void | setPosition (glm::vec3 pos) |
| Establece la posición global del esqueleto. | |
| glm::vec3 | getPosition () const |
| Obtiene la posición global del esqueleto. | |
| void | setOrientation (glm::vec3 z, glm::vec3 y) |
| Ajusta la orientación local del esqueleto (ejes Z y Y). | |
Métodos privados | |
| void | buildSkeleton () |
| Construye la jerarquía de articulaciones desde body.skel. | |
| GEBalljoint * | createJointFromData (const GEJointData &data) |
| Crea recursivamente las articulaciones desde los datos parseados. | |
Atributos privados | |
| std::string | name |
| Nombre del esqueleto. | |
| glm::vec3 | position |
| Posición global del esqueleto. | |
| glm::vec3 | zAxis |
| Eje Z local. | |
| glm::vec3 | yAxis |
| Eje Y local. | |
| std::vector< GEBalljoint * > | rootJoints |
| Articulaciones raíz del esqueleto. | |
Representa un esqueleto completo con articulaciones jerárquicas.
| GESkeleton::GESkeleton | ( | ) |
Constructor del esqueleto.
Hace referencia a buildSkeleton(), name, position, yAxis y zAxis.
| GESkeleton::~GESkeleton | ( | ) |
Destructor del esqueleto.
Destructor.
| void GESkeleton::addCommands | ( | VkCommandBuffer | commandBuffer, |
| VkPipelineLayout | pipelineLayout, | ||
| int | index ) |
Añade comandos de dibujo del esqueleto al command buffer.
Añade comandos de dibujo.
| commandBuffer | Buffer de comandos Vulkan. |
| pipelineLayout | Layout del pipeline. |
| index | Índice de imagen. |
| commandBuffer | Buffer de comandos Vulkan. |
| pipelineLayout | Layout del pipeline. |
| index | Índice de la imagen. |
Hace referencia a rootJoints.
|
private |
Construye la jerarquía de articulaciones desde body.skel.
Construye el árbol de articulaciones desde body.skel.
Hace referencia a createJointFromData(), name, GESkeletonData::name, GESkeletonData::offset, GEXMLParser::parseSkeletonFile(), position, rootJoints, GESkeletonData::rootJoints, yAxis, GESkeletonData::yAxis, zAxis y GESkeletonData::zAxis.
Referenciado por GESkeleton().
|
private |
Crea recursivamente las articulaciones desde los datos parseados.
| data | Datos de la articulación. |
Hace referencia a GEBalljoint::addChild(), GEJointData::children, createJointFromData(), GEJointData::hasLimits, GEJointData::length, GEJointData::limitsMax, GEJointData::limitsMin, GEJointData::name, GEJointData::offset, GEBalljoint::setLimits(), GEJointData::yAxis y GEJointData::zAxis.
Referenciado por buildSkeleton() y createJointFromData().
| void GESkeleton::destroy | ( | GEGraphicsContext * | gc | ) |
Destruye los recursos asociados al esqueleto.
Destruye el esqueleto.
| gc | Contexto gráfico. |
Hace referencia a rootJoints.
| GEBalljoint * GESkeleton::findJoint | ( | const std::string & | jointName | ) |
Busca una articulación por nombre.
| jointName | Nombre de la articulación. |
| jointName | Nombre de la articulación a buscar. |
Hace referencia a GEBalljoint::findChild() y rootJoints.
Referenciado por GEAnimation::applyToSkeleton().
| glm::vec3 GESkeleton::getPosition | ( | ) | const |
Obtiene la posición global del esqueleto.
Obtiene la posición del esqueleto.
Hace referencia a position.
| GEBalljoint * GESkeleton::getRoot | ( | ) | const |
Obtiene la primera articulación raíz (pelvis).
Hace referencia a rootJoints.
| const std::vector< GEBalljoint * > & GESkeleton::getRootJoints | ( | ) | const |
Obtiene todas las articulaciones raíz.
Hace referencia a rootJoints.
| void GESkeleton::initialize | ( | GEGraphicsContext * | gc, |
| GERenderingContext * | rc ) |
Inicializa los recursos gráficos del esqueleto.
Inicializa el esqueleto.
| gc | Contexto gráfico. |
| rc | Contexto de renderizado. |
Hace referencia a rootJoints.
| void GESkeleton::setLight | ( | GELight | light | ) |
Asigna la luz para el esqueleto.
Asigna la luz al esqueleto.
| light | Estructura con los parámetros de la luz. |
| light | Parámetros de la luz. |
Hace referencia a rootJoints.
| void GESkeleton::setOrientation | ( | glm::vec3 | z, |
| glm::vec3 | y ) |
| void GESkeleton::setPosition | ( | glm::vec3 | pos | ) |
Establece la posición global del esqueleto.
Asigna la posición del esqueleto.
| pos | Posición. |
| pos | Nueva posición. |
Hace referencia a position.
Referenciado por GEAnimation::applyToSkeleton().
| void GESkeleton::update | ( | GEGraphicsContext * | gc, |
| uint32_t | index, | ||
| glm::mat4 | view, | ||
| glm::mat4 | projection ) |
Actualiza el esqueleto (transformaciones y memoria intermedia).
Actualiza el esqueleto.
| gc | Contexto gráfico. |
| index | Índice de la imagen a renderizar. |
| view | Matriz de vista. |
| projection | Matriz de proyección. |
Hace referencia a position y rootJoints.
|
private |
Nombre del esqueleto.
Referenciado por buildSkeleton() y GESkeleton().
|
private |
Posición global del esqueleto.
Referenciado por buildSkeleton(), GESkeleton(), getPosition(), setPosition() y update().
|
private |
Articulaciones raíz del esqueleto.
Referenciado por addCommands(), buildSkeleton(), destroy(), findJoint(), getRoot(), getRootJoints(), initialize(), setLight() y update().
|
private |
Eje Y local.
Referenciado por buildSkeleton(), GESkeleton() y setOrientation().
|
private |
Eje Z local.
Referenciado por buildSkeleton(), GESkeleton() y setOrientation().