vmmlib
1.13.0
Templatized C++ vector and matrix math library
Main Page
Related Pages
Classes
Files
File List
types.hpp
1
/*
2
* Copyright (c) 2016 Stefan.Eilemann@epfl.ch
3
*
4
* This file is part of VMMLib <https://github.com/VMML/vmmlib/>
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are met:
8
*
9
* Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer. Redistributions in binary
11
* form must reproduce the above copyright notice, this list of conditions and
12
* the following disclaimer in the documentation and/or other materials provided
13
* with the distribution. Neither the name of the Visualization and Multimedia
14
* Lab, University of Zurich nor the names of its contributors may be used to
15
* endorse or promote products derived from this software without specific prior
16
* written permission.
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
* POSSIBILITY OF SUCH DAMAGE.
28
*/
29
#ifndef __VMML__VMMLIB_TYPES__HPP__
30
#define __VMML__VMMLIB_TYPES__HPP__
31
32
#include <sys/types.h>
33
#ifdef _MSC_VER
34
#include <basetsd.h>
35
typedef
UINT8 uint8_t;
36
#else
37
#include <stdint.h>
38
#endif
39
40
namespace
vmml
41
{
42
template
<
size_t
M,
size_t
N,
typename
T>
43
class
Matrix;
44
template
<
size_t
M,
typename
T>
45
class
vector
;
46
template
<
typename
T>
47
class
AABB
;
48
template
<
typename
T>
49
class
Frustum
;
50
template
<
typename
T>
51
class
FrustumCuller
;
52
template
<
typename
T>
53
class
Quaternion
;
54
template
<
typename
T>
55
class
Ray
;
56
57
typedef
Matrix<2, 2, double>
Matrix2d
;
58
typedef
Matrix<2, 2, float>
Matrix2f
;
59
typedef
Matrix<3, 3, double>
Matrix3d
;
60
typedef
Matrix<3, 3, float>
Matrix3f
;
61
typedef
Matrix<4, 4, double>
Matrix4d
;
62
typedef
Matrix<4, 4, float>
Matrix4f
;
63
64
typedef
vector<2, float>
Vector2f
;
65
typedef
vector<2, double>
Vector2d
;
66
typedef
vector<2, int>
Vector2i
;
67
typedef
vector<2, unsigned>
Vector2ui
;
68
typedef
vector<3, double>
Vector3d
;
69
typedef
vector<3, float>
Vector3f
;
70
typedef
vector<3, int>
Vector3i
;
71
typedef
vector<3, uint8_t>
Vector3ub
;
72
typedef
vector<3, unsigned>
Vector3ui
;
73
typedef
vector<4, double>
Vector4d
;
74
typedef
vector<4, float>
Vector4f
;
75
typedef
vector<4, int>
Vector4i
;
76
typedef
vector<4, uint8_t>
Vector4ub
;
77
typedef
vector<4, unsigned>
Vector4ui
;
78
79
typedef
Quaternion<double>
Quaterniond
;
80
typedef
Quaternion<float>
Quaternionf
;
81
82
typedef
Frustum<double>
Frustumd
;
83
typedef
Frustum<float>
Frustumf
;
84
85
typedef
FrustumCuller<double>
FrustumCullerd
;
86
typedef
FrustumCuller<float>
FrustumCullerf
;
87
88
typedef
AABB<double>
AABBd
;
89
typedef
AABB<float>
AABBf
;
90
91
typedef
Ray<double>
Rayd
;
92
typedef
Ray<float>
Rayf
;
93
}
94
95
#endif
vmml::Frustum
Represents a frustum, following OpenGL conventions.
Definition:
frustum.hpp:56
vmml::FrustumCuller
Helper class to perform OpenGL view frustum culling.
Definition:
frustumCuller.hpp:47
vmml
Definition:
aabb.hpp:44
vmml::AABB
An axis-aligned bounding box.
Definition:
aabb.hpp:47
vmml::Quaternion
Definition:
quaternion.hpp:50
vmml::Matrix
Matrix with R rows and C columns of element type T.
Definition:
matrix.hpp:52
vmml::Ray
Definition:
ray.hpp:48
vmml::vector
Definition:
types.hpp:45
install
include
vmmlib
types.hpp
Generated on Tue Jun 5 2018 00:11:41 for vmmlib by
1.8.11