载入中...
搜索中...
未找到
OrientationWarping.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4#include "common/Result.h"
5
6#include <memory>
7#include <span>
8
9namespace eve::animation {
10class AnimPose;
11class AnimSkeleton;
12
27public:
34
45 [[nodiscard]] eve::Result<void> configure(AnimSkeleton& skeleton, int rootBone,
46 std::span<const int> spineBones = {}, std::span<const int> ikBones = {});
47
53 [[nodiscard]] eve::Result<void> setDistributedAlpha(float alpha);
54 float getDistributedAlpha() const;
55
61 [[nodiscard]] eve::Result<void> setAngleThreshold(float radians);
62 float getAngleThreshold() const;
63
69 [[nodiscard]] eve::Result<void> setRotationInterpSpeed(float speed);
70 float getRotationInterpSpeed() const;
71
77 [[nodiscard]] eve::Result<void> setMinRootMotionSpeed(float metresPerSecond);
78 float getMinRootMotionSpeed() const;
79
81 void setEnabled(bool enabled);
83 bool isEnabled() const;
84
86 void reset();
87
101 [[nodiscard]] eve::Result<void> apply(AnimPose& pose, float locomotionX, float locomotionZ, float animatedX,
102 float animatedZ, float dt);
103
105 float getAppliedAngle() const;
107 float getTargetAngle() const;
113 AnimSkeleton* getSkeleton() const;
115 int getRootBone() const;
117 int getSpineBoneCount() const;
119 int getIkBoneCount() const;
120
121private:
122 struct Impl;
123 std::unique_ptr<Impl> impl_;
124};
125} // namespace eve::animation
eve::EntitySpatialPose pose
#define EVENGINE_API_WORLD
Definition Export.h:109
Move-only, checked operation results for the common layer.
Move-only operation result carrying either a value or Status.
Definition Result.h:155
3D bone hierarchy + bind-pose local TRS for skeletal animation. Independent of ik::Skeleton3D (FABRIK...
Planar orientation warp applied after motion matching, never fed back into search.
OrientationWarping(const OrientationWarping &)=delete
~OrientationWarping()
Release owned interpolation state; the borrowed skeleton is not accessed.
OrientationWarping & operator=(const OrientationWarping &)=delete
bool enabled