Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LinearPrediction Class Reference

#include <prediction.h>

Inheritance diagram for LinearPrediction:
Prediction MixedPrediction

Public Member Functions

virtual QVector InterpolatePosition (Unit *un, double deltatime) const
 
virtual Quaternion InterpolateOrientation (Unit *un, double deltatime) const
 
virtual Transformation Interpolate (Unit *un, double deltatime) const
 
- Public Member Functions inherited from Prediction
 Prediction ()
 
virtual ~Prediction ()
 
virtual void InitInterpolation (Unit *un, const ClientState &last_packet_state, double elapsed_since_last_packet, double deltatime)
 

Additional Inherited Members

- Protected Attributes inherited from Prediction
QVector A0
 
QVector B
 
QVector A1
 
QVector A2
 
QVector A3
 
Vector VA
 
Vector VB
 
Vector AA
 
Vector AB
 
Quaternion OA
 
Quaternion OB
 
double deltatime
 

Detailed Description

Definition at line 46 of file prediction.h.

Member Function Documentation

Transformation LinearPrediction::Interpolate ( Unit un,
double  deltatime 
) const
virtual

Reimplemented from Prediction.

Reimplemented in MixedPrediction.

Definition at line 121 of file prediction.cpp.

References Prediction::A0, Prediction::A2, Prediction::B, Prediction::deltatime, VegaConfig::getVariable(), linear_interpolate_uncapped(), Prediction::OA, Prediction::OB, XMLSupport::parse_bool(), Prediction::VB, and vs_config.

Referenced by MixedPrediction::Interpolate(), InterpolateOrientation(), and InterpolatePosition().

122 {
123  static bool no_interp = XMLSupport::parse_bool( vs_config->getVariable( "network", "no_interpolation", "false" ) );
124  if (no_interp)
125  return Transformation( OB, B );
126  if (deltatime > this->deltatime || this->deltatime == 0) {
127  double delay = deltatime-this->deltatime;
128  //cerr << "Using new Pos "<<un->GetSerial()<<": A2=("<<A2.i<<",,"<<A2.k<<"), VB=("<<VB.i<<",,"<<VB.k<<"), delay="<<delay<<endl;
129  return Transformation( OB, A2+VB*delay );
130  } else {
131  const Transformation old_pos( OA, A0 ); //un->curr_physical_state);
132  const Transformation new_pos( OB, A2 );
133  //cerr << "Using OLD Pos "<<un->GetSerial()<<": A2=("<<A2.i<<",,"<<A2.k<<"), delay="<<(deltatime/this->deltatime)<<", A0=("<<A0.i<<",,"<<A0.k<<")"<<endl;
134  return linear_interpolate_uncapped( old_pos, new_pos, deltatime/this->deltatime );
135  }
136 }
Quaternion LinearPrediction::InterpolateOrientation ( Unit un,
double  deltatime 
) const
virtual

Implements Prediction.

Reimplemented in MixedPrediction.

Definition at line 116 of file prediction.cpp.

References Interpolate(), and Transformation::orientation.

Referenced by MixedPrediction::InterpolateOrientation().

117 {
118  return Interpolate( un, deltatime ).orientation;
119 }
QVector LinearPrediction::InterpolatePosition ( Unit un,
double  deltatime 
) const
virtual

Implements Prediction.

Reimplemented in MixedPrediction.

Definition at line 111 of file prediction.cpp.

References Interpolate(), and Transformation::position.

112 {
113  return Interpolate( un, deltatime ).position;
114 }

The documentation for this class was generated from the following files: