23 void setKeepTrace(
bool keep);
25 bool getKeepTrace()
const;
30 int getMaxIterations()
const;
32 void setTolerance(
float tol);
34 float getTolerance()
const;
36 void setForce(
float force);
38 float getForce()
const;
41 void setInfluence(
float influence);
43 float getInfluence()
const;
48 void addTarget(
int boneId,
float x,
float y,
float weight = 1.f);
50 int getTargetCount()
const;
62 bool solveChain(
Skeleton2D *skeleton,
int rootBoneId,
int tipBoneId);
64 void stepChain(
Skeleton2D *skeleton,
int rootBoneId,
int tipBoneId,
float dt = 1.f);
67 int getTraceSize()
const;
72 bool solveChainImpl(
Skeleton2D *skeleton,
int rootBoneId,
int tipBoneId,
75 ::ik::solver2d solver_;
76 bool keepTrace_ =
false;
77 int maxIterations_ = 16;
78 float tolerance_ = 1e-3f;
80 float influence_ = 1.f;
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
const SquirrelValueOptions & options
Script-facing 2D skeleton + pose state (ik::skeleton2d + ik::ecs2d). Bone indices are stable after ea...
FABRIK solver for Skeleton2D. Script type: Solver2D.
~Solver2D()=default
Releases solver state.
Solver2D()=default
Creates a 2D FABRIK solver with default tolerances.
Solver2D & operator=(const Solver2D &)=delete
Solver2D(const Solver2D &)=delete
Options shared by the chain-scoped FABRIK solve used by Solver2D / Solver3D. These mirror the knobs o...