1#pragma once
2
3#include <basis/seadTypes.h>
4#include <math/seadMatrix.h>
5#include <math/seadVector.h>
6
7#include "Library/Joint/JointControllerBase.h"
8
9namespace al {
10class ByamlIter;
11class LiveActor;
12
13class JointSpringController : public JointControllerBase {
14public:
15 JointSpringController();
16
17 void setChildLocalPos(const sead::Vector3f&);
18 void setChildLocalMtxPtr(const sead::Matrix34f*);
19 void setStability(f32);
20 void setFriction(f32);
21 void setLimitDegree(f32);
22 void setControlRate(f32);
23 void addControlRate(f32);
24 void subControlRate(f32);
25 void setJointName(const char*);
26 void load(const ByamlIter&);
27 void reset();
28 void calcChildPos(sead::Vector3f*, const sead::Matrix34f*) const;
29 bool canCompute(sead::Matrix34f*, sead::Vector3f*);
30 void calcJointCallback(s32, sead::Matrix34f*);
31 void compute(sead::Matrix34f*, const sead::Vector3f&, const sead::Vector3f&,
32 const sead::Vector3f&);
33 const char* getCtrlTypeName() const;
34
35private:
36 char* filler[0xe0];
37};
38
39} // namespace al
40