#include <mc/mc_base.h>
#include <mc/vel.h>
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. | |
EE * | VV_firstEE (VV *thee) |
Set the first edge in an edge ring. | |
SS * | VV_firstSS (VV *thee) |
Set the first simplex in a simplex ring. | |
EE * | VV_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. | |
VV * | VV_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. | |
EE * | VV_commonEdge (VV *thee, VV *v0) |
Return the common edge between two vertices. | |
EE * | VV_parentEdge (VV *thee, VV *v0) |
Return parent edge having one of two vertices as midpoint. | |
SS * | VV_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. | |
SS * | VV_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. | |
SS * | VV_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. | |
VV * | VV_commonVertex3 (VV *thee, VV *v0, VV *v1) |
the common vertex pointer | |
VV * | VV_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. | |
VV * | EE_vertex (EE *thee, int i) |
Return one of the vertices. | |
VV * | EE_midPoint (EE *thee) |
Return the midpoint of the edge. | |
EE * | EE_parent (EE *thee) |
Return the parent edge pointer. | |
VV * | EE_otherVertex (EE *thee, VV *vx) |
Return the vertex not matching the input vertex. | |
EE * | EE_link (EE *thee, VV *vx) |
Return the next edge in the ring around a given vertex. | |
EE * | EE_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. | |
VV * | SS_vertex (SS *thee, int i) |
Return a given vertex. | |
SS * | SS_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. | |
SS * | SS_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. | |
SS * | SS_nabor (SS *thee, int i) |
Return the simplex sharing face i (opposite vertex i). | |
EE * | SS_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 FF * | FF_ctor (int grandParentFace, SS *sPtr, int color) |
The FF constructor. |
* * 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 * *