Animación Vulkan 1.0
Animación de tiro libre baloncesto con motor gráfico desarrollado en clase
Cargando...
Buscando...
Nada coincide
Referencia de la clase GEBalljoint

Representa una articulación esférica con 3 grados de libertad. Más...

#include <GEBalljoint.h>

Diagrama de colaboración de GEBalljoint:
[leyenda]

Clases

struct  Limits
 Estructura que almacena los límites de rotación de la articulación. Más...

Métodos públicos

 GEBalljoint (float length)
 Construye una articulación.
 GEBalljoint (const std::string &name, float length, glm::vec3 offset, glm::vec3 zAxis, glm::vec3 yAxis)
 Constructor jerárquico para esqueletos.
void initialize (GEGraphicsContext *gc, GERenderingContext *rc)
 Inicializa las piezas de la articulación.
void destroy (GEGraphicsContext *gc)
 Destruye los buffers de las piezas.
void addCommands (VkCommandBuffer commandBuffer, VkPipelineLayout pipelineLayout, int index)
 Añade los comandos de dibujo.
void update (GEGraphicsContext *gc, uint32_t index, glm::mat4 view, glm::mat4 projection)
 Actualiza las variables uniformes.
void initializeRecursive (GEGraphicsContext *gc, GERenderingContext *rc)
 Inicializa recursivamente esta articulación y sus hijas.
void destroyRecursive (GEGraphicsContext *gc)
 Destruye recursivamente esta articulación y sus hijas.
void addCommandsRecursive (VkCommandBuffer commandBuffer, VkPipelineLayout pipelineLayout, int index)
 Añade comandos recursivamente.
void updateRecursive (GEGraphicsContext *gc, uint32_t index, glm::mat4 parentMatrix, glm::mat4 view, glm::mat4 projection)
 Actualiza recursivamente con matriz del padre.
void setLightRecursive (GELight l)
 Asigna la luz recursivamente.
void setLight (GELight l)
 Asigna las propiedades de la luz.
void setLocation (glm::vec3 loc)
 Asigna la posición de la articulación.
void setOrientation (glm::vec3 nDir, glm::vec3 nUp)
 Asigna la orientación de la articulación.
void setPose (float xrot, float yrot, float zrot)
 Asigna la rotación de la articulación (respetando límites).
void setLimits (glm::vec3 min, glm::vec3 max)
 Asigna los límites de rotación.
void addChild (GEBalljoint *child)
 Añade una articulación hija.
GEBalljointfindChild (const std::string &searchName)
 Busca una articulación hija por nombre.
const std::string & getName () const
 Obtiene el nombre de la articulación.
const std::vector< GEBalljoint * > & getChildren () const
 Obtiene la lista de hijos.
glm::mat4 getWorldMatrix () const
 Obtiene la matriz mundo.
glm::mat4 getBoneEndMatrix () const
 Obtiene la matriz en el extremo del hueso.

Métodos privados

void ComputeMatrix ()
 Calcula la matriz de transformación local.
void ComputeMatrix (glm::mat4 parentMatrix)
 Calcula la matriz de transformación con matriz del padre.

Atributos privados

GLfloat length
 Longitud del hueso.
glm::vec3 location
 Posición de la articulación.
glm::vec3 dir
 Dirección del hueso.
glm::vec3 up
 Vector arriba local.
glm::vec3 right
 Vector derecha local.
GLfloat angles [3]
 Ángulos de rotación (X, Y, Z).
GESpherejoint
 Esfera que representa la articulación.
GECylinderbone
 Cilindro que representa el hueso.
std::string name
 Nombre de la articulación.
glm::vec3 offset
 Desplazamiento respecto al padre.
glm::vec3 localZAxis
 Eje Z local.
glm::vec3 localYAxis
 Eje Y local.
std::vector< GEBalljoint * > children
 Articulaciones hijas.
glm::mat4 worldMatrix
 Matriz de transformación mundo.
