Public Types | |
enum | edgeType_ { NONE = 0, CONVEXEDGE = 1, CONCAVEEDGE = 2, FLATSURFACEEDGE = 4, FEATUREEDGE = 8 } |
Public Member Functions | |
triSurfaceClassifyEdges (const meshOctree &octree) | |
Construct from octree. More... | |
~triSurfaceClassifyEdges () | |
direction | edgeType (const label edgeI) const |
return the edge type according to the above enumerator More... | |
const List< direction > & | edgeTypes () const |
return the list of edge classification More... | |
Private Member Functions | |
void | checkOrientation () |
check the orientation of the patches in the triangulated surface More... | |
void | classifyEdgesTypes () |
classify edges based on the orientation of the surface facets More... | |
triSurfaceClassifyEdges (const triSurfaceClassifyEdges &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const triSurfaceClassifyEdges &) |
Disallow default bitwise assignment. More... | |
Private Attributes | |
const meshOctree & | octree_ |
reference to meshOctree More... | |
List< direction > | edgeTypes_ |
flags for surface edges More... | |
List< direction > | facetOrientation_ |
orientation of facet's normal (0 - unknown, 1- outward, 2- inward) More... | |
Definition at line 55 of file triSurfaceClassifyEdges.H.
enum edgeType_ |
Enumerator | |
---|---|
NONE | |
CONVEXEDGE | |
CONCAVEEDGE | |
FLATSURFACEEDGE | |
FEATUREEDGE |
Definition at line 84 of file triSurfaceClassifyEdges.H.
|
private |
Disallow default bitwise copy construct.
triSurfaceClassifyEdges | ( | const meshOctree & | octree | ) |
Construct from octree.
Definition at line 41 of file triSurfaceClassifyEdges.C.
References Foam::triSurfaceChecks::checkOrientation().
Definition at line 54 of file triSurfaceClassifyEdges.C.
|
private |
check the orientation of the patches in the triangulated surface
sort all surface facets into groups consisting of facets with consistent orientation. Do not cross non-manifold edges
check the orientation of triangles at this edge check the sign of the angle if the orientation is not consistent
find the octree leaves containing each triangle
check the orientation of all facets in a group and collect their votes
find the OUTSIDE octree cubes in the vicinity of the triangle and check the orientation of the triangle
check whether the ray casted from the centre of the triangle intersects the cube
found an intersection in the positive direction
found an intersection in the negative direction
determine whether a group is oriented outward or inward
Finally, set the orientation of the normal
Definition at line 46 of file triSurfaceClassifyEdgesFunctions.C.
References LongList< T, Offset >::append(), DynList< T, staticSize >::append(), Foam::help::boundBoxLineIntersection(), Foam::constant::universal::c, triFace::centre(), DynList< T, staticSize >::clear(), meshOctree::containedTriangles(), meshOctreeCubeCoordinates::cubeBox(), meshOctreeCubeBasic::cubeType(), triSurfAddressing::edgeFacets(), Foam::endl(), triSurfAddressing::facetEdges(), triSurfaceClassifyEdges::facetOrientation_, meshOctree::findAllLeafNeighbours(), Pair::first(), forAll, forAllRow, Foam::Info, Foam::mag(), n, triFace::normal(), meshOctree::numberOfLeaves(), triSurfaceClassifyEdges::octree_, meshOctreeCubeBasic::OUTSIDE, pMin(), points, triSurfPoints::points(), LongList< T, Offset >::removeLastElement(), meshOctree::returnLeaf(), meshOctree::rootBox(), Pair::second(), VRWGraph::setRowSize(), DynList< T, staticSize >::setSize(), List::setSize(), triSurfFacets::size(), LongList< T, Offset >::size(), DynList< T, staticSize >::size(), meshOctreeCubeCoordinates::size(), VRWGraph::sizeOfRow(), and meshOctree::surface().
|
private |
classify edges based on the orientation of the surface facets
set feature edge types
Finally, check the edges and assign flags
this is not a manifold edge
surface is a manifold at this edge
facet is outward oriented
this is a convex edge
this is a concave edge
facet is inward oriented
this is a convex edge
this is a concave edge
Definition at line 276 of file triSurfaceClassifyEdgesFunctions.C.
References triSurfaceClassifyEdges::CONCAVEEDGE, triSurfaceClassifyEdges::CONVEXEDGE, Foam::e, triSurfAddressing::edgeFacets(), triSurfAddressing::edges(), triSurfaceClassifyEdges::edgeTypes_, f1, triSurfaceClassifyEdges::facetOrientation_, triSurfaceClassifyEdges::FEATUREEDGE, triSurfFeatureEdges::featureEdges(), triSurfaceClassifyEdges::FLATSURFACEEDGE, forAll, forAllRow, found, tetrahedron::mag(), triSurfaceClassifyEdges::NONE, triSurfaceClassifyEdges::octree_, triSurfAddressing::pointEdges(), points, triSurfPoints::points(), labelledTri::region(), List::setSize(), VRWGraph::size(), VRWGraph::sizeOfRow(), and meshOctree::surface().
|
private |
Disallow default bitwise assignment.
return the edge type according to the above enumerator
Definition at line 106 of file triSurfaceClassifyEdges.H.
References triSurfaceClassifyEdges::edgeTypes_.
return the list of edge classification
Definition at line 59 of file triSurfaceClassifyEdges.C.
References triSurfaceClassifyEdges::edgeTypes_.
Referenced by edgeExtractor::checkConcaveEdgeCells().
|
private |
reference to meshOctree
Definition at line 59 of file triSurfaceClassifyEdges.H.
Referenced by triSurfaceClassifyEdges::checkOrientation(), and triSurfaceClassifyEdges::classifyEdgesTypes().
flags for surface edges
Definition at line 62 of file triSurfaceClassifyEdges.H.
Referenced by triSurfaceClassifyEdges::classifyEdgesTypes(), triSurfaceClassifyEdges::edgeType(), and triSurfaceClassifyEdges::edgeTypes().
orientation of facet's normal (0 - unknown, 1- outward, 2- inward)
Definition at line 65 of file triSurfaceClassifyEdges.H.
Referenced by triSurfaceClassifyEdges::checkOrientation(), and triSurfaceClassifyEdges::classifyEdgesTypes().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.