13 class StructureIterator;
50 typedef boost::shared_ptr<Structure>
ptr;
57 Structure(
int concurrency=1,
volatile bool* cancelFlag=
nullptr);
114 return _boundary[ori][dir];
123 return _boundary[ori][dir];
208 void calculateColumns(
int i,
int j);
216 void singleCell(
int i,
int j);
241 void shift(
Point offset);
285 void calcRecursive(
const Rect& r);
291 void doCalcRecursive(
const Rect& r);
420 void clipSeeThroughPointer(
Pointer p);
452 void testCancelFlag();
468 typedef void (*assert_hook) (
475 void takeOwnership();
520 operator bool()
const {
return current; }
529 explicit operator Pointer() {
return current; }
569 virtual void start()=0;
581 typedef tbb::flow::continue_msg
msg_t;
583 typedef tbb::flow::continue_node<msg_t>
node_t;
606 virtual void start()
override;
636 virtual void start()
override;
649 #endif // STRUCTURE_H const BoundaryList & right() const
BoundaryList & first(Orientation ori)
void swap(gpuword **A, gpuword **B)
const BoundaryList & left() const
BoundaryList & second(Orientation ori)
a sub-task, computing a region of the reachability structure
model the mapping of free-space intervals to nodes in a frechet::reach::Graph.
task object for parallel execution. When the reachability structur is computed in parallel threads,...
boost::shared_ptr< Structure > ptr
smart pointer to a Structure object
BoundarySegment & operator *()
const FreeSpace::ptr freeSpace() const
global definitions for all algorithms.
StructureTask * child2
prerquisite task; only after child1 and child2 are finished, start the merging task
tbb::flow::continue_msg msg_t
used to connect nodes in the dependency graph
const BoundaryList & second(Orientation ori) const
static assert_hook before_merge
Direction
direction of a Pointer inside the reachability structure.
Pointer current
current location of the iterator
The StructureIterator class.
BoundaryList & horizontal(Direction dir)
first or second part of the reachability structure
BoundaryList & vertical(Direction dir)
first or second part of the reachability structure
boundary interval in the reachability structure. Represents an interval on the boundary of the FreeSp...
describes l,h pointers. Both pointers are assumed to point into the same rectangle section (right-top...
Structure * owner
the underlying reachability structure
BoundaryList & boundary(Orientation ori, Direction dir)
const BoundaryList & top() const
aux. data structure that is used to construct an initial reachability cell
BoundarySegment * operator ->()
volatile bool * cancelFlag
used when running ia a background thread to indicate cancellation by the user
BoundarySegment * Pointer
(dumb) pointer to a BoundarySegment object
QPointF Point
a point in the plane; with double floating point precision. This type is heavily used throughout all ...
a very simple Rectangle structure, with integer boundaries.
const BoundaryList & first(Orientation ori) const
Orientation
Segment Orientation.
tbb::flow::continue_node< msg_t > node_t
a node in the dependency graph
const FreeSpace::ptr fs
the underlying free-space; may be nullptr
second segment = right and top edge
const BoundaryList & boundary(Orientation ori, Direction dir) const
const Structure & str
the associated reachability structure
StructureTask * child1
prerquisite task; only after child1 and child2 are finished, start the merging task
Orientation & operator++(Orientation &ori)
pre-increment an orientation variable. Note that an orientation variable can only be incremented once...
int concurrency
number of parallel threads to use
const BoundaryList & bottom() const
Structure buddy
structure to merge with
The Reachability Structure; maintains a list of intervals on the border of Free Space,...
first segment = bottom and left edge
std::ostream & operator<<(std::ostream &out, const Structure &str)
print operator used for debugging; prints diagnostic info about a reachability structure
an interval of two double values.
node_t * node
a node in the dependency graph
boost::shared_ptr< FreeSpace > ptr
smart pointer to FreeSpace object
a sub-taks, performing the merging of two reachability structures