Vulkan Schnee
0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
SkeletalMeshActor.h
Go to the documentation of this file.
1
#pragma once
2
#include "
../Component/MeshComponent.h
"
3
#include "
Engine/Animation/AnimationEvaluator.h
"
4
#include "
Engine/Entity/Actor.h
"
5
#include "
Engine/Files/AssetPath.h
"
6
7
#include <glm/gtc/quaternion.hpp>
8
#include <string>
9
#include <vector>
10
11
namespace
Engine::Entities
12
{
16
class
SkeletalMeshActor
:
public
Actor
17
{
18
public
:
19
explicit
SkeletalMeshActor
(
20
const
SpawnContext
& context,
21
Asset::MeshPath
meshPath
22
);
23
27
glm::vec3
getBonePosition
(
const
std::string& boneName)
const
;
28
32
glm::quat
getBoneRotation
(
const
std::string& boneName)
const
;
33
37
glm::vec3
getBoneScale
(
const
std::string& boneName)
const
;
38
42
void
setBonePosition
(
const
std::string& boneName,
const
glm::vec3& position);
43
47
void
setBoneRotation
(
const
std::string& boneName,
const
glm::quat& rotation);
48
52
void
setBoneScale
(
const
std::string& boneName,
const
glm::vec3& scale);
53
57
void
resetPosesToRest
();
58
62
void
applyBoneTransforms
();
63
64
private
:
65
int32_t
resolveBone
(
const
std::string& boneName)
const
;
66
void
ensurePosesInitialized
();
67
Assets::Skin
*
getSkin
()
const
;
68
69
Components::Mesh
*
meshComponent_
=
nullptr
;
70
std::vector<Animation::AnimationEvaluator::JointPose>
currentPoses_
;
71
bool
posesInitialized_
=
false
;
72
};
73
}
// namespace EngineCore
Actor.h
AnimationEvaluator.h
AssetPath.h
MeshComponent.h
Engine::Assets::Skin
Skeleton definition loaded from glTF skin data.
Definition
SkinAsset.h:30
Engine::Components::Mesh
A component which can be attached as many times to an actor as one wants. It makes it possible to ren...
Definition
MeshComponent.h:45
Engine::Entities::Actor::Actor
Actor(const SpawnContext &context)
Engine::Entities::SkeletalMeshActor::setBonePosition
void setBonePosition(const std::string &boneName, const glm::vec3 &position)
Setter.
Engine::Entities::SkeletalMeshActor::currentPoses_
std::vector< Animation::AnimationEvaluator::JointPose > currentPoses_
Definition
SkeletalMeshActor.h:70
Engine::Entities::SkeletalMeshActor::resolveBone
int32_t resolveBone(const std::string &boneName) const
Engine::Entities::SkeletalMeshActor::SkeletalMeshActor
SkeletalMeshActor(const SpawnContext &context, Asset::MeshPath meshPath)
Engine::Entities::SkeletalMeshActor::getBoneRotation
glm::quat getBoneRotation(const std::string &boneName) const
Getter.
Engine::Entities::SkeletalMeshActor::setBoneScale
void setBoneScale(const std::string &boneName, const glm::vec3 &scale)
Setter.
Engine::Entities::SkeletalMeshActor::getSkin
Assets::Skin * getSkin() const
Engine::Entities::SkeletalMeshActor::posesInitialized_
bool posesInitialized_
Definition
SkeletalMeshActor.h:71
Engine::Entities::SkeletalMeshActor::meshComponent_
Components::Mesh * meshComponent_
Definition
SkeletalMeshActor.h:69
Engine::Entities::SkeletalMeshActor::resetPosesToRest
void resetPosesToRest()
Resets all bone poses to their rest positions.
Engine::Entities::SkeletalMeshActor::setBoneRotation
void setBoneRotation(const std::string &boneName, const glm::quat &rotation)
Setter.
Engine::Entities::SkeletalMeshActor::ensurePosesInitialized
void ensurePosesInitialized()
Engine::Entities::SkeletalMeshActor::getBoneScale
glm::vec3 getBoneScale(const std::string &boneName) const
Getter.
Engine::Entities::SkeletalMeshActor::applyBoneTransforms
void applyBoneTransforms()
Applies current poses to the mesh component.
Engine::Entities::SkeletalMeshActor::getBonePosition
glm::vec3 getBonePosition(const std::string &boneName) const
Getter.
Engine::Entities
Definition
CollisionComponent.h:11
Asset::MeshPath
Identifies a named mesh-like asset inside an asset file.
Definition
AssetPath.h:40
Engine::Entities::SpawnContext
Scene ownership data passed to actor and component constructors during spawning.
Definition
SpawnContext.h:14
Engine
include
Engine
Entity
SkeletalMeshActor.h
Generated by
1.14.0