220 lines
6.7 KiB
Markdown
Executable File
220 lines
6.7 KiB
Markdown
Executable File
---
|
||
GENERATOR: 'Mozilla/4.05C-SGI [en] (X11; I; IRIX64 6.5 IP28) [Netscape]'
|
||
---
|
||
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow2.gif">"30"
|
||
"30"](http://www.ees.lanl.gov/staff/rao/mstkla/mstkla.md#MESH%20EDGE:) <img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow3.gif">"30"
|
||
"30"](http://www.ees.lanl.gov/staff/rao/mstkla/MeshFace.md) <img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow4.gif">"30"
|
||
"30"](http://www.ees.lanl.gov/staff/rao/mstkla/MeshVertex.md)
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
**MESH EDGES:**
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
Since LaGriT does not really store mesh edges, the mesh edge data
|
||
|
||
structure (*MeshEdge*, *PMeshEdge*) is created on the fly whenever edge
|
||
|
||
information is requested. Therefore after utilizing the edge(s) get
|
||
|
||
information, it (they) should be destroyed by calling ME\_Delete
|
||
|
||
operator.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*int* **ME\_Number**(*PMeshObj* mesh, *PMeshEdge* e);
|
||
|
||
*
|
||
* This will return 0 for now since I haven't yet decided on a good
|
||
|
||
*
|
||
* way to assign a unique number to the (virtual) edges of the mesh.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*void* **ME\_Delete**(*PMeshEdge* e);
|
||
|
||
Free the data structure associated with this edge created on the fly.
|
||
|
||
(There is an operator for creation but I cannot yet imagine needing to
|
||
|
||
make that a publicly available operator).
|
||
|
||
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/bullet12.gif">"27" "31"
|
||
*
|
||
* IMPORTANT
|
||
*
|
||
*
|
||
|
||
ME\_Delete will not remove any connections in the mesh. It just destroys
|
||
the
|
||
|
||
temporary data structure used to store the edge info
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*int* **ME\_IsParent**(*PMeshObj* mesh, *PMeshEdge* pe);
|
||
|
||
If both vertices of the edge are parents, the edge is a parent.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*PMeshEdge* **ME\_Parent**(*PMeshObj* mesh, *PMeshEdge* pe);
|
||
|
||
The parents of each vertex of the edge are obtained and a new 'parent'
|
||
|
||
edge is constructed from them.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*void* **ME\_Children**(*PMeshObj* mesh, *PMeshEdge* pe, *int*
|
||
*nec,
|
||
*PMeshEdge*
|
||
*
|
||
*ec);
|
||
|
||
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/note1.gif">"31" "32"
|
||
*
|
||
*
|
||
* NOT YET
|
||
IMPLEMENTED
|
||
*
|
||
*
|
||
*
|
||
|
||
Child vertices of the face are found and appropriate combinations of
|
||
these vertices are used to construct the new 'child' faces. For a
|
||
combination to be appropriate, the vertices of the child face has to
|
||
point to the same material region.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*int* **MEs\_areSame**(*PMeshEdge* e1, *PMeshEdge* e2);
|
||
|
||
Compare the data in two MeshEdge data structures and see if they
|
||
|
||
represent the same connection in the mesh. This operator is needed
|
||
|
||
since the on-the-fly *PMeshEdge* pointers may not be the same and they
|
||
|
||
do not directly point to any persistent "object" in the database.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*PGeomEntity* **ME\_GMentity**(*PMeshObj* mesh, *PMeshEdge* e);
|
||
|
||
Return the geometric model entity the edge is on. In the absence of
|
||
explicit
|
||
|
||
edge representation in the database, this may be problematic in a few
|
||
cases
|
||
|
||
cases where multiple classifications are possible.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*GType* **ME\_GMtype**(*PMeshObj* mesh, *PMeshEdge* e);
|
||
|
||
Return the type of geometric model entity the edge is on. This (I
|
||
|
||
think) is more deterministically found from the classifications of its
|
||
|
||
vertices but still there may be some incorrect cases. The way around
|
||
|
||
is complicated and will not be implemented for now.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*PMeshVert* **ME\_Vertex**(*PMeshObj* mesh, *PMeshEdge* e, *int* i);
|
||
|
||
Return the i'th vertex of the mesh edge. i can only be 0 or 1.
|
||
|
||
Parent edges return parent vertices and child edges return child
|
||
vertices.
|
||
|
||
If a vertex is not on an interface the vertex itself is returned.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/new1.gif">"31" "12"*PMeshVert*
|
||
**ME\_OtherVertex**(*PMeshObj* mesh, *PMeshEdge* e, *PMeshVert* v);
|
||
|
||
Return the other vertex of the mesh edge (obviously the one that is not
|
||
v).
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*void* **ME\_Faces**(*PMeshObj* mesh, *PMeshEdge* e, *int*
|
||
*nef,
|
||
*PMeshFace*
|
||
*
|
||
*efaces);
|
||
|
||
Get the "faces" of an "edge". The faces data structures are also
|
||
|
||
constructed on the fly since they do not exist in the LaGriT
|
||
|
||
database. Also, as with other upward connectivity queries, this can
|
||
|
||
execute usefully only if the routine MESH\_BldUpAdj is called
|
||
|
||
beforehand. Also, see note on freeing the *PMeshFace* structures listed
|
||
|
||
under MV\_Edges and MV\_Faces.
|
||
|
||
The behavior of this operator for parent and child edges is similar to
|
||
|
||
MV\_Edges.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*void* **ME\_Regions**(*PMeshObj* mesh, *PMeshEdge* e, *int*
|
||
*ner,
|
||
*PMeshRegn*
|
||
*
|
||
*eregions);
|
||
|
||
Get the regions connected to an edge. MESH\_BldUpAdj must be called
|
||
before this operator can be called usefully.
|
||
|
||
The behavior of this operator for child and parent edges is similar to
|
||
|
||
that of MV\_Regions.
|
||
|
||
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/bullet12.gif">"27" "31"
|
||
*
|
||
* IMPORTANT
|
||
*
|
||
*
|
||
|
||
Since MESH\_BldUpAdj builds explicit upward adjacency information, this
|
||
|
||
routine does not require a seed region to be provided. Also, this
|
||
|
||
routine will work regardless of whether there is a complete cycle of
|
||
|
||
regions around the edge and whether the edge is an arbitrary type of
|
||
|
||
non-manifold edge!!
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
*int* **ME\_EntOnBdry**(*PMeshObj* mesh, *PMeshEdge* pe, *PMeshVert*e
|
||
pv);
|
||
|
||
Check if vertex is on the boundary of edge. In other words, is this
|
||
|
||
vertex one of the edges vertices.
|
||
|
||
|
||
|
||
|
||
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow2.gif">"30"
|
||
"30"](http://www.ees.lanl.gov/staff/rao/mstkla/mstkla.md#MESH%20EDGE:) <img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow3.gif">"30"
|
||
"30"](http://www.ees.lanl.gov/staff/rao/mstkla/MeshFace.md) <img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow4.gif">"30"
|
||
"30"](http://www.ees.lanl.gov/staff/rao/mstkla/MeshVertex.md)
|