mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-27 18:50:33 +05:00
Temporarily rolling back the last integration
This commit is contained in:
parent
423f097f5e
commit
22f20048e0
@ -2410,45 +2410,14 @@ void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
|
|||||||
makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems );
|
makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
|
||||||
//function : CreateNode
|
|
||||||
//purpose :
|
|
||||||
//=======================================================================
|
|
||||||
const SMDS_MeshNode* SMESH_MeshEditor::CreateNode(const double x,
|
|
||||||
const double y,
|
|
||||||
const double z,
|
|
||||||
const double tolnode)
|
|
||||||
{
|
|
||||||
gp_Pnt P1(x,y,z);
|
|
||||||
SMESHDS_Mesh * aMesh = myMesh->GetMeshDS();
|
|
||||||
// try to search in sequence of existing nodes
|
|
||||||
SMDS_NodeIteratorPtr itn = aMesh->nodesIterator();
|
|
||||||
while(itn->more()) {
|
|
||||||
const SMDS_MeshNode* aN = static_cast<const SMDS_MeshNode*> (itn->next());
|
|
||||||
gp_Pnt P2(aN->X(),aN->Y(),aN->Z());
|
|
||||||
if(P1.Distance(P2)<tolnode)
|
|
||||||
return aN;
|
|
||||||
}
|
|
||||||
// create new node and return it
|
|
||||||
const SMDS_MeshNode* NewNode = aMesh->AddNode(x,y,z);
|
|
||||||
return NewNode;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : ExtrusionSweep
|
//function : ExtrusionSweep
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
void SMESH_MeshEditor::ExtrusionSweep
|
void SMESH_MeshEditor::ExtrusionSweep(set<const SMDS_MeshElement*> & theElems,
|
||||||
(set<const SMDS_MeshElement*> & theElems,
|
const gp_Vec& theStep,
|
||||||
const gp_Vec& theStep,
|
const int theNbSteps)
|
||||||
const int theNbSteps,
|
|
||||||
TElemOfElemListMap& newElemsMap,
|
|
||||||
const int theFlags,
|
|
||||||
const double theTolerance)
|
|
||||||
{
|
{
|
||||||
gp_Trsf aTrsf;
|
gp_Trsf aTrsf;
|
||||||
aTrsf.SetTranslation( theStep );
|
aTrsf.SetTranslation( theStep );
|
||||||
@ -2457,7 +2426,7 @@ void SMESH_MeshEditor::ExtrusionSweep
|
|||||||
|
|
||||||
TNodeOfNodeListMap mapNewNodes;
|
TNodeOfNodeListMap mapNewNodes;
|
||||||
TElemOfVecOfNnlmiMap mapElemNewNodes;
|
TElemOfVecOfNnlmiMap mapElemNewNodes;
|
||||||
//TElemOfElemListMap newElemsMap;
|
TElemOfElemListMap newElemsMap;
|
||||||
|
|
||||||
// loop on theElems
|
// loop on theElems
|
||||||
set< const SMDS_MeshElement* >::iterator itElem;
|
set< const SMDS_MeshElement* >::iterator itElem;
|
||||||
@ -2488,25 +2457,27 @@ void SMESH_MeshEditor::ExtrusionSweep
|
|||||||
double coord[] = { node->X(), node->Y(), node->Z() };
|
double coord[] = { node->X(), node->Y(), node->Z() };
|
||||||
for ( int i = 0; i < theNbSteps; i++ ) {
|
for ( int i = 0; i < theNbSteps; i++ ) {
|
||||||
aTrsf.Transforms( coord[0], coord[1], coord[2] );
|
aTrsf.Transforms( coord[0], coord[1], coord[2] );
|
||||||
if( theFlags & EXTRUSION_FLAG_SEW ) {
|
const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
|
||||||
const SMDS_MeshNode * newNode = CreateNode(coord[0], coord[1],
|
listNewNodes.push_back( newNode );
|
||||||
coord[2], theTolerance);
|
|
||||||
listNewNodes.push_back( newNode );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
|
|
||||||
listNewNodes.push_back( newNode );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
newNodesItVec.push_back( nIt );
|
newNodesItVec.push_back( nIt );
|
||||||
}
|
}
|
||||||
// make new elements
|
// make new elements
|
||||||
sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem] );
|
sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem] );
|
||||||
|
|
||||||
|
// fill history
|
||||||
|
SMESH_SequenceOfElemPtr SeqNewME;
|
||||||
|
list<const SMDS_MeshElement*> tmpList = newElemsMap[elem];
|
||||||
|
for(list<const SMDS_MeshElement*>::iterator ite = tmpList.begin();
|
||||||
|
ite!=tmpList.end(); ite++) {
|
||||||
|
SeqNewME.Append(*ite);
|
||||||
|
}
|
||||||
|
myExtrusionHistory.Bind(elem,SeqNewME);
|
||||||
|
// end fill history
|
||||||
|
|
||||||
}
|
}
|
||||||
if( theFlags & EXTRUSION_FLAG_BOUNDARY ) {
|
makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems );
|
||||||
makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
@ -35,9 +35,8 @@
|
|||||||
|
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
//#include <TColStd_DataMapOfIntegerListOfInteger.hxx>
|
||||||
typedef map<const SMDS_MeshElement*,
|
#include <SMESH_DataMapOfElemPtrSequenceOfElemPtr.hxx>
|
||||||
list<const SMDS_MeshElement*> > TElemOfElemListMap;
|
|
||||||
|
|
||||||
class SMDS_MeshElement;
|
class SMDS_MeshElement;
|
||||||
class SMDS_MeshFace;
|
class SMDS_MeshFace;
|
||||||
@ -143,46 +142,9 @@ class SMESH_MeshEditor {
|
|||||||
// Generate new elements by rotation of theElements around theAxis
|
// Generate new elements by rotation of theElements around theAxis
|
||||||
// by theAngle by theNbSteps
|
// by theAngle by theNbSteps
|
||||||
|
|
||||||
/*!
|
void ExtrusionSweep (std::set<const SMDS_MeshElement*> & theElements,
|
||||||
* Auxilary flag for advanced extrusion.
|
const gp_Vec& theStep,
|
||||||
* BOUNDARY: create or not boundary for result of extrusion
|
const int theNbSteps);
|
||||||
* SEW: try to use existing nodes or create new nodes in any case
|
|
||||||
*/
|
|
||||||
enum ExtrusionFlags {
|
|
||||||
EXTRUSION_FLAG_BOUNDARY = 0x01,
|
|
||||||
EXTRUSION_FLAG_SEW = 0x02
|
|
||||||
};
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Create new node in the mesh with given coordinates
|
|
||||||
* (auxilary for advanced extrusion)
|
|
||||||
*/
|
|
||||||
const SMDS_MeshNode* CreateNode(const double x,
|
|
||||||
const double y,
|
|
||||||
const double z,
|
|
||||||
const double tolnode);
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Generate new elements by extrusion of theElements
|
|
||||||
* by theStep by theNbSteps
|
|
||||||
* param theHistory returns history of extrusion
|
|
||||||
* param theFlags set flags for performing extrusion (see description
|
|
||||||
* of enum ExtrusionFlags for additional information)
|
|
||||||
* param theTolerance - uses for comparing locations of nodes if flag
|
|
||||||
* EXTRUSION_FLAG_SEW is set
|
|
||||||
*/
|
|
||||||
//void ExtrusionSweep (std::set<const SMDS_MeshElement*> & theElements,
|
|
||||||
// const gp_Vec& theStep,
|
|
||||||
// const int theNbSteps);
|
|
||||||
void ExtrusionSweep
|
|
||||||
(set<const SMDS_MeshElement*> & theElems,
|
|
||||||
const gp_Vec& theStep,
|
|
||||||
const int theNbSteps,
|
|
||||||
TElemOfElemListMap& newElemsMap,
|
|
||||||
//SMESH_DataMapOfElemPtrSequenceOfElemPtr& theHistory,
|
|
||||||
const int theFlags = EXTRUSION_FLAG_BOUNDARY,
|
|
||||||
const double theTolerance = 1.e-6);
|
|
||||||
|
|
||||||
// Generate new elements by extrusion of theElements
|
// Generate new elements by extrusion of theElements
|
||||||
// by theStep by theNbSteps
|
// by theStep by theNbSteps
|
||||||
|
|
||||||
@ -344,10 +306,15 @@ class SMESH_MeshEditor {
|
|||||||
|
|
||||||
SMESHDS_Mesh * GetMeshDS() { return myMesh->GetMeshDS(); }
|
SMESHDS_Mesh * GetMeshDS() { return myMesh->GetMeshDS(); }
|
||||||
|
|
||||||
|
const SMESH_DataMapOfElemPtrSequenceOfElemPtr& GetExtrusionHistory() const
|
||||||
|
{ return myExtrusionHistory; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
SMESH_Mesh * myMesh;
|
SMESH_Mesh * myMesh;
|
||||||
|
|
||||||
|
SMESH_DataMapOfElemPtrSequenceOfElemPtr myExtrusionHistory;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user