Lightmetrica
0.0.1.50dbee3 (yosakoi)
Main Page
Classes
Files
File List
All
Classes
Functions
Variables
Typedefs
Enumerations
Enumerator
include
lightmetrica
math.transform.h
1
/*
2
Lightmetrica : A research-oriented renderer
3
4
Copyright (c) 2014 Hisanari Otsu
5
6
This program is free software: you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation, either version 3 of the License, or
9
(at your option) any later version.
10
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#pragma once
21
#ifndef LIB_LIGHTMETRICA_MATH_TRANSFORM_H
22
#define LIB_LIGHTMETRICA_MATH_TRANSFORM_H
23
24
#include "math.matrix.h"
25
26
LM_NAMESPACE_BEGIN
27
LM_MATH_NAMESPACE_BEGIN
28
29
template
<
typename
T> LM_FORCE_INLINE
TMat4<T>
Translate(
const
TMat4<T>
& m,
const
TVec3<T>
& v);
30
template
<
typename
T> LM_FORCE_INLINE
TMat4<T>
Translate(
const
TVec3<T>
& v);
31
template
<
typename
T> LM_FORCE_INLINE
TMat4<T>
Rotate(
const
TMat4<T>
& m, T angle,
const
TVec3<T>
& axis);
32
template
<
typename
T> LM_FORCE_INLINE
TMat4<T>
Rotate(T angle,
const
TVec3<T>
& axis);
33
template
<
typename
T> LM_FORCE_INLINE
TMat4<T>
Scale(
const
TMat4<T>
& m,
const
TVec3<T>
& v);
34
template
<
typename
T> LM_FORCE_INLINE
TMat4<T>
Scale(
const
TVec3<T>
& v);
35
template
<
typename
T> LM_FORCE_INLINE
TMat4<T>
LookAt(
const
TVec3<T>
& eye,
const
TVec3<T>
& center,
const
TVec3<T>
& up);
36
template
<
typename
T> LM_FORCE_INLINE
TMat4<T>
Perspective(T fovy, T aspect, T zNear, T zFar);
37
38
#if LM_SSE2
39
template
<> LM_FORCE_INLINE
Mat4f
Rotate(
const
Mat4f
& m,
float
angle,
const
Vec3f
& axis);
40
template
<> LM_FORCE_INLINE
Mat4f
Rotate(
float
angle,
const
Vec3f
& axis);
41
#endif
42
43
#if LM_AVX
44
template
<> LM_FORCE_INLINE
Mat4d
Rotate(
const
Mat4d
& m,
double
angle,
const
Vec3d
& axis);
45
template
<> LM_FORCE_INLINE
Mat4d
Rotate(
double
angle,
const
Vec3d
& axis);
46
#endif
47
48
LM_MATH_NAMESPACE_END
49
LM_NAMESPACE_END
50
51
#include "math.transform.inl"
52
53
#endif // LIB_LIGHTMETRICA_MATH_TRANSFORM_H
TMat4
Definition:
math.matrix.h:30
TVec3
Definition:
math.vector.h:31
Generated on Wed Oct 8 2014 01:07:59 for Lightmetrica by
1.8.8