struct GEBalljoint::Limits limits
 Límites de rotación de esta articulación.

Descripción detallada

Representa una articulación esférica con 3 grados de libertad.

Soporta jerarquía padre-hijo para formar esqueletos completos.

Documentación de constructores y destructores

◆ GEBalljoint() [1/2]

GEBalljoint::GEBalljoint ( float l)

Construye una articulación.

Parámetros
lengthLongitud del hueso.
lLongitud del hueso.

Hace referencia a angles, bone, dir, joint, length, limits, localYAxis, localZAxis, location, name, offset, right, up y worldMatrix.

Referenciado por addChild(), addCommandsRecursive(), destroyRecursive(), findChild(), initializeRecursive(), setLightRecursive() y updateRecursive().

Gráfico de llamadas a esta función:

◆ GEBalljoint() [2/2]

GEBalljoint::GEBalljoint ( const std::string & name,
float length,
glm::vec3 offset,
glm::vec3 zAxis,
glm::vec3 yAxis )

Constructor jerárquico para esqueletos.

Parámetros
nameNombre de la articulación.
lengthLongitud del hueso.
offsetDesplazamiento local.
zAxisEje Z local.
yAxisEje Y local.

Hace referencia a angles, bone, dir, joint, length, limits, localYAxis, localZAxis, location, name, offset, right, up y worldMatrix.

Documentación de funciones miembro

◆ addChild()

void GEBalljoint::addChild ( GEBalljoint * child)

Añade una articulación hija.

Parámetros
childPuntero a la articulación hija.

Hace referencia a children y GEBalljoint().

Referenciado por GESkeleton::createJointFromData().

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ addCommands()

void GEBalljoint::addCommands ( VkCommandBuffer commandBuffer,
VkPipelineLayout pipelineLayout,
int index )

Añade los comandos de dibujo.

Parámetros
commandBufferBuffer de comandos.
pipelineLayoutLayout del pipeline.
indexÍndice de la imagen.

Hace referencia a bone y joint.

Referenciado por addCommandsRecursive().

Gráfico de llamadas a esta función:

◆ addCommandsRecursive()

void GEBalljoint::addCommandsRecursive ( VkCommandBuffer commandBuffer,
VkPipelineLayout pipelineLayout,
int index )

Añade comandos recursivamente.

Parámetros
commandBufferBuffer de comandos.
pipelineLayoutLayout del pipeline.
indexÍndice de la imagen.

Hace referencia a addCommands(), children y GEBalljoint().

Gráfico de llamadas de esta función:

◆ ComputeMatrix() [1/2]

void GEBalljoint::ComputeMatrix ( )
private

Calcula la matriz de transformación local.

Calcula la matriz de transformación.

Hace referencia a angles, bone, dir, joint, length, location, right, up y worldMatrix.

Referenciado por initialize(), setLocation(), setOrientation() y updateRecursive().

Gráfico de llamadas a esta función:

◆ ComputeMatrix() [2/2]

void GEBalljoint::ComputeMatrix ( glm::mat4 parentMatrix)
private

Calcula la matriz de transformación con matriz del padre.

Calcula la matriz de transformación considerando la matriz del padre.

Parámetros
parentMatrixMatriz de transformación del nodo padre.

Hace referencia a angles, bone, joint, length, localYAxis, localZAxis, offset y worldMatrix.

◆ destroy()

void GEBalljoint::destroy ( GEGraphicsContext * gc)

Destruye los buffers de las piezas.

Parámetros
gcContexto gráfico.

Hace referencia a bone y joint.

Referenciado por destroyRecursive().

Gráfico de llamadas a esta función:

◆ destroyRecursive()

void GEBalljoint::destroyRecursive ( GEGraphicsContext * gc)

Destruye recursivamente esta articulación y sus hijas.

Parámetros
gcContexto gráfico.

Hace referencia a children, destroy() y GEBalljoint().

