politopix  4.1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
NormalFan_Rn Class Reference

Model a normal fan. More...

#include <NormalFan_Rn.h>

Collaboration diagram for NormalFan_Rn:
Collaboration graph

Public Member Functions

 NormalFan_Rn ()
 Constructor. More...
 
 NormalFan_Rn (const boost::shared_ptr< Polytope_Rn > &A)
 Constructor. More...
 
 ~NormalFan_Rn ()
 Destructor. More...
 
unsigned int numberOfPolyhedralCones () const
 Get the total number of polyhedral cones. More...
 
void addPolyhedralCone (boost::shared_ptr< PolyhedralCone_Rn > hs)
 Add the current half-space in its list. More...
 
void addVertex (boost::shared_ptr< Generator_Rn > vx)
 Add the current vertex in its list. More...
 
const std::vector
< boost::shared_ptr
< Generator_Rn > > & 
getListOfGenerators () const
 
const std::vector
< boost::shared_ptr
< PolyhedralCone_Rn > > & 
getListOfPolyhedralCones () const
 
bool checkTopologyAndGeometry () const throw (std::domain_error)
 
void computeCommonRefinement (const NormalFan_Rn &NA, const NormalFan_Rn &NB)
 Compute $ N(A+B) = N(A) \wedge N(B) $. More...
 
void computeHyperplanesSeparationForProjection (const std::vector< boost::shared_ptr< HalfSpace_Rn > > &, boost::shared_ptr< Polytope_Rn > &)
 
void dump (std::ostream &out) const
 Dump the polyhedral structure on std::cout. More...
 

Protected Attributes

std::vector< boost::shared_ptr
< PolyhedralCone_Rn > > 
_listOfPolyhedralCones
 The list of polyhedral cones partitioning the whole space. More...
 
std::vector< boost::shared_ptr
< Generator_Rn > > 
_listOfVertices
 The list of vertices attached to their respective dual polyhedral cones. More...
 

Friends

class constIteratorOfListOfPolyhedralCones
 

Detailed Description

Model a normal fan.

Definition at line 37 of file NormalFan_Rn.h.

Constructor & Destructor Documentation

NormalFan_Rn::NormalFan_Rn ( )
inline

Constructor.

Definition at line 42 of file NormalFan_Rn.h.

NormalFan_Rn::NormalFan_Rn ( const boost::shared_ptr< Polytope_Rn > &  A)

Constructor.

Definition at line 31 of file NormalFan_Rn.cpp.

NormalFan_Rn::~NormalFan_Rn ( )
inline

Destructor.

Definition at line 48 of file NormalFan_Rn.h.

Member Function Documentation

void NormalFan_Rn::addPolyhedralCone ( boost::shared_ptr< PolyhedralCone_Rn hs)
inline

Add the current half-space in its list.

Definition at line 54 of file NormalFan_Rn.h.

void NormalFan_Rn::addVertex ( boost::shared_ptr< Generator_Rn vx)
inline

Add the current vertex in its list.

Definition at line 57 of file NormalFan_Rn.h.

bool NormalFan_Rn::checkTopologyAndGeometry ( ) const
throw (std::domain_error
)

Definition at line 70 of file NormalFan_Rn.cpp.

void NormalFan_Rn::computeCommonRefinement ( const NormalFan_Rn NA,
const NormalFan_Rn NB 
)

Compute $ N(A+B) = N(A) \wedge N(B) $.

Compute the intersection of all polyhedral cones from the first normal fan N(A) with all polyhedral cones from the second normal fan N(B).

\[ N(A+B) = N(A) \wedge N(B) = \left\{ C_{a_i} \bigcap C_{b_j}, \forall \, C_{a_i} \in N(A), \forall \, C_{b_j} \in N(B) \right\} \]

Parameters
NAThe first normal fan computed from polytope A
NBThe second normal fan computed from polytope B

Definition at line 174 of file NormalFan_Rn.cpp.

Here is the call graph for this function:

void NormalFan_Rn::computeHyperplanesSeparationForProjection ( const std::vector< boost::shared_ptr< HalfSpace_Rn > > &  allHS,
boost::shared_ptr< Polytope_Rn > &  Pol 
)

@

@

@

@

@

@

@

@

Definition at line 74 of file NormalFan_Rn.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void NormalFan_Rn::dump ( std::ostream &  out) const

Dump the polyhedral structure on std::cout.

Definition at line 269 of file NormalFan_Rn.cpp.

Here is the call graph for this function:

const std::vector< boost::shared_ptr<Generator_Rn> >& NormalFan_Rn::getListOfGenerators ( ) const
inline

Definition at line 59 of file NormalFan_Rn.h.

Here is the caller graph for this function:

const std::vector< boost::shared_ptr<PolyhedralCone_Rn> >& NormalFan_Rn::getListOfPolyhedralCones ( ) const
inline

Definition at line 61 of file NormalFan_Rn.h.

Here is the caller graph for this function:

unsigned int NormalFan_Rn::numberOfPolyhedralCones ( ) const
inline

Get the total number of polyhedral cones.

Definition at line 51 of file NormalFan_Rn.h.

Friends And Related Function Documentation

friend class constIteratorOfListOfPolyhedralCones
friend

Definition at line 38 of file NormalFan_Rn.h.

Member Data Documentation

std::vector< boost::shared_ptr<PolyhedralCone_Rn> > NormalFan_Rn::_listOfPolyhedralCones
protected

The list of polyhedral cones partitioning the whole space.

Definition at line 86 of file NormalFan_Rn.h.

std::vector< boost::shared_ptr<Generator_Rn> > NormalFan_Rn::_listOfVertices
protected

The list of vertices attached to their respective dual polyhedral cones.

Definition at line 88 of file NormalFan_Rn.h.


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