载入中...
搜索中...
未找到
Solver2D.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4#include "ik/ChainSolver.h"
5#include "ik/Skeleton2D.h"
6
7#include "ik.hpp"
8
9namespace eve::ik {
10
13public:
15 Solver2D() = default;
17 ~Solver2D() = default;
18
19 Solver2D(const Solver2D &) = delete;
20 Solver2D &operator=(const Solver2D &) = delete;
21
23 void setKeepTrace(bool keep);
25 bool getKeepTrace() const;
26
28 void setMaxIterations(int iterations);
30 int getMaxIterations() const;
32 void setTolerance(float tol);
34 float getTolerance() const;
36 void setForce(float force);
38 float getForce() const;
39
41 void setInfluence(float influence);
43 float getInfluence() const;
44
46 void clearTargets();
48 void addTarget(int boneId, float x, float y, float weight = 1.f);
50 int getTargetCount() const;
51
53 bool solve(Skeleton2D *skeleton);
55 void step(Skeleton2D *skeleton, float dt = 1.f);
56
62 bool solveChain(Skeleton2D *skeleton, int rootBoneId, int tipBoneId);
64 void stepChain(Skeleton2D *skeleton, int rootBoneId, int tipBoneId, float dt = 1.f);
65
67 int getTraceSize() const;
69 void clearTrace();
70
71private:
72 bool solveChainImpl(Skeleton2D *skeleton, int rootBoneId, int tipBoneId,
74
75 ::ik::solver2d solver_;
76 bool keepTrace_ = false;
77 int maxIterations_ = 16;
78 float tolerance_ = 1e-3f;
79 float force_ = 0.f;
80 float influence_ = 1.f;
81};
82
83} // namespace eve::ik
float y
Definition AnimClip.cpp:738
float x
Definition AnimClip.cpp:738
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
Definition Export.h:106
const SquirrelValueOptions & options
int iterations
Definition TreeMesh.cpp:311
float step
Definition TreeMesh.cpp:314
Script-facing 2D skeleton + pose state (ik::skeleton2d + ik::ecs2d). Bone indices are stable after ea...
Definition Skeleton2D.h:14
FABRIK solver for Skeleton2D. Script type: Solver2D.
Definition Solver2D.h:12
~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...
Definition ChainSolver.h:18