summaryrefslogtreecommitdiff
path: root/libs/JSystem/J3DGraphAnimator/J3DShapeTable.cpp
blob: 0af7668bebc4ec422aac14e8cb937df63771ac15 (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
35
36
37
38
#include "JSystem/J3DGraphAnimator/J3DShapeTable.h"

void J3DShapeTable::hide() {
    u16 shapeNum = mShapeNum;
    for (u16 i = 0; i < shapeNum; i++) {
        mShapeNodePointer[i]->onFlag(1);
    }
}

void J3DShapeTable::show() {
    u16 shapeNum = mShapeNum;
    for (u16 i = 0; i < shapeNum; i++) {
        mShapeNodePointer[i]->offFlag(1);
    }
}

void J3DShapeTable::initShapeNodes(J3DDrawMtxData* pMtxData, J3DVertexData* pVtxData) {
    u16 shapeNum = mShapeNum;
    for (u16 i = 0; i < shapeNum; i++) {
        J3DShape* shapeNode = mShapeNodePointer[i];

        shapeNode->setDrawMtxDataPointer(pMtxData);
        shapeNode->setVertexDataPointer(pVtxData);
        shapeNode->makeVcdVatCmd();
    }
}

void J3DShapeTable::sortVcdVatCmd() {
    u16 shapeNum = mShapeNum;
    for (u16 next = 0; next < shapeNum; next++) {
        for (u16 prev = 0; prev < next; prev++) {
            if (mShapeNodePointer[next]->isSameVcdVatCmd(mShapeNodePointer[prev])) {
                void* nodeVatCmd = mShapeNodePointer[prev]->getVcdVatCmd();
                mShapeNodePointer[next]->setVcdVatCmd(nodeVatCmd);
            }
        }
    }
}