politopix
4.1.0
|
Compute the Minkowski sum of two polytopes and then remove all cap half-spaces to truncate again. More...
#include <PolyhedralAlgorithms_Rn.h>
Public Member Functions | |
PseudoSumWithoutCaps (const boost::shared_ptr< Polytope_Rn > &A, const boost::shared_ptr< Polytope_Rn > &B, boost::shared_ptr< Polytope_Rn > &C, const std::set< unsigned int > &firstOperandCaps, const std::set< unsigned int > &secondOperandCaps, std::set< unsigned int > &newCaps, double bb_size=1000.) | |
Compute the Minkowski sum of two polytopes and then remove all cap half-spaces to truncate again. More... | |
![]() | |
MinkowskiSum () | |
Sets up the data structure for the computation of the Minkowski sum of two polytopes. More... | |
MinkowskiSum (const boost::shared_ptr< Polytope_Rn > &A, const boost::shared_ptr< Polytope_Rn > &B) | |
Sets up the data structure for the computation of the Minkowski sum of two polytopes. More... | |
MinkowskiSum (const boost::shared_ptr< Polytope_Rn > &A, const boost::shared_ptr< Polytope_Rn > &B, boost::shared_ptr< Polytope_Rn > &C) | |
Compute the Minkowski sum of two polytopes. More... | |
MinkowskiSum (const std::vector< boost::shared_ptr< Polytope_Rn > > &arrayOfPolytopes, boost::shared_ptr< Polytope_Rn > &C) | |
Compute the Minkowski sum of several polytopes. More... | |
MinkowskiSum (const boost::shared_ptr< Polytope_Rn > &A, const boost::shared_ptr< Polytope_Rn > &B, boost::shared_ptr< Polytope_Rn > &C, const std::vector< std::vector< int > > &genitorsOfGeneratorsA, const std::vector< std::vector< int > > &genitorsOfGeneratorsB, std::vector< std::vector< int > > &traceGenerators) | |
Compute the Minkowski sum of two polytopes. More... | |
boost::shared_ptr< Polytope_Rn > | rebuildSum (const std::set< unsigned int > &firstOperandCaps, const std::set< unsigned int > &secondOperandCaps, std::set< unsigned int > &newCaps, double bb_size=1000.) |
Remove the cap half-spaces stored in sets and then truncate again. More... | |
Protected Member Functions | |
boost::shared_ptr< Polytope_Rn > | rebuildSum (const std::set< unsigned int > &firstOperandCaps, const std::set< unsigned int > &secondOperandCaps, std::set< unsigned int > &newCaps, double bb_size=1000.) |
Remove the cap half-spaces stored in sets and then truncate again. More... | |
void | computeCapHalfSpaces (const std::set< unsigned int > &firstOperandCaps, const std::set< unsigned int > &secondOperandCaps, std::set< unsigned int > &sumCaps) throw (std::domain_error) |
Return the cap half-spaces of the sum in function of the two operands cap half-spaces. More... | |
![]() | |
boost::shared_ptr< Polytope_Rn > | compute () throw (std::domain_error) |
Compute the common refinement of the two operands normal fans and then build the sum. More... | |
void | computeCommonRefinement (const std::vector< boost::shared_ptr< Generator_Rn > > &listOfGenerators_A, const std::vector< boost::shared_ptr< Generator_Rn > > &listOfGenerators_B, std::vector< boost::shared_ptr< Generator_Rn > > &listOfGenerators_C, const std::vector< boost::shared_ptr< PolyhedralCone_Rn > > &listOfDualCones_A, const std::vector< boost::shared_ptr< PolyhedralCone_Rn > > &listOfDualCones_B, std::vector< boost::shared_ptr< PolyhedralCone_Rn > > &listOfDualCones_C) throw (std::domain_error) |
Just compute the common refinement of the two operands normal fans. More... | |
void | processNormalFan0 () |
Do the final job after having intersected all dual cones. The reduction process simply compares all dual cones generators. More... | |
void | processNormalFan1 () |
Do the final job after having intersected all dual cones. The reduction process uses neighbourhood properties to identify dual cones generators. More... | |
void | processNormalFan2 () |
Do the final job after having intersected all dual cones. The reduction process builds half-spaces and identifies them with they generators lists. More... | |
void | computeCapHalfSpaces (const std::set< unsigned int > &firstOperandCaps, const std::set< unsigned int > &secondOperandCaps, std::set< unsigned int > &sumCaps) const throw (std::domain_error) |
Return the cap half-spaces of the sum in function of the two operands cap half-spaces. More... | |
Additional Inherited Members | |
![]() | |
const boost::shared_ptr < Polytope_Rn > | _firstOperand |
const boost::shared_ptr < Polytope_Rn > | _secondOperand |
boost::shared_ptr< Polytope_Rn > | _sum |
std::vector< std::vector < unsigned int > > | _A2C |
Store the polyhedrical cap in C of each vertex of A. More... | |
std::vector< std::vector < unsigned int > > | _B2C |
Store the polyhedrical cap in C of each vertex of B. More... | |
std::vector< std::vector < unsigned int > > | _neighboursA |
Store the neighbours of each vertex of A. More... | |
std::vector< std::vector < unsigned int > > | _neighboursB |
Store the neighbours of each vertex of B. More... | |
std::vector< std::pair < unsigned int, unsigned int > > | _MinkowskiDecomposition |
Store the genitors in A and B of each vertex of C. More... | |
std::vector< bool > | _MinkowskiDecompositionOK |
Tell whether _MinkowskiDecomposition had to be considered or not. More... | |
std::vector< boost::shared_ptr < PolyhedralCone_Rn > > | _NF_Cones |
The normal fan polyhedrical cones list. More... | |
std::vector< boost::shared_ptr < Generator_Rn > > | _NF_Vertices |
The list of C vertices. More... | |
Compute the Minkowski sum of two polytopes and then remove all cap half-spaces to truncate again.
Definition at line 269 of file PolyhedralAlgorithms_Rn.h.
|
inline |
Compute the Minkowski sum of two polytopes and then remove all cap half-spaces to truncate again.
Definition at line 274 of file PolyhedralAlgorithms_Rn.h.
|
protected |
Return the cap half-spaces of the sum in function of the two operands cap half-spaces.
For each facet of the sum F_C, build F_A and F_B such as F_C = F_A + F_B.
Definition at line 886 of file PolyhedralAlgorithms_Rn.cpp.
|
protected |
Remove the cap half-spaces stored in sets and then truncate again.
Definition at line 1078 of file PolyhedralAlgorithms_Rn.cpp.