#ifndef CubeLAPL_H #define CubeLAPL_H /* Last edited on 2007-02-04 18:42:19 by stolfi */ /* Procedures to build cubical polyhedra. */ #define CubeLAPL_H_copyright \ "Copyright © 2000 Universidade Estadual de Campinas (UNICAMP)" #include #include #include #include SixPlaces_t CubeLAPLMake(void); /* Builds a cube from six squared walls. Returns one place from each wall. Wall 0 is the bottom, walls 1..4 are the sides, wall 5 is the top, as shown below. | +------+ | | | | | | | |5 | | +------+------+------+------+ | | | | | | | | | | | | | |1 |2 |3 |4 | | +------+------+------+------+ | | | | | | | |0 | | +------+ */ typedef struct EightNodes_t { Node_t v[8]; } EightNodes_t; EightNodes_t CubeNegNodes(Place_t p); /* The nodes of the negative cube of {a} ({PnegP(a)}). */ r4_t CubeBarycenter(Place_t p, Coords_t *c); /* The barycenter of the negative cube of {p}. */ Place_t GlueCube(Place_t p, Place_t b); /* Make the glueing of two simples cubes around of one squared wall common. The {p} and their adjacentes on the same wall component is killed. */ void FixCoordsCube(SixPlaces_t *ca, ElemTableRec_t *top, Coords_t *c); /* Set the node coordinates of the cube cell {ca} to the canonical geometry, the cube {[-1 _ +1]^3}. */ #define CubeLAPL_H_author \ "C interface created by J. Stolfi, jan/2007." #endif