politopix  5.0.0
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
 
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() [1/2]

NormalFan_Rn::NormalFan_Rn ( )
inline

Constructor.

Definition at line 42 of file NormalFan_Rn.h.

◆ NormalFan_Rn() [2/2]

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::~NormalFan_Rn ( )
inline

Destructor.

Definition at line 48 of file NormalFan_Rn.h.

Member Function Documentation

◆ addPolyhedralCone()

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.

◆ addVertex()

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.

◆ checkTopologyAndGeometry()

bool NormalFan_Rn::checkTopologyAndGeometry ( ) const

Definition at line 70 of file NormalFan_Rn.cpp.

◆ computeCommonRefinement()

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:

◆ computeHyperplanesSeparationForProjection()

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:

◆ dump()

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:

◆ getListOfGenerators()

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:

◆ getListOfPolyhedralCones()

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:

◆ numberOfPolyhedralCones()

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

◆ constIteratorOfListOfPolyhedralCones

friend class constIteratorOfListOfPolyhedralCones
friend

Definition at line 38 of file NormalFan_Rn.h.

Member Data Documentation

◆ _listOfPolyhedralCones

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.

◆ _listOfVertices

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: