politopix  4.1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 CCellByCellVoronoiComputes the Voronoi diagram cell by cell
 CCellByCellVoronoiDistConstructor
 CCellByCellVoronoiDistNgbDo the same as CellByCellVoronoiDist with the neighbourhood computation
 CconstIteratorOfListOfGeometricObjectsThis class is designed to run the list of all geometric objects representing a polytope
 CDoubleDescriptionThe algorithm implemented here is an incremental algorithm as mentioned in How Good are Convex Hull Algorithms? (1997) by David Avis and David Bremner. Specific and efficient implementations can be found in The double description method revisited (1996) written by Komei Fukuda and Alain Prodon .
Incremental algorithms for the vertex enumeration problem compute the vertex description by intersecting the defining half-spaces sequentially. An initial simplex is constructed from a subset of n+1 half-spaces and its vertices and 1-skeleton are computed. Additional half-spaces are introduced sequentially and the vertex description and 1-skeleton are updated at each stage. Essentially such an update amounts to identifying and removing all vertices that are not contained in the new half-space, introducing new vertices for all intersections between edges and the bounding hyperplane of the new half-space, and generating the new edges between these new vertices.
This algorithm can be instantiated by polytopes or polyhedral cones, and as a second argument can be instantiated by iterators such as minindex, lexmin, lexmax
 CDoubleDescriptionFromGeneratorsCompute the V-description from the H-description
 CFaceEnumerationCombinatorial face enumeration for polytopes
 CGenerator_RnA n-coordinates generator, which can be a vertex or an edge whether it is contained by a polytope or a polyhedral cone. It contains all of its support facets
 CGenerator_Rn_SDA n-coordinates generator for internal data structure. It can be a vertex or an edge whether it is embedded in a polytope or a polyhedral cone. It contains all of its support facets
 CHalfSpace_RnA half-space whose frontier is a linear (n-1) dimension space.
_constant + _coefficients[0].x1 + ... + _coefficients[n-1].xn >= 0
 CIncrementalVoronoiAt the end of the ith iteration, the Voronoi diagram of i seeds is computed
 CIO_PolytopeRead/write polytopes.
The way we store polytopes :
1st line : comments = "# Dimension NumberOfHalfspaces NumberOfGenerators"
2nd line : cartesian_space_dimension number_of_facets number_of_generators
3rd line : comments = "# HALFSPACES : a0 + a1.x1 + ... + an.xn >= 0."
4th line : a00 a10 ... an0
k-th line : a0k a1k ... ank
(k+1)-th line : comments = "# GENERATORS : V = (v1, ..., vn)"
(k+2)-th line : v11 ... v1n
l-th line : vl1 ... vln
(l+1)-th line : comments = "# FACETS PER GENERATOR : {Fi1, Fi2, ...}"
(l+2)-th line the neigh : Fr ... Fs
m-th line : Fs ... Ft
If (number_of_vertices == 0) then compute the vertices from the
facets including the polytope into a huge cube containing it.
In this case the blocks "GENERATORS" and "FACETS PER GENERATOR" are ignored
 ClexIteratorOfListOfGeometricObjectsInsert the half-spaces in the list in a lexicographically order, whether min or max
 ClexmaxIteratorOfListOfGeometricObjectsInsert the half-spaces in the list in lexicographically decreasing order
 ClexminIteratorOfListOfGeometricObjectsInsert the half-spaces in the list in lexicographically increasing order
 ClistOfGeometricObjectsThis class is designed to contain the list of all generators or half-spaces representing a polytope or a polyhedral cone
 CMinkowskiSumCompute the Minkowski sum of two polytopes
 CNeighbours_RnClass dedicated to degeneration processing when looking for neighbours.
Let A be a polytope of $ \mathbb{R}^n, A = H_1^+ \cap H_2^+ \cap ... H_{n-1}^+ \cap ... H_k^+ $ where k>n.
Let [vi, vj] be a segment of two vertices of A such as:
 CNoRedundancyProcessingMakes the assumption we do not need to process redundant half-spaces in a specific way
 CNormalFan_RnModel a normal fan
 CPoint_RnCreation of a n-coordinate geometric point designed to be shared by its neighbour faces
 CpolitopixAPIThe main class to run the basic API
 CPolyhedralCone_RnModel a polyhedral cone using its two equivalent definitions : the convex hull and the half-space intersection. We store its edges in _listOfHS and the positive combination of these vectors generates the polyhedral cone
 CPolytope_RnModel a polytope using its two equivalent definitions : the convex hull and the half-space intersection
 CPolytopeToSimplexes
 CPseudoIntersectionWithoutCapsRemove all cap half-spaces and then compute the intersection of two capped polytopes
 CPseudoSumWithoutCapsCompute the Minkowski sum of two polytopes and then remove all cap half-spaces to truncate again
 CRealNeighboursClass dedicated to degeneration processing when looking for neighbors
 CRnThis class stores static function that dispatch the main geometric values we use
 CsortOnFirstCoord
 CStrongRedundancyProcessingThis 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
 CTopGeomToolsBasic tools for topology and geometry: translations, polarity, ..
 CTrackingBinaryOperationThis class stores static function that dispatch the main geometric values we use
 CTrackingOperatorToResultThis class stores static function that dispatch the main geometric values we use
 CVisualization2D visualization tools
 CVolumeOfPolytopes_RnSplit a polytope into simplices to compute its volume.
Two Algorithms for Determining Volumes of Convex Polyhedra (1979) by Jacques Cohen and Timothy Hickey
Journal of the ACM (JACM) JACM Homepage archive
Volume 26 Issue 3, july 1979
Pages 401-414
 CVoronoi_RnCompute a n-dimensional Voronoi diagram. It is a partitioning of a space into regions based on distance to points. Both the space and the list of points are provided as input
 CVoronoiWithPropertiesFuse Voronoi cells when they share the same property and then get non convex polytopes