VR-Forces Development_Version Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
vrvUtil
DtQuat.h
Go to the documentation of this file.
1
/******************************************************************************
2
** Copyright (c) 2010 MAK Technologies, Inc.
3
** All rights reserved.
4
******************************************************************************/
5
/******************************************************************************
6
** $RCSfile: $ $Revision: $ $State: $
7
******************************************************************************/
8
12
13
#pragma once
14
#include <
vrvUtil/vrvUtil.h
>
15
16
#include <matrix/vlVector.h>
17
18
namespace
makVrv
19
{
22
class
DtQuat
23
{
24
public
:
25
26
27
DtVector
xyz
;
28
double
w
;
29
31
inline
DtQuat
();
32
inline
DtQuat
(
double
x,
double
y,
double
z,
double
w
);
33
inline
DtQuat
(
const
DtVector
& i,
double
real);
34
36
inline
DtQuat
(
double
theta_z,
double
theta_y,
double
theta_x);
37
39
inline
DtQuat
(
const
DtVector
& angles);
40
42
inline
void
set
(
double
x,
double
y,
double
z,
double
w
);
43
45
inline
DtQuat
&
operator=
(
const
DtQuat
& q);
46
47
inline
DtQuat
operator+
(
const
DtQuat
& q)
const
;
48
inline
DtQuat
operator-
(
const
DtQuat
& q)
const
;
49
inline
DtQuat
operator*
(
const
DtQuat
& q)
const
;
50
inline
DtQuat
operator/
(
const
DtQuat
& q)
const
;
51
inline
DtQuat
operator*
(
double
scale)
const
;
52
inline
DtQuat
operator/
(
double
scale)
const
;
53
inline
DtQuat
operator-
()
const
;
54
inline
const
DtQuat
&
operator+=
(
const
DtQuat
& q);
55
inline
const
DtQuat
&
operator-=
(
const
DtQuat
& q);
56
inline
const
DtQuat
&
operator*=
(
const
DtQuat
& q);
57
inline
const
DtQuat
&
operator*=
(
double
scale);
58
inline
const
DtQuat
&
operator/=
(
double
scale);
59
61
inline
double
length
()
const
;
62
64
inline
double
length_squared
()
const
;
65
67
inline
void
normalize
();
68
70
inline
DtQuat
normalized
()
const
;
71
73
inline
void
conjugate
();
74
76
inline
void
invert
();
77
79
inline
DtQuat
log
()
const
;
80
82
inline
DtQuat
exp
()
const
;
83
85
inline
void
getMatrix4
(
double
matrix[16])
const
;
86
89
inline
void
getMatrix3
(
double
matrix[9])
const
;
90
92
static
inline
double
dot
(
const
DtQuat
& q1,
const
DtQuat
& q2);
93
95
static
inline
DtQuat
lerp
(
const
DtQuat
& q1,
const
DtQuat
& q2,
double
t);
96
98
static
inline
DtQuat
slerp
(
const
DtQuat
& q1,
const
DtQuat
& q2,
double
t);
99
101
static
inline
DtQuat
slerpNoInvert
(
const
DtQuat
& q1,
const
DtQuat
& q2,
double
t);
102
104
static
inline
DtQuat
squad
(
const
DtQuat
& q1,
const
DtQuat
& q2,
const
DtQuat
& a,
const
DtQuat
& b,
double
t);
105
107
static
inline
DtQuat
bezier
(
const
DtQuat
& q1,
const
DtQuat
& q2,
const
DtQuat
& a,
const
DtQuat
& b,
double
t);
108
110
static
inline
DtQuat
spline
(
const
DtQuat
& qnm1,
const
DtQuat
& qn,
const
DtQuat
& qnp1);
111
113
static
inline
DtQuat
from_axis_angle
(
const
DtVector
& axis,
double
angle);
114
116
inline
void
to_axis_angle
(
DtVector
& axis,
double
& angle)
const
;
117
119
inline
DtVector
rotate
(
const
DtVector
& v)
const
;
120
122
inline
DtVector
euler_angles
()
const
;
123
};
124
125
126
}
127
128
#define DtQuat_INL_
129
#include <vrvUtil/DtQuat.inl>
130
#undef DtQuat_INL_
Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (
www.mak.com
)