ScummVM API documentation
3dutils.h
1
/* ScummVM - Graphic Adventure Engine
2
*
3
* ScummVM is the legal property of its developers, whose names
4
* are too numerous to list here. Please refer to the COPYRIGHT
5
* file distributed with this source distribution.
6
*
7
* This program is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation, either version 3 of the License, or
10
* (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program. If not, see <http://www.gnu.org/licenses/>.
19
*
20
*/
21
22
/*
23
* This file is based on WME.
24
* http://dead-code.org/redir.php?target=wme
25
* Copyright (c) 2003-2013 Jan Nedoma and contributors
26
*/
27
28
#ifndef WINTERMUTE_3DUTILS_H
29
#define WINTERMUTE_3DUTILS_H
30
31
#ifdef ENABLE_WME3D
32
#include "engines/wintermute/base/gfx/xmath.h"
33
#endif
34
35
namespace
Wintermute {
36
37
#define DX_PI ((float)3.141592654f)
38
#define degToRad(_val) (_val * DX_PI * (1.0f / 180.0f))
39
#define radToDeg(_val) (_val * (180.0f / DX_PI))
40
41
class
C3DUtils
{
42
public
:
43
static
bool
intersectTriangle(
const
DXVector3
&orig,
const
DXVector3
&dir,
44
DXVector3
&v0,
DXVector3
&v1,
DXVector3
&v2,
45
float
*t,
float
*u,
float
*v);
46
static
bool
pickGetIntersect(
DXVector3
linestart,
DXVector3
lineend,
47
DXVector3
v0,
DXVector3
v1,
DXVector3
v2,
48
DXVector3
*intersection,
float
*distance);
49
static
DXMatrix
*matrixSetTranslation(
DXMatrix
*mat,
DXVector3
*vec);
50
static
DXMatrix
*matrixSetRotation(
DXMatrix
*mat,
DXVector3
*vec);
51
static
void
decomposeMatrixSimple(
const
DXMatrix
*mat,
DXVector3
*transVec,
52
DXVector3
*scaleVec,
DXQuaternion
*rotQ);
53
};
54
55
}
// End of namespace Wintermute
56
57
#endif
Wintermute::C3DUtils
Definition:
3dutils.h:41
Wintermute::DXMatrix
Definition:
xmath.h:139
Wintermute::DXQuaternion
Definition:
xmath.h:115
Wintermute::DXVector3
Definition:
xmath.h:72
engines
wintermute
base
gfx
3dutils.h
Generated on Sat Oct 24 2026 09:27:37 for ScummVM API documentation by
1.9.4