Drake
Drake C++ Documentation

Detailed Description

A base class to define the interface to an implicit graph of convex sets.

Implementations of this class must implement DoSuccesors() and provide some method of accessing at least one vertex in the graph.

Warning
This feature is considered to be experimental and may change or be removed at any time, without any deprecation notice ahead of time.

#include <drake/geometry/optimization/implicit_graph_of_convex_sets.h>

Public Member Functions

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. More...
 
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. More...
 
const GraphOfConvexSetsgcs () const
 
Does not allow copy, move, or assignment
 ImplicitGraphOfConvexSets (const ImplicitGraphOfConvexSets &)=delete
 
ImplicitGraphOfConvexSetsoperator= (const ImplicitGraphOfConvexSets &)=delete
 
 ImplicitGraphOfConvexSets (ImplicitGraphOfConvexSets &&)=delete
 
ImplicitGraphOfConvexSetsoperator= (ImplicitGraphOfConvexSets &&)=delete
 

Protected Member Functions

 ImplicitGraphOfConvexSets ()
 Constructs the (empty) implicit GCS. More...
 
GraphOfConvexSetsmutable_gcs ()
 
virtual void Expand (GraphOfConvexSets::Vertex *v)=0
 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. More...
 

Constructor & Destructor Documentation

◆ ImplicitGraphOfConvexSets() [1/3]

◆ ImplicitGraphOfConvexSets() [2/3]

◆ ~ImplicitGraphOfConvexSets()

virtual ~ImplicitGraphOfConvexSets ( )
virtual

◆ ImplicitGraphOfConvexSets() [3/3]

Constructs the (empty) implicit GCS.

Member Function Documentation

◆ Expand()

virtual void Expand ( GraphOfConvexSets::Vertex v)
protectedpure virtual

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.

◆ ExpandRecursively()

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.

Note: v is mutable because exanding a vertex requires changes to the underlying vertex object.

Exceptions
std::exceptionif v is not already registered with the graph.

◆ gcs()

const GraphOfConvexSets& gcs ( ) const

◆ mutable_gcs()

GraphOfConvexSets& mutable_gcs ( )
protected

◆ operator=() [1/2]

◆ operator=() [2/2]

ImplicitGraphOfConvexSets& operator= ( const ImplicitGraphOfConvexSets )
delete

◆ Successors()

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.

The internal gcs() object is expanded as needed to include the edges (and the vertices they point to) that are returned.

Note: The input arguments are mutable because expanding a vertex requires changes to the underlying vertex object. Similarly, the output is mutable because callers will need to get mutable vertex pointers from the returned edges to expand them further.

Exceptions
std::exceptionif v is not already registered with the graph.

The documentation for this class was generated from the following file: