Implements the convex hull of a set of convex sets.
The convex hull of multiple sets is defined as the smallest convex set that contains all the sets. Given non-empty convex sets {X₁, X₂, ..., Xₙ}, the convex hull is the set of all convex combinations of points in the sets, i.e. {∑ᵢ λᵢ xᵢ | xᵢ ∈ Xᵢ, λᵢ ≥ 0, ∑ᵢ λᵢ = 1}.
|
| ConvexHull (const ConvexSets &sets, const bool remove_empty_sets=true) |
| Constructs the convex hull from a vector of convex sets. More...
|
|
| ~ConvexHull () final |
|
const ConvexSets & | sets () const |
| Returns the participating convex sets. More...
|
|
const ConvexSets & | participating_sets () const |
| Returns the participating sets in the convex hull. More...
|
|
bool | empty_sets_removed () const |
| Returns true if this was constructed with remove_empty_sets=true. More...
|
|
const ConvexSet & | element (int index) const |
| Returns a reference to the convex set at the given index (including empty sets). More...
|
|
int | num_elements () const |
| Returns the number of convex sets defining the convex hull (including empty sets). More...
|
|
bool | IsEmpty () const |
|
double | CalcVolume () const |
|
|
| ConvexHull (const ConvexHull &)=default |
|
ConvexHull & | operator= (const ConvexHull &)=default |
|
| ConvexHull (ConvexHull &&)=default |
|
ConvexHull & | operator= (ConvexHull &&)=default |
|
virtual | ~ConvexSet () |
|
std::unique_ptr< ConvexSet > | Clone () const |
| Creates a unique deep copy of this set. More...
|
|
int | ambient_dimension () const |
| Returns the dimension of the vector space in which the elements of this set are evaluated. More...
|
|
bool | IntersectsWith (const ConvexSet &other) const |
| Returns true iff the intersection between this and other is non-empty. More...
|
|
bool | IsBounded () const |
| Returns true iff the set is bounded, e.g., there exists an element-wise finite lower and upper bound for the set. More...
|
|
bool | IsEmpty () const |
| Returns true iff the set is empty. More...
|
|
std::optional< Eigen::VectorXd > | MaybeGetPoint () const |
| If this set trivially contains exactly one point, returns the value of that point. More...
|
|
std::optional< Eigen::VectorXd > | MaybeGetFeasiblePoint () const |
| Returns a feasible point within this convex set if it is nonempty, and nullopt otherwise. More...
|
|
bool | PointInSet (const Eigen::Ref< const Eigen::VectorXd > &x, double tol=0) const |
| Returns true iff the point x is contained in the set. More...
|
|
std::pair< VectorX< symbolic::Variable >, std::vector< solvers::Binding< solvers::Constraint > > > | AddPointInSetConstraints (solvers::MathematicalProgram *prog, const Eigen::Ref< const solvers::VectorXDecisionVariable > &vars) const |
| Adds a constraint to an existing MathematicalProgram enforcing that the point defined by vars is inside the set. More...
|
|
std::vector< solvers::Binding< solvers::Constraint > > | AddPointInNonnegativeScalingConstraints (solvers::MathematicalProgram *prog, const Eigen::Ref< const solvers::VectorXDecisionVariable > &x, const symbolic::Variable &t) const |
| Let S be this convex set. More...
|
|
std::vector< solvers::Binding< solvers::Constraint > > | AddPointInNonnegativeScalingConstraints (solvers::MathematicalProgram *prog, const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::VectorXd > &b, const Eigen::Ref< const Eigen::VectorXd > &c, double d, const Eigen::Ref< const solvers::VectorXDecisionVariable > &x, const Eigen::Ref< const solvers::VectorXDecisionVariable > &t) const |
| Let S be this convex set. More...
|
|
std::pair< std::unique_ptr< Shape >, math::RigidTransformd > | ToShapeWithPose () const |
| Constructs a Shape and a pose of the set in the world frame for use in the SceneGraph geometry ecosystem. More...
|
|
double | CalcVolume () const |
| Computes the exact volume for the convex set. More...
|
|
SampledVolume | CalcVolumeViaSampling (RandomGenerator *generator, const double desired_rel_accuracy=1e-2, const int max_num_samples=1e4) const |
| Calculates an estimate of the volume of the convex set using sampling and performing Monte Carlo integration. More...
|
|
std::optional< std::pair< std::vector< double >, Eigen::MatrixXd > > | Projection (const Eigen::Ref< const Eigen::MatrixXd > &points) const |
| Computes in the L₂ norm the distance and the nearest point in this convex set to every column of points . More...
|
|
bool | has_exact_volume () const |
| Returns true if the exact volume can be computed for this convex set instance. More...
|
|