![]() |
Fréchet View
1.6.0
A Tool for Exploring Fréchet Distance Algorithms
|
class for computing reachability structures and graphs.
Classes | |
| class | BoundarySegment |
| boundary interval in the reachability structure. Represents an interval on the boundary of the FreeSpace (bottom.left,top, or right) More... | |
| struct | BoundsIndex |
| mapping within a GraphModel More... | |
| class | CalculateTask |
| a sub-task, computing a region of the reachability structure More... | |
| class | FSPath |
| Calculates a feasible path in the Free-Space given a start point (0,0) and an end point (n-1,m-1). More... | |
| class | Graph |
| Represents a Reachability Graph. Vertices correspond to intervals in the reachability structure, broken down to the most fine-grained intervals. More... | |
| class | GraphCL |
| Reachability Graph with additional storage in GPU memory. More... | |
| class | GraphModel |
| model the mapping of free-space intervals to nodes in a frechet::reach::Graph. More... | |
| class | GraphModelAxis |
| manages a mapping between free-space intervals (continous, floating point) to reachability graph nodes (discrete, integer) More... | |
| struct | IndexRange |
| a range of node indices in a Reachability Graph More... | |
| class | MergeTask |
| a sub-taks, performing the merging of two reachability structures More... | |
| struct | Placement |
| placement of a diagonal point in free-space diagram When calculating valid placements in [buchin06] More... | |
| struct | PointerInterval |
| describes l,h pointers. Both pointers are assumed to point into the same rectangle section (right-top OR bottom-left) More... | |
| class | Structure |
| The Reachability Structure; maintains a list of intervals on the border of Free Space, along with pointers to reachable intervals on the opposite side. More... | |
| class | StructureIterator |
| The StructureIterator class. More... | |
| class | StructureTask |
| task object for parallel execution. When the reachability structur is computed in parallel threads, we create a tree of task objects that are distributed over threads. More... | |
Typedefs | |
| typedef BoundarySegment * | Pointer |
| (dumb) pointer to a BoundarySegment object More... | |
| typedef data::LinkedList< BoundarySegment > | BoundaryList |
| a double-linked list of reachability segments. makes up one of the four edges of a reachability structure More... | |
| typedef boost::shared_ptr< Graph > | GraphPtr |
| typedef std::vector< frechet::reach::Placement > | Placements |
| a list of Placement objects More... | |
Enumerations | |
| enum | Type : uint8_t { NON_ACCESSIBLE, REACHABLE, SEE_THROUGH } |
| Segment Types. More... | |
| enum | Orientation : uint8_t { HORIZONTAL =0, VERTICAL =1 } |
| Segment Orientation. More... | |
| enum | Direction : uint8_t { FIRST =0, SECOND =1, BOTTOM_LEFT = FIRST, RIGHT_TOP = SECOND, FORWARD = RIGHT_TOP, BACKWARD = BOTTOM_LEFT, COUNTER_CLOCKWISE = RIGHT_TOP, CLOCKWISE = BOTTOM_LEFT } |
| direction of a Pointer inside the reachability structure. More... | |
| enum | Bias : uint8_t { UNBIASED =0, LOWER =1, UPPER =2, LOWER_UPPER =3 } |
| bias of a GraphModel boundary (how shall we explain this?) More... | |
Functions | |
| Orientation | opposite (Orientation ori) |
| Orientation & | operator++ (Orientation &ori) |
| pre-increment an orientation variable. Note that an orientation variable can only be incremented once from HORIZONTAL to VERTICAL. Incrementing VERTICAL causes an undefined result. More... | |
| Direction | opposite (Direction dir) |
| Direction & | operator++ (Direction &dir) |
| pre-increment a direction variable. Note that a direction variable can only be incremented once from FIRST to SECOND. Incrementing SECOND causes an undefined result. More... | |
| Pointer | min (const Pointer a, const Pointer b) |
| minimum of two reachability intervals; compare lower bound, then upper bound More... | |
| Pointer | min (const PointerInterval &ival) |
| minimum of two reachability intervals; compare lower bound, then upper bound More... | |
| Pointer | min (const PointerInterval &a, const PointerInterval &b) |
| minimum of two reachability intervals; compare lower bound, then upper bound More... | |
| Pointer | max (const Pointer a, const Pointer b) |
| maximum of two reachability intervals; compare lower bound, then upper bound More... | |
| Pointer | max (const PointerInterval &ival) |
| maximum of two reachability intervals; compare lower bound, then upper bound More... | |
| Pointer | max (const PointerInterval &a, const PointerInterval &b) |
| maximum of two reachability intervals; compare lower bound, then upper bound More... | |
| int | compare_interval (Pointer a, Pointer b) |
| compare two pointers in the same part of a reachability structure (either right-top, or bottom-left) More... | |
| int | compare_interval (const PointerInterval &ival) |
| compare two pointers in the same part of a reachability structure (either right-top, or bottom-left) More... | |
| bool | empty_interval (Pointer a, Pointer b) |
| test intersection of intervals More... | |
| bool | empty_interval (const PointerInterval &ival) |
| test intersection of intervals More... | |
| bool | empty_see_through_interval (Pointer p) |
| test intersection of intervals. Assumes a SEE_THROUGH segment. More... | |
| int | compare_pointers (Pointer a, Pointer b) |
| compare two pointers on opposite parts of a reachability structure (eitehr left->right-top, or bottom->right-top) More... | |
| std::ostream & | operator<< (std::ostream &out, const BoundaryList &list) |
| print operator for debugging More... | |
| GraphPtr | newGraph (const GraphModel::ptr model) |
| GraphPtr | newGraph (const GraphModel::ptr model, IndexRange hmask) |
| GraphPtr | newGraph (const GraphModel::ptr model, Structure &str) |
| Bias | operator| (Bias a, Bias b) |
| union operator More... | |
| Bias & | operator|= (Bias &a, Bias b) |
| union operator More... | |
| std::ostream & | operator<< (std::ostream &out, const Structure &str) |
| print operator used for debugging; prints diagnostic info about a reachability structure More... | |
a double-linked list of reachability segments. makes up one of the four edges of a reachability structure
Definition at line 461 of file boundary.h.
| typedef boost::shared_ptr<Graph> frechet::reach::GraphPtr |
Definition at line 14 of file graph_m4ri.h.
| typedef std::vector<frechet::reach::Placement> frechet::reach::Placements |
a list of Placement objects
Definition at line 144 of file graph_model.h.
| typedef BoundarySegment* frechet::reach::Pointer |
(dumb) pointer to a BoundarySegment object
Definition at line 55 of file boundary.h.
| enum frechet::reach::Bias : uint8_t |
bias of a GraphModel boundary (how shall we explain this?)
| Enumerator | |
|---|---|
| UNBIASED | boundary is not inclusive to any interval |
| LOWER | boundary is inclusive to adjacent lower interval |
| UPPER | boundary is inclusive to adjacent upper interval |
| LOWER_UPPER | |
Definition at line 150 of file graph_model.h.
| enum frechet::reach::Direction : uint8_t |
direction of a Pointer inside the reachability structure.
Direction describes three (related) concepts:
the orientation of an l,h interval, or traversal sequence of segments
As you can see, vertical edges are traversed bottom-up. Horizontal edges are traversed left-to-right.
Each BoundarySegment knows its Direction. The l,h pointers of a segement always point into the opposite segment.
end <-- TOP = part of SECOND segment
traversal <-- traverse COUNTER-CLOCKWISE
O-----------+-----------+-----------+-----------+-----------+
| / |
| / ^|
+ / / |
| / / |
| / BACKWARD pointer / |
^ + / / + ^
| | / / | | traverse COUNTER-CLOCKWISE
| / / |
LEFT + / / + RIGHT
=FIRST| / / | = part of SECOND segment
| / / |
+ / / +
| / / |
| / / |
+ v / +
| / |
| / |
+ / FORWARD pointer +
| / |
| / |
+ / +
| / |
| / |
+-----------+-----------+-----------+-----------+-----------O start traversal
<-- BOTTOM = part of FIRST segment
<-- traverse CLOCKWISE Definition at line 115 of file boundary.h.
| enum frechet::reach::Orientation : uint8_t |
Segment Orientation.
some segments are horizontal, others are vertical.
| Enumerator | |
|---|---|
| HORIZONTAL | |
| VERTICAL | |
Definition at line 31 of file boundary.h.
| enum frechet::reach::Type : uint8_t |
Segment Types.
each segment of a reachability structure is labelled with its reachability status
Definition at line 17 of file boundary.h.
compare two pointers in the same part of a reachability structure (either right-top, or bottom-left)
we assume that both intervals are on the same Direction
| a | pointer to a segment, in the same part as b |
| b | pointer to a segment, in the same part as a |
Definition at line 148 of file boundary.cpp.
| int frechet::reach::compare_interval | ( | const PointerInterval & | ival | ) |
compare two pointers in the same part of a reachability structure (either right-top, or bottom-left)
| ival | a segment interval |
Definition at line 186 of file boundary.cpp.
compare two pointers on opposite parts of a reachability structure (eitehr left->right-top, or bottom->right-top)
assumes pointers on different directions
| a | pointer to a segment, in the opposite part as b |
| b | pointer to a segment, in the opposite part as a |
Definition at line 214 of file boundary.cpp.
test intersection of intervals
| a | pointer to a segment, in the same part as b |
| b | pointer to a segment, in the same part as a |
Definition at line 191 of file boundary.cpp.
| bool frechet::reach::empty_interval | ( | const PointerInterval & | ival | ) |
test intersection of intervals
| ival | a segment interval |
Definition at line 197 of file boundary.cpp.
| bool frechet::reach::empty_see_through_interval | ( | Pointer | p | ) |
test intersection of intervals. Assumes a SEE_THROUGH segment.
l,h pointer must point FORWARD, resp. BACKWARD
| p | a segment interval |
Definition at line 203 of file boundary.cpp.
maximum of two reachability intervals; compare lower bound, then upper bound
| a | a pointer to a reachability interval |
| b | a pointer to a reachability interval |
Definition at line 70 of file boundary.cpp.
| Pointer frechet::reach::max | ( | const PointerInterval & | ival | ) |
maximum of two reachability intervals; compare lower bound, then upper bound
| ival | an interval of l,h reachability intervals |
Definition at line 81 of file boundary.cpp.
| Pointer frechet::reach::max | ( | const PointerInterval & | a, |
| const PointerInterval & | b | ||
| ) |
maximum of two reachability intervals; compare lower bound, then upper bound
| a | an interval of l,h reachability intervals |
| b | an interval of l,h reachability intervals |
Definition at line 86 of file boundary.cpp.
minimum of two reachability intervals; compare lower bound, then upper bound
| a | a pointer to a reachability interval |
| b | a pointer to a reachability interval |
Definition at line 49 of file boundary.cpp.
| Pointer frechet::reach::min | ( | const PointerInterval & | ival | ) |
minimum of two reachability intervals; compare lower bound, then upper bound
| ival | an interval of l,h reachability intervals |
Definition at line 60 of file boundary.cpp.
| Pointer frechet::reach::min | ( | const PointerInterval & | a, |
| const PointerInterval & | b | ||
| ) |
minimum of two reachability intervals; compare lower bound, then upper bound
| a | an interval of l,h reachability intervals |
| b | an interval of l,h reachability intervals |
Definition at line 65 of file boundary.cpp.
| GraphPtr frechet::reach::newGraph | ( | const GraphModel::ptr | model | ) |
Definition at line 12 of file graph_cl.cpp.
| GraphPtr frechet::reach::newGraph | ( | const GraphModel::ptr | model, |
| IndexRange | hmask | ||
| ) |
Definition at line 20 of file graph_cl.cpp.
| GraphPtr frechet::reach::newGraph | ( | const GraphModel::ptr | model, |
| Structure & | str | ||
| ) |
Definition at line 28 of file graph_cl.cpp.
|
inline |
pre-increment an orientation variable. Note that an orientation variable can only be incremented once from HORIZONTAL to VERTICAL. Incrementing VERTICAL causes an undefined result.
| ori | an orientation |
Definition at line 50 of file boundary.h.
pre-increment a direction variable. Note that a direction variable can only be incremented once from FIRST to SECOND. Incrementing SECOND causes an undefined result.
| dir | a direction |
Definition at line 150 of file boundary.h.
| std::ostream & frechet::reach::operator<< | ( | std::ostream & | out, |
| const BoundaryList & | list | ||
| ) |
print operator for debugging
Definition at line 272 of file boundary.cpp.
| std::ostream & frechet::reach::operator<< | ( | std::ostream & | out, |
| const Structure & | str | ||
| ) |
print operator used for debugging; prints diagnostic info about a reachability structure
| out | output stream |
| str | reachability structur |
Definition at line 1051 of file structure.cpp.
union operator
| a | a bias |
| b | another bias |
Definition at line 105 of file graph_model.cpp.
union operator
| a | a bias, updated on return |
| b | another bias |
Definition at line 109 of file graph_model.cpp.
|
inline |
| ori | an orientation |
Definition at line 39 of file boundary.h.