“30” “30”](http://www.ees.lanl.gov/staff/rao/mstkla/mstkla.md#MESH%20VERTEX:) “30” “30”](http://www.ees.lanl.gov/staff/rao/mstkla/MeshEdge.md) “30” “30”](http://www.ees.lanl.gov/staff/rao/mstkla/GenRegion.md)

 



   MESH VERTEX OPERATORS

 


int MV_Number(PMeshObj mesh, PMeshVert v);

Return an ID number for the mesh vertex.

 


VType MV_Type(PMeshObj mesh, PMeshVert v);

Return the mesh vertex type. Most useful in checking if a mesh vertex

has been deleted or if it is a parent vertex on an interface


PGeomEntity MV_GMEntity(PMeshObj mesh, PMeshVert v);

Return the geometric model entity the mesh vertex is classified on.


GType MV_GMtype(PMeshObj mesh, PMeshVert v);

Return the type of geometric model entity the mesh vertex is

classified on (GREGION, GFACE, GEDGE, GVERTEX, GUNKNOWN).


void MV_Coords(PMeshObj mesh, PMeshVert v, double *xyz);

Coordinates of mesh vertex


int MV_IsParent(PMeshObj mesh, PMeshVert v);

“31” “32”A vertex not on an interface is its own parent - return value will be 1


int MV_IsChild(PMeshObj mesh, PMeshVert v);

“31” “32”A vertex not on an interface is its own child - return value will be 1


PMeshVert MV_Parent(PMeshObj mesh, PMeshVert v);

“31” “32”For a vertex not on an interface, the vertex itself is returned


void MV_Children(PMeshVert mesh, PMeshVert v, int nvc, *PMeshVert * *vc)

“31” “32”For a vertex not on an interface, a 1 item array with the vertex

pointer itself is returned and nvc = 1

 


void MV_Edges(PMeshObj mesh, PMeshVert v, int nve, *PMeshEdge * *vedges);

List of mesh edges connected to vertex. For this routine to work

properly, one must call MESH_BldAdj first. If not the routine will

just return 0.

If the vertex is a parent vertex, then the operator will return all

the edges connected to all the child vertices of the vertex. The edge

returned will be of type PARENT. Each of these edges will be made up

of ‘v’ and any other parent vertex it is connected to. If it is a

child vertex, then it will return edges connected only to itself.  In

this case all the edges will be of type CHILD. Each edge will be made

up of the child vertex ‘v’ and any other child vertex it is connected

to. Note that vertices on 2-manifold (single material) boundaries and

in the interior can be considered a parent or a child as required.

“27” “31” * *

  • IMPORTANT

* * *

When finished with the list of edges, call ME_Delete on each of the

edges and free the vedges list. This is important since the MeshEdge

data structures are created on the fly and the MESH object does not

keep track of them.

 


void MV_Faces(PMeshObj mesh, PMeshVert v, int nvf, *PMeshFace * *vfaces);

“31” “32” *

  • NOT YET TESTED * *

List of mesh faces connected to vertex. For this routine to work

properly, one must call MESH_BldAdj first. If not the routine will

just return 0.

The behavior of the operator for parent and child vertices is the same

as it is for MV_Edges.

“27” “31” * *

  • IMPORTANT

* * *

When finished with the list of faces, call MF_Delete on each of the

faces and free the vfaces list. This is important since the MeshFace

data structures are created on the fly and the MESH object does not

keep track of them.


int MV_numRegions(PMeshObj mesh, PMeshVert v);

Number of mesh regions connected to mesh vertex. For this routine to

work properly, one must call MESH_BldUpAdj first. If not the routine

will just return 0.

 


void MV_Regions(PMeshObj mesh, PMeshVert v, int nr, *PMeshRegn * *regns);

List of mesh regions connected to mesh vertex. For this routine to

work properly, one must call MESH_BldUpAdj first. If not the routine

will just return 0 for the number of regions and a NULL pointer for

the region list.

 

For a parent vertex, mesh regions in all the material regions

connected to all its children are returned. For a child vertex, only

mesh regions in the particular material region pointed to by the child

are returned.


[]{#MV-Attribsint MV_GetAttVal(PMeshObj mesh, PMeshVert v, *char **attname, *int **ival,

*double **rval, *char **cval, *void * **pval, *AttType **atype);

Depending on the type of the attribute, the appropriate field will be

filled on succesful completion. Arrays are returned in pval, integer in

ival and real number in rval (I don’t think lagrit supports character

attributes)

 


int MV_SetAttVal(PMeshObj mesh, PMeshVert v, *char

*attname, *int ival,

double rval, char cval, *void **pval);

This is similar to the GetAttVal routine - depending on the type and

rank, one sends in a value with the right variable

* *

  • PERHAPS these routines need an additional variable, “rank” but for

now…..

 

  “30” “30”](http://www.ees.lanl.gov/staff/rao/mstkla/mstkla.md#MESH%20VERTEX:) “30” “30”](http://www.ees.lanl.gov/staff/rao/mstkla/MeshEdge.md) “30” “30”](http://www.ees.lanl.gov/staff/rao/mstkla/GenRegion.md)