ProjectedTextures
Prototype software for spacial augmented reality applications.
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Enumerations
Enumerator
Macros
ShaderLamps
src
Similarity.h
Go to the documentation of this file.
1
#pragma once
2
3
#define _USE_MATH_DEFINES
4
5
#include <QMatrix4x4>
6
#include <QVector3D>
7
#include <QQuaternion>
8
#include <math.h>
9
10
14
class
Similarity
15
{
16
17
public
:
18
Similarity
();
19
Similarity
(QVector3D
translation
, QQuaternion
rotation
,
float
scale
=1.0f);
21
Similarity
(QMatrix4x4 rigidTransformation);
25
~Similarity
();
26
27
//getters
28
QVector3D
translation
(){
return
_translation
;}
29
QQuaternion
rotation
(){
return
_rotation
;}
30
QVector3D
rotationEuler
();
31
float
scale
(){
return
_scale
;}
32
virtual
QMatrix4x4
matrix
();
34
//setters
35
void
setTranslation
(QVector3D translation){
_translation
=
translation
;}
36
void
setRotation
(QQuaternion rotation){
_rotation
=
rotation
;}
37
void
setRotation
(
float
x,
float
y,
float
z);
38
void
setScale
(
float
scale
){
_scale
=
scale
;}
40
//static
41
static
QVector3D
distance
(
Similarity
a,
Similarity
b);
43
static
Similarity
interpolate
(
Similarity
a,
Similarity
b,
float
t);
48
static
Similarity
interpolate
(
Similarity
a,
Similarity
b,
float
tTrans,
float
tRot,
float
tScale=0.5f);
49
52
static
Similarity
bezier
(QList<Similarity> controlPoints,
float
t);
53
57
static
Similarity
responsiveBezier
(QList<Similarity> controlPoints,
float
maxTranslation,
float
maxRotation);
58
59
//operators
60
Similarity
operator*
(
Similarity
& other);
62
protected
:
63
QVector3D
_translation
;
64
QQuaternion
_rotation
;
65
float
_scale
;
69
static
QList<Similarity>
bezierRecursion
(QList<Similarity> input,
float
t);
71
static
QList<Similarity>
responsiveBezierRecursion
(QList<Similarity> input,
float
maxTranslation,
float
maxRotation);
74
};
75
Generated on Fri Feb 19 2016 11:04:41 for ProjectedTextures by
1.8.4