Exemple #1
0
 /**
  * Calculate error distance, between last through this to next,
  * if this node is removed.  This metric provides for Douglas-Peuker
  * thinning.
  *
  * @param last Point previous in time to this node
  * @param node This node
  * @param next Point succeeding this node
  *
  * @return Distance error if this node is thinned
  */
 static unsigned DistanceMetric(const TracePoint &last,
                                const TracePoint &node,
                                const TracePoint &next) {
   const int d_this = last.FlatDistanceTo(node) + node.FlatDistanceTo(next);
   const int d_rem = last.FlatDistanceTo(next);
   return abs(d_this - d_rem);
 }
Exemple #2
0
 TraceDelta(const TracePoint &p_last, const TracePoint &p,
            const TracePoint &p_next)
   :point(p),
    elim_time(TimeMetric(p_last, p, p_next)),
    elim_distance(DistanceMetric(p_last, p, p_next)),
    delta_distance(p.FlatDistanceTo(p_last))
 {
   assert(elim_distance != null_delta);
 }
Exemple #3
0
 void Update(const TracePoint &p_last, const TracePoint &p_next) {
   elim_time = TimeMetric(p_last, point, p_next);
   elim_distance = DistanceMetric(p_last, point, p_next);
   delta_distance = point.FlatDistanceTo(p_last);
 }