FABRIK solver for Skeleton3D. Script type: Solver3D.
更多...
#include <Solver3D.h>
Public 成员函数 | |
| Solver3D ()=default | |
| ~Solver3D ()=default | |
| Solver3D (const Solver3D &)=delete | |
| Solver3D & | operator= (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.h 第 11 行定义.
构造及析构函数说明
◆ Solver3D() [1/2]
|
default |
◆ ~Solver3D()
|
default |
◆ Solver3D() [2/2]
|
delete |
成员函数说明
◆ addTarget()
| void eve::ik::Solver3D::addTarget | ( | int | boneId, |
| float | x, | ||
| float | y, | ||
| float | z, | ||
| float | weight = 1.f |
||
| ) |
在文件 Solver3D.cpp 第 54 行定义.
◆ clearPole()
| void eve::ik::Solver3D::clearPole | ( | ) |
在文件 Solver3D.cpp 第 177 行定义.
◆ clearTargets()
| void eve::ik::Solver3D::clearTargets | ( | ) |
在文件 Solver3D.cpp 第 52 行定义.
◆ clearTipRotation()
| void eve::ik::Solver3D::clearTipRotation | ( | ) |
在文件 Solver3D.cpp 第 196 行定义.
◆ clearTrace()
| void eve::ik::Solver3D::clearTrace | ( | ) |
在文件 Solver3D.cpp 第 240 行定义.
◆ getForce()
| float eve::ik::Solver3D::getForce | ( | ) | const |
在文件 Solver3D.cpp 第 41 行定义.
◆ getInfluence()
| float eve::ik::Solver3D::getInfluence | ( | ) | const |
在文件 Solver3D.cpp 第 50 行定义.
◆ getKeepTrace()
| bool eve::ik::Solver3D::getKeepTrace | ( | ) | const |
在文件 Solver3D.cpp 第 14 行定义.
◆ getMaxIterations()
| int eve::ik::Solver3D::getMaxIterations | ( | ) | const |
在文件 Solver3D.cpp 第 24 行定义.
◆ getPoleWeight()
| float eve::ik::Solver3D::getPoleWeight | ( | ) | const |
在文件 Solver3D.cpp 第 184 行定义.
◆ getTargetCount()
| int eve::ik::Solver3D::getTargetCount | ( | ) | const |
在文件 Solver3D.cpp 第 61 行定义.
◆ getTipRotationWeight()
| float eve::ik::Solver3D::getTipRotationWeight | ( | ) | const |
在文件 Solver3D.cpp 第 203 行定义.
◆ getTolerance()
| float eve::ik::Solver3D::getTolerance | ( | ) | const |
在文件 Solver3D.cpp 第 34 行定义.
◆ getTraceSize()
| int eve::ik::Solver3D::getTraceSize | ( | ) | const |
在文件 Solver3D.cpp 第 238 行定义.
◆ hasPole()
| bool eve::ik::Solver3D::hasPole | ( | ) | const |
在文件 Solver3D.cpp 第 182 行定义.
◆ operator=()
◆ setForce()
| void eve::ik::Solver3D::setForce | ( | float | force | ) |
在文件 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 | ) |
在文件 Solver3D.cpp 第 9 行定义.
◆ setMaxIterations()
| void eve::ik::Solver3D::setMaxIterations | ( | int | iterations | ) |
在文件 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 行定义.
◆ 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 行定义.
◆ setTolerance()
| void eve::ik::Solver3D::setTolerance | ( | float | tol | ) |
在文件 Solver3D.cpp 第 26 行定义.
◆ solve()
| bool eve::ik::Solver3D::solve | ( | Skeleton3D * | skeleton | ) |
在文件 Solver3D.cpp 第 65 行定义.
引用了 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.cpp 第 106 行定义.
引用了 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.cpp 第 86 行定义.
引用了 eve::ik::Skeleton3D::native(), eve::ik::Skeleton3D::state() , 以及 state.
◆ stepChain()
| void eve::ik::Solver3D::stepChain | ( | Skeleton3D * | skeleton, |
| int | rootBoneId, | ||
| int | tipBoneId, | ||
| float | dt = 1.f |
||
| ) |
在文件 Solver3D.cpp 第 118 行定义.
引用了 f, 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.
该类的文档由以下文件生成:
- src/modules/ik/Solver3D.h
- src/modules/ik/Solver3D.cpp