typedef struct Vertex {
unsigned id;
double* point;
} VertexT;
typedef struct FullVertex {
unsigned id;
double* point;
unsigned* neighfacets;
unsigned nneighfacets;
unsigned* neighvertices;
unsigned nneighsvertices;
unsigned* neighridges;
unsigned nneighridges;
} FullVertexT;
typedef struct SetOfVertices {
VertexT* vertices;
unsigned nvertices;
} SetOfVerticesT;
typedef struct Ridge {
VertexT* vertices;
unsigned ridgeOf1;
unsigned ridgeOf2;
unsigned nvertices;
unsigned id;
unsigned** edges;
unsigned nedges;
} RidgeT;
typedef struct Face {
VertexT* vertices;
unsigned nvertices;
RidgeT* ridges;
unsigned* ridgesids;
unsigned nridges;
double* center;
double* normal;
double offset;
int orientation;
double area;
unsigned* neighbors;
unsigned neighborsize;
int family;
unsigned** edges;
unsigned nedges;
} FaceT;
typedef struct ConvexHull {
unsigned dim;
FullVertexT* vertices;
unsigned nvertices;
FaceT* faces;
unsigned nfaces;
RidgeT* ridges;
unsigned nridges;
unsigned** edges;
unsigned nedges;
unsigned triangle;
} ConvexHullT;