Vegastrike 0.5.1 rc1
1.0
Original sources for Vegastrike Evolved
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
prediction.h
Go to the documentation of this file.
1
#ifndef __PREDICTION_H
2
#define __PREDICTION_H
3
4
#include "
clientptr.h
"
5
#include "
gfx/quaternion.h
"
6
#include "
cubicsplines.h
"
7
8
enum
interpolationMethod
{
Linear
,
Spline
};
9
10
class
Prediction
11
{
12
protected
:
13
//A2 is the predicted position after InitInterpolation()
14
QVector
A0
,
B
,
A1
,
A2
,
A3
;
15
Vector
VA
,
VB
,
AA
,
AB
;
16
Quaternion
OA
,
OB
;
17
18
double
deltatime
;
19
20
public
:
Prediction
();
21
virtual
~Prediction
();
22
virtual
void
InitInterpolation
(
Unit
*un,
23
const
ClientState
&last_packet_state,
24
double
elapsed_since_last_packet,
25
double
deltatime
);
26
27
//Interpolate between current received position and predicted position at time 0+deltatime
28
//On the first call, deltatime is the lag value between client and server
29
//for the following calls deltatime = lag+elapsed time since we received last packet
30
virtual
QVector
InterpolatePosition
(
Unit
*un,
double
deltatime
)
const
= 0;
31
virtual
Quaternion
InterpolateOrientation
(
Unit
*un,
double
deltatime
)
const
= 0;
32
virtual
Transformation
Interpolate
(
Unit
*un,
double
deltatime
)
const
;
33
};
34
35
class
NullPrediction
:
public
Prediction
36
{
37
public
:
38
virtual
void
InitInterpolation
(
Unit
*un,
39
const
ClientState
&last_packet_state,
40
double
elapsed_since_last_packet,
41
double
deltatime
);
42
virtual
QVector
InterpolatePosition
(
Unit
*un,
double
deltatime )
const
;
43
virtual
Quaternion
InterpolateOrientation
(
Unit
*un,
double
deltatime )
const
;
44
};
45
46
class
LinearPrediction
:
virtual
public
Prediction
47
{
48
public
:
49
virtual
QVector
InterpolatePosition
(
Unit
*un,
double
deltatime
)
const
;
50
virtual
Quaternion
InterpolateOrientation
(
Unit
*un,
double
deltatime )
const
;
51
virtual
Transformation
Interpolate
(
Unit
*un,
double
deltatime )
const
;
52
};
53
54
class
CubicSplinePrediction
:
virtual
public
Prediction
55
{
56
private
:
57
CubicSpline
interpolation_spline;
58
public
:
59
virtual
void
InitInterpolation
(
Unit
*un,
60
const
ClientState
&last_packet_state,
61
double
elapsed_since_last_packet,
62
double
deltatime
);
63
virtual
QVector
InterpolatePosition
(
Unit
*un,
double
deltatime )
const
;
64
virtual
Quaternion
InterpolateOrientation
(
Unit
*un,
double
deltatime )
const
;
65
};
66
67
class
MixedPrediction
:
public
CubicSplinePrediction
68
,
public
LinearPrediction
69
{
70
public
:
71
virtual
QVector
InterpolatePosition
(
Unit
*un,
double
deltatime
)
const
;
72
virtual
Quaternion
InterpolateOrientation
(
Unit
*un,
double
deltatime )
const
;
73
virtual
Transformation
Interpolate
(
Unit
*un,
double
deltatime )
const
;
74
};
75
76
#endif
77
src
networking
prediction.h
Generated on Fri May 29 2015 23:07:37 for Vegastrike 0.5.1 rc1 by
1.8.4