载入中...
搜索中...
未找到
eve::animation::AnimLayerMixer类 参考

Combines a borrowed base pose source with ordered override/additive layers. 更多...

#include <AnimLayerMixer.h>

类 eve::animation::AnimLayerMixer 继承关系图:
eve::animation::IAnimPoseSource

Public 成员函数

 AnimLayerMixer (AnimSkeleton *skeleton)
 Create an empty mixer for a skeleton; the skeleton is not owned.
 
eve::Result< void > setBaseSource (IAnimPoseSource *source)
 Set the borrowed base pose source evaluated before layers.
 
bool setBasePlayer (AnimPlayer *player)
 Compatibility facade over setBaseSource(AnimPlayer*).
 
bool setBaseGraph (AnimGraph *graph)
 Compatibility facade over setBaseSource(AnimGraph*).
 
bool setBaseStateMachine (AnimStateMachine *stateMachine)
 Compatibility facade over setBaseSource(AnimStateMachine*).
 
IAnimPoseSource * getBaseSource () const
 Return the borrowed base source, or null. @ownership Borrowed @lifetime Valid while the owning animation object remains alive; do not retain across destruction.
 
AnimPlayer * getBasePlayer () const
 Return the base when it is an AnimPlayer; otherwise null. @ownership Borrowed @lifetime Valid while the owning animation object remains alive; do not retain across destruction.
 
eve::Result< int > addPoseLayer (const std::string &name, IAnimPoseSource *source, AnimBoneMask *mask, const std::string &mode)
 Append a pose layer. mode is "override" or "additive". A null mask affects every bone. Additive layers default to BindPose reference.
 
int addLayer (const std::string &name, AnimPlayer *player, AnimBoneMask *mask, const std::string &mode)
 Compatibility facade over addPoseLayer(AnimPlayer*).
 
int addGraphLayer (const std::string &name, AnimGraph *graph, AnimBoneMask *mask, const std::string &mode)
 Compatibility facade over addPoseLayer(AnimGraph*).
 
int addStateMachineLayer (const std::string &name, AnimStateMachine *stateMachine, AnimBoneMask *mask, const std::string &mode)
 Compatibility facade over addPoseLayer(AnimStateMachine*).
 
bool removeLayer (const std::string &name)
 Remove a layer by name.
 
bool setLayerWeight (const std::string &name, float weight)
 Set a layer's global clamped weight.
 
bool setLayerEnabled (const std::string &name, bool enabled)
 Enable or disable a layer without removing it. Disabled layers still advance.
 
eve::Result< void > setLayerAdditiveReference (const std::string &name, const std::string &reference)
 Set additive reference for an additive layer: "bind" or "identity".
 
bool setLayerAdditiveReferenceCompat (const std::string &name, const std::string &reference)
 Compatibility facade over setLayerAdditiveReference.
 
int getLayerCount () const
 Return the number of configured layers.
 
std::string getLayerName (int index) const
 Return a layer name, or empty for an invalid index.
 
float getLayerWeight (const std::string &name) const
 Return a layer weight, or zero for an unknown name.
 
bool getLayerEnabled (const std::string &name) const
 Return whether a layer is enabled; false for unknown names.
 
std::string getLayerMode (const std::string &name) const
 Return "override" / "additive", or empty for unknown names.
 
std::string getLayerAdditiveReference (const std::string &name) const
 Return "bind" / "identity", or empty for unknown names.
 
eve::Result< void > advance (const eve::SimulationStep &step) override
 Advance all referenced sources (including disabled layers) and compose.
 
void update (float dt)
 Legacy seconds facade; explicitly forwards to advance().
 
AnimPose * getPose () override
 Return the most recently combined pose. @ownership Borrowed @lifetime Valid while the owning animation object remains alive; do not retain across destruction.
 
AnimSkeleton * getSkeleton () const override
 Return the mixer skeleton. @ownership Borrowed @lifetime Valid while the owning animation object remains alive; do not retain across destruction.
 
bool hasCurrentTick () const noexcept override
 True when current tick.
 
eve::SimulationTick currentTick () const noexcept override
 Current tick.
 
int getEventCount () const override
 Returns the event count.
 
