#include "SMESH_MeshEditor.hxx"#include "SMDS_Downward.hxx"#include "SMDS_EdgePosition.hxx"#include "SMDS_FaceOfNodes.hxx"#include "SMDS_FacePosition.hxx"#include "SMDS_LinearEdge.hxx"#include "SMDS_MeshGroup.hxx"#include "SMDS_SetIterator.hxx"#include "SMDS_SpacePosition.hxx"#include "SMDS_VolumeTool.hxx"#include "SMESHDS_Group.hxx"#include "SMESHDS_Mesh.hxx"#include "SMESH_Algo.hxx"#include "SMESH_ControlsDef.hxx"#include "SMESH_Group.hxx"#include "SMESH_Mesh.hxx"#include "SMESH_MeshAlgos.hxx"#include "SMESH_MesherHelper.hxx"#include "SMESH_OctreeNode.hxx"#include "SMESH_subMesh.hxx"#include "utilities.h"#include "chrono.hxx"#include <BRepAdaptor_Surface.hxx>#include <BRepBuilderAPI_MakeEdge.hxx>#include <BRepClass3d_SolidClassifier.hxx>#include <BRep_Tool.hxx>#include <ElCLib.hxx>#include <Extrema_GenExtPS.hxx>#include <Extrema_POnCurv.hxx>#include <Extrema_POnSurf.hxx>#include <Geom2d_Curve.hxx>#include <GeomAdaptor_Surface.hxx>#include <Geom_Curve.hxx>#include <Geom_Surface.hxx>#include <Precision.hxx>#include <ShapeAnalysis.hxx>#include <ShapeAnalysis_Curve.hxx>#include <TColStd_ListOfInteger.hxx>#include <TopAbs_State.hxx>#include <TopExp.hxx>#include <TopExp_Explorer.hxx>#include <TopTools_ListIteratorOfListOfShape.hxx>#include <TopTools_ListOfShape.hxx>#include <TopTools_SequenceOfShape.hxx>#include <TopoDS.hxx>#include <TopoDS_Edge.hxx>#include <TopoDS_Face.hxx>#include <TopoDS_Solid.hxx>#include <gp.hxx>#include <gp_Ax1.hxx>#include <gp_Dir.hxx>#include <gp_Lin.hxx>#include <gp_Pln.hxx>#include <gp_Trsf.hxx>#include <gp_Vec.hxx>#include <gp_XY.hxx>#include <gp_XYZ.hxx>#include <cmath>#include <map>#include <set>#include <numeric>#include <limits>#include <algorithm>#include <sstream>#include <boost/tuple/tuple.hpp>#include <boost/container/flat_set.hpp>#include <Standard_Failure.hxx>#include <Standard_ErrorHandler.hxx>#include "SMESH_TryCatch.hxx"#include <smIdType.hxx>#include <Basics_OCCTVersion.hxx>Data Structures | |
| class | LinkID_Gen |
| class | ComparableElement |
| struct | ComparableElementHasher |
Macros | |
| #define | cast2Node(elem) static_cast<const SMDS_MeshNode*>( elem ) |
| #define | THIS_METHOD "SMESH_MeshEditor::GetHexaFacetsToSplit(): " |
| #define | ControlFreeBorder SMESH::Controls::FreeEdges::IsFreeEdge |
Functions | |
| static void | shiftNodesQuadTria (vector< const SMDS_MeshNode * > &aNodes) |
| static bool | getNodesFromTwoTria (const SMDS_MeshElement *theTria1, const SMDS_MeshElement *theTria2, vector< const SMDS_MeshNode * > &N1, vector< const SMDS_MeshNode * > &N2) |
| static bool | findTriangles (const SMDS_MeshNode *theNode1, const SMDS_MeshNode *theNode2, const SMDS_MeshElement *&theTria1, const SMDS_MeshElement *&theTria2) |
| bool | getQuadrangleNodes (const SMDS_MeshNode *theQuadNodes[], const SMDS_MeshNode *theNode1, const SMDS_MeshNode *theNode2, const SMDS_MeshElement *tr1, const SMDS_MeshElement *tr2) |
| static double | getBadRate (const SMDS_MeshElement *theElem, SMESH::Controls::NumericalFunctorPtr &theCrit) |
| double | getAngle (const SMDS_MeshElement *tr1, const SMDS_MeshElement *tr2, const SMDS_MeshNode *n1, const SMDS_MeshNode *n2) |
| void | averageBySurface (const Handle(Geom_Surface)&theSurface, const SMDS_MeshNode *refNode, TIDSortedElemSet &nodeSet, map< const SMDS_MeshNode *, gp_XY * > &theUVMap, double *coord) |
| void | laplacianSmooth (const SMDS_MeshNode *theNode, const Handle(Geom_Surface)&theSurface, map< const SMDS_MeshNode *, gp_XY * > &theUVMap) |
| void | correctTheValue (Standard_Real Umax, Standard_Real Umin, Standard_Real Vmax, Standard_Real Vmin, Standard_Real uref, Standard_Real vref, Standard_Real &u, Standard_Real &v) |
| void | averageByElement (const Handle(Geom_Surface)&theSurface, const SMDS_MeshNode *refNode, const SMDS_MeshElement *elem, map< const SMDS_MeshNode *, gp_XY * > &theUVMap, SMESH::Controls::TSequenceOfXYZ &aNodePoints, gp_XYZ &elemCenter) |
| void | centroidalSmooth (const SMDS_MeshNode *theNode, const Handle(Geom_Surface)&theSurface, map< const SMDS_MeshNode *, gp_XY * > &theUVMap) |
| static bool | getClosestUV (Extrema_GenExtPS &projector, const gp_Pnt &point, gp_XY &result) |
| static const SMDS_MeshElement * | findAdjacentFace (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshElement *elem) |
| static const SMDS_MeshElement * | findSegment (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2) |
| #define cast2Node | ( | elem | ) | static_cast<const SMDS_MeshNode*>( elem ) |
| #define ControlFreeBorder SMESH::Controls::FreeEdges::IsFreeEdge |
| #define THIS_METHOD "SMESH_MeshEditor::GetHexaFacetsToSplit(): " |
| void averageByElement | ( | const Handle(Geom_Surface)& | theSurface, |
| const SMDS_MeshNode * | refNode, | ||
| const SMDS_MeshElement * | elem, | ||
| map< const SMDS_MeshNode *, gp_XY * > & | theUVMap, | ||
| SMESH::Controls::TSequenceOfXYZ & | aNodePoints, | ||
| gp_XYZ & | elemCenter | ||
| ) |
| void averageBySurface | ( | const Handle(Geom_Surface)& | theSurface, |
| const SMDS_MeshNode * | refNode, | ||
| TIDSortedElemSet & | nodeSet, | ||
| map< const SMDS_MeshNode *, gp_XY * > & | theUVMap, | ||
| double * | coord | ||
| ) |
References cast2Node, SMDS_MeshNode::X(), SMDS_MeshNode::Y(), and SMDS_MeshNode::Z().
Referenced by laplacianSmooth().
| void centroidalSmooth | ( | const SMDS_MeshNode * | theNode, |
| const Handle(Geom_Surface)& | theSurface, | ||
| map< const SMDS_MeshNode *, gp_XY * > & | theUVMap | ||
| ) |
| void correctTheValue | ( | Standard_Real | Umax, |
| Standard_Real | Umin, | ||
| Standard_Real | Vmax, | ||
| Standard_Real | Vmin, | ||
| Standard_Real | uref, | ||
| Standard_Real | vref, | ||
| Standard_Real & | u, | ||
| Standard_Real & | v | ||
| ) |
Referenced by averageByElement().
|
static |
References SMESH_MeshAlgos::FindFaceInSet().
Referenced by SMESH_MeshEditor::FindFreeBorder(), and SMESH_MeshEditor::SewFreeBorder().
|
static |
References SMDS_MeshNode::GetInverseElementIterator(), SMDS_MeshElement::GetNodeIndex(), and SMDSAbs_Edge.
Referenced by SMESH_MeshEditor::SewFreeBorder().
|
static |
References SMDS_MeshElement::GetID(), SMDS_MeshNode::GetInverseElementIterator(), SMDS_MeshElement::NbCornerNodes(), and SMDSAbs_Face.
Referenced by SMESH_MeshEditor::DeleteDiag(), and SMESH_MeshEditor::InverseDiag().
| double getAngle | ( | const SMDS_MeshElement * | tr1, |
| const SMDS_MeshElement * | tr2, | ||
| const SMDS_MeshNode * | n1, | ||
| const SMDS_MeshNode * | n2 | ||
| ) |
References SMESH::Controls::NumericalFunctor::GetPoints(), SMDS_MeshElement::IsQuadratic(), and SMDS_MeshElement::nodesIterator().
Referenced by SMESH_MeshEditor::TriToQuad().
|
static |
|
static |
Referenced by SMESH_MeshEditor::Smooth().
|
static |
References SMDS_MeshElement::begin_nodes(), SMDS_MeshElement::end_nodes(), and shiftNodesQuadTria().
Referenced by SMESH_MeshEditor::DeleteDiag(), SMESH_MeshEditor::InverseDiag(), and SMESH_MeshEditor::TriToQuad().
| bool getQuadrangleNodes | ( | const SMDS_MeshNode * | theQuadNodes[], |
| const SMDS_MeshNode * | theNode1, | ||
| const SMDS_MeshNode * | theNode2, | ||
| const SMDS_MeshElement * | tr1, | ||
| const SMDS_MeshElement * | tr2 | ||
| ) |
References cast2Node, SMDS_MeshElement::NbNodes(), and SMDS_MeshElement::nodesIterator().
Referenced by SMESH_MeshEditor::DeleteDiag(), and SMESH_MeshEditor::TriToQuad().
| void laplacianSmooth | ( | const SMDS_MeshNode * | theNode, |
| const Handle(Geom_Surface)& | theSurface, | ||
| map< const SMDS_MeshNode *, gp_XY * > & | theUVMap | ||
| ) |
References averageBySurface(), SMESH_MeshEditor::GetLinkedNodes(), and SMDSAbs_Face.
Referenced by SMESH_MeshEditor::Smooth().
|
static |
Referenced by getNodesFromTwoTria().