initial upload
This commit is contained in:
286
docs/pages/mstkla/MeshFace.md
Executable file
286
docs/pages/mstkla/MeshFace.md
Executable file
@@ -0,0 +1,286 @@
|
||||
---
|
||||
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%20FACE:) <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/MeshRegion.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/MeshEdge.md)
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
**MESH FACES:**
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Since LaGriT does not really store mesh faces, the mesh face data
|
||||
|
||||
structure (MeshFace, *PMeshFace*) is created on the fly whenever face
|
||||
|
||||
information is requested. Therefore after utilizing the face(s) get
|
||||
|
||||
information, it (they) should be destroyed by calling MF\_Delete
|
||||
|
||||
operator.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*int* **MF\_Number**(*PMeshObj* mesh, *PMeshFace* f);
|
||||
|
||||
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/note1.gif">"31" "32"
|
||||
*
|
||||
* This will return 0
|
||||
for now since I haven't yet decided on a good
|
||||
|
||||
*
|
||||
* way to assign a unique number to the (virtual) faces of the mesh.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*void* **MF\_Delete**(*PMeshFace* f);
|
||||
|
||||
Free the data structure associated with this face 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
|
||||
*
|
||||
*
|
||||
|
||||
MF\_Delete will not remove any connections in the mesh. It just
|
||||
|
||||
destroys the temporary data structure used to store the face info
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*int* **MF\_IsParent**(*PMeshObj* mesh, *PMeshFace* pf);
|
||||
|
||||
If all vertices of the face are parents, the face is a parent.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*PMeshFace* **MF\_Parent**(*PMeshObj* mesh, *PMeshFace* pf);
|
||||
|
||||
The parents of all vertices of the face are obtained and a new
|
||||
|
||||
'parent' face is constructed from them.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*void* **MF\_Children**(*PMeshObj* mesh, *PMeshFace* pf, *int*
|
||||
*nfc,
|
||||
*PMeshFace*
|
||||
*
|
||||
*fc);
|
||||
|
||||
<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* **MFs\_areSame**(*PMeshObj* mesh, *PMeshFace* f1, *PMeshFace* f2);
|
||||
|
||||
Compare the data in two MeshFace data structures and see if they
|
||||
|
||||
represent the same connection in the mesh. This operator is needed
|
||||
|
||||
since the on-the-fly *PMeshFace* pointers may not be the same and they
|
||||
|
||||
do not directly point to any persistent "object" in the database.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*PGeomEntity* **MF\_GMentity**(*PMeshObj* mesh, *PMeshFace* f);
|
||||
|
||||
Return the geometric model entity the face is on. In the absence of
|
||||
|
||||
explicit face representation in the database, this may be problematic
|
||||
|
||||
in a few cases cases where multiple classifications are possible.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*GType* **MF\_GMtype**(*PMeshObj* mesh, *PMeshFace* f);
|
||||
|
||||
Return the type of geometric model entity the face is on. This (I
|
||||
|
||||
think) is more deterministically found from the classifications of its
|
||||
|
||||
vertices but some problems may still occur. See Comments in ME\_GMtype.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*PMeshVert* **MF\_Vertices**(*PMeshObj* mesh, *PMeshFace* f, *int*
|
||||
|
||||
*nfv, *PMeshVert*ex
|
||||
*
|
||||
*fverts);
|
||||
|
||||
Return the vertices of the mesh face. The vertices are in no
|
||||
|
||||
particular order. Parent faces return parent vertices and child faces
|
||||
|
||||
child vertices. If a vertex is not on an non-manifold boundary
|
||||
|
||||
(interface) the vertex itself is returned.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*PMeshVert* **MF\_VerticesOrd**(*PMeshObj* mesh, *PMeshFace* f, *int*
|
||||
|
||||
*nfv, *PMeshVert*ex
|
||||
*
|
||||
*fverts);
|
||||
|
||||
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/note1.gif">"31" "32"
|
||||
*
|
||||
* NOT YET IMPLEMENTED
|
||||
|
||||
*
|
||||
*
|
||||
|
||||
Return the vertices of the mesh face. The vertices are ordered such
|
||||
|
||||
that the smallest one is the first. Also, the sequence is such that
|
||||
|
||||
the face points out of the region connected to it or in case there are
|
||||
|
||||
two regions connected to it, such that it points out of the region
|
||||
|
||||
with the lower ID Number. The behavior of the operator for parent and
|
||||
|
||||
child faces is the same as MF\_Vertices
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*void* **MF\_Edges**(*PMeshObj* mesh, *PMeshFace* f, *int*
|
||||
*nef,
|
||||
*PMeshFace*
|
||||
*
|
||||
*efaces);
|
||||
|
||||
Get the "edges" of an "face". The edges data structures are
|
||||
|
||||
constructed on the fly since they do not exist in the LaGriT
|
||||
|
||||
database. See note on freeing the *PMeshFace* structures listed under
|
||||
|
||||
MV\_Edges and MV\_Faces. Parent faces return parent edges and child
|
||||
|
||||
faces return child edges.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*void* **MF\_Regions**(*PMeshObj* mesh, *PMeshFace* f, *PMeshRegn*
|
||||
fregions[2]);
|
||||
|
||||
Get the regions connected to an face. MESH\_BldUpAdj must be called
|
||||
|
||||
before this operator can be called usefully. The regions will be
|
||||
|
||||
returned such that the face 'f' as defined will point out fregions[0]
|
||||
|
||||
(if it exists) and into fregions[1] (if it exists).
|
||||
|
||||
A parent face will return both regions connected to it while a child
|
||||
|
||||
face will return a region only on its side of the interface. If a
|
||||
|
||||
"child" face constructed from interior nodes and child nodes on an
|
||||
|
||||
interface, both regions connected to it are returned.
|
||||
|
||||
<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.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*int* **MF\_EntOnBdry**(*PMeshObj* mesh, *PMeshFace* f, MType mtype,
|
||||
PMeshEntity pent);
|
||||
|
||||
Check if mesh entity of type 'mtype' is on the boundary of mesh
|
||||
|
||||
face. mtype can only be MEDGE or MVERTEX. In other words, check if
|
||||
|
||||
mesh face is made up of mesh edge or vertex in question.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
[]{#MF-Attribs*int* **MF\_GetAttVal**(*PMeshObj* mesh, *PMeshFace* f,
|
||||
*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)
|
||||
|
||||
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/bullet12.gif">"27" "31" Will only work for
|
||||
surface meshes
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
*int* **MR\_SetAttVal**(*PMeshObj* mesh, *PMeshFace* f, *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.....
|
||||
|
||||
|
||||
|
||||
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/bullet12.gif">"27" "31" Will only work for
|
||||
surface meshes
|
||||
<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%20FACE:) <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/MeshRegion.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/MeshEdge.md)
|
||||
Reference in New Issue
Block a user