std::string getEventName (int index) const override
 Returns the event name.
 
std::string getEventPayload (int index) const override
 Returns the event payload.
 
std::string getEventLayer (int index) const
 Source layer name; "base" identifies the base source.
 
void clearEvents ()
 Clear events collected by the most recent update.
 
- Public 成员函数 继承自 eve::animation::IAnimPoseSource
virtual ~IAnimPoseSource ()=default
 Releases IAnimPoseSource resources.
 

详细描述

Combines a borrowed base pose source with ordered override/additive layers.

Pose sources such as AnimPlayer, AnimGraph, AnimStateMachine, or a nested mixer, plus masks/clips/skeleton, are referenced but not owned. The mixer owns the evaluation boundary: call advance once per tick and do not advance attached sources separately.

在文件 AnimLayerMixer.h 第 53 行定义.

构造及析构函数说明

◆ AnimLayerMixer()

eve::animation::AnimLayerMixer::AnimLayerMixer ( AnimSkeleton *  skeleton)
explicit

Create an empty mixer for a skeleton; the skeleton is not owned.

在文件 AnimLayerMixer.cpp 第 72 行定义.

引用了 eve::animation::AnimSkeleton::applyBindPose(), eve::animation::AnimSkeleton::getBoneCount() , 以及 eve::animation::AnimPose::resize().

成员函数说明

◆ addGraphLayer()

int eve::animation::AnimLayerMixer::addGraphLayer ( const std::string &  name,
AnimGraph *  graph,
AnimBoneMask *  mask,
const std::string &  mode 
)

Compatibility facade over addPoseLayer(AnimGraph*).

在文件 AnimLayerMixer.cpp 第 182 行定义.

引用了 addPoseLayer(), graph, mask , 以及 name.

◆ addLayer()

int eve::animation::AnimLayerMixer::addLayer ( const std::string &  name,
AnimPlayer *  player,
AnimBoneMask *  mask,
const std::string &  mode 
)

Compatibility facade over addPoseLayer(AnimPlayer*).

在文件 AnimLayerMixer.cpp 第 173 行定义.

引用了 addPoseLayer(), mask , 以及 name.

◆ addPoseLayer()

eve::Result< int > eve::animation::AnimLayerMixer::addPoseLayer ( const std::string &  name,
IAnimPoseSource *  source,
AnimBoneMask *  mask,
const std::string &  mode 
)

Append a pose layer. mode is "override" or "additive". A null mask affects every bone. Additive layers default to BindPose reference.

在文件 AnimLayerMixer.cpp 第 152 行定义.

引用了 eve::animation::BindPose, eve::Conflict, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, mask, name, source , 以及 eve::Result< T >::success().

被这些函数引用 addGraphLayer(), addLayer() , 以及 addStateMachineLayer().

◆ addStateMachineLayer()

int eve::animation::AnimLayerMixer::addStateMachineLayer ( const std::string &  name,
AnimStateMachine *  stateMachine,
AnimBoneMask *  mask,
const std::string &  mode 
)

Compatibility facade over addPoseLayer(AnimStateMachine*).

在文件 AnimLayerMixer.cpp 第 192 行定义.

引用了 addPoseLayer(), mask , 以及 name.

◆ advance()

◆ clearEvents()

void eve::animation::AnimLayerMixer::clearEvents ( )
inline

Clear events collected by the most recent update.

在文件 AnimLayerMixer.h 第 153 行定义.

◆ currentTick()

eve::SimulationTick eve::animation::AnimLayerMixer::currentTick ( ) const
inlineoverridevirtualnoexcept

Current tick.

实现了 eve::animation::IAnimPoseSource.

在文件 AnimLayerMixer.h 第 142 行定义.

◆ getBasePlayer()

AnimPlayer * eve::animation::AnimLayerMixer::getBasePlayer ( ) const

Return the base when it is an AnimPlayer; otherwise null. @ownership Borrowed @lifetime Valid while the owning animation object remains alive; do not retain across destruction.

在文件 AnimLayerMixer.cpp 第 150 行定义.

被这些函数引用 eve::avatar::AvatarInstance::bindAnimLayerMixer().

