28 #ifndef SMESH_MeshEditor_HeaderFile
29 #define SMESH_MeshEditor_HeaderFile
39 #include <TColStd_HSequenceOfReal.hxx>
55 typedef std::map<const SMDS_MeshNode*, const SMDS_MeshNode*>
TNodeNodeMap;
60 typedef pair< const SMDS_MeshNode*, const SMDS_MeshNode* >
NLink;
72 {
if ( n1->
GetID() < n2->
GetID() ) std::swap( first, second ); }
74 {
if ( first->GetID() < second->GetID() ) std::swap( first, second ); }
103 SMDS_MeshElement* AddElement(
const std::vector<const SMDS_MeshNode*> & nodes,
115 bool Remove (
const std::list< int >& theElemIDs,
const bool isNodes);
151 const double theMaxAngle);
169 const bool the13Diag);
184 std::set<const SMDS_MeshNode*> & theFixedNodes,
185 const SmoothMethod theSmoothMethod,
186 const int theNbIterations,
187 double theTgtAspectRatio = 1.0,
188 const bool the2D =
true);
201 const gp_Ax1& theAxis,
202 const double theAngle,
203 const int theNbSteps,
204 const double theToler,
205 const bool theMakeGroups,
206 const bool theMakeWalls=
true);
216 EXTRUSION_FLAG_BOUNDARY = 0x01,
217 EXTRUSION_FLAG_SEW = 0x02
225 Handle(TColStd_HSequenceOfReal) mySteps;
226 SMESH_SequenceOfNode myNodes;
236 const
double tolnode,
237 SMESH_SequenceOfNode& aNodes);
252 const gp_Vec& theStep,
253 const
int theNbSteps,
255 const
bool theMakeGroups,
256 const
int theFlags = EXTRUSION_FLAG_BOUNDARY,
257 const
double theTolerance = 1.e-6);
272 const
bool theMakeGroups,
274 const
double theTolerance);
287 EXTR_CANT_GET_TANGENT
293 const bool theHasAngles,
294 std::list<double>& theAngles,
295 const bool theHasRefPoint,
296 const gp_Pnt& theRefPoint,
297 const bool theMakeGroups);
302 const gp_Trsf& theTrsf,
304 const bool theMakeGroups,
310 void FindCoincidentNodes (std::set<const SMDS_MeshNode*> & theNodes,
311 const double theTolerance,
321 int SimplifyFace (
const std::vector<const SMDS_MeshNode *> faceNodes,
322 std::vector<const SMDS_MeshNode *>& poly_nodes,
323 std::vector<int>& quantities)
const;
333 void FindEqualElements(std::set<const SMDS_MeshElement*> & theElements,
341 void MergeEqualElements();
345 static bool CheckFreeBorderNodes(
const SMDS_MeshNode* theNode1,
350 static bool FindFreeBorder (
const SMDS_MeshNode* theFirstNode,
353 std::list< const SMDS_MeshNode* > & theNodes,
354 std::list< const SMDS_MeshElement* >& theFaces);
374 Sew_Error SewFreeBorder (
const SMDS_MeshNode* theBorderFirstNode,
380 const bool theSide2IsFreeBorder =
true,
381 const bool toCreatePolygons =
false,
382 const bool toCreatePolyedrs =
false);
419 std::list<const SMDS_MeshNode*>& theNodesToInsert,
420 const bool toCreatePoly =
false);
426 std::list<const SMDS_MeshNode*>& theNodesToInsert);
430 void ConvertToQuadratic(
const bool theForce3d);
434 bool ConvertFromQuadratic();
491 static Sew_Error FindMatchingNodes(std::set<const SMDS_MeshElement*>& theSide1,
492 std::set<const SMDS_MeshElement*>& theSide2,
520 bool DoubleNodes(
const std::list< int >& theListOfNodes,
521 const std::list< int >& theListOfModifiedElems );
531 const bool theForce3d);
539 const int theShapeID);
546 PGroupIDs generateGroups(
const SMESH_SequenceOfElemPtr& nodeGens,
547 const SMESH_SequenceOfElemPtr& elemGens,
548 const std::string& postfix,
566 const std::vector<TNodeOfNodeListMapItr> & newNodesItVec,
567 std::list<const SMDS_MeshElement*>& newElems,
569 SMESH_SequenceOfElemPtr& srcElements);
585 SMESH_SequenceOfElemPtr& srcElements);
class Handle(MeshVS_DataSource3D)
const SMESH_SequenceOfElemPtr & GetLastCreatedElems() const
std::vector< TNodeOfNodeListMapItr > TVecOfNnlmiMap
boost::shared_ptr< NumericalFunctor > NumericalFunctorPtr
SMESH_TLink(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2)
std::map< const SMDS_MeshNode *, std::list< const SMDS_MeshNode * > > TNodeOfNodeListMap
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshElement * > > SMDS_ElemIteratorPtr
virtual const SMDS_MeshNode * FindClosestTo(const gp_Pnt &pnt)=0
SMESH_SequenceOfElemPtr myLastCreatedNodes
SMESH_SequenceOfElemPtr myLastCreatedElems
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
pair< const SMDS_MeshNode *, const SMDS_MeshNode * > NLink
std::auto_ptr< std::list< int > > PGroupIDs
std::set< const SMDS_MeshElement *, TIDCompare > TIDSortedElemSet
std::list< std::list< int > > TListOfListOfElementsID
const SMESH_SequenceOfElemPtr & GetLastCreatedNodes() const
std::map< const SMDS_MeshNode *, const SMDS_MeshNode * > TNodeNodeMap
Set of elements sorted by ID, to be used to assure predictability of edition.
Searcher for the node closest to point.
std::map< const SMDS_MeshElement *, TVecOfNnlmiMap > TElemOfVecOfNnlmiMap
SMESH_TLink(const NLink &link)
std::list< std::list< const SMDS_MeshNode * > > TListOfListOfNodes
TNodeOfNodeListMap::iterator TNodeOfNodeListMapItr
std::map< const SMDS_MeshElement *, std::list< const SMDS_MeshElement * > > TElemOfElemListMap
SMESHDS_Mesh * GetMeshDS()