VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
aStarGraph.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 //vrf includes
15 #include <features/pathFeature.h>
18 
19 #include <vrfutil/asyncJob.h>
20 #include <vrfutil/kinematicTools.h>
21 #include <vrfutil/railSegment.h>
23 
24 //third party includes
25 #include <boost/graph/adjacency_list.hpp>
26 #include <boost/graph/properties.hpp>
27 #include <boost/graph/graph_traits.hpp>
28 #include <boost/function.hpp>
29 
30 #include <tbb/queuing_mutex.h>
31 #include <tbb/queuing_rw_mutex.h>
32 #include <atomic>
33 #include <tbb/mutex.h>
34 
35 //std lib includes
36 #include <list>
37 #include <map>
38 
39 namespace MAKVRinTerra
40 {
41  class DtAStarGraphDebugger;
42 
43  //Properties of each vertex
45  {
46  explicit VertexInfo();
47  explicit VertexInfo(const DtPoint& point);
48 
50 
51  //DtFeatureGeometry::Point geometry() const;
52  };
53 
54  //Properties on each edge
56  {
57  explicit EdgeInfo(const DtPathFeature& p, const DtFeatureGeometry::Path&);
58  explicit EdgeInfo(const DtPathFeature::CPtr& p, const DtFeatureGeometry::Path&);
59 
60  typedef std::vector<DtPathFeature::CPtr> FeatureVector;
61 
62  DtFeatureGeometry::Path edgeGeometry() const;
63  double length() const;
64  double width() const;
65  bool isOneway() const;
66  bool isDeleted() const;
67  FeatureVector features() const;
68  DtPathFeature::CPtr firstValidFeature() const;
69  void addFeature(const DtPathFeature::CPtr&);
70  size_t hash() const;
71 
72  private:
73  friend class DtAStarGraph;
74  struct Data;
75 
76  std::shared_ptr<Data> myData;
77  };
78 
80 
84 
85  //DtAStarGraph processes path features to make a graph for path planning.
87  {
88  class BoostGraphVisitor;
89  friend class BoostGraphVisitor;
90 
94 
95  public:
96  typedef std::shared_ptr<DtAStarGraph> Ptr;
97 
98  Ptr shared_from_this();
99 
100  typedef boost::adjacency_list< //graph is adjacency list (vs adjacency matrix)
101  boost::setS, //per-vertex edge-list is a set
102  boost::vecS, //graph's vertex-list is a vector
103  boost::directedS, //graph is directed
104  VertexInfo, //VertexInfo struct is property on edges
105  EdgeInfo, //EdgeInfo struct is property on edges
106  boost::no_property, //no property on graph
107  boost::vecS> //graph's edge-list is a vector
109 
110  typedef boost::graph_traits<DtBoostGraph> GraphTraits;
111 
113  typedef DtBoostGraph::vertex_descriptor vertex_descriptor;
114 
115  typedef DtBoostGraph::edge_descriptor edge_descriptor;
116 
117  typedef GraphTraits::vertex_iterator vertex_iterator;
118  typedef GraphTraits::edge_iterator edge_iterator;
119 
120  typedef std::list<vertex_descriptor> VertexList;
121 
122  //Weight is a property on edges.
123  typedef boost::property<boost::edge_weight_t, double> Weight;
124 
133  {
134  typedef std::list<PathVertex> List;
135 
138  static double Distance(const List&);
139 
140  explicit PathVertex(
141  const DtPoint& l,
142  vertex_descriptor v = GraphTraits::null_vertex(),
144 
148  };
149 
158  {
159  typedef std::list<MultiPathVertex> List;
160 
161  explicit MultiPathVertex(
162  const DtPoint& l,
163  vertex_descriptor v = GraphTraits::null_vertex(),
165 
166  explicit MultiPathVertex(const PathVertex&);
167 
171  PathVertex::List getSinglePath() const;
172  void addPath(PathVertex::List::const_iterator, PathVertex::List::const_iterator);
173  void addPathToFront(const PathVertex::List&);
176  void addPathToEnd(PathVertex::List::const_iterator, PathVertex::List::const_iterator);
178  void addPathToEnd(const MultiPathVertex&);
179 
182  };
183 
186  {
187  public:
188  typedef std::vector<Path> Sequence;
189 
190  explicit Path(const std::string& = std::string());
191 
195  PathVertex::List getSinglePath() const;
196 
200  void addPath(const PathVertex::List& ptList);
201 
203  void addPath(const MultiPathVertex::List& listOfPointPaths);
204 
206  void addPath(const Path& pathCollection);
207  void addPathToFront(const PathVertex::List&);
208  void addPathToEnd(const PathVertex::List&);
209 
210  bool empty() const { return myPathVertices.empty(); }
211  size_t numPaths() const { return myPathVertices.size(); }
212 
213  std::string description() const { return myDescription; }
214 
215  const MultiPathVertex::List& pathVertices() const { return myPathVertices; }
216  MultiPathVertex::List& pathVertices() { return myPathVertices; }
217 
218  private:
220  std::string myDescription;
221  };
222 
223  template <typename T>
225 
227 
228  typedef std::pair<DtQuery, double> DtWeightFactor;
229  typedef std::list<DtWeightFactor> DtWeightFactorsList;
230 
231  typedef boost::function<double (edge_descriptor)> EdgeWeightAdjustor;
232 
233  typedef boost::function<bool ()> CancelCheck;
234 
238  static DtRailSegment* vertex2RailSegment(const PathVertex& v,
239  const PathVertex& next);
240 
243  static DtRailSegmentList* DtPath2RailSegmentList(const Path& path);
244 
245  static Ptr Make(
246  std::unique_ptr<DtFeatureSet> input,
247  DtProj::CPtr localProj,
248  const DtTerrainInterfaceConfig& config,
249  std::string label = std::string());
250 
251  virtual ~DtAStarGraph() override;
252 
253  virtual void shutdown();
254  virtual bool isShutdown() const;
255 
257  virtual bool cancel() const;
258 
275  Path makePath(
276  const DtPoint& startLocation,
277  const DtPoint& endLocation,
278  double maxSearchRadius,
279  double startProximityThreshold,
280  double stopProximityThreshold,
281  const DtWeightFactorsList& weightFactors,
282  const CancelCheck& cancelCheck,
283  const double offRoadPathWeight = 10.0);
284 
285  struct Results;
286 
289  {
292  boost::optional<DtFeatureGeometry::Area> searchArea;
312 
314  const DtFeatureGeometry::Point& start,
315  const DtFeatureGeometry::Point& end);
316 
317  void setMaxSearchRadius(double radius);
318  void setSearchRadius(double maxRadius, double minRadius);
319 
320  bool cancel() const;
321  };
322 
323  Path makePath(
324  SearchParameters params,
325  Results* results = 0,
326  unsigned recursionLevel = 0);
327 
330  bool onPathFeature(const DtPoint& location, double offset = 0.5);
331 
332  std::unique_ptr<DtPathFeatureSet> paths() const;
333 
334  const DtFeatureSet& inputFeatureSet() const;
335 
336  DtProj::CPtr localProj() const;
337 
346  DtClosestPathFeatureFinder closestFeatureOnNetwork(
347  const DtPoint& startingLocation, const double& searchRadius, bool* dataAvailable = NULL);
348 
349  virtual std::string label() const override;
350 
351  virtual DtFeaturesDebugger::Record& addToDebugger(DtFeaturesDebugger&);
352 
356  void addFeatureToGraph(
357  const DtFeature & r,
358  bool joinToIntersectingEdges,
359  const boost::optional<DtFeatureGeometry>& searchArea = boost::none);
360 
363  void addFeatureToGraph(
364  const DtFeature&,
365  const boost::optional<DtFeatureGeometry>& searchArea = boost::none);
366 
367  void addGeometryToGraph(DtFeatureGeometry g);
368 
375  bool loadTile(const DtPoint& localLocation, double timeout = 0);
376  bool loadTile(const DtFeatureGeometry& geom, double timeout = 0);
377  bool loadTileAndBlock(
378  const DtPoint& localLocation, const CancelCheck& = CancelCheck());
379  bool loadTileAndBlock(
380  const DtFeatureGeometry& geom, const CancelCheck& = CancelCheck());
381 
382  protected:
383 
391  void maybeAddEdgeToGraph(const DtPoint& vA, const vertex_descriptor vAIndex,
392  const DtPoint& vB, const vertex_descriptor vBIndex,
393  std::shared_ptr<DtPathFeature> path,
394  unsigned& numAddedEdges, unsigned& numDuplicates);
395 
403  bool maybeAddVertexToGraph(const DtPoint& vLocation, const VertexBoolMap& existingVertices,
404  const double tolerance,
405  vertex_descriptor& vIndex);
406 
407  protected:
410  DtAStarGraph(
411  std::unique_ptr<DtFeatureSet> input,
412  DtProj::CPtr localProj,
413  const DtTerrainInterfaceConfig& config,
414  std::string label);
415 
417  const std::unique_ptr<DtFeatureSet> myInputFeatureSet;
418 
420 
423 
424  typedef tbb::queuing_rw_mutex GraphMutex;
425 
428 
431 
433  struct GridTile : public std::enable_shared_from_this<GridTile>
434  {
435  typedef std::shared_ptr<GridTile> TilePtr;
436  typedef std::vector<TilePtr> TilePtrVector;
437 
438  struct EdgeRecord
439  {
440  struct Hash
441  {
442  size_t operator()(const EdgeRecord& edge) const;
443  };
444 
445  bool operator==(const EdgeRecord& other) const;
446 
449 
450  explicit EdgeRecord(edge_descriptor, const EdgeInfo&);
451  };
452 
454  typedef std::vector<EdgeRecord> EdgeSet;
455  //typedef boost::unordered_set<EdgeRecord, EdgeRecord::Hash> EdgeSet;
456 
457  const unsigned myLevel;
458  const unsigned myMaxLevel;
459 
463 
471  explicit GridTile(const GridTile& parent, unsigned x, unsigned y);
472 
475  explicit GridTile(DtAStarGraph&, const DtProj::Bounds&, unsigned maxLevel);
476 
477  ~GridTile();
478 
482  bool loadAllLeafSubTiles(const DtFeatureGeometry&, double timeout);
483 
488  void findIntersectingSubTiles(const DtFeatureGeometry&, TilePtrVector& tileList);
489 
492  void getTiles(TilePtrVector&);
493 
496  void addEdge(edge_descriptor, const EdgeInfo&);
497 
502  void getEdges(const DtFeatureGeometry&, EdgeSet& allIntersectingEdges);
503 
506  void getEdgesWithWidth(const DtFeatureGeometry&, EdgeSet& allIntersectingEdges);
507 
508  private:
511  void loadAndGet();
512 
513  bool loaded(double timeout) const;
514 
516 
517  typedef tbb::mutex LoadingMutex;
518 
520  enum State { None, Loading, Done, Error };
521  std::atomic<State> myState;
522 
523  typedef tbb::queuing_rw_mutex Mutex;
524 
525  mutable Mutex myMutex;
529 
531  std::shared_ptr<GridTile> mySubtiles[2][2];
532 
535  };
536 
537  friend struct GridTile;
538 
543 
545 
546  std::atomic<bool> myShutdownFlag;
547 
548  std::string myLabel;
549 
552 
554  };
555 
557 
562  template <typename T>
564  {
565  typedef std::vector<T> Sequence;
566 
567  static T CreateDefault(T def, size_t) { return def; }
568 
569  public:
570  typedef size_t key_type;
571  typedef typename Sequence::value_type value_type;
572  typedef typename Sequence::reference reference;
573  typedef boost::lvalue_property_map_tag category;
574 
575  typedef boost::function<T (size_t)> DefaultFactory;
576 
577  explicit DynamicPropertyMap(const DefaultFactory& def, size_t size = 0)
578  : myDefaultFactory(def)
579  , myValues(new Sequence(size))
580  {
581  for (size_t i=0; i != size; ++i)
582  (*myValues)[i] = myDefaultFactory(i);
583  }
584 
585  explicit DynamicPropertyMap(T def, size_t size = 0)
586  : myDefaultFactory(boost::bind(&CreateDefault, def, boost::placeholders::_1))
587  , myValues(new Sequence(size, def))
588  {
589  }
590 
591  T& operator[](size_t index)
592  {
593  while (index >= size())
594  myValues->push_back(myDefaultFactory(index));
595 
596  return (*myValues)[index];
597  }
598 
599  T& operator[](size_t index) const
600  {
601  while (index >= size())
602  myValues->push_back(myDefaultFactory(index));
603 
604  return (*myValues)[index];
605  }
606 
607  size_t size() const
608  {
609  return myValues->size();
610  }
611 
612  void clear()
613  {
614  myValues->clear();
615  }
616 
617  private:
619  std::shared_ptr<Sequence> myValues;
620  };
621 
623  template <typename T>
624  T get(const DtAStarGraph::DynamicPropertyMap<T>& map, size_t index)
625  {
626  return map[index];
627  }
628 
634 
636  template <typename T>
637  void put(DtAStarGraph::DynamicPropertyMap<T>& map, size_t index, const T& value)
638  {
639  map[index] = value;
640  }
641 
647 
649  {
650  public:
652  };
653 
655  {
656  public:
657  DtMakePathJob(const DtAStarGraph::Ptr& pathFinder, const DtPoint& localStart, const DtPoint& localDestination,
658  double maxSearchRadius, double startProximityThreshold, double stopProximityThreshold,
659  const DtAStarGraph::DtWeightFactorsList& factors, const double offRoadPathWeight = 10.0);
660 
661  virtual void onExecute() override;
662  virtual void onException() override;
663 
664  public:
673  };
674 }
675 
Represents a set of DtFeature objects or others which conform to the DtFeature concept.
Definition: featureSet.h:105
Concrete job class which manages a weak pointer to it&#39;s job map entry. Using this job will require th...
Definition: asyncJob.h:89
double startProximityThreshold
The radius from the start point within which the feature data will be searched for a start feature...
Definition: aStarGraph.h:295
State
Definition: aStarGraph.h:520
GraphTraits::edge_iterator edge_iterator
Definition: aStarGraph.h:118
#define DT_DLL_features
stop complaining about multiple independent base classes for boost::noncopyable this should probably ...
Definition: featuresDefines.h:41
const unsigned myMaxLevel
Definition: aStarGraph.h:458
DtFeatureGeometry::Point endPoint
Definition: aStarGraph.h:291
Class DtTerrainInterfaceConfig is a readable-writable class holding terrain interface configuration o...
Definition: terrainInterfaceConfig.h:33
boost::graph_traits< DtBoostGraph > GraphTraits
Definition: aStarGraph.h:110
Definition: aStarGraph.h:654
DtFeatureGeometry::Point startPoint
Definition: aStarGraph.h:290
boost::function< void()> DetachCallback
Callback type for disconnecting other callbacks. Functions which register callbacks return a DetachCa...
Definition: featureSet.h:132
FeaturePtr addFeatureRef(const Feature &f)
Definition: featureSetUtils.h:311
DtAStarGraph & myAStarGraph
Definition: aStarGraph.h:515
int myDebuggingGraphicIndex
For debugging output.
Definition: aStarGraph.h:551
std::shared_ptr< const DtProj > CPtr
Definition: proj.h:56
Definition: aStarGraph.h:55
std::list< PathVertex > List
Definition: aStarGraph.h:134
std::list< DtRailSegment * > DtRailSegmentList
Definition: railSegment.h:194
DtBoostGraph myGraph
Boost graph for path planning.
Definition: aStarGraph.h:430
std::vector< Path > Sequence
Definition: aStarGraph.h:188
boost::lvalue_property_map_tag category
Definition: aStarGraph.h:573
DynamicPropertyMap(T def, size_t size=0)
Definition: aStarGraph.h:585
DtFeatureSet::DetachCallback myDetacherCallbackFn
Definition: aStarGraph.h:530
std::vector< TilePtr > TilePtrVector
Definition: aStarGraph.h:436
void put(DtAStarGraph::DynamicPropertyMap< T > &map, size_t index, const T &value)
template &lt;typename t&gt;=&quot;&quot;&gt; T get(const DtAStarGraph::DynamicPropertyMap&lt;T&gt;* map, size_t index) { retur...
Definition: aStarGraph.h:637
Vertex data passed back from makePath. location is the location of the current vertex in local coordi...
Definition: aStarGraph.h:132
DtRailSegment are segments entities can follow when using the rail movement system.
Definition: railSegment.h:20
tbb::mutex LoadingMutex
Definition: aStarGraph.h:517
voidpf void uLong size
Definition: ioapi.h:39
GraphTraits::vertex_iterator vertex_iterator
Definition: aStarGraph.h:117
FeaturePtr addFeature(Feature *f)
these functions make it easier to take the address of addFeature
Definition: featureSetUtils.h:309
tbb::queuing_rw_mutex GraphMutex
Definition: aStarGraph.h:424
double stopProximityThreshold
The radius to the destination location within which the graph search must end to be successful...
Definition: aStarGraph.h:299
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
MultiPathVertex::List myPathVertices
Definition: aStarGraph.h:219
std::atomic< State > myState
Definition: aStarGraph.h:521
Mutex myEdgesMutex
Definition: aStarGraph.h:533
double minOffFeatureDistanceToDestination
The closest distance to the destination at which the closest feature is found. The remaining path to ...
Definition: aStarGraph.h:305
List nextVertices
Definition: aStarGraph.h:181
Definition: featureGeometry.h:61
Mutex myMutex
Definition: aStarGraph.h:525
virtual FeaturePtr addFeaturePtr(Feature *feature)
These functions are used to add features to the feature sets. The argument is the feature being added...
Definition: proj.h:76
Definition: featureSet.h:64
DtProj::CPtr myLocalProj
For converting local coordinates passed in from the user.
Definition: aStarGraph.h:422
Definition: aStarGraph.h:86
boost::function< bool()> CancelCheck
Definition: aStarGraph.h:233
GridTile::TilePtr myLoadedTiles
Points to one top-level (level = 0) tile. This tile will have 4 subtiles, one for each quadrant...
Definition: aStarGraph.h:542
double myStartProximityThreshold
Definition: aStarGraph.h:669
std::list< DtWeightFactor > DtWeightFactorsList
Definition: aStarGraph.h:229
Entry for a feature set in the debugger.
Definition: featuresDebugger.h:55
edge_descriptor myEdgeDescriptor
Definition: aStarGraph.h:447
const unsigned myLevel
Definition: aStarGraph.h:457
size_t size() const
Definition: aStarGraph.h:607
double myOffRoadPathWeight
Definition: aStarGraph.h:672
std::list< vertex_descriptor > VertexList
Definition: aStarGraph.h:120
MAKVRinTerra::DtAStarGraph::Path path
Definition: aStarGraph.h:651
DtPoint localLocation
Definition: aStarGraph.h:145
std::string description() const
Definition: aStarGraph.h:213
DtWeightFactorsList weightFactors
Definition: aStarGraph.h:306
DtTerrainInterfaceConfig myTerrainInterfaceConfig
Definition: aStarGraph.h:544
std::string myLabel
Definition: aStarGraph.h:548
std::atomic< bool > myShutdownFlag
Definition: aStarGraph.h:546
Handle< PointType > Point
Definition: featureGeometry.h:70
This is actually a collection of paths, i.e. vectors of points.
Definition: aStarGraph.h:185
EdgeSet myEdgeSet
Definition: aStarGraph.h:534
Sequence::reference reference
Definition: aStarGraph.h:572
DtPoint myLocalStart
Definition: aStarGraph.h:666
Definition: aStarGraph.h:44
const std::unique_ptr< DtFeatureSet > myInputFeatureSet
Feature source for this graph.
Definition: aStarGraph.h:417
DtFeatureSetWrapper< DtFeatureSet, std::shared_ptr > myFeatureSet
A feature set that is the AStarGraph&#39;s input feature set, but clipped to the geometry of this tile...
Definition: aStarGraph.h:528
A rectangular area of the world with feature edges from the input feature set.
Definition: aStarGraph.h:433
A MultiPathVertex is a PathVertex with a list of next vertices. (dreece: This seems to be a branching...
Definition: aStarGraph.h:157
DefaultFactory myDefaultFactory
Definition: aStarGraph.h:618
double offRoadPathWeight
Definition: aStarGraph.h:307
MultiPathVertex::List & pathVertices()
Definition: aStarGraph.h:216
Handle< PathType > Path
Definition: featureGeometry.h:71
std::shared_ptr< DtAStarGraph > Ptr
Definition: aStarGraph.h:96
DtBoostGraph::edge_descriptor edge_descriptor
Definition: aStarGraph.h:115
size_t key_type
Definition: aStarGraph.h:570
double directPathCost
A computed parameter. The cost (offroad weight * start-to-end distance) of going directly to the dest...
Definition: aStarGraph.h:311
Base class for result of job.
Definition: asyncJobServer.h:43
template &lt;typename t&gt;=&quot;&quot;&gt; void put(DtAStarGraph::DynamicPropertyMap&lt;T&gt;* map, size_t index...
Definition: aStarGraph.h:648
DtPathFeature::CPtr nextEdgeFeature
Definition: aStarGraph.h:147
boost::optional< DtFeatureGeometry::Area > searchArea
Definition: aStarGraph.h:292
std::shared_ptr< Data > myData
Definition: aStarGraph.h:74
std::vector< DtPathFeature::CPtr > FeatureVector
Definition: aStarGraph.h:60
DtPoint myLocalDestination
Definition: aStarGraph.h:667
void clear()
Definition: aStarGraph.h:612
EdgeInfo myEdgeInfo
Definition: aStarGraph.h:448
LoadingMutex myLoadingMutex
Definition: aStarGraph.h:519
std::shared_ptr< const DtPathFeature > CPtr
Definition: pathFeature.h:21
Definition: pathFeature.h:99
double myStopProximityThreshold
Definition: aStarGraph.h:670
boost::function< T(size_t)> DefaultFactory
Definition: aStarGraph.h:575
Definition: pathFeature.h:17
const MultiPathVertex::List & pathVertices() const
Definition: aStarGraph.h:215
const DtProj::Bounds myBounds
Bounds define the extent of this tile.
Definition: aStarGraph.h:461
double myMaxSearchRadius
Definition: aStarGraph.h:668
DynamicPropertyMap(const DefaultFactory &def, size_t size=0)
Definition: aStarGraph.h:577
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
Source feature sets are used to create your own feature sets with your own features.
Definition: featureSetUtils.h:287
std::vector< EdgeRecord > EdgeSet
fixme change to unordered set
Definition: aStarGraph.h:454
boost::function< double(edge_descriptor)> EdgeWeightAdjustor
Definition: aStarGraph.h:231
DynamicPropertyMap< unsigned > VertexBoolMap
Definition: aStarGraph.h:224
GraphMutex myGraphMutex
Synchronize access to boost graph.
Definition: aStarGraph.h:427
const DtFeatureGeometry::Area myBoundsGeometry
Definition: aStarGraph.h:462
DtPoint location
Definition: aStarGraph.h:49
T & operator[](size_t index)
Definition: aStarGraph.h:591
Sequence::value_type value_type
Definition: aStarGraph.h:571
tbb::queuing_rw_mutex Mutex
Definition: aStarGraph.h:523
vertex_descriptor vertex
Definition: aStarGraph.h:146
PathVertex pathVertex
Definition: aStarGraph.h:180
T & operator[](size_t index) const
Definition: aStarGraph.h:599
std::shared_ptr< GridTile > TilePtr
Definition: aStarGraph.h:435
CancelCheck myCancelCheck
Definition: aStarGraph.h:553
Represents a GIS feature. Features consist of a DtFeatureGeometry (2.5D geometric vector data) and a ...
Definition: feature.h:36
The parameters for the graph search.
Definition: aStarGraph.h:288
bool empty() const
Definition: aStarGraph.h:210
Definition: featuresDebugger.h:33
std::list< MultiPathVertex > List
Definition: aStarGraph.h:159
std::shared_ptr< Sequence > myValues
Definition: aStarGraph.h:619
voidpf uLong offset
Definition: ioapi.h:42
std::pair< DtQuery, double > DtWeightFactor
Definition: aStarGraph.h:228
DtAStarGraph::Ptr myPathFinder
Definition: aStarGraph.h:665
std::string myDescription
Definition: aStarGraph.h:220
std::vector< T > Sequence
Definition: aStarGraph.h:565
static T CreateDefault(T def, size_t)
Definition: aStarGraph.h:567
Represents a feature geometry.
Definition: featureGeometry.h:40
size_t numPaths() const
Definition: aStarGraph.h:211
Definition: point.h:34
DtAStarGraph::DtWeightFactorsList myWeightFactors
Definition: aStarGraph.h:671
boost::property< boost::edge_weight_t, double > Weight
Definition: aStarGraph.h:123
CancelCheck cancelCheck
Definition: aStarGraph.h:308
boost::adjacency_list< boost::setS, boost::vecS, boost::directedS, VertexInfo, EdgeInfo, boost::no_property, boost::vecS > DtBoostGraph
Definition: aStarGraph.h:108
DtAStarGraph.
Definition: aStarGraph.h:224
DtBoostGraph::vertex_descriptor vertex_descriptor
Note that this is an integer, and can be printed with d.
Definition: aStarGraph.h:113

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)