◆ getBaseSource()

IAnimPoseSource * eve::animation::AnimLayerMixer::getBaseSource ( ) const
inline

Return the borrowed base source, or null. @ownership Borrowed @lifetime Valid while the owning animation object remains alive; do not retain across destruction.

在文件 AnimLayerMixer.h 第 74 行定义.

◆ getEventCount()

int eve::animation::AnimLayerMixer::getEventCount ( ) const
inlineoverridevirtual

Returns the event count.

重载 eve::animation::IAnimPoseSource .

在文件 AnimLayerMixer.h 第 144 行定义.

被这些函数引用 eve::avatar::AvatarInstance::getAnimationEventCount(), getEventLayer(), getEventName() , 以及 getEventPayload().

◆ getEventLayer()

std::string eve::animation::AnimLayerMixer::getEventLayer ( int  index) const

Source layer name; "base" identifies the base source.

在文件 AnimLayerMixer.cpp 第 372 行定义.

引用了 getEventCount(), index , 以及 layer.

被这些函数引用 eve::avatar::AvatarInstance::getAnimationEventLayer().

◆ getEventName()

std::string eve::animation::AnimLayerMixer::getEventName ( int  index) const
overridevirtual

Returns the event name.

重载 eve::animation::IAnimPoseSource .

在文件 AnimLayerMixer.cpp 第 377 行定义.

引用了 getEventCount(), index , 以及 name.

被这些函数引用 eve::avatar::AvatarInstance::getAnimationEventName().

◆ getEventPayload()

std::string eve::animation::AnimLayerMixer::getEventPayload ( int  index) const
overridevirtual

Returns the event payload.

重载 eve::animation::IAnimPoseSource .

在文件 AnimLayerMixer.cpp 第 382 行定义.

引用了 getEventCount(), index , 以及 payload.

被这些函数引用 eve::avatar::AvatarInstance::getAnimationEventPayload().

◆ getLayerAdditiveReference()

std::string eve::animation::AnimLayerMixer::getLayerAdditiveReference ( const std::string &  name) const

Return "bind" / "identity", or empty for unknown names.

在文件 AnimLayerMixer.cpp 第 280 行定义.

引用了 layer , 以及 name.

◆ getLayerCount()

int eve::animation::AnimLayerMixer::getLayerCount ( ) const
inline

Return the number of configured layers.

在文件 AnimLayerMixer.h 第 111 行定义.

被这些函数引用 getLayerName().

◆ getLayerEnabled()

bool eve::animation::AnimLayerMixer::getLayerEnabled ( const std::string &  name) const

Return whether a layer is enabled; false for unknown names.

在文件 AnimLayerMixer.cpp 第 269 行定义.

引用了 layer , 以及 name.

◆ getLayerMode()

std::string eve::animation::AnimLayerMixer::getLayerMode ( const std::string &  name) const

Return "override" / "additive", or empty for unknown names.

在文件 AnimLayerMixer.cpp 第 274 行定义.

引用了 layer , 以及 name.

◆ getLayerName()

std::string eve::animation::AnimLayerMixer::getLayerName ( int  index) const

Return a layer name, or empty for an invalid index.

在文件 AnimLayerMixer.cpp 第 259 行定义.

引用了 getLayerCount(), index , 以及 name.

◆ getLayerWeight()

float eve::animation::AnimLayerMixer::getLayerWeight ( const std::string &  name) const

Return a layer weight, or zero for an unknown name.

在文件 AnimLayerMixer.cpp 第 264 行定义.

引用了 layer , 以及 name.

◆ getPose()

AnimPose * eve::animation::AnimLayerMixer::getPose ( )
inlineoverridevirtual

Return the most recently combined pose. @ownership Borrowed @lifetime Valid while the owning animation object remains alive; do not retain across destruction.

实现了 eve::animation::IAnimPoseSource.

在文件 AnimLayerMixer.h 第 132 行定义.

◆ getSkeleton()

AnimSkeleton * eve::animation::AnimLayerMixer::getSkeleton ( ) const
inlineoverridevirtual

Return the mixer skeleton. @ownership Borrowed @lifetime Valid while the owning animation object remains alive; do not retain across destruction.

