载入中...
搜索中...
未找到
eve::ik::Solver3D类 参考

FABRIK solver for Skeleton3D. Script type: Solver3D. 更多...

#include <Solver3D.h>

Public 成员函数

 Solver3D ()=default
 
 ~Solver3D ()=default
 
 Solver3D (const Solver3D &)=delete
 
Solver3Doperator= (const Solver3D &)=delete
 
void setKeepTrace (bool keep)
 
bool getKeepTrace () const
 
void setMaxIterations (int iterations)
 
int getMaxIterations () const
 
void setTolerance (float tol)
 
float getTolerance () const
 
void setForce (float force)
 
float getForce () const
 
void setInfluence (float influence)
 Overall pose blend: 0 = keep the input pose, 1 = full solve (default).
 
float getInfluence () const
 
void clearTargets ()
 
void addTarget (int boneId, float x, float y, float z, float weight=1.f)
 
int getTargetCount () const
 
bool solve (Skeleton3D *skeleton)
 
void step (Skeleton3D *skeleton, float dt=1.f)
 
bool solveChain (Skeleton3D *skeleton, int rootBoneId, int tipBoneId)
 FABRIK solve restricted to the bone chain rootBoneId..tipBoneId. The chain root stays pinned and bones outside the chain are untouched; only targets on the chain participate. See ChainSolver.h for details.
 
void stepChain (Skeleton3D *skeleton, int rootBoneId, int tipBoneId, float dt=1.f)
 
void setPole (float x, float y, float z, float weight)
 Pole vector (magnet / hint): pulls the middle joints of a chain toward a point so the limb bends in the desired direction. Applies to solveChain / stepChain; weight is clamped to [0, 1].
 
void clearPole ()
 
bool hasPole () const
 
float getPoleWeight () const
 
void setTipRotation (int boneId, float yaw, float pitch, float weight)
 Tip orientation override: after solving, blends the tip bone's local yaw/pitch toward the given angles (weight in [0, 1]). Mirrors Godot's override_tip_basis / Unity's target rotation weight.
 
void clearTipRotation ()
 
float getTipRotationWeight () const
 
int getTraceSize () const
 
void clearTrace ()
 

详细描述

FABRIK solver for Skeleton3D. Script type: Solver3D.

在文件 Solver3D.h11 行定义.

构造及析构函数说明

◆ Solver3D() [1/2]

eve::ik::Solver3D::Solver3D ( )
default

◆ ~Solver3D()

eve::ik::Solver3D::~Solver3D ( )
default

◆ Solver3D() [2/2]

eve::ik::Solver3D::Solver3D ( const Solver3D )
delete

成员函数说明

◆ addTarget()

void eve::ik::Solver3D::addTarget ( int  boneId,
float  x,
float  y,
float  z,
float  weight = 1.f 
)

在文件 Solver3D.cpp54 行定义.

引用了 x, y , 以及 z.

◆ clearPole()

void eve::ik::Solver3D::clearPole ( )

在文件 Solver3D.cpp177 行定义.

◆ clearTargets()

void eve::ik::Solver3D::clearTargets ( )

在文件 Solver3D.cpp52 行定义.

◆ clearTipRotation()

void eve::ik::Solver3D::clearTipRotation ( )

在文件 Solver3D.cpp196 行定义.

◆ clearTrace()

void eve::ik::Solver3D::clearTrace ( )

在文件 Solver3D.cpp240 行定义.

◆ getForce()

float eve::ik::Solver3D::getForce ( ) const

在文件 Solver3D.cpp41 行定义.

◆ getInfluence()

float eve::ik::Solver3D::getInfluence ( ) const

在文件 Solver3D.cpp50 行定义.

◆ getKeepTrace()

bool eve::ik::Solver3D::getKeepTrace ( ) const

在文件 Solver3D.cpp14 行定义.

◆ getMaxIterations()

int eve::ik::Solver3D::getMaxIterations ( ) const

在文件 Solver3D.cpp24 行定义.

