## class mpkSimpleSegmentChecker |

Simple lazy segment checker that discretizes a segment up to a certain resolution in c-space and checks the generated intermediate configurations for collisions using the mpkConfigChecker class.

### Public Fields

### Public Methods

### Public Members

int | num_bv_tests |

int | num_tri_tests |

int | num_points_tested |

double | min_interval_sz |

double | coll_t |

mpkSimpleSegmentChecker (mpkConfigChecker* ccheck, const mpkConfig* q0, const mpkConfig* q1, double epsilon, cspace_metric metric=EUCLID) | |

double | prio () |

bool | collision () |

enum | collcheck_mode |

The checker can be embedded with other checkers in a priority queue for testing entire paths (sequences of segments). To this end, the checker offers performing single iteration steps and a function that returns, after each iteration, the priority of further examining the segment.Each iteration step of the checker examines a number of 2^curr_bisection_depth equally spaced points on the segment. The points are chosen such that they fall between all the points that were checked before at previous iteration steps with smaller bisection depths. The point for depth 0 is thus located at t=0.5, for depth 1 the points are located at t=0.25 and t=0.75, for depth 2 at t=0.125, t=0.375, t=0.625 and t=0.875 and so on. The time required by this function thus increases exponentially with each call.

The priority of examining the segment is proportional to the (c-space) length of the untested subsegments between the intermediate tested points.

**mpkSimpleSegmentChecker(mpkConfigChecker* ccheck, const mpkConfig* q0, const mpkConfig* q1, double epsilon, cspace_metric metric=EUCLID)****Parameters:****ccheck**- simple point checker for testing intermediate points.**q0**- one endpoint of segment**q1**- the other endpoint (neither endpoint is tested explicitly by the segment checker)**epsilon**- c-space resolution up to which the segment is bisected by additional intermediate points. When the (c-space) distance between sampled intermediate points has fallen below**epsilon**, the segment is considered collision-free.**metric**- c-space metric for determining the length of the (sub-)segment(s); either**EUCLID**or**L_INFINITY**(max-norm).**double prio()**- Returns the current priority of the segment which is
proportional to the lengths of the untested subsegments between
the points that have been sampled and tested so far.
**enum collcheck_mode**- Performs a single iteration step of the checker.
**Returns:**-
**true**if the status of the segment has not yet been determined. Further calls are required to determine the status. In this case, calls to**collision()**will return**false**which means that no collision has been found yet and thus (so far) the segment is assumed to be free.

**false**when the status of the segment has been determined: resolution reached or collision found. Further calls are not necessary. The status can then be queried using the**collision()**method.

**bool collision()**- Returns
**true**if it the segment has been found to be colliding and**false**if the segment is assumed to be free. In the latter case, there is no guarantee that the segment is actually collision-free but the probability of a correct answer increases with decreasing resolution . **int num_bv_tests**- Number of BV pair tests performed so far.
**int num_tri_tests**- Number of triangle pair tests performed so far.
**int num_points_tested**- Number of points on segments
**double min_interval_sz**- Normalized resolution up to which segment has been checked
(initially 1 and then halved by each call to
**iteration_step()**. **double coll_t**- Normalized parameter corresponding to collision point on
segment (between 0 and 1). Meaningless unless collision indicated
by
**collision()**.

**This class has no child classes.**

**See Also:**- mpkConfigChecker

*Alphabetic index* *HTML hierarchy of classes or Java*

This page was generated with the help of DOC++.