Gráfico de llamadas de esta función:

◆ findChild()

GEBalljoint * GEBalljoint::findChild ( const std::string & searchName)

Busca una articulación hija por nombre.

Parámetros
searchNameNombre a buscar.
Devuelve
Puntero a la articulación encontrada o nullptr.

Hace referencia a children, GEBalljoint() y name.

Referenciado por GESkeleton::findJoint().

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ getBoneEndMatrix()

glm::mat4 GEBalljoint::getBoneEndMatrix ( ) const

Obtiene la matriz en el extremo del hueso.

Devuelve
Matriz en el extremo del hueso.

Hace referencia a length y worldMatrix.

Referenciado por updateRecursive().

Gráfico de llamadas a esta función:

◆ getChildren()

const std::vector< GEBalljoint * > & GEBalljoint::getChildren ( ) const

Obtiene la lista de hijos.

Devuelve
Vector de punteros a hijos.

Hace referencia a children.

◆ getName()

const std::string & GEBalljoint::getName ( ) const

Obtiene el nombre de la articulación.

Devuelve
Nombre de la articulación.

Hace referencia a name.

◆ getWorldMatrix()

glm::mat4 GEBalljoint::getWorldMatrix ( ) const

Obtiene la matriz mundo.

Devuelve
Matriz de transformación mundo.

Hace referencia a worldMatrix.

◆ initialize()

void GEBalljoint::initialize ( GEGraphicsContext * gc,
GERenderingContext * rc )

Inicializa las piezas de la articulación.

Parámetros
gcContexto gráfico.
rcContexto de renderizado.

Hace referencia a bone, ComputeMatrix(), joint, GEMaterial::Ka, GEMaterial::Kd, GEMaterial::Ks, length y GEMaterial::Shininess.

Referenciado por initializeRecursive().

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ initializeRecursive()

void GEBalljoint::initializeRecursive ( GEGraphicsContext * gc,
GERenderingContext * rc )

Inicializa recursivamente esta articulación y sus hijas.

Parámetros
gcContexto gráfico.
rcContexto de renderizado.

Hace referencia a children, GEBalljoint() y initialize().

Gráfico de llamadas de esta función:

◆ setLight()

void GEBalljoint::setLight ( GELight l)

Asigna las propiedades de la luz.

Parámetros
lPropiedades de la luz.

Hace referencia a bone y joint.

Referenciado por setLightRecursive().

Gráfico de llamadas a esta función:

◆ setLightRecursive()

void GEBalljoint::setLightRecursive ( GELight l)

Asigna la luz recursivamente.

Parámetros
lPropiedades de la luz.

Hace referencia a children, GEBalljoint() y setLight().

Gráfico de llamadas de esta función:

◆ setLimits()

void GEBalljoint::setLimits ( glm::vec3 min,
glm::vec3 max )

Asigna los límites de rotación.

Parámetros
minLímite mínimo.
maxLímite máximo.

Hace referencia a limits.

Referenciado por GESkeleton::createJointFromData().

Gráfico de llamadas a esta función:

◆ setLocation()

void GEBalljoint::setLocation ( glm::vec3 loc)

Asigna la posición de la articulación.

Parámetros
locPosición.

Hace referencia a ComputeMatrix() y location.

Gráfico de llamadas de esta función:

◆ setOrientation()

void GEBalljoint::setOrientation ( glm::vec3 nDir,
glm::vec3 nUp )

Asigna la orientación de la articulación.

Parámetros
nDirDirección.
nUpVector arriba.

Hace referencia a ComputeMatrix(), dir, right y up.

Gráfico de llamadas de esta función:

◆ setPose()

void GEBalljoint::setPose ( float xrot,
float yrot,
float zrot )

Asigna la rotación de la articulación (respetando límites).

Parámetros
xrotRotación en X.
yrotRotación en Y.
zrotRotación en Z.

Hace referencia a angles, limits y name.

