Parasol Planning Library (PPL)
WorkspacePortal.h
Go to the documentation of this file.
1 #ifndef WORKSPACE_PORTAL_H_
2 #define WORKSPACE_PORTAL_H_
3 
4 #include <vector>
5 
7 
9 class WorkspaceRegion;
10 
11 
20 
21  public:
22 
25 
26  typedef GMSPolygon Facet;
27 
31 
35 
41  WorkspacePortal(WorkspaceDecomposition* const _wd, const size_t _s,
42  const size_t _t);
43 
48 
52 
53  const size_t GetSourceDescriptor() const noexcept;
54  const size_t GetTargetDescriptor() const noexcept;
55 
56  const WorkspaceRegion& GetSource() const noexcept;
57  const WorkspaceRegion& GetTarget() const noexcept;
58 
60  double GetWeight() const noexcept;
61 
65 
67  const std::vector<Point3d> FindPoints() const;
68 
71  const std::vector<const Facet*> FindFacets() const;
72 
74 
75  private:
76 
79 
80  double ComputeWeight() const;
81 
85 
86  WorkspaceDecomposition* m_decomposition{nullptr};
87 
88  size_t m_sourceIndex;
89  size_t m_targetIndex;
90 
91  double m_weight;
92 
94 
95 };
96 
97 #endif
Definition: GMSPolygon.h:21
Definition: WorkspaceDecomposition.h:24
Definition: WorkspacePortal.h:19
WorkspacePortal()
Definition: WorkspacePortal.cpp:8
double GetWeight() const noexcept
Get the distance between region centers through the facet midpoint.
Definition: WorkspacePortal.cpp:57
const size_t GetSourceDescriptor() const noexcept
Definition: WorkspacePortal.cpp:29
GMSPolygon Facet
A triangle facet.
Definition: WorkspacePortal.h:26
void SetDecomposition(WorkspaceDecomposition *const _wd)
Definition: WorkspacePortal.cpp:21
const std::vector< Point3d > FindPoints() const
Find the set of points that are common to both source and target region.
Definition: WorkspacePortal.cpp:65
const size_t GetTargetDescriptor() const noexcept
Definition: WorkspacePortal.cpp:36
const WorkspaceRegion & GetTarget() const noexcept
Definition: WorkspacePortal.cpp:50
const WorkspaceRegion & GetSource() const noexcept
Definition: WorkspacePortal.cpp:43
const std::vector< const Facet * > FindFacets() const
Definition: WorkspacePortal.cpp:72
Definition: WorkspaceRegion.h:18