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

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

#include <Solver3D.h>

Public 成员函数

 Solver3D ()=default
 Creates a 3D FABRIK solver with default tolerances.
 
 ~Solver3D ()=default
 Releases solver state.
 
 Solver3D (const Solver3D &)=delete
 
Solver3D & operator= (const Solver3D &)=delete
 
void setKeepTrace (bool keep)
 When true, records intermediate solve samples.
 
bool getKeepTrace () const
 Whether solve tracing is enabled.
 
void setMaxIterations (int iterations)
 Maximum FABRIK iterations per solve.
 
int getMaxIterations () const
 Configured maximum FABRIK iterations.
 
void setTolerance (float tol)
 End-effector distance tolerance for success.
 
float getTolerance () const
 Configured end-effector tolerance.
 
void setForce (float force)
 Soft-IK blend toward the target (0 = hard IK).
 
float getForce () const
 Configured soft-IK force.
 
void setInfluence (float influence)
 Overall pose blend: 0 = keep the input pose, 1 = full solve (default).
 
float getInfluence () const
 Pose blend weight (0 = keep input, 1 = full solve).
 
void clearTargets ()
 Removes all IK targets.
 
void addTarget (int boneId, float x, float y, float z, float weight=1.f)
 Adds an end-effector target for a bone.
 
int getTargetCount () const
 Number of configured targets.
 
bool solve (Skeleton3D *skeleton)
 Runs FABRIK until tolerance or max iterations.
 
void step (Skeleton3D *skeleton, float dt=1.f)
 Runs a time-scaled FABRIK step (dt scales iteration effort).
 
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)
 Time-scaled chain-scoped FABRIK step.
 
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 ()
 Disables the pole-vector hint.
 
bool hasPole () const
 True when a pole vector is configured.
 
float getPoleWeight () const
 Configured pole-vector weight in [0,1].
 
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 ()
 Clears tip orientation override.
 
float getTipRotationWeight () const
 Configured tip rotation blend weight.
 
int getTraceSize () const
 Number of recorded trace samples.
 
void clearTrace ()
 Clears recorded solve trace samples.
 

详细描述

FABRIK solver for Skeleton3D. Script type: Solver3D.

在文件 Solver3D.h 第 12 行定义.

构造及析构函数说明

◆ Solver3D() [1/2]

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

Creates a 3D FABRIK solver with default tolerances.

◆ ~Solver3D()

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

Releases solver state.

◆ 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 
)

Adds an end-effector target for a bone.

在文件 Solver3D.cpp 第 54 行定义.

引用了 weight, x, y , 以及 z.

◆ clearPole()

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

Disables the pole-vector hint.

在文件 Solver3D.cpp 第 177 行定义.

◆ clearTargets()

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

Removes all IK targets.

在文件 Solver3D.cpp 第 52 行定义.

◆ clearTipRotation()

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

Clears tip orientation override.

在文件 Solver3D.cpp 第 196 行定义.

◆ clearTrace()

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

Clears recorded solve trace samples.

在文件 Solver3D.cpp 第 240 行定义.

◆ getForce()

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

Configured soft-IK force.

在文件 Solver3D.cpp 第 41 行定义.

◆ getInfluence()

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

Pose blend weight (0 = keep input, 1 = full solve).

在文件 Solver3D.cpp 第 50 行定义.

◆ getKeepTrace()

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

Whether solve tracing is enabled.

在文件 Solver3D.cpp 第 14 行定义.

◆ getMaxIterations()

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

Configured maximum FABRIK iterations.

在文件 Solver3D.cpp 第 24 行定义.

◆ getPoleWeight()

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

Configured pole-vector weight in [0,1].

在文件 Solver3D.cpp 第 184 行定义.

◆ getTargetCount()

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

Number of configured targets.

在文件 Solver3D.cpp 第 61 行定义.

◆ getTipRotationWeight()

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

Configured tip rotation blend weight.

在文件 Solver3D.cpp 第 203 行定义.

◆ getTolerance()

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

Configured end-effector tolerance.

在文件 Solver3D.cpp 第 34 行定义.

◆ getTraceSize()

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

Number of recorded trace samples.

在文件 Solver3D.cpp 第 238 行定义.

◆ hasPole()

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

True when a pole vector is configured.

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

◆ operator=()

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

◆ setForce()

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

Soft-IK blend toward the target (0 = hard IK).

在文件 Solver3D.cpp 第 36 行定义.

◆ setInfluence()

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

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

在文件 Solver3D.cpp 第 43 行定义.

◆ setKeepTrace()

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

When true, records intermediate solve samples.

在文件 Solver3D.cpp 第 9 行定义.

◆ setMaxIterations()

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

Maximum FABRIK iterations per solve.

在文件 Solver3D.cpp 第 16 行定义.

引用了 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.cpp 第 171 行定义.

引用了 weight, 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.cpp 第 186 行定义.

引用了 pitch, weight , 以及 yaw.

◆ setTolerance()

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

End-effector distance tolerance for success.

在文件 Solver3D.cpp 第 26 行定义.

◆ solve()

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

Runs FABRIK until tolerance or max iterations.

返回
True if all targets within tolerance.

在文件 Solver3D.cpp 第 65 行定义.

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

◆ 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.cpp 第 106 行定义.

引用了 options , 以及 eve::ik::detail::ChainOptions< D >::tolerance.

◆ step()

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

Runs a time-scaled FABRIK step (dt scales iteration effort).

在文件 Solver3D.cpp 第 86 行定义.

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

◆ stepChain()

void eve::ik::Solver3D::stepChain ( Skeleton3D *  skeleton,
int  rootBoneId,
int  tipBoneId,
float  dt = 1.f 
)

Time-scaled chain-scoped FABRIK step.

在文件 Solver3D.cpp 第 118 行定义.

引用了 f, options , 以及 eve::ik::detail::ChainOptions< D >::tolerance.


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