# PolyhedralComplex -- the class of all polyhedral complexes

## Description

A PolyhedralComplex represents a complex of rational convex polyhedra, i.e. a collection of polyhedra, such that for every polyhedron in the complex all faces are in the complex and for every two polyhedra in the complex their intersection is a face of each (intersection condition). It need not be full dimensional or pure, and the polyhedra need not be compact. It is saved as a hash table which contains a list of the generating polyhedra of the complex starting with those of maximal dimension. So for every polyhedron in this list all faces are considered to be in the complex. The output of a PolyhedralComplex looks like this:
 i1 : polyhedralComplex crossPolytope 3 o1 = PolyhedralComplex{...1...} o1 : PolyhedralComplex

This table displays a short summary of the properties of the PolyhedralComplex. However, one can not access the above information directly, because this is just a virtual hash table generated for the output. The data defining a PolyhedralComplex is extracted by the functions included in this package. A PolyhedralComplex can be constructed by collecting Polyhedra that satisfy the intersection condition. Every polyhedron that is added to a PolyhedralComplex is always considered as the collection of the Polyhedron and all of its faces.

 i2 : P1 = convexHull matrix {{2,2,0},{1,-1,0}}; i3 : P2 = convexHull matrix {{2,-2,0},{1,1,0}}; i4 : P3 = convexHull matrix {{-2,-2,0},{1,-1,0}}; i5 : P4 = convexHull matrix {{-2,2,0},{-1,-1,0}}; i6 : F = polyhedralComplex {P1,P2,P3,P4} o6 = F o6 : PolyhedralComplex

## Methods that use an object of class PolyhedralComplex :

• fan(PolyhedralComplex) -- Take the fan over a polyhedral complex
• "incompPolyhedra(PolyhedralComplex,PolyhedralComplex)" -- see incompPolyhedra -- returns the pairs of incompatible polyhedra
• "incompPolyhedra(PolyhedralComplex,Polyhedron)" -- see incompPolyhedra -- returns the pairs of incompatible polyhedra
• "incompPolyhedra(Polyhedron,PolyhedralComplex)" -- see incompPolyhedra -- returns the pairs of incompatible polyhedra
• "isComplete(PolyhedralComplex)" -- see isComplete -- checks completeness of a Fan or PolyhedralComplex
• "isPure(PolyhedralComplex)" -- see isPure -- checks if a Fan or PolyhedralComplex is of pure dimension
• "isWellDefined(PolyhedralComplex)" -- see isWellDefined(Cone) -- Checks whether a polyhedral object is well-defined.
• "maxPolyhedra(PolyhedralComplex)" -- see maxPolyhedra -- displays the generating Polyhedra of a PolyhedralComplex
• "polyhedra(ZZ,PolyhedralComplex)" -- see polyhedra -- computes all polyhedra of a polyhedral complex of a certain dimension
• "skeleton(ZZ,PolyhedralComplex)" -- see skeleton -- computes the k-skeleton of a Fan or PolyhedralComplex
• "vertices(PolyhedralComplex)" -- see vertices -- displays the vertices of a Polyhedron or a PolyhedralComplex

## For the programmer

The object PolyhedralComplex is a type, with ancestor classes PolyhedralObject < MutableHashTable < HashTable < Thing.