“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-Attribs*int* **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)