politopix  4.1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
StrongRedundancyProcessing< POLYHEDRON > Class Template Reference

This class can be more time-consuming than WeakRedundancyProcessing or NoRedundancyProcessing because it will perform extra checks in the process of intersecting half-spaces. To determine if two vertices are neighbors it will make sure not to count half-spaces marked as redundant. More...

#include <DoubleDescription_Rn.h>

Collaboration diagram for StrongRedundancyProcessing< POLYHEDRON >:
Collaboration graph

Public Member Functions

 StrongRedundancyProcessing (unsigned int ngbCond)
 
virtual ~StrongRedundancyProcessing ()
 
void fillNumberOfVerticesPerHalfSpace (const POLYHEDRON, std::vector< unsigned int > &getNumberOfVerticesPerHalfSpace)
 
void fillListOfRedundantHS (const POLYHEDRON, std::vector< unsigned int > &, std::set< unsigned int > &getListOfRedundantHS)
 
void initNumberOfVerticesPerHalfSpace (const std::vector< boost::shared_ptr< Generator_Rn_SD > > &LG, unsigned int nbHS)
 Make sure all back pointers from half-spaces to vertices are set. More...
 
void addHalfSpace ()
 Make space for a new half-space. More...
 
void updateNumberOfVerticesPerHalfSpace (unsigned int HS, const std::vector< boost::shared_ptr< Generator_Rn_SD > > &GN_ON)
 The current face must mark all the vertices with state ON. More...
 
void incrementNumberForVerticesForHalfSpace (const boost::shared_ptr< Generator_Rn_SD > &GEN)
 Make sure all the half-spaces belonging to a given generator have their vertices number incremented. More...
 
void decrementNumberForVerticesForHalfSpace (const boost::shared_ptr< Generator_Rn_SD > &GEN)
 Make sure all the half-spaces belonging to a given generator have their vertices number decremented. More...
 
bool checkNeighbours (POLYHEDRON poly, const boost::shared_ptr< Generator_Rn_SD > &genIn, const boost::shared_ptr< Generator_Rn_SD > &genOut, std::vector< unsigned int > &commonFacets)
 
virtual void updateListOfRedundantHalfSpaces (unsigned int numberOfGeneratorsPerFacet)
 
void fillListOfRedundantHS (const POLYHEDRON poly)
 
void unhookRedundantHalfSpaces (POLYHEDRON poly)
 
void markHdescription (TrackingOperatorToResult &trackerHdesc, unsigned int truncationStep)
 
void dumpListOfRedundantHS (POLYHEDRON poly, std::ostream &this_stream)
 
void dumpSD (std::ostream &this_stream)
 

Protected Attributes

std::vector< std::set
< unsigned int > > 
_allGenPerHS
 Store all raw back pointers to know which vertices belong to a given half-space. More...
 
std::vector< unsigned int > _numberOfVerticesPerHalfSpace
 To know about how many vertices refer to a given half-space. More...
 
std::set< unsigned int > _listOfRedundantHS
 To know whether an half-space has been ticked redundant or not. More...
 
unsigned int _numberOfHalfSpaces
 The total number of processed half-spaces. More...
 
unsigned int _neigbourhoodCondition
 To define the relation between generators. More...
 

Detailed Description

template<class POLYHEDRON>
class StrongRedundancyProcessing< POLYHEDRON >

This class can be more time-consuming than WeakRedundancyProcessing or NoRedundancyProcessing because it will perform extra checks in the process of intersecting half-spaces. To determine if two vertices are neighbors it will make sure not to count half-spaces marked as redundant.

Definition at line 514 of file DoubleDescription_Rn.h.

Constructor & Destructor Documentation

template<class POLYHEDRON >
StrongRedundancyProcessing< POLYHEDRON >::StrongRedundancyProcessing ( unsigned int  ngbCond)
inline

Definition at line 517 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
virtual StrongRedundancyProcessing< POLYHEDRON >::~StrongRedundancyProcessing ( )
inlinevirtual

Definition at line 521 of file DoubleDescription_Rn.h.

Member Function Documentation

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::addHalfSpace ( )
inline

Make space for a new half-space.

