42 const char *listen_tracker_name,
43 unsigned channels, vrpn_float64 vecMinCutoff = 1.15,
44 vrpn_float64 vecBeta = 0.5, vrpn_float64 vecDerivativeCutoff = 1.2,
45 vrpn_float64 quatMinCutoff = 1.5, vrpn_float64 quatBeta = 0.5,
46 vrpn_float64 quatDerivativeCutoff = 1.2);
55 struct timeval *d_last_report_times;
79 , std::string origTrackerName
80 , vrpn_int32 numSensors = 1
81 , vrpn_float64 predictionTime = 1.0 / 60.0
82 ,
bool estimateVelocity =
true
93 static int test(
void);
103 vrpn_float64 d_rotationAmount[4];
105 vrpn_float64 d_lastPosition[3];
106 vrpn_float64 d_lastOrientation[4];
107 struct timeval d_lastReportTime;
112 static void VRPN_CALLBACK handle_tracker_report(
void *userdata,
114 static void VRPN_CALLBACK handle_tracker_velocity_report(
void *userdata,
120 void sendNewPrediction(vrpn_int32 sensor);
virtual void mainloop()=0
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
Generic connection class not specific to the transport mechanism.
Use angular velocity reports, if available, to predict the future orientation.
std::vector< RotationState > d_rotationStates
vrpn_Tracker_Remote * d_origTracker
vrpn_float64 d_predictionTime
Tracker filter based on the one-Euro filter by Jan Ciger jan.ciger@reviatech.com
bool d_receivedAngularVelocityReport
double d_rotationInterval
Header file that completely implements a direction and orientation filter on tracking reports; it doe...