STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
SET(${PROJECT_NAME_UC}_MAJOR_VERSION 7)
-SET(${PROJECT_NAME_UC}_MINOR_VERSION 2)
+SET(${PROJECT_NAME_UC}_MINOR_VERSION 3)
SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
SET(${PROJECT_NAME_UC}_VERSION
${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
MESSAGE(FATAL_ERROR "We absolutely need a Salome SMESH with GUI, please set SALOME_BUILD_GUI=ON in SMESH module")
ENDIF(NOT SALOME_SMESH_BUILD_GUI)
ENDIF(SALOME_BUILD_GUI)
+ IF(SALOME_BUILD_DOC)
+ IF(NOT SALOME_SMESH_BUILD_DOC)
+ MESSAGE(FATAL_ERROR "We absolutely need a Salome SMESH documentation to build NETGENPLUGIN documentation. "
+ "So, you should either set SALOME_BUILD_DOC=OFF in NETGENPLUGIN or set SALOME_BUILD_DOC=ON in SMESH module.")
+ ENDIF(NOT SALOME_SMESH_BUILD_DOC)
+ ENDIF(SALOME_BUILD_DOC)
ELSE(EXISTS ${SMESH_ROOT_DIR})
MESSAGE(FATAL_ERROR "We absolutely need a Salome SMESH, please define SMESH_ROOT_DIR")
ENDIF(EXISTS ${SMESH_ROOT_DIR})
INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/NETGENPLUGIN)
INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/NETGENPLUGIN/netgenpluginpy_doc)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES NETGENPLUGIN)
+SET(make_clean_files NETGENPLUGIN netgenpluginpy_doc.tag)
+SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${make_clean_files}")
h->SetVarParameter( h_data.myMinSizeVar.toLatin1().constData(), "SetMinSize");
h->SetMinSize( h_data.myMinSize );
- if ( myIs2D )
+ //if ( myIs2D )
{
- NETGENPlugin::NETGENPlugin_Hypothesis_2D_var h_2d =
- NETGENPlugin::NETGENPlugin_Hypothesis_2D::_narrow( h );
+ // NETGENPlugin::NETGENPlugin_Hypothesis_2D_var h_2d =
+ // NETGENPlugin::NETGENPlugin_Hypothesis_2D::_narrow( h );
- if ( !h_2d->_is_nil() )
- h_2d->SetQuadAllowed( h_data.myAllowQuadrangles );
+ // if ( !h_2d->_is_nil() )
+ // h_2d->SetQuadAllowed( h_data.myAllowQuadrangles );
+ h->SetQuadAllowed( h_data.myAllowQuadrangles );
}
QMapIterator<QString,QString> i(myLocalSizeMap);
</message>
<message>
<source>NETGEN_2D_TITLE</source>
- <translation>仮説の構築</translation>
+ <translation>設定項目</translation>
</message>
<message>
<source>NETGEN_3D_HYPOTHESIS</source>
</message>
<message>
<source>NETGEN_3D_TITLE</source>
- <translation>仮説の構築</translation>
+ <translation>設定項目</translation>
</message>
<message>
<source>NETGEN_SimpleParameters_3D_HYPOTHESIS</source>
- <translation>Netgen 3 D 簡易パラメーター</translation>
+ <translation>Netgen 3D 簡易パラメーター</translation>
</message>
<message>
<source>NETGEN_SimpleParameters_3D_TITLE</source>
- <translation>仮説の構築</translation>
+ <translation>設定項目</translation>
</message>
<message>
<source>NETGEN_SimpleParameters_2D_HYPOTHESIS</source>
</message>
<message>
<source>NETGEN_SimpleParameters_2D_TITLE</source>
- <translation>仮説の構築</translation>
+ <translation>設定項目</translation>
</message>
<message>
<source>NETGEN_ALLOW_QUADRANGLES</source>
</message>
<message>
<source>NETGEN_LSZ_VERTEX</source>
- <translation>点上</translation>
+ <translation>頂点</translation>
</message>
<message>
<source>NETGEN_LSZ_EDGE</source>
// element size (regression on issue 0020452, note 0010898)
int iPrev = SMESH_MesherHelper::WrapIndex( i-1, nbSegments );
int iNext = SMESH_MesherHelper::WrapIndex( i+1, nbSegments );
- int nbSeg = 1 + ( segLen[ iPrev ] > 1e-20 ) + ( segLen[ iNext ] > 1e-20 );
- double avgH = ( segLen[ iPrev ] + segLen[ i ] + segLen[ iNext ]) / nbSeg;
-
- RestrictLocalSize( ngMesh, 0.5*(np1+np2), avgH );
+ double sunH = segLen[ iPrev ] + segLen[ i ] + segLen[ iNext ];
+ int nbSeg = ( int( segLen[ iPrev ] > sunH / 100.) +
+ int( segLen[ i ] > sunH / 100.) +
+ int( segLen[ iNext ] > sunH / 100.));
+ if ( nbSeg > 0 )
+ RestrictLocalSize( ngMesh, 0.5*(np1+np2), sunH / nbSeg );
}
if ( isInternalWire )
{
if ( nbSegments )
edgeLength /= nbSegments;
}
- if ( _hypMaxElementArea )
+ else if ( _hypMaxElementArea )
{
double maxArea = _hypMaxElementArea->GetMaxArea();
edgeLength = sqrt(2. * maxArea/sqrt(3.0));
}
+ else
+ {
+ // set edgeLength by a longest segment
+ double maxSeg2 = 0;
+ for ( int iW = 0; iW < nbWires; ++iW )
+ {
+ const UVPtStructVec& points = wires[ iW ]->GetUVPtStruct();
+ gp_Pnt pPrev = SMESH_TNodeXYZ( points[0].node );
+ for ( size_t i = 1; i < points.size(); ++i )
+ {
+ gp_Pnt p = SMESH_TNodeXYZ( points[i].node );
+ maxSeg2 = Max( maxSeg2, p.SquareDistance( pPrev ));
+ pPrev = p;
+ }
+ }
+ edgeLength = sqrt( maxSeg2 ) * 1.05;
+ }
if ( edgeLength < DBL_MIN )
edgeLength = occgeo.GetBoundingBox().Diam();
netgen::mparam.maxh = edgeLength;
netgen::mparam.minh = aMesher.GetDefaultMinSize( aShape, netgen::mparam.maxh );
netgen::mparam.quad = _hypQuadranglePreference ? 1 : 0;
- netgen::mparam.grading = 0.7; // very coarse mesh by default
+ netgen::mparam.grading = 0.4; // Moderate fineness by default
}
occgeo.face_maxh = netgen::mparam.maxh;
netgen::mparam.maxh = Max( netgen::mparam.maxh, size );
}
}
+ //cerr << "min " << netgen::mparam.minh << " max " << netgen::mparam.maxh << endl;
netgen::mparam.minh *= 0.9;
netgen::mparam.maxh *= 1.1;