Definition at line 578 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
bool StrongRedundancyProcessing< POLYHEDRON >::checkNeighbours ( POLYHEDRON  poly,
const boost::shared_ptr< Generator_Rn_SD > &  genIn,
const boost::shared_ptr< Generator_Rn_SD > &  genOut,
std::vector< unsigned int > &  commonFacets 
)
inline

Call poly->checkNeighbours() with an extra argument not to count redundant half-spaces in the process of declaring two vertices as neighbors.

Definition at line 613 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::decrementNumberForVerticesForHalfSpace ( const boost::shared_ptr< Generator_Rn_SD > &  GEN)
inline

Make sure all the half-spaces belonging to a given generator have their vertices number decremented.

Definition at line 604 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::dumpListOfRedundantHS ( POLYHEDRON  poly,
std::ostream &  this_stream 
)
inline

Definition at line 745 of file DoubleDescription_Rn.h.

Here is the call graph for this function:

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::dumpSD ( std::ostream &  this_stream)
inline

Definition at line 766 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::fillListOfRedundantHS ( const POLYHEDRON  ,
std::vector< unsigned int > &  ,
std::set< unsigned int > &  getListOfRedundantHS 
)
inline

Definition at line 529 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::fillListOfRedundantHS ( const POLYHEDRON  poly)
inline

Definition at line 675 of file DoubleDescription_Rn.h.

Here is the call graph for this function:

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::fillNumberOfVerticesPerHalfSpace ( const POLYHEDRON  ,
std::vector< unsigned int > &  getNumberOfVerticesPerHalfSpace 
)
inline

Definition at line 523 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::incrementNumberForVerticesForHalfSpace ( const boost::shared_ptr< Generator_Rn_SD > &  GEN)
inline

Make sure all the half-spaces belonging to a given generator have their vertices number incremented.

Definition at line 596 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::initNumberOfVerticesPerHalfSpace ( const std::vector< boost::shared_ptr< Generator_Rn_SD > > &  LG,
unsigned int  nbHS 
)
inline

Make sure all back pointers from half-spaces to vertices are set.

Definition at line 537 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::markHdescription ( TrackingOperatorToResult trackerHdesc,
unsigned int  truncationStep 
)
inline

Definition at line 733 of file DoubleDescription_Rn.h.

Here is the call graph for this function:

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::unhookRedundantHalfSpaces ( POLYHEDRON  poly)
inline

Definition at line 677 of file DoubleDescription_Rn.h.

Here is the call graph for this function:

template<class POLYHEDRON >
virtual void StrongRedundancyProcessing< POLYHEDRON >::updateListOfRedundantHalfSpaces ( unsigned int  numberOfGeneratorsPerFacet)
inlinevirtual

Inspect all half-spaces, find their lists of generators and numbers of generators to know whether they are redundant or not.

Definition at line 630 of file DoubleDescription_Rn.h.

Here is the caller graph for this function:

template<class POLYHEDRON >
void StrongRedundancyProcessing< POLYHEDRON >::updateNumberOfVerticesPerHalfSpace ( unsigned int  HS,
const std::vector< boost::shared_ptr< Generator_Rn_SD > > &  GN_ON 
)
inline

The current face must mark all the vertices with state ON.

Definition at line 586 of file DoubleDescription_Rn.h.

Member Data Documentation

template<class POLYHEDRON >
std::vector< std::set< unsigned int > > StrongRedundancyProcessing< POLYHEDRON >::_allGenPerHS
protected

Store all raw back pointers to know which vertices belong to a given half-space.

Definition at line 788 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
std::set< unsigned int > StrongRedundancyProcessing< POLYHEDRON >::_listOfRedundantHS
protected

To know whether an half-space has been ticked redundant or not.

Definition at line 792 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
unsigned int StrongRedundancyProcessing< POLYHEDRON >::_neigbourhoodCondition
protected

To define the relation between generators.

Definition at line 796 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
unsigned int StrongRedundancyProcessing< POLYHEDRON >::_numberOfHalfSpaces
protected

The total number of processed half-spaces.

Definition at line 794 of file DoubleDescription_Rn.h.

template<class POLYHEDRON >
std::vector< unsigned int > StrongRedundancyProcessing< POLYHEDRON >::_numberOfVerticesPerHalfSpace
protected

To know about how many vertices refer to a given half-space.

Definition at line 790 of file DoubleDescription_Rn.h.


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