summaryrefslogtreecommitdiff
path: root/src/KingSystem/Physics/Rig/physSkeletonMapper.h
blob: 9295cb4416f59c6f38d96e81af3a00f203c8adb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once

#include <hostio/seadHostIONode.h>
#include "KingSystem/Physics/Rig/physBoneAccessor.h"
#include "KingSystem/Physics/Rig/physModelBoneAccessor.h"

class hkaSkeletonMapper;

namespace ksys::phys {

class SkeletonMapper : public sead::hostio::Node {
public:
    SkeletonMapper();
    virtual ~SkeletonMapper();

    bool init(hkaSkeletonMapper* skeleton_mapper, hkaSkeletonMapper* model_skeleton_mapper,
              gsys::Model* model, sead::Heap* heap);

    void mapPoseA();
    void mapPoseB();

    BoneAccessor& getBoneAccessor() { return mBoneAccessor; }
    ModelBoneAccessor& getModelBoneAccessor() { return mModelBoneAccessor; }

private:
    BoneAccessor mBoneAccessor;
    ModelBoneAccessor mModelBoneAccessor;
    hkaSkeletonMapper* mMapperA{};
    hkaSkeletonMapper* mMapperB{};
};

}  // namespace ksys::phys