Antkeeper  0.0.1
Public Member Functions | Protected Attributes | List of all members
pose Class Reference

Base class for skeleton poses. More...

#include <pose.hpp>

Inheritance diagram for pose:
animation_pose rest_pose

Public Member Functions

 pose (const skeleton &skeleton)
 Constructs a pose. More...
 
constexpr pose () noexcept=default
 Constructs an empty pose. More...
 
void update ()
 Updates the pose after one or more relative transforms have been changed. More...
 
virtual void update (bone_index_type first_index, std::size_t bone_count)
 Updates a subset of the pose after one or more relative transforms have been changed. More...
 
void set_relative_transform (bone_index_type index, const bone_transform_type &transform)
 Sets the relative transform describing a bone pose. More...
 
void set_relative_translation (bone_index_type index, const bone_transform_type::vector_type &translation)
 Sets the relative translation of a bone pose. More...
 
void set_relative_rotation (bone_index_type index, const bone_transform_type::quaternion_type &rotation)
 Sets the relative rotation of a bone pose. More...
 
void set_relative_scale (bone_index_type index, const bone_transform_type::vector_type &scale)
 Sets the relative scale of a bone pose. More...
 
const skeletonget_skeleton () const noexcept
 Returns the skeleton with which the pose is associated. More...
 
const bone_transform_typeget_relative_transform (bone_index_type index) const
 Returns the relative transform describing a bone pose. More...
 
const bone_transform_typeget_absolute_transform (bone_index_type index) const
 Returns the absolute transform describing a bone pose. More...
 

Protected Attributes

const skeletonm_skeleton {nullptr}
 Skeleton with which the pose is associated. More...
 
std::vector< bone_transform_typem_relative_transforms
 Relative ransforms for each bone in a skeleton. More...
 
std::vector< bone_transform_typem_absolute_transforms
 Absolute transforms for each bone in a skeleton. More...
 

Detailed Description

Base class for skeleton poses.

Definition at line 31 of file pose.hpp.

Constructor & Destructor Documentation

◆ pose() [1/2]

pose::pose ( const skeleton skeleton)
explicit

Constructs a pose.

Parameters
skeletonSkeleton with which to associate the pose.

Definition at line 25 of file pose.cpp.

◆ pose() [2/2]

constexpr pose::pose ( )
constexprdefaultnoexcept

Constructs an empty pose.

Member Function Documentation

◆ get_absolute_transform()

const bone_transform_type& pose::get_absolute_transform ( bone_index_type  index) const
inline

Returns the absolute transform describing a bone pose.

Parameters
indexIndex of a bone.
Returns
Absolute transform describing the bone pose.

Definition at line 128 of file pose.hpp.

◆ get_relative_transform()

const bone_transform_type& pose::get_relative_transform ( bone_index_type  index) const
inline

Returns the relative transform describing a bone pose.

Parameters
indexIndex of a bone.
Returns
Relative transform describing the bone pose.

Definition at line 116 of file pose.hpp.

◆ get_skeleton()

const skeleton* pose::get_skeleton ( ) const
inlinenoexcept

Returns the skeleton with which the pose is associated.

Definition at line 104 of file pose.hpp.

◆ set_relative_rotation()

void pose::set_relative_rotation ( bone_index_type  index,
const bone_transform_type::quaternion_type rotation 
)
inline

Sets the relative rotation of a bone pose.

Parameters
indexIndex of a bone.
translationRelative rotation of the bone pose.

Definition at line 87 of file pose.hpp.

◆ set_relative_scale()

void pose::set_relative_scale ( bone_index_type  index,
const bone_transform_type::vector_type scale 
)
inline

Sets the relative scale of a bone pose.

Parameters
indexIndex of a bone.
scaleRelative scale of the bone pose.

Definition at line 98 of file pose.hpp.

◆ set_relative_transform()

void pose::set_relative_transform ( bone_index_type  index,
const bone_transform_type transform 
)
inline

Sets the relative transform describing a bone pose.

Parameters
indexIndex of a bone.
transformRelative transform describing the bone pose.

Definition at line 65 of file pose.hpp.

◆ set_relative_translation()

void pose::set_relative_translation ( bone_index_type  index,
const bone_transform_type::vector_type translation 
)
inline

Sets the relative translation of a bone pose.

Parameters
indexIndex of a bone.
translationRelative translation of the bone pose.

Definition at line 76 of file pose.hpp.

◆ update() [1/2]

void pose::update ( )

Updates the pose after one or more relative transforms have been changed.

Definition at line 31 of file pose.cpp.

◆ update() [2/2]

void pose::update ( bone_index_type  first_index,
std::size_t  bone_count 
)
virtual

Updates a subset of the pose after one or more relative transforms have been changed.

Parameters
first_indexIndex of the first bone in the chain to update.
bone_countNumber of bones in the chain to update.
Warning
It's the caller's responsibility to ensure that any ancestors of the bone chain are up to date before the call, and any descendants are updated after the call.

Reimplemented in rest_pose, and animation_pose.

Definition at line 36 of file pose.cpp.

Member Data Documentation

◆ m_absolute_transforms

std::vector<bone_transform_type> pose::m_absolute_transforms
protected

Absolute transforms for each bone in a skeleton.

Definition at line 141 of file pose.hpp.

◆ m_relative_transforms

std::vector<bone_transform_type> pose::m_relative_transforms
protected

Relative ransforms for each bone in a skeleton.

Definition at line 138 of file pose.hpp.

◆ m_skeleton

const skeleton* pose::m_skeleton {nullptr}
protected

Skeleton with which the pose is associated.

Definition at line 135 of file pose.hpp.


The documentation for this class was generated from the following files: