1#pragma once
2
3#include <basis/seadTypes.h>
4#include <container/seadPtrArray.h>
5#include <math/seadMatrix.h>
6
7#include "Library/HostIO/HioNode.h"
8
9class IJointController {
10public:
11 virtual void calcJointCallback(s32, sead::Matrix34f*) = 0;
12 virtual void appendJointId(s32) = 0;
13 virtual const char* getCtrlTypeName() const = 0;
14 virtual bool tryValidateConstraints(u32) = 0;
15 virtual bool tryInvalidateConstraints(u32) = 0;
16};
17
18namespace al {
19
20class JointControllerBase : public HioNode, public IJointController {
21public:
22 JointControllerBase(s32);
23
24 void appendJointId(s32) override;
25 virtual bool tryValidateConstraints(u32) override;
26 virtual bool tryInvalidateConstraints(u32) override;
27
28 bool findNextId(s32*, s32) const;
29 bool isExistId(s32) const;
30
31private:
32 sead::PtrArray<s32> _8;
33 char filler[0x10];
34};
35
36} // namespace al
37