summaryrefslogtreecommitdiff
path: root/src/SSystem/SComponent/c_m3d_g_lin.cpp
blob: e4a1a284c8339d69aaf45b10682fb6d91e2e83a9 (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
/**
 * c_m3d_g_lin.cpp
 *
 */

#include "SSystem/SComponent/c_m3d_g_lin.h"

cM3dGLin::cM3dGLin(const cXyz& start, const cXyz& end) {
    mStart = start;
    mEnd = end;
}

void cM3dGLin::SetStartEnd(const cXyz& start, const cXyz& end) {
    mStart = start;
    mEnd = end;
}

void cM3dGLin::SetStartEnd(const Vec& start, const Vec& end) {
    mStart.set(start);
    mEnd.set(end);
}

void cM3dGLin::CalcPos(Vec* out, f32 scale) const {
    cXyz tmp;
    PSVECSubtract(&mEnd, &mStart, &tmp);
    PSVECScale(&tmp, &tmp, scale);
    PSVECAdd(&tmp, &mStart, out);
}

void cM3dGLin::SetEnd(const cXyz& end) {
    mEnd = end;
}