ves.h File Reference

Class V,E,S: the fundamental simplex geometry objects. More...

#include <mc/mc_base.h>
#include <mc/vel.h>

Include dependency graph for ves.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sVV
 Class VV: Definition (8+32=40 bytes). More...
struct  sEE
 Class EE: Definition (8+20=28 bytes). More...
struct  sFF
 Class FF: Definition (8+20=28 bytes). More...
struct  sSS
 Class SS: Definition (8+40=48 bytes OR 8+80=88 bytes). More...
struct  TT
 Class T: Definition. More...

Typedefs

typedef struct sVV VV
 Declaration of the VV class as the VV structure.
typedef struct sEE EE
 Declaration of the EE class as the EE structure.
typedef struct sFF FF
 Declaration of the FF class as the FF structure.
typedef struct sSS SS
 Declaration of the SS class as the SS structure.

Functions

void VV_init (VV *thee, int dim, int id)
 Intialize a vertex.
void VV_reinit (VV *thee)
 Re-intialize a vertex.
void VV_setReality (VV *thee, int type)
 Set the reality.
void VV_setDim (VV *thee, int dim)
 Set the dimension.
void VV_setClass (VV *thee, int type)
 Set the class.
void VV_setType (VV *thee, int type)
 Set the type.
void VV_setChart (VV *thee, int chart)
 Set the chart.
void VV_setId (VV *thee, int id)
 Set the ID.
unsigned int VV_reality (VV *thee)
 Return the reality.
unsigned int VV_dim (VV *thee)
 Return the dimension.
unsigned int VV_dimVV (VV *thee)
 Return the number of vertices in a simplex.
unsigned int VV_dimEE (VV *thee)
 Return the number of edges in a simplex.
unsigned int VV_dimFF (VV *thee)
 Return the number of faces in a simplex.
unsigned int VV_class (VV *thee)
 Return the class.
unsigned int VV_type (VV *thee)
 Return the type.
unsigned int VV_chart (VV *thee)
 Return the chart.
unsigned int VV_id (VV *thee)
 Return the ID.
void VV_setCoord (VV *thee, int i, double val)
 Set the coordinate.
void VV_setFirstEE (VV *thee, EE *eg)
 Set the first edge in an edge ring.
void VV_setFirstSS (VV *thee, SS *sm)
 Set the first simplex in a simplex ring.
void VV_setParentEE (VV *thee, EE *eg)
 Set the parent edge pointer.
double VV_coord (VV *thee, int i)
 Return the coordinate.
EEVV_firstEE (VV *thee)
 Set the first edge in an edge ring.
SSVV_firstSS (VV *thee)
 Set the first simplex in a simplex ring.
EEVV_parentEE (VV *thee)
 the parent edge pointer.
void VV_addEdgeToRing (VV *thee, EE *eg)
 Add an edge to an edge ring.
void VV_addSimplexToRing (VV *thee, SS *sm)
 Add a simplex to a simplex ring.
VVVV_ctor (int dim, int myid)
 The vertex constructor.
void VV_dtor (VV **thee)
 The vertex destructor.
void VV_removeEdgeFromRing (VV *thee, EE *eg)
 Remove an edge from an edge ring.
void VV_removeSimplexFromRing (VV *thee, SS *sm)
 Remove a simplex from a simplex ring.
int VV_edgeInRing (VV *thee, EE *eg)
 Is an edge in the edge ring.
int VV_simplexInRing (VV *thee, SS *sm)
 Is a simplex in a simplex ring.
EEVV_commonEdge (VV *thee, VV *v0)
 Return the common edge between two vertices.
EEVV_parentEdge (VV *thee, VV *v0)
 Return parent edge having one of two vertices as midpoint.
SSVV_commonSimplex2 (VV *thee, VV *v0, SS *sm)
 Return a 2-simplex that is shared by 2 vertices, and which is different from the input simplex sm.
SSVV_commonSimplex3 (VV *thee, VV *v0, VV *v1, SS *sm)
 Return a 3-simplex that is shared by 3 vertices, and which is different from the input simplex sm.
SSVV_commonSimplex4 (VV *thee, VV *v0, VV *v1, VV *v2, SS *sm)
 Return a 3-simplex that is shared by 4 vertices, and which is different from the input simplex sm.
VVVV_commonVertex3 (VV *thee, VV *v0, VV *v1)
 the common vertex pointer
VVVV_commonVertex4 (VV *thee, VV *v0, VV *v1, VV *v2)
 the common vertex pointer
void EE_init (EE *thee, int dim, int id)
 Initialize an edge.
void EE_reinit (EE *thee)
 Re-initialize an edge.
void EE_setReality (EE *thee, int type)
 Set the reality.
void EE_setDim (EE *thee, int dim)
 Set the dimension.
void EE_setClass (EE *thee, int type)
 Set the class.
void EE_setType (EE *thee, int type)
 Set the type.
void EE_setChart (EE *thee, int chart)
 Set the chart.
void EE_setId (EE *thee, int id)
 Set the ID.
unsigned int EE_dim (EE *thee)
 Return the dimension.
unsigned int EE_dimVV (EE *thee)
 Return the number of vertices in a simplex.
unsigned int EE_dimEE (EE *thee)
 Return the number of edges in a simplex.
unsigned int EE_dimFF (EE *thee)
 Return the number of faces in a simplex.
unsigned int EE_reality (EE *thee)
 Return the reality.
unsigned int EE_class (EE *thee)
 Return the class.
unsigned int EE_type (EE *thee)
 Return the type.
unsigned int EE_chart (EE *thee)
 Return the chart.
unsigned int EE_id (EE *thee)
 Return the ID.
void EE_setVertex (EE *thee, int i, VV *vx)
 Set one of the two vertices.
