Provides an implicit GCS interface given an explicit GCS.
Vertices and edges are cloned into the implicit GCS as they are expanded.
#include <drake/geometry/optimization/implicit_graph_of_convex_sets.h>
Public Member Functions | |
| ImplicitGraphOfConvexSetsFromExplicit (const GraphOfConvexSets &gcs) | |
| Constructs an implicit GCS from an explicit GCS. | |
| virtual | ~ImplicitGraphOfConvexSetsFromExplicit () |
| GraphOfConvexSets::Vertex * | ImplicitVertexFromExplicit (const GraphOfConvexSets::Vertex &v_explicit) |
| Looks up the implicit vertex corresponding to v. | |
Does not allow copy, move, or assignment | |
| ImplicitGraphOfConvexSetsFromExplicit (const ImplicitGraphOfConvexSetsFromExplicit &)=delete | |
| ImplicitGraphOfConvexSetsFromExplicit & | operator= (const ImplicitGraphOfConvexSetsFromExplicit &)=delete |
| ImplicitGraphOfConvexSetsFromExplicit (ImplicitGraphOfConvexSetsFromExplicit &&)=delete | |
| ImplicitGraphOfConvexSetsFromExplicit & | operator= (ImplicitGraphOfConvexSetsFromExplicit &&)=delete |
| Public Member Functions inherited from ImplicitGraphOfConvexSets | |
| virtual | ~ImplicitGraphOfConvexSets () |
| std::vector< GraphOfConvexSets::Edge * > | Successors (GraphOfConvexSets::Vertex *v) |
| Returns the outgoing edges from v, which defines the "successors" of v in the common notation of implicit graph search. | |
| void | ExpandRecursively (GraphOfConvexSets::Vertex *v, int max_successor_calls=1000) |
| Makes repeated recursive calls to Successors() until no new vertices will be added to the graph, or max_successor_calls has been reached. | |
| const GraphOfConvexSets & | gcs () const |
| ImplicitGraphOfConvexSets (const ImplicitGraphOfConvexSets &)=delete | |
| ImplicitGraphOfConvexSets & | operator= (const ImplicitGraphOfConvexSets &)=delete |
| ImplicitGraphOfConvexSets (ImplicitGraphOfConvexSets &&)=delete | |
| ImplicitGraphOfConvexSets & | operator= (ImplicitGraphOfConvexSets &&)=delete |
Protected Member Functions | |
| void | Expand (GraphOfConvexSets::Vertex *) override |
| Expands a vertex v by adding its outgoing edges (and the vertices that they point to) to the mutable_gcs(), calling mutable_gcs().AddVertex() and mutable_gcs().AddEdge() as needed. | |
| Protected Member Functions inherited from ImplicitGraphOfConvexSets | |
| ImplicitGraphOfConvexSets () | |
| Constructs the (empty) implicit GCS. | |
| GraphOfConvexSets & | mutable_gcs () |
|
delete |
|
delete |
|
explicit |
Constructs an implicit GCS from an explicit GCS.
gcs must remain valid for the lifetime of this object.
|
virtual |
|
overrideprotectedvirtual |
Expands a vertex v by adding its outgoing edges (and the vertices that they point to) to the mutable_gcs(), calling mutable_gcs().AddVertex() and mutable_gcs().AddEdge() as needed.
Due to a caching mechanism, implementations can assume that Expand(v) will only be called once for each v.
Implements ImplicitGraphOfConvexSets.
| GraphOfConvexSets::Vertex * ImplicitVertexFromExplicit | ( | const GraphOfConvexSets::Vertex & | v_explicit | ) |
Looks up the implicit vertex corresponding to v.
If v is not already in the implicit GCS, it is added.
| std::exception | if v is not registered with the explicit GCS passed in the constructor. |
|
delete |
|
delete |