实现了 eve::animation::IAnimPoseSource.

在文件 AnimLayerMixer.h 第 138 行定义.

被这些函数引用 eve::avatar::AvatarInstance::bindAnimLayerMixer().

◆ hasCurrentTick()

bool eve::animation::AnimLayerMixer::hasCurrentTick ( ) const
inlineoverridevirtualnoexcept

True when current tick.

实现了 eve::animation::IAnimPoseSource.

在文件 AnimLayerMixer.h 第 140 行定义.

◆ removeLayer()

bool eve::animation::AnimLayerMixer::removeLayer ( const std::string &  name)

Remove a layer by name.

在文件 AnimLayerMixer.cpp 第 214 行定义.

引用了 layer.

◆ setBaseGraph()

bool eve::animation::AnimLayerMixer::setBaseGraph ( AnimGraph *  graph)

Compatibility facade over setBaseSource(AnimGraph*).

在文件 AnimLayerMixer.cpp 第 132 行定义.

引用了 graph , 以及 setBaseSource().

◆ setBasePlayer()

bool eve::animation::AnimLayerMixer::setBasePlayer ( AnimPlayer *  player)

Compatibility facade over setBaseSource(AnimPlayer*).

在文件 AnimLayerMixer.cpp 第 123 行定义.

引用了 setBaseSource().

◆ setBaseSource()

eve::Result< void > eve::animation::AnimLayerMixer::setBaseSource ( IAnimPoseSource *  source)

Set the borrowed base pose source evaluated before layers.

返回
Applied on success; Conflict/InvalidArgument on failure.

在文件 AnimLayerMixer.cpp 第 102 行定义.

引用了 eve::Applied, eve::Conflict, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, layer, eve::NoOp, source, eve::Status::success() , 以及 eve::Result< T >::success().

被这些函数引用 setBaseGraph(), setBasePlayer() , 以及 setBaseStateMachine().

◆ setBaseStateMachine()

bool eve::animation::AnimLayerMixer::setBaseStateMachine ( AnimStateMachine *  stateMachine)

Compatibility facade over setBaseSource(AnimStateMachine*).

在文件 AnimLayerMixer.cpp 第 141 行定义.

引用了 setBaseSource().

◆ setLayerAdditiveReference()

eve::Result< void > eve::animation::AnimLayerMixer::setLayerAdditiveReference ( const std::string &  name,
const std::string &  reference 
)

Set additive reference for an additive layer: "bind" or "identity".

返回
Applied on success; NotFound/InvalidArgument otherwise.

在文件 AnimLayerMixer.cpp 第 236 行定义.

引用了 eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, layer, name, eve::NotFound, reference, eve::Status::success() , 以及 eve::Result< T >::success().

被这些函数引用 setLayerAdditiveReferenceCompat().

◆ setLayerAdditiveReferenceCompat()

bool eve::animation::AnimLayerMixer::setLayerAdditiveReferenceCompat ( const std::string &  name,
const std::string &  reference 
)

Compatibility facade over setLayerAdditiveReference.

在文件 AnimLayerMixer.cpp 第 250 行定义.

引用了 name, reference , 以及 setLayerAdditiveReference().

◆ setLayerEnabled()

bool eve::animation::AnimLayerMixer::setLayerEnabled ( const std::string &  name,
bool  enabled 
)

Enable or disable a layer without removing it. Disabled layers still advance.

在文件 AnimLayerMixer.cpp 第 229 行定义.

引用了 enabled, layer , 以及 name.

◆ setLayerWeight()

bool eve::animation::AnimLayerMixer::setLayerWeight ( const std::string &  name,
float  weight 
)

Set a layer's global clamped weight.

在文件 AnimLayerMixer.cpp 第 222 行定义.

引用了 eve::animation::clampf(), layer, name , 以及 weight.

◆ update()

void eve::animation::AnimLayerMixer::update ( float  dt)

Legacy seconds facade; explicitly forwards to advance().

在文件 AnimLayerMixer.cpp 第 363 行定义.

引用了 advance(), eve::Result< void >::ignore(), eve::animation::detail::legacyStep() , 以及 step.


该类的文档由以下文件生成: