If polyhedralComplex is applied to a Polyhedron it generates the PolyhedralComplex given by the the Polyhedron and all of its faces. If applied to a List the list must only contain Polyhedra and PolyhedralComplexes in the same ambient space. Then it adds the Polyhedra in the List and the generating Polyhedra of the PolyhedralComplexes in the List one by one to the new PolyhedralComplex, checking each time if the new Polyhedron is compatible with the polyhedra that have already been added, i.e. that the intersection with each of them is a face of both Polyhedra (intersection condition).
If one of the polyhedra is in the wrong ambient space (i.e. not the ambient space of the first object in the list), then there will be an error and no PolyhedralComplex will be returned. If the intersection condition fails, there will also be an error. The pairs of incompatible polyhedra can be accessed with the function incompPolyhedra.
i1 : P = convexHull matrix {{1,-1,0},{0,-1,0}} o1 = P o1 : Polyhedron |
i2 : PC = polyhedralComplex P o2 = PC o2 : PolyhedralComplex |
i3 : P1 = convexHull matrix {{1,0,0},{0,1,0}}; |
i4 : P2 = convexHull matrix {{0,-1,0},{1,-1,0}}; |
i5 : PC = polyhedralComplex {PC,P1,P2} o5 = PC o5 : PolyhedralComplex |