50 INLINE
bool set_pos(
const LVecBase3 &pos);
51 INLINE
bool set_pos(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
52 INLINE
bool set_x(PN_stdfloat x);
53 INLINE
bool set_y(PN_stdfloat y);
54 INLINE
bool set_z(PN_stdfloat z);
56 INLINE
bool set_hpr(
const LVecBase3 &hpr);
57 INLINE
bool set_hpr(PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
58 INLINE
bool set_h(PN_stdfloat h);
59 INLINE
bool set_p(PN_stdfloat p);
60 INLINE
bool set_r(PN_stdfloat r);
62 INLINE
bool set_pos_hpr(
const LVecBase3 &pos,
const LVecBase3 &hpr);
63 INLINE
bool set_pos_hpr(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
65 INLINE
const LPoint3 &get_sample_pos()
const;
66 INLINE
const LVecBase3 &get_sample_hpr()
const;
68 INLINE
void set_phony_timestamp(
double timestamp = 0.0,
bool period_adjust =
false);
70 INLINE
void set_timestamp(
double timestamp);
72 INLINE
bool has_most_recent_timestamp()
const;
73 INLINE
double get_most_recent_timestamp()
const;
76 void clear_positions(
bool reset_velocity);
78 INLINE
bool compute_smooth_position();
79 bool compute_smooth_position(
double timestamp);
80 bool get_latest_position();
82 INLINE
const LPoint3 &get_smooth_pos()
const;
83 INLINE
const LVecBase3 &get_smooth_hpr()
const;
85 INLINE
void apply_smooth_pos(
NodePath &node)
const;
86 INLINE
void apply_smooth_pos_hpr(
NodePath &pos_node,
NodePath &hpr_node)
const;
87 INLINE
void apply_smooth_hpr(
NodePath &node)
const;
89 INLINE
void compute_and_apply_smooth_pos(
NodePath &node);
90 INLINE
void compute_and_apply_smooth_pos_hpr(
NodePath &pos_node,
NodePath &hpr_node);
91 INLINE
void compute_and_apply_smooth_hpr(
NodePath &hpr_node);
93 INLINE PN_stdfloat get_smooth_forward_velocity()
const;
94 INLINE PN_stdfloat get_smooth_lateral_velocity()
const;
95 INLINE PN_stdfloat get_smooth_rotational_velocity()
const;
96 INLINE
const LVecBase3 &get_forward_axis()
const;
106 enum PredictionMode {
113 INLINE
void set_smooth_mode(SmoothMode mode);
114 INLINE SmoothMode get_smooth_mode();
116 INLINE
void set_prediction_mode(PredictionMode mode);
117 INLINE PredictionMode get_prediction_mode();
119 INLINE
void set_delay(
double delay);
120 INLINE
double get_delay();
122 INLINE
void set_accept_clock_skew(
bool flag);
123 INLINE
bool get_accept_clock_skew();
125 INLINE
void set_max_position_age(
double age);
126 INLINE
double get_max_position_age();
128 INLINE
void set_expected_broadcast_period(
double period);
129 INLINE
double get_expected_broadcast_period();
131 INLINE
void set_reset_velocity_age(
double age);
132 INLINE
double get_reset_velocity_age();
134 INLINE
void set_directional_velocity(
bool flag);
135 INLINE
bool get_directional_velocity();
137 INLINE
void set_default_to_standing_still(
bool flag);
138 INLINE
bool get_default_to_standing_still();
140 void output(std::ostream &out)
const;
141 void write(std::ostream &out)
const;
144 void set_smooth_pos(
const LPoint3 &pos,
const LVecBase3 &hpr,
146 void linear_interpolate(
int point_before,
int point_after,
double timestamp);
147 void compute_velocity(
const LVector3 &pos_delta,
148 const LVecBase3 &hpr_delta,
151 void record_timestamp_delay(
double timestamp);
152 INLINE
double get_avg_timestamp_delay()
const;
167 LVecBase3 _smooth_hpr;
168 LVector3 _forward_axis;
169 double _smooth_timestamp;
170 bool _smooth_position_known;
171 bool _smooth_position_changed;
172 bool _computed_forward_axis;
174 double _smooth_forward_velocity;
175 double _smooth_lateral_velocity;
176 double _smooth_rotational_velocity;
178 bool _has_most_recent_timestamp;
179 double _most_recent_timestamp;
184 int _last_point_before;
185 int _last_point_after;
193 int _net_timestamp_delay;
194 double _last_heard_from;
196 SmoothMode _smooth_mode;
197 PredictionMode _prediction_mode;
199 bool _accept_clock_skew;
200 double _max_position_age;
201 double _expected_broadcast_period;
202 double _reset_velocity_age;
203 bool _directional_velocity;
204 bool _default_to_standing_still;