Files
LaGriT/docs/_site/pages/mstkla/MeshEdge.html
2025-12-17 11:00:57 +08:00

391 lines
16 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<html lang="en-gb" dir="ltr">
<head>
<title>LaGriT</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
<!-- load stylesheets -->
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
<!-- tipuesearch files -->
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
</head>
<body>
<div>
<!-- Header -->
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
<div class="uk-container uk-container-expand">
<nav class="uk-navbar">
<div class="uk-navbar-left">
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
LaGriT
</a>
</div>
<div class="uk-navbar-right">
<ul class="uk-navbar-nav uk-visible@m">
<li><a href="/pages/commands">Commands</a></li>
<li><a href="/pages/tutorial/index">Tutorials</a></li>
<li><a href="/pages/release">Release Notes</a></li>
<li><a href="/pages/publications">Publications</a></li>
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
<!-- Begin search bar -->
<div class="nav-overlay uk-navbar-right">
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
</div>
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
<div class="uk-navbar-item uk-width-expand">
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
</form>
</div>
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
</div>
<script>
$(document).ready(function() {
$('#tipue_search_input').tipuesearch({
'show': 10,
'newWindow' : true,
'showURL' : true,
'showTitleCount' : true,
'descriptiveWords' : 20,
'highlightTerms' : true,
'mode': 'static',
});
});
</script>
<!-- End search bar -->
</ul>
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
<rect y="9" width="20" height="2"></rect>
<rect y="3" width="20" height="2"></rect>
<rect y="15" width="20" height="2"></rect>
</svg>
</a>
</div>
</nav>
</div>
</div>
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
<!-- End Header -->
<!-- Main Body text -->
<div class="tm-main uk-section uk-section-default">
<div class="uk-container uk-container-small uk-position-relative">
<p><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)</p>
<hr />
<hr />
<p>   <strong>MESH EDGES:</strong></p>
<hr />
<p>Since LaGriT does not really store mesh edges, the mesh edge data</p>
<p>structure (<em>MeshEdge</em>, <em>PMeshEdge</em>) is created on the fly whenever edge</p>
<p>information is requested. Therefore after utilizing the edge(s) get</p>
<p>information, it (they) should be destroyed by calling ME_Delete</p>
<p>operator.</p>
<hr />
<p><em>int</em> <strong>ME_Number</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e);</p>
<p>*</p>
<ul>
<li>This will return 0 for now since I havent yet decided on a good</li>
</ul>
<p>*</p>
<ul>
<li>way to assign a unique number to the (virtual) edges of the mesh.</li>
</ul>
<hr />
<p><em>void</em> <strong>ME_Delete</strong>(<em>PMeshEdge</em> e);</p>
<p>Free the data structure associated with this edge created on the fly.</p>
<p>(There is an operator for creation but I cannot yet imagine needing to</p>
<p>make that a publicly available operator).</p>
<p><img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/bullet12.gif" />“27” “31”
*</p>
<ul>
<li>IMPORTANT
*
*</li>
</ul>
<p>ME_Delete will not remove any connections in the mesh. It just destroys
the</p>
<p>temporary data structure used to store the edge info</p>
<hr />
<p><em>int</em> <strong>ME_IsParent</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> pe);</p>
<p>If both vertices of the edge are parents, the edge is a parent.</p>
<hr />
<p><em>PMeshEdge</em> <strong>ME_Parent</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> pe);</p>
<p>The parents of each vertex of the edge are obtained and a new parent</p>
<p>edge is constructed from them.</p>
<hr />
<p><em>void</em> <strong>ME_Children</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> pe, <em>int</em>
<em>nec,
*PMeshEdge</em>
*
*ec);</p>
<p><img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/note1.gif" />“31” “32”
*
*</p>
<ul>
<li>NOT YET
IMPLEMENTED
*
*
*</li>
</ul>
<p>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.</p>
<hr />
<p><em>int</em> <strong>MEs_areSame</strong>(<em>PMeshEdge</em> e1, <em>PMeshEdge</em> e2);</p>
<p>Compare the data in two MeshEdge data structures and see if they</p>
<p>represent the same connection in the mesh. This operator is needed</p>
<p>since the on-the-fly <em>PMeshEdge</em> pointers may not be the same and they</p>
<p>do not directly point to any persistent “object” in the database.</p>
<hr />
<p><em>PGeomEntity</em> <strong>ME_GMentity</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e);</p>
<p>Return the geometric model entity the edge is on. In the absence of
explicit</p>
<p>edge representation in the database, this may be problematic in a few
cases</p>
<p>cases where multiple classifications are possible.</p>
<hr />
<p><em>GType</em> <strong>ME_GMtype</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e);</p>
<p>Return the type of geometric model entity the edge is on. This (I</p>
<p>think) is more deterministically found from the classifications of its</p>
<p>vertices but still there may be some incorrect cases. The way around</p>
<p>is complicated and will not be implemented for now.</p>
<hr />
<p><em>PMeshVert</em> <strong>ME_Vertex</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e, <em>int</em> i);</p>
<p>Return the ith vertex of the mesh edge. i can only be 0 or 1.</p>
<p>Parent edges return parent vertices and child edges return child
vertices.</p>
<p>If a vertex is not on an interface the vertex itself is returned.</p>
<hr />
<p><img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/new1.gif" />“31” “12”<em>PMeshVert</em>
<strong>ME_OtherVertex</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e, <em>PMeshVert</em> v);</p>
<p>Return the other vertex of the mesh edge (obviously the one that is not
v).</p>
<hr />
<p><em>void</em> <strong>ME_Faces</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e, <em>int</em>
<em>nef,
*PMeshFace</em>
*
*efaces);</p>
<p>Get the “faces” of an “edge”. The faces data structures are also</p>
<p>constructed on the fly since they do not exist in the LaGriT</p>
<p>database. Also, as with other upward connectivity queries, this can</p>
<p>execute usefully only if the routine MESH_BldUpAdj is called</p>
<p>beforehand. Also, see note on freeing the <em>PMeshFace</em> structures listed</p>
<p>under MV_Edges and MV_Faces.</p>
<p>The behavior of this operator for parent and child edges is similar to</p>
<p>MV_Edges.</p>
<hr />
<p><em>void</em> <strong>ME_Regions</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e, <em>int</em>
<em>ner,
*PMeshRegn</em>
*
*eregions);</p>
<p>Get the regions connected to an edge. MESH_BldUpAdj must be called
before this operator can be called usefully.</p>
<p>The behavior of this operator for child and parent edges is similar to</p>
<p>that of MV_Regions.</p>
<p><img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/bullet12.gif" />“27” “31”
*</p>
<ul>
<li>IMPORTANT
*
*</li>
</ul>
<p>Since MESH_BldUpAdj builds explicit upward adjacency information, this</p>
<p>routine does not require a seed region to be provided. Also, this</p>
<p>routine will work regardless of whether there is a complete cycle of</p>
<p>regions around the edge and whether the edge is an arbitrary type of</p>
<p>non-manifold edge!!</p>
<hr />
<p><em>int</em> <strong>ME_EntOnBdry</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> pe, <em>PMeshVert</em>e
pv);</p>
<p>Check if vertex is on the boundary of edge. In other words, is this</p>
<p>vertex one of the edges vertices.</p>
<p> </p>
<p> 
<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)</p>
</div>
</div>
<!-- Begin footer -->
<footer class="footer-distributed">
<div class="footer-right">
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
</div>
<div class="footer-left lg-background-color">
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
<a href="/">Home</a>
·
<a href="/pylagrit/original/index.html">PyLaGriT</a>
·
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
·
<a href="/pages/licensing.html">License</a>
·
<a href="https://lagrit.lanl.gov/">Contact</a>
</p>
<p>&copy; 2019 Los Alamos National Laboratory</p>
<p>EES-16 | Computational Earth Science</p>
<p>LA-CC-15-069</p>
</div>
</footer>
<!-- Begin Navigation Bar -->
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
<div class="uk-offcanvas-bar">
<div class="uk-panel">
<ul class="uk-nav uk-nav-default tm-nav">
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
<a href="" uk-search-icon></a>
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
</form>
<li class="uk-nav-header">General</li>
<li><a href="/">Home</a></li>
<li><a href="/pages/commands">Commands</a></li>
<li><a href="/pages/release">Release Notes</a></li>
<li><a href="/pages/publications">Publications</a></li>
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
</ul>
</div>
</div>
</div>
<!-- End Navigation Bar -->
</div>
</body>
</html>