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
39
40
41
42
43
44
|
void Move(const tbVector3 &vPosShip, const tbVector3 &vBoundMin, const tbVector3 &vBoundMax)
{
TB_INFO("Move() von Arrow wird ausgeführt");
// Hinter Schiff
mView = tbMatrixCamera(vPosShip, tbVector3(1.0f, 0.0f, 0.0f));
tbComputeClipPlanes(mView, mProj, &plFrustum);
if (tbAABoxVisible(vBoundMin, vBoundMax, &plFrustum))
{iPictureIndex = 1; bInRange = true;}
// Vor Schiff
mView = tbMatrixCamera(vPosShip, tbVector3(-1.0f, 0.0f, 0.0f));
tbComputeClipPlanes(mView, mProj, &plFrustum);
if (tbAABoxVisible(vBoundMin, vBoundMax, &plFrustum))
{bVisible = false; bInRange = true;}
// Rechts Schiff
mView = tbMatrixCamera(vPosShip, tbVector3(0.0f, 0.0f, 1.0f));
tbComputeClipPlanes(mView, mProj, &plFrustum);
if (tbAABoxVisible(vBoundMin, vBoundMax, &plFrustum))
{iPictureIndex = 2; bInRange = true;}
// Links Schiff
mView = tbMatrixCamera(vPosShip, tbVector3(0.0f, 0.0f, -1.0f));
tbComputeClipPlanes(mView, mProj, &plFrustum);
if (tbAABoxVisible(vBoundMin, vBoundMax, &plFrustum))
{iPictureIndex = 3; bInRange = true;}
// Über Schiff
mView = tbMatrixCamera(vPosShip, tbVector3(0.0f, 1.0f, 0.0f));
tbComputeClipPlanes(mView, mProj, &plFrustum);
if (tbAABoxVisible(vBoundMin, vBoundMax, &plFrustum))
{iPictureIndex = 4; bInRange = true;}
// Unter Schiff
mView = tbMatrixCamera(vPosShip, tbVector3(0.0f, -1.0f, 0.0f));
tbComputeClipPlanes(mView, mProj, &plFrustum);
if (tbAABoxVisible(vBoundMin, vBoundMax, &plFrustum))
{iPictureIndex = 5; bInRange = true;}
// Wenn nichts gepasst hat dann "No Target" Bild einblenden
if (bInRange == false)
iPictureIndex = 6;
}
|