Version: 9.16.0
SMESH_MeshEditor.cxx File Reference
#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_MeshElementfindAdjacentFace (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshElement *elem)
 
static const SMDS_MeshElementfindSegment (const SMDS_MeshNode *n1, const SMDS_MeshNode *n2)
 

Macro Definition Documentation

◆ cast2Node

#define cast2Node (   elem)    static_cast<const SMDS_MeshNode*>( elem )

◆ ControlFreeBorder

#define ControlFreeBorder   SMESH::Controls::FreeEdges::IsFreeEdge

◆ THIS_METHOD

#define THIS_METHOD   "SMESH_MeshEditor::GetHexaFacetsToSplit(): "

Function Documentation

◆ averageByElement()

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 
)

◆ averageBySurface()

void averageBySurface ( const Handle(Geom_Surface)&  theSurface,
const SMDS_MeshNode refNode,
TIDSortedElemSet nodeSet,
map< const SMDS_MeshNode *, gp_XY * > &  theUVMap,
double *  coord 
)

◆ centroidalSmooth()

void centroidalSmooth ( const SMDS_MeshNode theNode,
const Handle(Geom_Surface)&  theSurface,
map< const SMDS_MeshNode *, gp_XY * > &  theUVMap 
)

◆ correctTheValue()

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().

◆ findAdjacentFace()

static const SMDS_MeshElement * findAdjacentFace ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2,
const SMDS_MeshElement elem 
)
static

◆ findSegment()

static const SMDS_MeshElement * findSegment ( const SMDS_MeshNode n1,
const SMDS_MeshNode n2 
)
static

◆ findTriangles()

static bool findTriangles ( const SMDS_MeshNode theNode1,
const SMDS_MeshNode theNode2,
const SMDS_MeshElement *&  theTria1,
const SMDS_MeshElement *&  theTria2 
)
static

◆ getAngle()

◆ getBadRate()

◆ getClosestUV()

static bool getClosestUV ( Extrema_GenExtPS &  projector,
const gp_Pnt &  point,
gp_XY &  result 
)
static

◆ getNodesFromTwoTria()

static bool getNodesFromTwoTria ( const SMDS_MeshElement theTria1,
const SMDS_MeshElement theTria2,
vector< const SMDS_MeshNode * > &  N1,
vector< const SMDS_MeshNode * > &  N2 
)
static

◆ getQuadrangleNodes()

bool getQuadrangleNodes ( const SMDS_MeshNode theQuadNodes[],
const SMDS_MeshNode theNode1,
const SMDS_MeshNode theNode2,
const SMDS_MeshElement tr1,
const SMDS_MeshElement tr2 
)

◆ laplacianSmooth()

void laplacianSmooth ( const SMDS_MeshNode theNode,
const Handle(Geom_Surface)&  theSurface,
map< const SMDS_MeshNode *, gp_XY * > &  theUVMap 
)

◆ shiftNodesQuadTria()

static void shiftNodesQuadTria ( vector< const SMDS_MeshNode * > &  aNodes)
static

Referenced by getNodesFromTwoTria().