void EE_setMidPoint (EE *thee, VV *vx)
 Set the midpoint of the edge.
void EE_setParent (EE *thee, EE *eg)
 Set the parent edge pointer.
void EE_setVertexOrder (EE *thee, VV *vxTmp)
 Set the vertex order.
void EE_setLink (EE *thee, VV *vx, EE *eg)
 Set the next edge pointer associated with one of the vertices.
VVEE_vertex (EE *thee, int i)
 Return one of the vertices.
VVEE_midPoint (EE *thee)
 Return the midpoint of the edge.
EEEE_parent (EE *thee)
 Return the parent edge pointer.
VVEE_otherVertex (EE *thee, VV *vx)
 Return the vertex not matching the input vertex.
EEEE_link (EE *thee, VV *vx)
 Return the next edge in the ring around a given vertex.
EEEE_ctor (int dim, int myid)
 The edge constructor.
void EE_dtor (EE **thee)
 The edge destructor.
void EE_initRing (EE *thee)
 Initialize the edge rings.
void EE_meltRing (EE *thee)
 Destroy the edge rings.
void EE_buildRing (EE *thee)
 Build the edge rings.
void SS_init (SS *thee, int dim, int id)
 Initialize a simplex.
void SS_reinit (SS *thee)
 Re-Initialize a simplex.
void SS_setReality (SS *thee, int type)
 Set the reality.
void SS_setDim (SS *thee, int dim)
 Set the dimension.
void SS_setClass (SS *thee, int type)
 Set the class.
void SS_setType (SS *thee, int type)
 Set the type.
void SS_setChart (SS *thee, int chart)
 Set the chart.
void SS_setId (SS *thee, int id)
 Set the ID.
unsigned int SS_reality (SS *thee)
 Return the reality.
unsigned int SS_dim (SS *thee)
 Return the dimension.
unsigned int SS_dimVV (SS *thee)
 Return the number of vertices in a simplex.
unsigned int SS_dimEE (SS *thee)
 Return the number of edges in a simplex.
unsigned int SS_dimFF (SS *thee)
 Return the number of faces in a simplex.
unsigned int SS_class (SS *thee)
 Return the class.
unsigned int SS_type (SS *thee)
 Return the type.
unsigned int SS_chart (SS *thee)
 Return the chart.
unsigned int SS_id (SS *thee)
 Return the ID.
void SS_setFaceType (SS *thee, int f, int type)
 Set the face type.
void SS_setRefinementEdge (SS *thee, int i)
 Set the refinement edge.
void SS_setMarkedEdge1 (SS *thee, int i)
 Set the first marked edge.
void SS_setMarkedEdge2 (SS *thee, int i)
 Set the second marked edge.
void SS_setMarkedEdge3 (SS *thee, int i)
 Set the third marked edge.
void SS_setDegen (SS *thee, int i)
 Set degenerate marking flag.
void SS_setRefinementCount (SS *thee, int i)
 Set refinement count.
void SS_setRefineKey (SS *thee, int which, int key)
 Set refinement key.
void SS_setVertex (SS *thee, int i, VV *vx)
 Set a given vertex.
void SS_setLink (SS *thee, VV *vx, SS *sm)
 Set the next simplex pointer for a given simplex ring.
unsigned int SS_faceType (SS *thee, int f)
 Set the type of a given face.
unsigned int SS_refinementEdge (SS *thee)
 Return the refinement edge.
unsigned int SS_markedEdge1 (SS *thee)
 Return the first marked edge.
unsigned int SS_markedEdge2 (SS *thee)
 Return the second marked edge.
unsigned int SS_markedEdge3 (SS *thee)
 Return the third marked edge.
unsigned int SS_degen (SS *thee)
 Return the degenerate edge marker.
unsigned int SS_refinementCount (SS *thee)
 Return the refinement count.
unsigned int SS_refineKey (SS *thee, int which)
 Return the refinement key.
VVSS_vertex (SS *thee, int i)
 Return a given vertex.
SSSS_link (SS *thee, VV *vx)
 Return the next simplex in a given simplex ring.
int SS_faceVertexNumber (SS *thee, int f, int i)
 Return local vertex number i for face f.
int SS_vptr2localVnum (SS *thee, VV *vx)
 Return the local vertex number associated with a given vertex.
SSSS_ctor (int dim, int myid)
 The simplex constructor.
void SS_dtor (SS **thee)
 The simplex destructor.
void SS_initRing (SS *thee)
 Initialize the simplex rings.
void SS_meltRing (SS *thee)
 Destroy the simplex rings.
void SS_buildRing (SS *thee)
 Build the simplex rings.
SSSS_nabor (SS *thee, int i)
 Return the simplex sharing face i (opposite vertex i).
EESS_edge (SS *thee, int i, int j)
 Return the edge connecting vertices i and j.
int SS_sharedFaceLocNum (SS *thee, SS *sm)
 Return local face number of face shared between two simplices.
int SS_localEdgeType (SS *thee, VV *v0, VV *v1)
 Return the proper edge type (interior/boundary) of an edge connecting the two given vertices.
void SS_reverse (SS *thee)
 Reverse the orientation of a simplex by swapping vertices.
VPUBLIC FFFF_ctor (int grandParentFace, SS *sPtr, int color)
 The FF constructor.


Detailed Description

Class V,E,S: the fundamental simplex geometry objects.

Author:
Michael Holst
Note:
This is an implementation of the RIVER datastructure. RIVER = RInged-VERtex data Structure
Version:
Id
ves.h,v 1.22 2010/07/27 19:18:54 fetk Exp

Attention:
 *
 * MC = < Manifold Code >
 * Copyright (C) 1994--2008 Michael Holst
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 *
 *  

Generated on Mon Aug 9 11:13:44 2010 for MC by  doxygen 1.5.6