summaryrefslogtreecommitdiff
path: root/src/nw4r/g3d/g3d_dcc.cpp
blob: 7bcacf50119c7bdbcffa93b00c9cfbc76339d2ca (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
#include "nw4r/g3d.h" // IWYU pragma: export

#include "nw4r/math.h" // IWYU pragma: export

namespace nw4r {
namespace g3d {

void CalcTexMtx(math::MTX34 *pMtx, bool set, const TexSrt &rSrt, TexSrt::Flag flag, TexSrtTypedef::TexMatrixMode mode) {
    bool ident = true;

    if (mode == TexSrtTypedef::TEXMATRIXMODE_MAYA) {
        ident = !detail::dcc::CalcTexMtx_Maya(pMtx, set, rSrt, flag);
    } else if (mode == TexSrtTypedef::TEXMATRIXMODE_XSI) {
        ident = !detail::dcc::CalcTexMtx_Xsi(pMtx, set, rSrt, flag);
    } else /* TEXMATRIXMODE_3DSMAX */ {
        ident = !detail::dcc::CalcTexMtx_3dsmax(pMtx, set, rSrt, flag);
    }

    if (ident && set) {
        math::MTX34Identity(pMtx);
    }
}

void CalcTexMtx(math::MTX34 *pMtx, bool set, const TexSrt &rSrt, TexSrt::Flag flag) {
    bool ident = true;

    ident = !detail::dcc::CalcTexMtx_Basic(pMtx, set, rSrt, flag);

    if (ident && set) {
        math::MTX34Identity(pMtx);
    }
}

} // namespace g3d
} // namespace nw4r