-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#define NGPOINT_COORDS(p) p(0),p(1),p(2)
+#ifdef _DEBUG_
// dump elements added to ng mesh
//#define DUMP_SEGMENTS
//#define DUMP_TRIANGLES
//#define DUMP_TRIANGLES_SCRIPT "/tmp/trias.py" //!< debug AddIntVerticesInSolids()
+#endif
TopTools_IndexedMapOfShape ShapesWithLocalSize;
std::map<int,double> VertexId2LocalSize;
*/
//================================================================================
-void NETGENPlugin_Mesher::RestrictLocalSize(netgen::Mesh& ngMesh, const gp_XYZ& p, const double size)
+void NETGENPlugin_Mesher::RestrictLocalSize(netgen::Mesh& ngMesh,
+ const gp_XYZ& p,
+ const double size,
+ const bool overrideMinH)
{
- if ( netgen::mparam.minh > size )
+ if ( overrideMinH && netgen::mparam.minh > size )
{
ngMesh.SetMinimalH( size );
netgen::mparam.minh = size;
nodeVec.push_back( nV );
// get node UV
- bool uvOK = false;
+ bool uvOK = true;
vData.uv = helper.GetNodeUV( face, nV, 0, &uvOK );
if ( !uvOK ) helper.CheckNodeUV( face, nV, vData.uv, BRep_Tool::Tolerance(V),/*force=*/1);
ofstream py(DUMP_TRIANGLES_SCRIPT);
py << "import SMESH"<< endl
<< "from salome.smesh import smeshBuilder"<<endl
- << "smesh = smeshBuilder.New(salome.myStudy)"
+ << "smesh = smeshBuilder.New(salome.myStudy)"<<endl
<< "m = smesh.Mesh(name='triangles')" << endl;
#endif
if ( nodeVec.size() < ngMesh.GetNP() )
ngMesh.AddSurfaceElement (tri);
#ifdef DUMP_TRIANGLES_SCRIPT
- py << "n1 = m.AddNode( "<< mpV.X()<<", "<< mpV.Y()<<", "<< mpV.Z()<<") "<< endl
- << "n2 = m.AddNode( "<< mp[0].X()<<", "<< mp[0].Y()<<", "<< mp[0].Z()<<") "<< endl
- << "n3 = m.AddNode( "<< mp[1].X()<<", "<< mp[1].Y()<<", "<< mp[1].Z()<<" )" << endl
+ py << "n1 = m.AddNode( "<< mpV(0)<<", "<< mpV(1)<<", "<< mpV(2)<<") "<< endl
+ << "n2 = m.AddNode( "<< mp[0](0)<<", "<< mp[0](1)<<", "<< mp[0](2)<<") "<< endl
+ << "n3 = m.AddNode( "<< mp[1](0)<<", "<< mp[1](1)<<", "<< mp[1](2)<<" )" << endl
<< "m.AddFace([n1,n2,n3])" << endl;
#endif
} // loop on internal vertices of a solid
netgen::OCCGeometry& geom,
const TSideVector& wires,
SMESH_MesherHelper& helper,
- vector< const SMDS_MeshNode* > & nodeVec)
+ vector< const SMDS_MeshNode* > & nodeVec,
+ const bool overrideMinH)
{
// ----------------------------
// Check wires and count nodes
int( segLen[ i ] > sumH / 100.) +
int( segLen[ iNext ] > sumH / 100.));
if ( nbSeg > 0 )
- RestrictLocalSize( ngMesh, 0.5*(np1+np2), sumH / nbSeg );
+ RestrictLocalSize( ngMesh, 0.5*(np1+np2), sumH / nbSeg, overrideMinH );
}
if ( isInternalWire )
{
(COMPERR_BAD_INPUT_MESH, "Some edges multiple times in surface mesh");
SMESH_File file("test.out");
vector<int> two(2);
+ vector<int> three1(3), three2(3);
const char* badEdgeStr = " multiple times in surface mesh";
const int badEdgeStrLen = strlen( badEdgeStr );
+
while( !file.eof() )
{
if ( strncmp( file, "Edge ", 5 ) == 0 &&
// openelement 18 with open element 126
// 41 36 38
// 69 70 72
- vector<int> three1(3), three2(3);
file.getLine();
const char* pos = file;
bool ok = ( strncmp( file, "openelement ", 12 ) == 0 );
++file;
}
}
+
+#ifdef _DEBUG_
+ size_t nbBadElems = err->myBadElements.size();
+ nbBadElems = 0;
+#endif
+
return err;
}