◆ getPoleWeight()

float eve::ik::Solver3D::getPoleWeight ( ) const

在文件 Solver3D.cpp184 行定义.

◆ getTargetCount()

int eve::ik::Solver3D::getTargetCount ( ) const

在文件 Solver3D.cpp61 行定义.

◆ getTipRotationWeight()

float eve::ik::Solver3D::getTipRotationWeight ( ) const

在文件 Solver3D.cpp203 行定义.

◆ getTolerance()

float eve::ik::Solver3D::getTolerance ( ) const

在文件 Solver3D.cpp34 行定义.

◆ getTraceSize()

int eve::ik::Solver3D::getTraceSize ( ) const

在文件 Solver3D.cpp238 行定义.

◆ hasPole()

bool eve::ik::Solver3D::hasPole ( ) const

在文件 Solver3D.cpp182 行定义.

◆ operator=()

Solver3D & eve::ik::Solver3D::operator= ( const Solver3D )
delete

◆ setForce()

void eve::ik::Solver3D::setForce ( float  force)

在文件 Solver3D.cpp36 行定义.

◆ setInfluence()

void eve::ik::Solver3D::setInfluence ( float  influence)

Overall pose blend: 0 = keep the input pose, 1 = full solve (default).

在文件 Solver3D.cpp43 行定义.

◆ setKeepTrace()

void eve::ik::Solver3D::setKeepTrace ( bool  keep)

在文件 Solver3D.cpp9 行定义.

◆ setMaxIterations()

void eve::ik::Solver3D::setMaxIterations ( int  iterations)

在文件 Solver3D.cpp16 行定义.

引用了 iterations.

◆ setPole()

void eve::ik::Solver3D::setPole ( float  x,
float  y,
float  z,
float  weight 
)

Pole vector (magnet / hint): pulls the middle joints of a chain toward a point so the limb bends in the desired direction. Applies to solveChain / stepChain; weight is clamped to [0, 1].

在文件 Solver3D.cpp171 行定义.

引用了 x, y , 以及 z.

◆ setTipRotation()

void eve::ik::Solver3D::setTipRotation ( int  boneId,
float  yaw,
float  pitch,
float  weight 
)

Tip orientation override: after solving, blends the tip bone's local yaw/pitch toward the given angles (weight in [0, 1]). Mirrors Godot's override_tip_basis / Unity's target rotation weight.

在文件 Solver3D.cpp186 行定义.

◆ setTolerance()

void eve::ik::Solver3D::setTolerance ( float  tol)

在文件 Solver3D.cpp26 行定义.

◆ solve()

bool eve::ik::Solver3D::solve ( Skeleton3D skeleton)

在文件 Solver3D.cpp65 行定义.

引用了 eve::ik::Skeleton3D::native(), eve::ik::Skeleton3D::state() , 以及 state.

◆ solveChain()

bool eve::ik::Solver3D::solveChain ( Skeleton3D skeleton,
int  rootBoneId,
int  tipBoneId 
)

FABRIK solve restricted to the bone chain rootBoneId..tipBoneId. The chain root stays pinned and bones outside the chain are untouched; only targets on the chain participate. See ChainSolver.h for details.

在文件 Solver3D.cpp106 行定义.

引用了 eve::ik::detail::ChainOptions< D >::force, eve::ik::detail::ChainOptions< D >::influence, eve::ik::detail::ChainOptions< D >::max_iterations, eve::ik::detail::ChainOptions< D >::pole, eve::ik::detail::ChainOptions< D >::pole_weight, eve::ik::detail::ChainOptions< D >::tolerance , 以及 eve::ik::detail::ChainOptions< D >::use_pole.

◆ step()

void eve::ik::Solver3D::step ( Skeleton3D skeleton,
float  dt = 1.f 
)

在文件 Solver3D.cpp86 行定义.

引用了 eve::ik::Skeleton3D::native(), eve::ik::Skeleton3D::state() , 以及 state.

◆ stepChain()


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