politopix  5.0.0
Hyperplane_Rn Class Reference

A linear (n-1) dimension space in. More...

#include <HalfSpace_Rn.h>

Inheritance diagram for Hyperplane_Rn:
Inheritance graph
Collaboration diagram for Hyperplane_Rn:
Collaboration graph

Public Member Functions

 Hyperplane_Rn (unsigned int n)
 Constructor for polytopes i.e. bounded convex polyhedra. More...
 
virtual ~Hyperplane_Rn ()
 Destructor. More...
 
virtual void dump (std::ostream &this_ostream) const
 
virtual bool testEmptyness (const std::vector< boost::shared_ptr< Generator_Rn_SD > > &GN_IN, const std::vector< boost::shared_ptr< Generator_Rn_SD > > &GN_OUT, const std::vector< boost::shared_ptr< Generator_Rn_SD > > &GN_ON)
 Specific to the double description algorithm Test whether an intersection with a hyperplane has generated an empty set or not. More...
 
virtual bool testEmptyness (unsigned int GN_IN, unsigned int GN_OUT, unsigned int GN_ON)
 Specific to the double description algorithm Test whether an intersection with a hyperplane has generated an empty set or not. More...
 
virtual void noGeneratorsOUT (std::vector< boost::shared_ptr< Generator_Rn_SD > > &listOfGeneratorSD, const std::vector< boost::shared_ptr< Generator_Rn_SD > > &GN_ON)
 Specific to the double description algorithm When chopping a polyhedral body with a hyperplane, if the set of generators OUT is empty, only keep the generators ON and ignore the generators IN. In the case of a half-space, keep things unchanged i.e. listOfGeneratorSD = GN_IN + GN_ON. More...
 
virtual void prepareSetOfGenerators (std::vector< boost::shared_ptr< Generator_Rn_SD > > &GN_IN, std::vector< boost::shared_ptr< Generator_Rn_SD > > &GN_OUT)
 Specific to the double description algorithm When chopping a polyhedral body with a hyperplane, if the set of generators OUT is empty, only keep the generators ON and ignore the generators IN. In the case of a half-space, keep things unchanged i.e. listOfGeneratorSD = GN_IN + GN_ON. More...
 
- Public Member Functions inherited from HalfSpace_Rn
 HalfSpace_Rn ()
 Constructor. More...
 
 HalfSpace_Rn (unsigned int n)
 
virtual ~HalfSpace_Rn ()
 
void setCoefficients (const vector< double > &vec)
 
double getCoefficient (unsigned int i) const
 
void setCoefficient (unsigned int i, double c)
 
void setConstant (double c)
 
double getConstant () const
 
void negate ()
 
int dimension () const
 
std::string getSideAsText () const
 
boost::numeric::ublas::vector< double >::const_iterator begin () const
 
boost::numeric::ublas::vector< double >::const_iterator end () const
 
const boost::numeric::ublas::vector< double > & vect () const
 
double computeDistancePointHyperplane (const boost::numeric::ublas::vector< double > &thisPoint) const
 
double computeDistancePointHyperplane (const boost::numeric::ublas::vector< double > &thisPoint, double halfSpaceNorm) const
 
double computeDistancePointHyperplane (const boost::numeric::ublas::vector< double > &thisPoint, boost::numeric::ublas::vector< double > &projectedPoint, double halfSpaceNorm) const
 
void print () const
 

Additional Inherited Members

- Public Types inherited from HalfSpace_Rn
enum  State {
  hs_ON = 0, hs_IN = 1, hs_OUT = 2, hs_UNKNOWN = 3,
  hs_IN_OR_OUT = 4, hs_OUT_TO_ON = 5
}
 
- Static Public Member Functions inherited from HalfSpace_Rn
static std::string getStateAsText (const HalfSpace_Rn::State &)
 
- Protected Attributes inherited from HalfSpace_Rn
boost::numeric::ublas::vector< double > _coefficients
 The normal vector. More...
 
double _constant
 The second member constant. More...
 

Detailed Description

A linear (n-1) dimension space in.

\[ \mathbb{R}^n \]

.
_constant + _coefficients[0].x1 + ... + _coefficients[n-1].xn = 0.

Definition at line 188 of file HalfSpace_Rn.h.

Constructor & Destructor Documentation

◆ Hyperplane_Rn()

Hyperplane_Rn::Hyperplane_Rn ( unsigned int  n)
inline

Constructor for polytopes i.e. bounded convex polyhedra.

Definition at line 192 of file HalfSpace_Rn.h.

◆ ~Hyperplane_Rn()

virtual Hyperplane_Rn::~Hyperplane_Rn ( )
inlinevirtual

Destructor.

Definition at line 195 of file HalfSpace_Rn.h.

Member Function Documentation

◆ dump()

virtual void Hyperplane_Rn::dump ( std::ostream &  this_ostream) const
inlinevirtual

Reimplemented from HalfSpace_Rn.

Definition at line 197 of file HalfSpace_Rn.h.

◆ noGeneratorsOUT()

virtual void Hyperplane_Rn::noGeneratorsOUT ( std::vector< boost::shared_ptr< Generator_Rn_SD > > &  listOfGeneratorSD,
const std::vector< boost::shared_ptr< Generator_Rn_SD > > &  GN_ON 
)
inlinevirtual

Specific to the double description algorithm When chopping a polyhedral body with a hyperplane, if the set of generators OUT is empty, only keep the generators ON and ignore the generators IN. In the case of a half-space, keep things unchanged i.e. listOfGeneratorSD = GN_IN + GN_ON.

Reimplemented from HalfSpace_Rn.

Definition at line 228 of file HalfSpace_Rn.h.

◆ prepareSetOfGenerators()

virtual void Hyperplane_Rn::prepareSetOfGenerators ( std::vector< boost::shared_ptr< Generator_Rn_SD > > &  GN_IN,
std::vector< boost::shared_ptr< Generator_Rn_SD > > &  GN_OUT 
)
inlinevirtual

Specific to the double description algorithm When chopping a polyhedral body with a hyperplane, if the set of generators OUT is empty, only keep the generators ON and ignore the generators IN. In the case of a half-space, keep things unchanged i.e. listOfGeneratorSD = GN_IN + GN_ON.

Specific to the double description algorithm When we perform a flat truncation the set of generators IN . is transferred into the set of generators OUT as both of them will be dropped . then it is emptied before receiving the generators ON and NEW i.e. the ones we keep

Reimplemented from HalfSpace_Rn.

Definition at line 244 of file HalfSpace_Rn.h.

◆ testEmptyness() [1/2]

virtual bool Hyperplane_Rn::testEmptyness ( const std::vector< boost::shared_ptr< Generator_Rn_SD > > &  GN_IN,
const std::vector< boost::shared_ptr< Generator_Rn_SD > > &  GN_OUT,
const std::vector< boost::shared_ptr< Generator_Rn_SD > > &  GN_ON 
)
inlinevirtual

Specific to the double description algorithm Test whether an intersection with a hyperplane has generated an empty set or not.

Reimplemented from HalfSpace_Rn.

Definition at line 210 of file HalfSpace_Rn.h.

◆ testEmptyness() [2/2]

virtual bool Hyperplane_Rn::testEmptyness ( unsigned int  GN_IN,
unsigned int  GN_OUT,
unsigned int  GN_ON 
)
inlinevirtual

Specific to the double description algorithm Test whether an intersection with a hyperplane has generated an empty set or not.

Reimplemented from HalfSpace_Rn.

Definition at line 219 of file HalfSpace_Rn.h.


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