24 static const int max_position_reports = 10;
25 static const int max_timestamp_delays = 10;
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;
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This class handles smoothing of sampled motion points over time, e.g.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.