summaryrefslogtreecommitdiff
path: root/src/JSystem/J3DGraphLoader/J3DJointFactory.cpp
blob: d96f059e9d2594792c49cd4f1ce9192b7267844a (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
33
34
//
// Generated by dtk
// Translation Unit: J3DJointFactory.cpp
//

#include "JSystem/JSystem.h" // IWYU pragma: keep

#include "JSystem/J3DGraphLoader/J3DJointFactory.h"
#include "JSystem/JSupport/JSupport.h"
#include "JSystem/J3DGraphAnimator/J3DJoint.h"

/* 802FE1A4-802FE1FC       .text __ct__15J3DJointFactoryFRC13J3DJointBlock */
J3DJointFactory::J3DJointFactory(const J3DJointBlock& jointBlock) {
    mJointInitData = JSUConvertOffsetToPtr<J3DJointInitData>(&jointBlock, (u32)jointBlock.mpJointInitData);
    mIndexTable = JSUConvertOffsetToPtr<u16>(&jointBlock, (u32)jointBlock.mpIndexTable);
}

/* 802FE1FC-802FE390       .text create__15J3DJointFactoryFi */
J3DJoint* J3DJointFactory::create(int jntNo) {
    J3DJoint* joint = new J3DJoint();
    joint->mJntNo = jntNo;
    joint->mKind = mJointInitData[mIndexTable[jntNo]].mKind;
    joint->mScaleCompensate = mJointInitData[mIndexTable[jntNo]].mScaleCompensate;
    joint->mTransformInfo = mJointInitData[mIndexTable[jntNo]].mTransformInfo;
    joint->mRadius = mJointInitData[mIndexTable[jntNo]].mRadius;
    joint->mMin = mJointInitData[mIndexTable[jntNo]].mMin;
    joint->mMax = mJointInitData[mIndexTable[jntNo]].mMax;
    joint->mMtxCalc = NULL;
    joint->mOldMtxCalc = NULL;
    if (joint->mScaleCompensate == 0xFF) {
        joint->mScaleCompensate = false;
    }
    return joint;
}