Referenciado por GEAnimation::applyToSkeleton().

Gráfico de llamadas a esta función:

◆ update()

void GEBalljoint::update ( GEGraphicsContext * gc,
uint32_t index,
glm::mat4 view,
glm::mat4 projection )

Actualiza las variables uniformes.

Parámetros
gcContexto gráfico.
indexÍndice de la imagen.
viewMatriz de vista.
projectionMatriz de proyección.

Hace referencia a bone y joint.

Referenciado por updateRecursive().

Gráfico de llamadas a esta función:

◆ updateRecursive()

void GEBalljoint::updateRecursive ( GEGraphicsContext * gc,
uint32_t index,
glm::mat4 parentMatrix,
glm::mat4 view,
glm::mat4 projection )

Actualiza recursivamente con matriz del padre.

Parámetros
gcContexto gráfico.
indexÍndice de la imagen.
parentMatrixMatriz del padre.
viewMatriz de vista.
projectionMatriz de proyección.

Hace referencia a children, ComputeMatrix(), GEBalljoint(), getBoneEndMatrix() y update().

Gráfico de llamadas de esta función:

Documentación de datos miembro

◆ angles

GLfloat GEBalljoint::angles[3]
private

Ángulos de rotación (X, Y, Z).

Referenciado por ComputeMatrix(), ComputeMatrix(), GEBalljoint(), GEBalljoint() y setPose().

◆ bone

GECylinder* GEBalljoint::bone
private

◆ children

std::vector<GEBalljoint *> GEBalljoint::children
private

◆ dir

glm::vec3 GEBalljoint::dir
private

Dirección del hueso.

Referenciado por ComputeMatrix(), GEBalljoint(), GEBalljoint() y setOrientation().

◆ joint

GESphere* GEBalljoint::joint
private

Esfera que representa la articulación.

Referenciado por addCommands(), ComputeMatrix(), ComputeMatrix(), destroy(), GEBalljoint(), GEBalljoint(), initialize(), setLight() y update().

◆ length

GLfloat GEBalljoint::length
private

◆ limits

struct GEBalljoint::Limits GEBalljoint::limits
private

Límites de rotación de esta articulación.

Referenciado por GEBalljoint(), GEBalljoint(), setLimits() y setPose().

◆ localYAxis

glm::vec3 GEBalljoint::localYAxis
private

Eje Y local.

Referenciado por ComputeMatrix(), GEBalljoint() y GEBalljoint().

◆ localZAxis

glm::vec3 GEBalljoint::localZAxis
private

Eje Z local.

Referenciado por ComputeMatrix(), GEBalljoint() y GEBalljoint().

◆ location

glm::vec3 GEBalljoint::location
private

Posición de la articulación.

Referenciado por ComputeMatrix(), GEBalljoint(), GEBalljoint() y setLocation().

◆ name

std::string GEBalljoint::name
private

Nombre de la articulación.

Referenciado por findChild(), GEBalljoint(), GEBalljoint(), getName() y setPose().

◆ offset

glm::vec3 GEBalljoint::offset
private

Desplazamiento respecto al padre.

Referenciado por ComputeMatrix(), GEBalljoint() y GEBalljoint().

◆ right

glm::vec3 GEBalljoint::right
private

Vector derecha local.

Referenciado por ComputeMatrix(), GEBalljoint(), GEBalljoint() y setOrientation().

◆ up

glm::vec3 GEBalljoint::up
private

Vector arriba local.

Referenciado por ComputeMatrix(), GEBalljoint(), GEBalljoint() y setOrientation().

◆ worldMatrix

glm::mat4 GEBalljoint::worldMatrix
private

Matriz de transformación mundo.

Referenciado por ComputeMatrix(), ComputeMatrix(), GEBalljoint(), GEBalljoint(), getBoneEndMatrix() y getWorldMatrix().


La documentación de esta clase está generada de los siguientes archivos: