mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-04 03:00:32 +05:00
Merge remote-tracking branch 'origin/master' into gni/documentation
This commit is contained in:
commit
96b56d1ee6
@ -1,6 +1,6 @@
|
||||
# Double nodes on groups boundaries
|
||||
|
||||
# This example represents an iron cable (a thin cylinder) in a concrete bloc (a big cylinder).
|
||||
# This example represents an iron cable (a thin cylinder) in a concrete block (a big cylinder).
|
||||
# The big cylinder is defined by two geometric volumes.
|
||||
|
||||
|
||||
|
@ -10,7 +10,7 @@ Several criteria can be combined together by using logical operators *AND* and *
|
||||
|
||||
Some filtering criteria use the functionality of :ref:`mesh quality controls <quality_page>` to filter mesh nodes / elements by specific characteristic (Area, Length, etc).
|
||||
|
||||
The functinality of mesh filters is available in both GUI and TUI modes:
|
||||
The functionality of mesh filters is available in both GUI and TUI modes:
|
||||
|
||||
* In GUI, filters are available in some dialog boxes via "Set Filters" button, clicking on which opens the :ref:`dialog box <filtering_elements>` allowing to specify the list of filter criteria to be applied to the current selection. See :ref:`selection_filter_library_page` page to learn more about selection filters and their usage in GUI.
|
||||
|
||||
|
@ -27,7 +27,7 @@ The following targets are supported:
|
||||
* **Node:** single mesh node;
|
||||
* **Element:** single mesh element (not available in this version);
|
||||
* **Object:** mesh, sub-mesh or group object (not available in this version);
|
||||
* **Origin:** origin of the global co-ordinate system.
|
||||
* **Origin:** origin of the global coordinate system.
|
||||
|
||||
The result will be shown in the bottom area of the dialog. In addition, a simple preview will be shown in the 3D viewer.
|
||||
|
||||
|
@ -79,7 +79,7 @@ The user can either input the ID of a node or element he wants to analyze direct
|
||||
If **Show IDs** is activated, IDs of selected nodes or elements are displayed in the 3D viewer.
|
||||
|
||||
.. note::
|
||||
The information about the groups, to which the node or element belongs, can be shown in a short or in a detailed form. By default, for performance rasons, this information is shown in a short form (group names only). The detailed information on groups can be switched on via :ref:`Show details on groups in element information tab <group_detail_info_pref>` option of :ref:`mesh_preferences_page`.
|
||||
The information about the groups, to which the node or element belongs, can be shown in a short or in a detailed form. By default, for performance reasons, this information is shown in a short form (group names only). The detailed information on groups can be switched on via :ref:`Show details on groups in element information tab <group_detail_info_pref>` option of :ref:`mesh_preferences_page`.
|
||||
|
||||
.. _mesh_addition_info_anchor:
|
||||
|
||||
|
@ -308,7 +308,7 @@ If there is no shared faces between the group \#n and the group \#p in the list,
|
||||
All the flat elements are gathered into the group named "joints3D" (or "joints2D" in 2D situation).
|
||||
The flat element of the multiple junctions between the simple junction are stored in a group named "jointsMultiples".
|
||||
|
||||
This example represents an iron cable (a thin cylinder) in a concrete bloc (a big cylinder).
|
||||
This example represents an iron cable (a thin cylinder) in a concrete block (a big cylinder).
|
||||
The big cylinder is defined by two geometric volumes.
|
||||
|
||||
.. literalinclude:: ../../../examples/generate_flat_elements.py
|
||||
|
@ -121,7 +121,7 @@ module SMESH
|
||||
*/
|
||||
struct HypInitParams
|
||||
{
|
||||
short way; // 0 - by mesh, 1 - by geometry size + prefered parameters, 2 - by averageLength
|
||||
short way; // 0 - by mesh, 1 - by geometry size + preferred parameters, 2 - by averageLength
|
||||
double averageLength;
|
||||
boolean quadDominated;
|
||||
};
|
||||
|
File diff suppressed because one or more lines are too long
@ -123,15 +123,15 @@ std::string Driver_Mesh::fixUTF8(const std::string & str )
|
||||
|
||||
// how many bytes follow?
|
||||
int len = 0;
|
||||
if (s[i] >> 5 == 0b110 ) len = 1; // todo: binary constants are a GCC extension
|
||||
else if (s[i] >> 4 == 0b1110 ) len = 2; // todo: binary constants are a GCC extension
|
||||
else if (s[i] >> 3 == 0b11110) len = 3; // todo: binary constants are a GCC extension
|
||||
if (s[i] >> 5 == 0b110 ) len = 1; // WARNING: binary constants included in C++14
|
||||
else if (s[i] >> 4 == 0b1110 ) len = 2;
|
||||
else if (s[i] >> 3 == 0b11110) len = 3;
|
||||
else
|
||||
invalid = true;
|
||||
|
||||
// check the bytes
|
||||
for ( int j = 0; j < len && !invalid; ++j )
|
||||
invalid = ( s[i+j+1] >> 6 != 0b10 ); // todo: binary constants are a GCC extension
|
||||
invalid = ( s[i+j+1] >> 6 != 0b10 );
|
||||
|
||||
if ( invalid )
|
||||
fixed[i] = '?';
|
||||
|
@ -165,9 +165,9 @@ namespace
|
||||
int _beg[3], _end[3], _cur[3], _dir[3], _dim;
|
||||
bool _more;
|
||||
public:
|
||||
TPointRangeIterator( const cgsize_t* range, int dim ):_dim(dim)
|
||||
TPointRangeIterator( const cgsize_t* range, int dim ):
|
||||
_beg{0,0,0}, _end{0,0,0}, _cur{0,0,0}, _dir{0,0,0}, _dim(dim), _more(false)
|
||||
{
|
||||
_more = false;
|
||||
for ( int i = 0; i < dim; ++i )
|
||||
{
|
||||
_beg[i] = range[i];
|
||||
@ -178,8 +178,6 @@ namespace
|
||||
if ( _end[i] - _beg[i] )
|
||||
_more = true;
|
||||
}
|
||||
// for ( int i = dim; i < 3; ++i )
|
||||
// _cur[i] = _beg[i] = _end[i] = _dir[i] = 0;
|
||||
}
|
||||
bool More() const
|
||||
{
|
||||
@ -187,7 +185,7 @@ namespace
|
||||
}
|
||||
gp_XYZ Next()
|
||||
{
|
||||
gp_XYZ res( _cur[0], _cur[1], _cur[2] ); // todo: _cur can be used uninitialized
|
||||
gp_XYZ res( _cur[0], _cur[1], _cur[2] );
|
||||
for ( int i = 0; i < _dim; ++i )
|
||||
{
|
||||
_cur[i] += _dir[i];
|
||||
@ -207,7 +205,7 @@ namespace
|
||||
size *= _dir[i]*(_end[i]-_beg[i]);
|
||||
return size;
|
||||
}
|
||||
gp_XYZ Begin() const { return gp_XYZ( _beg[0], _beg[1], _beg[2] ); } // todo: _beg can be used uninitialized
|
||||
gp_XYZ Begin() const { return gp_XYZ( _beg[0], _beg[1], _beg[2] ); }
|
||||
//gp_XYZ End() const { return gp_XYZ( _end[0]-1, _end[1]-1, _end[2]-1 ); }
|
||||
};
|
||||
|
||||
@ -297,7 +295,7 @@ namespace
|
||||
}
|
||||
|
||||
// fill nodeReplacementMap
|
||||
TPointRangeIterator rangeIt1( range, _meshDim ); // todo: rangeIt1: _end[i], _dir[i], _beg[i], _cur[i] may be used uninitialized
|
||||
TPointRangeIterator rangeIt1( range, _meshDim );
|
||||
TPointRangeIterator rangeIt2( donorRange, _meshDim );
|
||||
gp_XYZ begin1 = rangeIt1.Begin(), begin2 = rangeIt2.Begin(), index1, index2;
|
||||
if ( &zone2 == this )
|
||||
|
@ -875,7 +875,7 @@ void GmfSetLin(int MshIdx, int KwdCod, ...)
|
||||
{
|
||||
for(i=0;i<kwd->SolSiz;i++)
|
||||
if(kwd->fmt[i] == 'r')
|
||||
fprintf(msh->hdl, "%.15lg ", va_arg(VarArg, double)); /* todo: ISO C90 does not support the '%lg' gnu_printf format */
|
||||
fprintf(msh->hdl, "%.15g ", va_arg(VarArg, double)); /* was "%.15lg and warning "ISO C90 does not support the '%lg' gnu_printf format"*/
|
||||
else if(kwd->fmt[i] == 'n') {
|
||||
nb_repeat = va_arg(VarArg, int);
|
||||
fprintf(msh->hdl, "%d ", nb_repeat);
|
||||
@ -936,7 +936,7 @@ void GmfSetLin(int MshIdx, int KwdCod, ...)
|
||||
|
||||
if(msh->typ & Asc)
|
||||
for(j=0;j<kwd->SolSiz;j++)
|
||||
fprintf(msh->hdl, "%.15lg ", DblSolTab[j]); /* todo: ISO C90 does not support the '%lg' gnu_printf format */
|
||||
fprintf(msh->hdl, "%.15g ", DblSolTab[j]); /* was " %.15lg " and warning "ISO C90 does not support the '%lg' gnu_printf format" */
|
||||
else
|
||||
RecBlk(msh, (unsigned char *)DblSolTab, kwd->NmbWrd);
|
||||
}
|
||||
|
@ -28,8 +28,8 @@
|
||||
static int MYDEBUG = 0;
|
||||
static int MYVALUEDEBUG = 0;
|
||||
#else
|
||||
static int MYDEBUG = 0; // todo: unused in release mode
|
||||
static int MYVALUEDEBUG = 0; // todo: unused in release mode
|
||||
// static int MYDEBUG = 0;
|
||||
// static int MYVALUEDEBUG = 0;
|
||||
#endif
|
||||
|
||||
namespace MED
|
||||
|
@ -27,8 +27,8 @@
|
||||
static int MYDEBUG = 0;
|
||||
static int MYVALUEDEBUG = 0;
|
||||
#else
|
||||
static int MYDEBUG = 0; // todo: unused in release mode
|
||||
static int MYVALUEDEBUG = 0; // todo: unused in release mode
|
||||
// static int MYDEBUG = 0; // unused in release mode
|
||||
// static int MYVALUEDEBUG = 0; // unused in release mode
|
||||
#endif
|
||||
|
||||
namespace MED
|
||||
|
@ -352,10 +352,10 @@ namespace MED
|
||||
TGaussInfo::TLess
|
||||
::operator()(const TGaussInfo& theLeft, const TGaussInfo& theRight) const
|
||||
{
|
||||
if(!&theLeft) // todo: address of reference can be assumed always non-null by compiler
|
||||
if(!&theLeft) // address of reference can be assumed always non-null by compiler - OK
|
||||
return true;
|
||||
|
||||
if(!&theRight) // todo: address of reference can be assumed always non-null by compiler
|
||||
if(!&theRight) //address of reference can be assumed always non-null by compiler - OK
|
||||
return false;
|
||||
|
||||
if(theLeft.myGeom != theRight.myGeom)
|
||||
|
@ -26,7 +26,7 @@
|
||||
#ifdef _DEBUG_
|
||||
static int MYDEBUG = 0;
|
||||
#else
|
||||
static int MYDEBUG = 0; // todo: unused in release mode
|
||||
//static int MYDEBUG = 0; // unused in release mode
|
||||
#endif
|
||||
|
||||
int MED::PrefixPrinter::myCounter = 0;
|
||||
|
@ -38,8 +38,8 @@
|
||||
static int MYDEBUG = 0;
|
||||
static int MYVALUEDEBUG = 0;
|
||||
#else
|
||||
static int MYDEBUG = 0; // todo: unused in release mode
|
||||
static int MYVALUEDEBUG = 0; // todo: unused in release mode
|
||||
// static int MYDEBUG = 0; // unused in release mode
|
||||
// static int MYVALUEDEBUG = 0; // unused in release mode
|
||||
#endif
|
||||
|
||||
namespace MED
|
||||
|
@ -1488,10 +1488,10 @@ bool SMDS_VolumeTool::IsLinked (const int theNode1Index,
|
||||
case QUAD_TETRA:
|
||||
{
|
||||
switch ( minInd ) {
|
||||
case 0: if( maxInd==4 || maxInd==6 || maxInd==7 ) return true; // fall through
|
||||
case 1: if( maxInd==4 || maxInd==5 || maxInd==8 ) return true; // fall through
|
||||
case 2: if( maxInd==5 || maxInd==6 || maxInd==9 ) return true; // fall through
|
||||
case 3: if( maxInd==7 || maxInd==8 || maxInd==9 ) return true; // fall through
|
||||
case 0: return ( maxInd==4 || maxInd==6 || maxInd==7 );
|
||||
case 1: return ( maxInd==4 || maxInd==5 || maxInd==8 );
|
||||
case 2: return ( maxInd==5 || maxInd==6 || maxInd==9 );
|
||||
case 3: return ( maxInd==7 || maxInd==8 || maxInd==9 );
|
||||
default:;
|
||||
}
|
||||
break;
|
||||
@ -1499,14 +1499,14 @@ bool SMDS_VolumeTool::IsLinked (const int theNode1Index,
|
||||
case QUAD_HEXA:
|
||||
{
|
||||
switch ( minInd ) {
|
||||
case 0: if( maxInd==8 || maxInd==11 || maxInd==16 ) return true; // fall through
|
||||
case 1: if( maxInd==8 || maxInd==9 || maxInd==17 ) return true; // fall through
|
||||
case 2: if( maxInd==9 || maxInd==10 || maxInd==18 ) return true; // fall through
|
||||
case 3: if( maxInd==10 || maxInd==11 || maxInd==19 ) return true; // fall through
|
||||
case 4: if( maxInd==12 || maxInd==15 || maxInd==16 ) return true; // fall through
|
||||
case 5: if( maxInd==12 || maxInd==13 || maxInd==17 ) return true; // fall through
|
||||
case 6: if( maxInd==13 || maxInd==14 || maxInd==18 ) return true; // fall through
|
||||
case 7: if( maxInd==14 || maxInd==15 || maxInd==19 ) return true; // fall through
|
||||
case 0: return ( maxInd==8 || maxInd==11 || maxInd==16 );
|
||||
case 1: return ( maxInd==8 || maxInd==9 || maxInd==17 );
|
||||
case 2: return ( maxInd==9 || maxInd==10 || maxInd==18 );
|
||||
case 3: return ( maxInd==10 || maxInd==11 || maxInd==19 );
|
||||
case 4: return ( maxInd==12 || maxInd==15 || maxInd==16 );
|
||||
case 5: return ( maxInd==12 || maxInd==13 || maxInd==17 );
|
||||
case 6: return ( maxInd==13 || maxInd==14 || maxInd==18 );
|
||||
case 7: return ( maxInd==14 || maxInd==15 || maxInd==19 );
|
||||
default:;
|
||||
}
|
||||
break;
|
||||
@ -1514,11 +1514,11 @@ bool SMDS_VolumeTool::IsLinked (const int theNode1Index,
|
||||
case QUAD_PYRAM:
|
||||
{
|
||||
switch ( minInd ) {
|
||||
case 0: if( maxInd==5 || maxInd==8 || maxInd==9 ) return true; // fall through
|
||||
case 1: if( maxInd==5 || maxInd==6 || maxInd==10 ) return true; // fall through
|
||||
case 2: if( maxInd==6 || maxInd==7 || maxInd==11 ) return true; // fall through
|
||||
case 3: if( maxInd==7 || maxInd==8 || maxInd==12 ) return true; // fall through
|
||||
case 4: if( maxInd==9 || maxInd==10 || maxInd==11 || maxInd==12 ) return true;
|
||||
case 0: return ( maxInd==5 || maxInd==8 || maxInd==9 );
|
||||
case 1: return ( maxInd==5 || maxInd==6 || maxInd==10 );
|
||||
case 2: return ( maxInd==6 || maxInd==7 || maxInd==11 );
|
||||
case 3: return ( maxInd==7 || maxInd==8 || maxInd==12 );
|
||||
case 4: return ( maxInd==9 || maxInd==10 || maxInd==11 || maxInd==12 );
|
||||
default:;
|
||||
}
|
||||
break;
|
||||
@ -1526,12 +1526,12 @@ bool SMDS_VolumeTool::IsLinked (const int theNode1Index,
|
||||
case QUAD_PENTA:
|
||||
{
|
||||
switch ( minInd ) {
|
||||
case 0: if( maxInd==6 || maxInd==8 || maxInd==12 ) return true; // fall through
|
||||
case 1: if( maxInd==6 || maxInd==7 || maxInd==13 ) return true; // fall through
|
||||
case 2: if( maxInd==7 || maxInd==8 || maxInd==14 ) return true; // fall through
|
||||
case 3: if( maxInd==9 || maxInd==11 || maxInd==12 ) return true; // fall through
|
||||
case 4: if( maxInd==9 || maxInd==10 || maxInd==13 ) return true; // fall through
|
||||
case 5: if( maxInd==10 || maxInd==11 || maxInd==14 ) return true; // fall through
|
||||
case 0: return ( maxInd==6 || maxInd==8 || maxInd==12 );
|
||||
case 1: return ( maxInd==6 || maxInd==7 || maxInd==13 );
|
||||
case 2: return ( maxInd==7 || maxInd==8 || maxInd==14 );
|
||||
case 3: return ( maxInd==9 || maxInd==11 || maxInd==12 );
|
||||
case 4: return ( maxInd==9 || maxInd==10 || maxInd==13 );
|
||||
case 5: return ( maxInd==10 || maxInd==11 || maxInd==14 );
|
||||
default:;
|
||||
}
|
||||
break;
|
||||
|
@ -338,12 +338,13 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
|
||||
|
||||
std::vector< SMESH_subMesh* > smVec;
|
||||
for ( aShapeDim = 0; aShapeDim < 4; ++aShapeDim )
|
||||
smVec.insert( smVec.end(),
|
||||
smWithAlgoSupportingSubmeshes[aShapeDim].begin(),
|
||||
smWithAlgoSupportingSubmeshes[aShapeDim].end() );
|
||||
{
|
||||
// ------------------------------------------------
|
||||
// sort list of sub-meshes according to mesh order
|
||||
// ------------------------------------------------
|
||||
smVec.assign( smWithAlgoSupportingSubmeshes[ aShapeDim ].begin(),
|
||||
smWithAlgoSupportingSubmeshes[ aShapeDim ].end() );
|
||||
aMesh.SortByMeshOrder( smVec );
|
||||
|
||||
// ------------------------------------------------------------
|
||||
@ -354,20 +355,29 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
|
||||
for ( size_t i = 0; i < smVec.size(); ++i )
|
||||
{
|
||||
sm = smVec[i];
|
||||
if ( sm->GetComputeState() != SMESH_subMesh::READY_TO_COMPUTE)
|
||||
continue;
|
||||
|
||||
const TopAbs_ShapeEnum shapeType = sm->GetSubShape().ShapeType();
|
||||
|
||||
// get a shape the algo is assigned to
|
||||
if ( !GetAlgo( sm, & algoShape ))
|
||||
continue; // strange...
|
||||
|
||||
// look for more local algos
|
||||
if ( SMESH_subMesh* algoSM = aMesh.GetSubMesh( algoShape ))
|
||||
smIt = algoSM->getDependsOnIterator(!includeSelf, !complexShapeFirst);
|
||||
else
|
||||
smIt = sm->getDependsOnIterator(!includeSelf, !complexShapeFirst);
|
||||
|
||||
while ( smIt->more() )
|
||||
{
|
||||
SMESH_subMesh* smToCompute = smIt->next();
|
||||
|
||||
const TopoDS_Shape& aSubShape = smToCompute->GetSubShape();
|
||||
const int aShapeDim = GetShapeDim( aSubShape );
|
||||
if ( aShapeDim < 1 ) continue;
|
||||
if ( aShapeDim < 1 || aSubShape.ShapeType() == shapeType )
|
||||
continue;
|
||||
|
||||
// check for preview dimension limitations
|
||||
if ( aShapesId && GetShapeDim( aSubShape.ShapeType() ) > (int)aDim )
|
||||
@ -391,22 +401,15 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
|
||||
Compute( aMesh, aSubShape, aFlags | SHAPE_ONLY_UPWARD, aDim, aShapesId, localAllowed );
|
||||
}
|
||||
}
|
||||
}
|
||||
// --------------------------------
|
||||
// apply the all-dimensional algos
|
||||
// apply the all-dimensional algo
|
||||
// --------------------------------
|
||||
for ( size_t i = 0; i < smVec.size(); ++i )
|
||||
{
|
||||
sm = smVec[i];
|
||||
if ( sm->GetComputeState() == SMESH_subMesh::READY_TO_COMPUTE)
|
||||
{
|
||||
const TopAbs_ShapeEnum shapeType = sm->GetSubShape().ShapeType();
|
||||
if (_compute_canceled)
|
||||
return false;
|
||||
// check for preview dimension limitations
|
||||
if ( aShapesId && GetShapeDim( shapeType ) > (int)aDim )
|
||||
continue;
|
||||
|
||||
if (_compute_canceled)
|
||||
return false;
|
||||
sm->SetAllowedSubShapes( fillAllowed( shapeSM, aShapeOnly, allowedSubShapes ));
|
||||
setCurrentSubMesh( sm );
|
||||
sm->ComputeStateEngine( computeEvent );
|
||||
@ -416,7 +419,7 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
|
||||
aShapesId->insert( sm->GetId() );
|
||||
}
|
||||
}
|
||||
} // loop on shape dimensions
|
||||
}
|
||||
|
||||
// -----------------------------------------------
|
||||
// mesh the rest sub-shapes starting from vertices
|
||||
@ -1079,10 +1082,13 @@ std::vector< std::string > SMESH_Gen::GetPluginXMLPaths()
|
||||
#else
|
||||
const char* path = xmlPath.c_str();
|
||||
#endif
|
||||
|
||||
fileOK = (GetFileAttributes(path) != INVALID_FILE_ATTRIBUTES);
|
||||
|
||||
#ifdef UNICODE
|
||||
delete path;
|
||||
#endif
|
||||
|
||||
#else
|
||||
fileOK = (access(xmlPath.c_str(), F_OK) == 0);
|
||||
#endif
|
||||
|
@ -1159,7 +1159,7 @@ bool SMESH_Mesh::IsUsedHypothesis(SMESHDS_Hypothesis * anHyp,
|
||||
// algorithm parameter
|
||||
if (algo)
|
||||
{
|
||||
// look trough hypotheses used by algo
|
||||
// look through hypotheses used by algo
|
||||
const SMESH_HypoFilter* hypoKind;
|
||||
if (( hypoKind = algo->GetCompatibleHypoFilter( !hyp->IsAuxiliary() ))) {
|
||||
std::list <const SMESHDS_Hypothesis * > usedHyps;
|
||||
@ -2432,6 +2432,7 @@ bool SMESH_Mesh::SortByMeshOrder(std::vector<SMESH_subMesh*>& theListToSort) con
|
||||
smVec.push_back( sm );
|
||||
if ( sm->GetSubMeshDS() && sm->GetSubMeshDS()->IsComplexSubmesh() )
|
||||
{
|
||||
smVec.reserve( smVec.size() + sm->GetSubMeshDS()->NbSubMeshes() );
|
||||
SMESHDS_SubMeshIteratorPtr smdsIt = sm->GetSubMeshDS()->GetSubMeshIterator();
|
||||
while ( smdsIt->more() )
|
||||
{
|
||||
|
@ -1927,7 +1927,7 @@ namespace
|
||||
}
|
||||
for ( int variant = 0; variant < nbVariants && method._nbSplits == 0; ++variant )
|
||||
{
|
||||
// check method compliancy with adjacent tetras,
|
||||
// check method compliance with adjacent tetras,
|
||||
// all found splits must be among facets of tetras described by this method
|
||||
method = TSplitMethod( nbTet, connVariants[variant] );
|
||||
if ( hasAdjacentSplits && method._nbSplits > 0 )
|
||||
@ -2126,7 +2126,7 @@ namespace
|
||||
// there are adjacent prism
|
||||
for ( int variant = 0; variant < nbVariants; ++variant )
|
||||
{
|
||||
// check method compliancy with adjacent prisms,
|
||||
// check method compliance with adjacent prisms,
|
||||
// the found prism facets must be among facets of prisms described by current method
|
||||
method._nbSplits = nbSplits;
|
||||
method._nbCorners = 6;
|
||||
@ -3629,7 +3629,7 @@ static bool getClosestUV (Extrema_GenExtPS& projector,
|
||||
{
|
||||
projector.Perform( point );
|
||||
if ( projector.IsDone() ) {
|
||||
double u, v, minVal = DBL_MAX;
|
||||
double u = 0, v = 0, minVal = DBL_MAX;
|
||||
for ( int i = projector.NbExt(); i > 0; i-- )
|
||||
if ( projector.SquareDistance( i ) < minVal ) {
|
||||
minVal = projector.SquareDistance( i );
|
||||
@ -3857,9 +3857,9 @@ void SMESH_MeshEditor::Smooth (TIDSortedElemSet & theElems,
|
||||
}
|
||||
else {
|
||||
if ( isUPeriodic )
|
||||
newUV.SetX( ElCLib::InPeriod( newUV.X(), u1, u2 )); // todo: u may be used unitialized
|
||||
newUV.SetX( ElCLib::InPeriod( newUV.X(), u1, u2 ));
|
||||
if ( isVPeriodic )
|
||||
newUV.SetY( ElCLib::InPeriod( newUV.Y(), v1, v2 )); // todo: v may be used unitialized
|
||||
newUV.SetY( ElCLib::InPeriod( newUV.Y(), v1, v2 ));
|
||||
// check new UV
|
||||
// if ( posType != SMDS_TOP_3DSPACE )
|
||||
// dist2 = pNode.SquareDistance( surface->Value( newUV.X(), newUV.Y() ));
|
||||
@ -7461,10 +7461,10 @@ public:
|
||||
//int& GroupID() const { return const_cast< int& >( myGroupID ); }
|
||||
|
||||
ComparableElement( const ComparableElement& theSource ) // move copy
|
||||
: boost::container::flat_set< int >()
|
||||
: int_set()
|
||||
{
|
||||
ComparableElement& src = const_cast< ComparableElement& >( theSource );
|
||||
(int_set&) (*this ) = boost::move( src );
|
||||
(int_set&) (*this ) = std::move( src );
|
||||
myElem = src.myElem;
|
||||
mySumID = src.mySumID;
|
||||
myGroupID = src.myGroupID;
|
||||
@ -10200,7 +10200,7 @@ namespace // automatically find theAffectedElems for DoubleNodes()
|
||||
if ( SMESH_MeshAlgos::FaceNormal( _elems[1], norm ))
|
||||
avgNorm += norm;
|
||||
|
||||
gp_XYZ bordDir( SMESH_NodeXYZ( _nodes[0] ) - SMESH_NodeXYZ( _nodes[1] )); // todo: compiler complains about zero-size array
|
||||
gp_XYZ bordDir( SMESH_NodeXYZ( this->_nodes[0] ) - SMESH_NodeXYZ( this->_nodes[1] ));
|
||||
norm = bordDir ^ avgNorm;
|
||||
}
|
||||
else
|
||||
|
@ -2972,7 +2972,7 @@ bool SMESH_MesherHelper::IsReversedSubMesh (const TopoDS_Face& theFace)
|
||||
if ( !aSubMeshDSFace )
|
||||
return isReversed;
|
||||
|
||||
// find an element on a bounday of theFace
|
||||
// find an element on a boundary of theFace
|
||||
SMDS_ElemIteratorPtr iteratorElem = aSubMeshDSFace->GetElements();
|
||||
const SMDS_MeshNode* nn[2];
|
||||
while ( iteratorElem->more() ) // loop on elements on theFace
|
||||
@ -3769,7 +3769,7 @@ namespace { // Structures used by FixQuadraticElements()
|
||||
/*!
|
||||
* \brief Dump QLink and QFace
|
||||
*/
|
||||
ostream& operator << (ostream& out, const QLink& l) // todo: unused in release mode
|
||||
ostream& operator << (ostream& out, const QLink& l)
|
||||
{
|
||||
out <<"QLink nodes: "
|
||||
<< l.node1()->GetID() << " - "
|
||||
@ -3777,7 +3777,7 @@ namespace { // Structures used by FixQuadraticElements()
|
||||
<< l.node2()->GetID() << endl;
|
||||
return out;
|
||||
}
|
||||
ostream& operator << (ostream& out, const QFace& f) // todo: unused in release mode
|
||||
ostream& operator << (ostream& out, const QFace& f)
|
||||
{
|
||||
out <<"QFace nodes: "/*<< &f << " "*/;
|
||||
for ( TIDSortedNodeSet::const_iterator n = f.begin(); n != f.end(); ++n )
|
||||
@ -3819,8 +3819,9 @@ namespace { // Structures used by FixQuadraticElements()
|
||||
|
||||
#ifdef _DEBUG_
|
||||
_face = face;
|
||||
#endif
|
||||
#else
|
||||
(void)face; // unused in release mode
|
||||
#endif
|
||||
}
|
||||
//================================================================================
|
||||
/*!
|
||||
@ -4131,30 +4132,30 @@ namespace { // Structures used by FixQuadraticElements()
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
bool QFace::IsSpoiled(const QLink* bentLink ) const // todo: unused
|
||||
{
|
||||
// code is valid for convex faces only
|
||||
gp_XYZ gc(0,0,0);
|
||||
for ( TIDSortedNodeSet::const_iterator n = begin(); n != end(); ++n )
|
||||
gc += XYZ( *n ) / double( size() );
|
||||
for ( size_t i = 0; i < _sides.size(); ++i )
|
||||
{
|
||||
if ( _sides[i] == bentLink ) continue;
|
||||
gp_Vec linkNorm = _normal ^ gp_Vec( XYZ(_sides[i]->node1()), XYZ(_sides[i]->node2()));
|
||||
gp_Vec vecOut( gc, _sides[i]->MiddlePnt() );
|
||||
if ( linkNorm * vecOut < 0 )
|
||||
linkNorm.Reverse();
|
||||
double mag2 = linkNorm.SquareMagnitude();
|
||||
if ( mag2 > numeric_limits<double>::min() )
|
||||
linkNorm /= sqrt( mag2 );
|
||||
gp_Vec vecBent ( _sides[i]->MiddlePnt(), bentLink->MediumPnt());
|
||||
gp_Vec vecStraight( _sides[i]->MiddlePnt(), bentLink->MiddlePnt());
|
||||
if ( vecBent * linkNorm > -0.1*vecStraight.Magnitude() )
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
// bool QFace::IsSpoiled(const QLink* bentLink ) const
|
||||
// {
|
||||
// // code is valid for convex faces only
|
||||
// gp_XYZ gc(0,0,0);
|
||||
// for ( TIDSortedNodeSet::const_iterator n = begin(); n != end(); ++n )
|
||||
// gc += XYZ( *n ) / double( size() );
|
||||
// for ( size_t i = 0; i < _sides.size(); ++i )
|
||||
// {
|
||||
// if ( _sides[i] == bentLink ) continue;
|
||||
// gp_Vec linkNorm = _normal ^ gp_Vec( XYZ(_sides[i]->node1()), XYZ(_sides[i]->node2()));
|
||||
// gp_Vec vecOut( gc, _sides[i]->MiddlePnt() );
|
||||
// if ( linkNorm * vecOut < 0 )
|
||||
// linkNorm.Reverse();
|
||||
// double mag2 = linkNorm.SquareMagnitude();
|
||||
// if ( mag2 > numeric_limits<double>::min() )
|
||||
// linkNorm /= sqrt( mag2 );
|
||||
// gp_Vec vecBent ( _sides[i]->MiddlePnt(), bentLink->MediumPnt());
|
||||
// gp_Vec vecStraight( _sides[i]->MiddlePnt(), bentLink->MiddlePnt());
|
||||
// if ( vecBent * linkNorm > -0.1*vecStraight.Magnitude() )
|
||||
// return true;
|
||||
// }
|
||||
// return false;
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
@ -5506,10 +5507,12 @@ void SMESH_MesherHelper::FixQuadraticElements(SMESH_ComputeErrorPtr& compError,
|
||||
volExp.Set( *pentIt, /*ignoreCentralNodes=*/false );
|
||||
}
|
||||
}
|
||||
#ifdef _DEBUG_
|
||||
|
||||
if ( false )
|
||||
// avoid warning: defined but not used operator<<()
|
||||
SMESH_Comment() << *links.begin() << *faces.begin();
|
||||
#endif
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
|
@ -745,34 +745,34 @@ namespace
|
||||
//=======================================================================
|
||||
//function : ChangePolyhedronNodes
|
||||
//=======================================================================
|
||||
inline void ChangePolyhedronNodes (SMDS_Mesh* /*theMesh*/,
|
||||
SMESH::log_array_var& /*theSeq*/,
|
||||
CORBA::Long /*theId*/)
|
||||
inline void ChangePolyhedronNodes (SMDS_Mesh* theMesh,
|
||||
SMESH::log_array_var& theSeq,
|
||||
CORBA::Long theId)
|
||||
{
|
||||
// const SMESH::long_array& anIndexes = theSeq[theId].indexes;
|
||||
// CORBA::Long iind = 0, aNbElems = theSeq[theId].number;
|
||||
const SMESH::long_array& anIndexes = theSeq[theId].indexes;
|
||||
CORBA::Long iind = 0, aNbElems = theSeq[theId].number;
|
||||
|
||||
// for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++)
|
||||
// {
|
||||
// // find element
|
||||
// const SMDS_MeshElement* elem = FindElement(theMesh, anIndexes[iind++]);
|
||||
// // nb nodes
|
||||
// int nbNodes = anIndexes[iind++];
|
||||
// // nodes
|
||||
// std::vector<const SMDS_MeshNode*> aNodes (nbNodes);
|
||||
// for (int iNode = 0; iNode < nbNodes; iNode++) {
|
||||
// aNodes[iNode] = FindNode(theMesh, anIndexes[iind++]);
|
||||
// }
|
||||
// // nb faces
|
||||
// int nbFaces = anIndexes[iind++];
|
||||
// // quantities
|
||||
// std::vector<int> quantities (nbFaces);
|
||||
// for (int iFace = 0; iFace < nbFaces; iFace++) {
|
||||
// quantities[iFace] = anIndexes[iind++];
|
||||
// }
|
||||
// // change
|
||||
// theMesh->ChangePolyhedronNodes(elem, aNodes, quantities);
|
||||
// }
|
||||
for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++)
|
||||
{
|
||||
// find element
|
||||
const SMDS_MeshElement* elem = FindElement(theMesh, anIndexes[iind++]);
|
||||
// nb nodes
|
||||
int nbNodes = anIndexes[iind++];
|
||||
// nodes
|
||||
std::vector<const SMDS_MeshNode*> aNodes (nbNodes);
|
||||
for (int iNode = 0; iNode < nbNodes; iNode++) {
|
||||
aNodes[iNode] = FindNode(theMesh, anIndexes[iind++]);
|
||||
}
|
||||
// nb faces
|
||||
int nbFaces = anIndexes[iind++];
|
||||
// quantities
|
||||
std::vector<int> quantities (nbFaces);
|
||||
for (int iFace = 0; iFace < nbFaces; iFace++) {
|
||||
quantities[iFace] = anIndexes[iind++];
|
||||
}
|
||||
// change
|
||||
theMesh->ChangePolyhedronNodes(elem, aNodes, quantities);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,6 +113,7 @@
|
||||
#include <LightApp_UpdateFlags.h>
|
||||
#include <QtxFontEdit.h>
|
||||
#include <QtxPopupMgr.h>
|
||||
#include <QtxInfoPanel.h>
|
||||
#include <SALOME_ListIO.hxx>
|
||||
#include <SUIT_Desktop.h>
|
||||
#include <SUIT_FileDlg.h>
|
||||
@ -2863,7 +2864,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
case SMESHOp::OpMeshOrder:
|
||||
case SMESHOp::OpCreateSubMesh:
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
// fall through
|
||||
case SMESHOp::OpCreateMesh:
|
||||
case SMESHOp::OpCompute:
|
||||
@ -2915,7 +2916,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
if ( isStudyLocked() )
|
||||
break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
|
||||
/*Standard_Boolean aRes;
|
||||
SMESH::SMESH_Mesh_var aMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IObject);
|
||||
@ -2947,7 +2948,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
if ( isStudyLocked() )
|
||||
break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
|
||||
EmitSignalDeactivateDialog();
|
||||
SMESHGUI_MultiEditDlg* aDlg = NULL;
|
||||
@ -2967,7 +2968,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_SmoothingDlg( this ) )->show();
|
||||
@ -2981,7 +2982,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if (isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if (vtkwnd) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_ExtrusionDlg ( this ) )->show();
|
||||
@ -2994,7 +2995,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if (isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if (vtkwnd) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_ExtrusionAlongPathDlg( this ) )->show();
|
||||
@ -3007,7 +3008,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_RevolutionDlg( this ) )->show();
|
||||
@ -3022,7 +3023,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
if ( isStudyLocked() )
|
||||
break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if ( vtkwnd )
|
||||
{
|
||||
EmitSignalDeactivateDialog();
|
||||
@ -3040,7 +3041,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
case SMESHOp::OpCreateGeometryGroup:
|
||||
{
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
startOperation( theCommandID );
|
||||
break;
|
||||
}
|
||||
@ -3054,7 +3055,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
EmitSignalDeactivateDialog();
|
||||
SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_nil();
|
||||
|
||||
@ -3083,7 +3084,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
EmitSignalDeactivateDialog();
|
||||
|
||||
LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
|
||||
@ -3162,7 +3163,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
EmitSignalDeactivateDialog();
|
||||
|
||||
LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
|
||||
@ -3261,7 +3262,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
if ( isStudyLocked() )
|
||||
break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
|
||||
EmitSignalDeactivateDialog();
|
||||
|
||||
@ -3283,7 +3284,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
if ( isStudyLocked() )
|
||||
break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
|
||||
EmitSignalDeactivateDialog();
|
||||
SMESHGUI_GroupOpDlg* aDlg = new SMESHGUI_DimGroupDlg( this );
|
||||
@ -3297,7 +3298,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
if ( isStudyLocked() )
|
||||
break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
|
||||
EmitSignalDeactivateDialog();
|
||||
SMESHGUI_FaceGroupsSeparatedByEdgesDlg* aDlg = new SMESHGUI_FaceGroupsSeparatedByEdgesDlg( this );
|
||||
@ -3358,7 +3359,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
|
||||
LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
|
||||
SALOME_ListIO selected;
|
||||
@ -3405,7 +3406,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
SUIT_OverrideCursor wc;
|
||||
|
||||
LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
|
||||
@ -3438,7 +3439,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if ( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
SMDSAbs_EntityType type = SMDSEntity_Edge;
|
||||
@ -3466,7 +3467,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if ( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_CreatePolyhedralVolumeDlg( this ) )->show();
|
||||
@ -3491,7 +3492,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if ( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
SMDSAbs_EntityType type = SMDSEntity_Last;
|
||||
@ -3524,7 +3525,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if ( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_RemoveNodesDlg( this ) )->show();
|
||||
@ -3539,7 +3540,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_RemoveElementsDlg( this ) )->show();
|
||||
@ -3555,7 +3556,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
|
||||
SALOME_ListIO selected;
|
||||
if( LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr() )
|
||||
@ -3596,7 +3597,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
SALOME_ListIO selected;
|
||||
if( LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr() )
|
||||
aSel->selectedObjects( selected );
|
||||
@ -3637,7 +3638,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_RenumberingDlg( this, 0 ) )->show();
|
||||
@ -3653,7 +3654,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if ( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_RenumberingDlg( this, 1 ) )->show();
|
||||
@ -3669,7 +3670,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if ( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_TranslationDlg( this ) )->show();
|
||||
@ -3684,7 +3685,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_RotationDlg( this ) )->show();
|
||||
@ -3699,7 +3700,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if(vtkwnd) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_SymmetryDlg( this ) )->show();
|
||||
@ -3714,7 +3715,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if ( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_ScaleDlg( this ) )->show();
|
||||
@ -3730,7 +3731,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if ( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_OffsetDlg( this ) )->show();
|
||||
@ -3746,7 +3747,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if(vtkwnd) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_SewingDlg( this ) )->show();
|
||||
@ -3761,7 +3762,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if(vtkwnd) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_MergeDlg( this, 0 ) )->show();
|
||||
@ -3776,7 +3777,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if (isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if (vtkwnd) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_MergeDlg( this, 1 ) )->show();
|
||||
@ -3789,7 +3790,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
|
||||
case SMESHOp::OpMoveNode: // MAKE MESH PASS THROUGH POINT
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
startOperation( SMESHOp::OpMoveNode );
|
||||
break;
|
||||
|
||||
@ -3797,7 +3798,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
{
|
||||
if(isStudyLocked()) break;
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
if ( vtkwnd ) {
|
||||
EmitSignalDeactivateDialog();
|
||||
( new SMESHGUI_DuplicateNodesDlg( this ) )->show();
|
||||
@ -3811,7 +3812,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
|
||||
case SMESHOp::OpElem0DOnElemNodes: // 0D_ON_ALL_NODES
|
||||
if ( warnOnGeomModif() )
|
||||
break; // action forbiden as geometry modified
|
||||
break; // action forbidden as geometry modified
|
||||
startOperation( SMESHOp::OpElem0DOnElemNodes );
|
||||
break;
|
||||
|
||||
@ -4686,7 +4687,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
||||
|
||||
popupMgr()->insert( separator(), -1, 0 );
|
||||
createPopupItem( SMESHOp::OpCompute, OB, mesh, "&& selcount=1 && hasAlgo && isComputable" );
|
||||
createPopupItem( SMESHOp::OpRecompute, OB, mesh, "&& selcount=1 && hasAlgo && " + isNotEmpty );
|
||||
createPopupItem( SMESHOp::OpRecompute, OB, mesh, "&& selcount=1 && hasAlgo && (" + isNotEmpty + " || hasErrors )");
|
||||
createPopupItem( SMESHOp::OpShowErrors, OB, mesh, "&& selcount=1 && hasErrors" );
|
||||
createPopupItem( SMESHOp::OpComputeSubMesh, OB, subMesh, "&& selcount=1 && hasAlgo && isComputable" );
|
||||
createPopupItem( SMESHOp::OpPreCompute, OB, mesh, "&& selcount=1 && hasAlgo && isPreComputable" );
|
||||
@ -5105,6 +5106,12 @@ bool SMESHGUI::reusableOperation( const int id )
|
||||
return ( id == SMESHOp::OpCompute || id == SMESHOp::OpPreCompute || id == SMESHOp::OpEvaluate || id == SMESHOp::OpRecompute ) ? false : SalomeApp_Module::reusableOperation( id );
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
QString wrap(const QString& text, const QString& tag)
|
||||
{ return QString("<%1>%2</%3>").arg(tag).arg(text).arg(tag);}
|
||||
}
|
||||
|
||||
bool SMESHGUI::activateModule( SUIT_Study* study )
|
||||
{
|
||||
bool res = SalomeApp_Module::activateModule( study );
|
||||
@ -5112,6 +5119,49 @@ bool SMESHGUI::activateModule( SUIT_Study* study )
|
||||
setMenuShown( true );
|
||||
setToolShown( true );
|
||||
|
||||
// Fill in Help Panel
|
||||
SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( application() );
|
||||
app->infoPanel()->setTitle(tr("INFO_WELCOME_TO_SMESH"));
|
||||
|
||||
int gb = app->infoPanel()->addGroup(tr("INFO_GRP_CREATE_MESH"));
|
||||
QString lab;
|
||||
QStringList items;
|
||||
lab = tr("INFO_DEFINE_ALGOS") + "<br/>";
|
||||
lab = lab + tr("INFO_DEFINE_HYPOS") + "<br/>";
|
||||
lab = lab + tr("INFO_COMPUTE") + "<br/>";
|
||||
lab = lab + tr("INFO_REFINE") + ":";
|
||||
items << wrap(tr("INFO_REFINE_LOCAL_SIZE"), "li")
|
||||
<< wrap(tr("INFO_REFINE_SUBMESH"), "li");
|
||||
lab = lab + wrap(items.join(""), "ul");
|
||||
items.clear();
|
||||
|
||||
app->infoPanel()->addLabel(lab, gb);
|
||||
|
||||
gb = app->infoPanel()->addGroup(tr("INFO_GRP_IMPORT_MESH"));
|
||||
items << wrap("UNV", "li")
|
||||
<< wrap("MED", "li")
|
||||
<< wrap("STL", "li")
|
||||
<< wrap("CGNS", "li")
|
||||
<< wrap("SAUV", "li")
|
||||
<< wrap("GMF", "li");
|
||||
lab = tr("INFO_AVAILABLE_FORMATS") + ":" + wrap(items.join(""), "ul");
|
||||
items.clear();
|
||||
|
||||
app->infoPanel()->addLabel(lab, gb);
|
||||
|
||||
gb = app->infoPanel()->addGroup(tr("INFO_GRP_CHECK_MESH"));
|
||||
lab = tr("INFO_DISPLAY") + "<br/>";
|
||||
items << wrap(tr("INFO_QUALITY_AREA"), "li")
|
||||
<< wrap(tr("INFO_QUALITY_VOLUME"), "li")
|
||||
<< wrap(tr("INFO_QUALITY_ASPECT_RATION"), "li")
|
||||
<< wrap("...", "li");
|
||||
lab = lab + tr("INFO_QUALITY_INFO") + ":" + wrap(items.join(""), "ul");
|
||||
items.clear();
|
||||
lab = lab + tr("INFO_CLIPPING");
|
||||
|
||||
app->infoPanel()->addLabel(lab, gb);
|
||||
// << Help Panel
|
||||
|
||||
// import Python module that manages SMESH plugins (need to be here because SalomePyQt API uses active module)
|
||||
PyGILState_STATE gstate = PyGILState_Ensure();
|
||||
PyObject* pluginsmanager = PyImport_ImportModuleNoBlock((char*)"salome_pluginsmanager");
|
||||
@ -5230,6 +5280,7 @@ void SMESHGUI::windows( QMap<int, int>& aMap ) const
|
||||
{
|
||||
aMap.insert( SalomeApp_Application::WT_ObjectBrowser, Qt::LeftDockWidgetArea );
|
||||
aMap.insert( SalomeApp_Application::WT_NoteBook, Qt::LeftDockWidgetArea );
|
||||
aMap.insert( SalomeApp_Application::WT_InfoPanel, Qt::RightDockWidgetArea);
|
||||
#ifndef DISABLE_PYCONSOLE
|
||||
aMap.insert( SalomeApp_Application::WT_PyConsole, Qt::BottomDockWidgetArea );
|
||||
#endif
|
||||
|
@ -211,7 +211,7 @@ QWidget* SMESHGUI_FilterLibraryDlg::createMainFrame (QWidget* theParent)
|
||||
myTable->SetLibsEnabled(false);
|
||||
|
||||
myListBox->setMinimumHeight((int)(myTable->sizeHint().height() * 0.5));
|
||||
//myListBox->setRowMode(QListWidget::FitToWidth); //VSR : TODO ???
|
||||
//myListBox->setRowMode(QListWidget::FitToWidth);
|
||||
myListBox->setSelectionMode(QListWidget::SingleSelection);
|
||||
|
||||
myOpenBtn->setAutoDefault(false);
|
||||
|
@ -1577,22 +1577,22 @@ void SMESHGUI_SewingDlg::onTextChange (const QString& theNewText)
|
||||
|
||||
QStringList aListId = theNewText.split(" ", QString::SkipEmptyParts);
|
||||
|
||||
bool isEvenOneExists = false;
|
||||
bool atLeastOneExists = false;
|
||||
|
||||
for (int i = 0; i < aListId.count(); i++) {
|
||||
const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
|
||||
if (e)
|
||||
{
|
||||
newIndices.Add(e->GetID());
|
||||
|
||||
if (!isEvenOneExists)
|
||||
isEvenOneExists = true;
|
||||
atLeastOneExists = true;
|
||||
}
|
||||
}
|
||||
|
||||
mySelector->AddOrRemoveIndex(myActor->getIO(), newIndices, false);
|
||||
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
|
||||
aViewWindow->highlight( myActor->getIO(), true, true );
|
||||
|
||||
if (isEvenOneExists) {
|
||||
if (atLeastOneExists) {
|
||||
if (send == LineEdit1)
|
||||
myOk1 = true;
|
||||
else if(send == LineEdit4)
|
||||
|
@ -226,6 +226,6 @@ SMESHGUI_EXPORT
|
||||
SMESHGUI_EXPORT
|
||||
bool NoSmeshActors(SUIT_ViewWindow *theWnd=nullptr);
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif // SMESHGUI_VTKUTILS_H
|
||||
|
@ -5029,6 +5029,74 @@ Please, create VTK viewer and try again</translation>
|
||||
<source>PREF_PREVIEW_CHUNK_SIZE</source>
|
||||
<translation>Sub-shapes preview chunk size</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_WELCOME_TO_SMESH</source>
|
||||
<translation>Welcome to Mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_GRP_CREATE_MESH</source>
|
||||
<translation>Create mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_DEFINE_ALGOS</source>
|
||||
<translation>Choose algorithms</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_DEFINE_HYPOS</source>
|
||||
<translation>Define hypotheses</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_COMPUTE</source>
|
||||
<translation>Compute</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_REFINE</source>
|
||||
<translation>Add refinements</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_REFINE_LOCAL_SIZE</source>
|
||||
<translation>via local sizes with some hypotheses</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_REFINE_SUBMESH</source>
|
||||
<translation>via sub-meshes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_GRP_IMPORT_MESH</source>
|
||||
<translation>Import mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_AVAILABLE_FORMATS</source>
|
||||
<translation>Available formats</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_GRP_CHECK_MESH</source>
|
||||
<translation> Check mesh quality</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_DISPLAY</source>
|
||||
<translation>Display mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_INFO</source>
|
||||
<translation>Display some quality criteria</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_AREA</source>
|
||||
<translation>area</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_VOLUME</source>
|
||||
<translation>volume</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_ASPECT_RATION</source>
|
||||
<translation>aspect ration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_CLIPPING</source>
|
||||
<translation>Add clipping planes</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SMESHGUI_GroupDlg</name>
|
||||
|
@ -4581,6 +4581,10 @@ Il ne peut pas être supprimé.</translation>
|
||||
<source>SMESH_HEX_PRISM</source>
|
||||
<translation>Prisme hexagonal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generate mesh from CAD model or import mesh</source>
|
||||
<translation type="unfinished">Generate mesh from CAD model or import mesh</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SMESHGUI_FieldSelectorWdg</name>
|
||||
@ -5029,6 +5033,74 @@ Ouvrez une fenêtre VTK et essayez de nouveau</translation>
|
||||
<source>PREF_PREVIEW_CHUNK_SIZE</source>
|
||||
<translation>Taille des blocs pour la prévisualisation des sous-shapes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_WELCOME_TO_SMESH</source>
|
||||
<translation type="unfinished">Welcome to Mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_GRP_CREATE_MESH</source>
|
||||
<translation type="unfinished">Create mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_DEFINE_ALGOS</source>
|
||||
<translation type="unfinished">Choose algorithms</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_DEFINE_HYPOS</source>
|
||||
<translation type="unfinished">Define hypotheses</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_COMPUTE</source>
|
||||
<translation type="unfinished">Compute</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_REFINE</source>
|
||||
<translation type="unfinished">Add refinements</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_REFINE_LOCAL_SIZE</source>
|
||||
<translation type="unfinished">via local sizes with some hypotheses</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_REFINE_SUBMESH</source>
|
||||
<translation type="unfinished">via sub-meshes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_GRP_IMPORT_MESH</source>
|
||||
<translation type="unfinished">Import mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_AVAILABLE_FORMATS</source>
|
||||
<translation type="unfinished">Available formats</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_GRP_CHECK_MESH</source>
|
||||
<translation type="unfinished"> Check mesh quality</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_DISPLAY</source>
|
||||
<translation type="unfinished">Display mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_INFO</source>
|
||||
<translation type="unfinished">Display some quality criteria</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_AREA</source>
|
||||
<translation type="unfinished">area</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_VOLUME</source>
|
||||
<translation type="unfinished">volume</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_ASPECT_RATION</source>
|
||||
<translation type="unfinished">aspect ration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_CLIPPING</source>
|
||||
<translation type="unfinished">Add clipping planes</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SMESHGUI_GroupDlg</name>
|
||||
|
@ -4431,6 +4431,10 @@
|
||||
<source>SMESH_HEX_PRISM</source>
|
||||
<translation>六角形プリズム</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generate mesh from CAD model or import mesh</source>
|
||||
<translation type="unfinished">Generate mesh from CAD model or import mesh</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SMESHGUI_FieldSelectorWdg</name>
|
||||
@ -4827,6 +4831,74 @@
|
||||
<source>PREF_PREVIEW_CHUNK_SIZE</source>
|
||||
<translation>Under-shapes のブロックのサイズ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_WELCOME_TO_SMESH</source>
|
||||
<translation type="unfinished">Welcome to Mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_GRP_CREATE_MESH</source>
|
||||
<translation type="unfinished">Create mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_DEFINE_ALGOS</source>
|
||||
<translation type="unfinished">Choose algorithms</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_DEFINE_HYPOS</source>
|
||||
<translation type="unfinished">Define hypotheses</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_COMPUTE</source>
|
||||
<translation type="unfinished">Compute</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_REFINE</source>
|
||||
<translation type="unfinished">Add refinements</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_REFINE_LOCAL_SIZE</source>
|
||||
<translation type="unfinished">via local sizes with some hypotheses</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_REFINE_SUBMESH</source>
|
||||
<translation type="unfinished">via sub-meshes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_GRP_IMPORT_MESH</source>
|
||||
<translation type="unfinished">Import mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_AVAILABLE_FORMATS</source>
|
||||
<translation type="unfinished">Available formats</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_GRP_CHECK_MESH</source>
|
||||
<translation type="unfinished"> Check mesh quality</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_DISPLAY</source>
|
||||
<translation type="unfinished">Display mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_INFO</source>
|
||||
<translation type="unfinished">Display some quality criteria</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_AREA</source>
|
||||
<translation type="unfinished">area</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_VOLUME</source>
|
||||
<translation type="unfinished">volume</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_QUALITY_ASPECT_RATION</source>
|
||||
<translation type="unfinished">aspect ration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>INFO_CLIPPING</source>
|
||||
<translation type="unfinished">Add clipping planes</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SMESHGUI_GroupDlg</name>
|
||||
|
@ -1130,7 +1130,7 @@ bool SMESH_Block::findUVByHalfDivision( const gp_Pnt& thePoint,
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Finds parameters corresponding to a given UV of a given face by searching
|
||||
* \brief Find parameters corresponding to a given UV of a given face by searching
|
||||
* around the starting solution
|
||||
* \param [in] theUV - the UV to locate
|
||||
* \param [in] tface - the face
|
||||
|
@ -101,10 +101,10 @@ class SMESH_OrientedIndexer : public SMESH_Indexer
|
||||
public:
|
||||
enum OriFlags //!< transformation types
|
||||
{
|
||||
REV_X = 1, REV_Y = 2, SWAP_XY = 4, MAX_ORI = REV_X|REV_Y|SWAP_XY
|
||||
NO_TRSF = 0, REV_X = 1, REV_Y = 2, SWAP_XY = 4, MAX_ORI = REV_X|REV_Y|SWAP_XY
|
||||
};
|
||||
|
||||
SMESH_OrientedIndexer( const SMESH_Indexer& indexer, const int oriFlags ):
|
||||
SMESH_OrientedIndexer( const SMESH_Indexer& indexer, const int oriFlags = NO_TRSF):
|
||||
TFather( indexer._xSize, indexer._ySize ),
|
||||
_xRevFun( (oriFlags & REV_X) ? & reverse : & lazy ),
|
||||
_yRevFun( (oriFlags & REV_Y) ? & reverse : & lazy ),
|
||||
|
@ -418,8 +418,10 @@ namespace
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
void bndSegsToMesh( const vector< vector< BndSeg > >& /*bndSegsPerEdge*/ )
|
||||
void bndSegsToMesh( const vector< vector< BndSeg > >& bndSegsPerEdge )
|
||||
{
|
||||
if ( bndSegsPerEdge.empty() )
|
||||
return;
|
||||
#ifdef _MYDEBUG_
|
||||
if ( !getenv("bndSegsToMesh")) return;
|
||||
map< const TVDVertex *, int > v2Node;
|
||||
|
@ -2022,6 +2022,8 @@ namespace SMESH_MeshAlgos
|
||||
#ifdef _DEBUG_
|
||||
std::cerr << "BAD tria" << std::endl;
|
||||
cf.Dump();
|
||||
#else
|
||||
if ( i < 0 ) cf.Dump(); // avoid "CutFace::Dump() unused in release mode"
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
@ -2358,7 +2360,7 @@ namespace
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
void CutFace::Dump() const // todo: unused in release mode
|
||||
void CutFace::Dump() const
|
||||
{
|
||||
std::cout << std::endl << "INI F " << myInitFace->GetID() << std::endl;
|
||||
for ( size_t i = 0; i < myLinks.size(); ++i )
|
||||
@ -2779,13 +2781,11 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
if ( closestNode1 && closestNode2 ) {
|
||||
size_t i = myLinks.size();
|
||||
myLinks.resize( i + 2 );
|
||||
myLinks[ i ].Set( closestNode1, closestNode2 );
|
||||
myLinks[ i+1 ].Set( closestNode2, closestNode1 );
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -33,8 +33,11 @@
|
||||
#include <SALOMEDS_wrap.hxx>
|
||||
#include <utilities.h>
|
||||
|
||||
#include <Basics_OCCTVersion.hxx>
|
||||
#include <Resource_DataMapOfAsciiStringAsciiString.hxx>
|
||||
#if OCC_VERSION_LARGE < 0x07050000
|
||||
#include <Resource_DataMapIteratorOfDataMapOfAsciiStringAsciiString.hxx>
|
||||
#endif
|
||||
|
||||
#include "SMESH_Gen_i.hxx"
|
||||
/* SALOME headers that include CORBA headers that include windows.h
|
||||
@ -931,7 +934,8 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand
|
||||
Threshold = SMESH + types[ iGeom ];
|
||||
#ifdef _DEBUG_
|
||||
// is types complete? (compilation failure means that enum GeometryType changed)
|
||||
int _asrt[( sizeof(types) / sizeof(const char*) == nbTypes ) ? 2 : -1 ]; _asrt[0]=_asrt[1]; // _asrt[1] may be used uninitialized => replace this with static_assert?
|
||||
static_assert( sizeof(types) / sizeof(const char*) == nbTypes,
|
||||
"Update names of GeometryType's!!!" );
|
||||
#endif
|
||||
}
|
||||
if (Type == "SMESH.FT_EntityType")
|
||||
@ -951,7 +955,8 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand
|
||||
Threshold = SMESH + types[ iGeom ];
|
||||
#ifdef _DEBUG_
|
||||
// is 'types' complete? (compilation failure means that enum EntityType changed)
|
||||
int _asrt[( sizeof(types) / sizeof(const char*) == nbTypes ) ? 2 : -1 ]; _asrt[0]=_asrt[1]; // _asrt[1] may be used uninitialized => replace this with static_assert?
|
||||
static_assert( sizeof(types) / sizeof(const char*) == nbTypes,
|
||||
"Update names of EntityType's!!!" );
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -422,7 +422,7 @@ protected:
|
||||
std::list<Handle(_pyCommand)> myUnusedCommands;
|
||||
std::list<Handle(_pyObject) > myReferredObjs;
|
||||
// maps used to clear commands setting parameters if result of setting is
|
||||
// discared (e.g. by mesh.Clear())
|
||||
// discarded (e.g. by mesh.Clear())
|
||||
std::map<_AString, std::list<Handle(_pyCommand)> > myMeth2Commands;
|
||||
std::map< _pyCommand::TAddr, std::list<Handle(_pyCommand) > > myComputeAddr2Cmds;
|
||||
std::list<Handle(_pyCommand) > myComputeCmds;
|
||||
|
@ -843,7 +843,7 @@ void BelongToMeshGroup_i::SetGroupID( const char* theID ) // IOR or StoreName
|
||||
std::string BelongToMeshGroup_i::GetGroupID()
|
||||
{
|
||||
if ( myGroup->_is_nil() )
|
||||
SMESH::SMESH_GroupBase_var( GetGroup() ); // todo: unnecessary parentheses?
|
||||
SMESH::SMESH_GroupBase_var( GetGroup() ); // decref the returned pointer
|
||||
|
||||
if ( !myGroup->_is_nil() )
|
||||
myID = SMESH_Gen_i::GetORB()->object_to_string( myGroup );
|
||||
|
@ -6346,7 +6346,6 @@ CORBA::Boolean SMESH_Gen_i::IsApplicable ( const char* theAlgoType,
|
||||
SMESH_TRY;
|
||||
|
||||
std::string aPlatformLibName;
|
||||
//typedef GenericHypothesisCreator_i* (*GetHypothesisCreator)(const char*);
|
||||
GenericHypothesisCreator_i* aCreator =
|
||||
getHypothesisCreator(theAlgoType, theLibName, aPlatformLibName);
|
||||
if (aCreator)
|
||||
|
@ -6584,10 +6584,13 @@ void findConcurrents(const SMESH_DimHyp* theDimHyp,
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void unionLists(TListOfInt& theListOfId,
|
||||
bool unionLists(TListOfInt& theListOfId,
|
||||
TListOfListOfInt& theListOfListOfId,
|
||||
const int theIndx )
|
||||
{
|
||||
bool changed = false;
|
||||
if ( theListOfId.empty() )
|
||||
return changed;
|
||||
TListOfListOfInt::iterator it = theListOfListOfId.begin();
|
||||
for ( int i = 0; it != theListOfListOfId.end(); it++, i++ )
|
||||
{
|
||||
@ -6603,11 +6606,15 @@ void unionLists(TListOfInt& theListOfId,
|
||||
TListOfInt::iterator it2 = otherListOfId.begin();
|
||||
for ( ; it2 != otherListOfId.end(); it2++ ) {
|
||||
if ( find( theListOfId.begin(), theListOfId.end(), (*it2) ) == theListOfId.end() )
|
||||
{
|
||||
theListOfId.push_back(*it2);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
// clear source list
|
||||
otherListOfId.clear();
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
@ -6691,10 +6698,15 @@ SMESH::submesh_array_array* SMESH_Mesh_i::GetMeshOrder()
|
||||
TListOfListOfInt allConurrent = findConcurrentSubMeshes();
|
||||
anOrder.splice( anOrder.end(), allConurrent );
|
||||
|
||||
int listIndx = 0;
|
||||
bool changed;
|
||||
do {
|
||||
changed = false;
|
||||
TListOfListOfInt::iterator listIt = anOrder.begin();
|
||||
for(; listIt != anOrder.end(); listIt++, listIndx++ )
|
||||
unionLists( *listIt, anOrder, listIndx + 1 );
|
||||
for ( int listIndx = 1; listIt != anOrder.end(); listIt++, listIndx++ )
|
||||
if ( unionLists( *listIt, anOrder, listIndx ))
|
||||
changed = true;
|
||||
}
|
||||
while ( changed );
|
||||
|
||||
// convert submesh ids into interface instances
|
||||
// and dump command into python
|
||||
|
@ -286,7 +286,7 @@ void SMESH_NoteBook::ReplaceVariables()
|
||||
varIndex = atoi( varIndexPtr );
|
||||
if ( 0 <= (int)varIndex && varIndex < vars.size() && !vars[varIndex].empty() )
|
||||
{
|
||||
// replace '$VarIndex$' either by var name of var value
|
||||
// replace '$VarIndex$' either by var name or var value
|
||||
const char var0 = vars[varIndex][0];
|
||||
const bool isValue = (( '0' <= var0 && var0 <= '9' ) || var0 == '-');
|
||||
if ( isValue ) // remove TVar::Quote() as well
|
||||
|
@ -114,7 +114,7 @@ SMESH_Pattern_i::SMESH_Pattern_i( SMESH_Gen_i* theGen_i ):
|
||||
|
||||
CORBA::Boolean SMESH_Pattern_i::LoadFromFile(const char* theFileContents)
|
||||
{
|
||||
// remove some gabage from the end
|
||||
// remove some garbage from the end
|
||||
TCollection_AsciiString patternDescription = (char*) theFileContents;
|
||||
int pos = patternDescription.Length();
|
||||
while (! isdigit( patternDescription.Value( pos )))
|
||||
|
@ -33,13 +33,17 @@
|
||||
#include "SMESH_MeshEditor_i.hxx"
|
||||
|
||||
#include <Basics_Utils.hxx>
|
||||
#include <Basics_OCCTVersion.hxx>
|
||||
#include <SALOMEDS_wrap.hxx>
|
||||
|
||||
#include <LDOMParser.hxx>
|
||||
#include <Resource_DataMapIteratorOfDataMapOfAsciiStringAsciiString.hxx>
|
||||
#include <TColStd_HSequenceOfInteger.hxx>
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
|
||||
#if OCC_VERSION_LARGE < 0x07050000
|
||||
#include <Resource_DataMapIteratorOfDataMapOfAsciiStringAsciiString.hxx>
|
||||
#endif
|
||||
|
||||
#include <cstring>
|
||||
|
||||
#ifdef _DEBUG_
|
||||
@ -672,7 +676,7 @@ namespace SMESH
|
||||
#ifdef _DEBUG_
|
||||
std::cout << "Exception in SMESH_Gen_i::DumpPython(): " << text << std::endl;
|
||||
#else
|
||||
(void)text; // todo: unused in release mode
|
||||
(void)text; // unused in release mode
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -127,7 +127,7 @@ bool StdMeshers_BlockRenumber::IsSolidIncluded( SMESH_Mesh& mesh,
|
||||
//=======================================================================
|
||||
|
||||
SMESH_ComputeErrorPtr StdMeshers_BlockRenumber::CheckHypothesis(SMESH_Mesh& aMesh,
|
||||
const TopoDS_Shape& aShape) const
|
||||
const TopoDS_Shape& /*shape*/) const
|
||||
{
|
||||
SMESH_Comment errorTxt;
|
||||
for ( size_t i = 0; i < _blockCS.size() && errorTxt.empty(); ++i )
|
||||
@ -313,7 +313,7 @@ namespace boost {
|
||||
//=======================================================================
|
||||
|
||||
template<class Archive>
|
||||
void serialize(Archive & ar, StdMeshers_BlockCS & blockCS, const unsigned int version)
|
||||
void serialize(Archive & ar, StdMeshers_BlockCS & blockCS, const unsigned int /*version*/)
|
||||
{
|
||||
ar & blockCS._solid;
|
||||
ar & blockCS._vertex000;
|
||||
|
@ -86,14 +86,14 @@ public:
|
||||
* \param theShape - the geometry of interest
|
||||
* \retval bool - true if parameter values have been successfully defined
|
||||
*/
|
||||
bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape) override
|
||||
bool SetParametersByMesh(const SMESH_Mesh* /*mesh*/, const TopoDS_Shape& /*shape*/) override
|
||||
{ return false; }
|
||||
|
||||
/*!
|
||||
* \brief Initialize my parameter values by default parameters.
|
||||
* \retval bool - true if parameter values have been successfully defined
|
||||
*/
|
||||
bool SetParametersByDefaults(const TDefaults& dflts, const SMESH_Mesh* theMesh=0) override
|
||||
bool SetParametersByDefaults(const TDefaults& /*dflts*/, const SMESH_Mesh* /*mesh*/=0) override
|
||||
{ return false; }
|
||||
|
||||
public:
|
||||
@ -115,7 +115,7 @@ public:
|
||||
|
||||
// Persistence: define both input and output at once
|
||||
friend class boost::serialization::access;
|
||||
template<class Archive> void serialize( Archive & ar, const unsigned int version )
|
||||
template<class Archive> void serialize( Archive & ar, const unsigned int /*version*/ )
|
||||
{
|
||||
ar & _blockCS;
|
||||
}
|
||||
|
@ -2563,7 +2563,7 @@ namespace
|
||||
case 3: // at a corner
|
||||
{
|
||||
_Node& node = _hexNodes[ subEntity - SMESH_Block::ID_FirstV ];
|
||||
if ( node.Node() != 0 )
|
||||
if ( node.Node() )
|
||||
{
|
||||
if ( node._intPoint )
|
||||
node._intPoint->Add( _eIntPoints[ iP ]->_faceIDs, _eIntPoints[ iP ]->_node );
|
||||
@ -3503,7 +3503,7 @@ namespace
|
||||
continue;
|
||||
|
||||
// perform intersection
|
||||
E_IntersectPoint* eip, *vip = 0; // todo: vip must be explicitly initialized to avoid warning (see below)
|
||||
E_IntersectPoint* eip, *vip = 0;
|
||||
for ( int iDirZ = 0; iDirZ < 3; ++iDirZ )
|
||||
{
|
||||
GridPlanes& planes = pln[ iDirZ ];
|
||||
@ -3604,7 +3604,7 @@ namespace
|
||||
vip = _grid->Add( ip );
|
||||
if ( isInternal && !sameV )
|
||||
vip->_faceIDs.push_back( _grid->PseudoIntExtFaceID() );
|
||||
if ( !addIntersection( vip, hexes, ijk, d000 ) && !sameV ) // todo: vip must be explicitly initialized to avoid warning (see above)
|
||||
if ( !addIntersection( vip, hexes, ijk, d000 ) && !sameV )
|
||||
_grid->Remove( vip );
|
||||
ip._shapeID = edgeID;
|
||||
}
|
||||
|
@ -44,6 +44,7 @@
|
||||
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
#include <BRep_Tool.hxx>
|
||||
#include <Bnd_B3d.hxx>
|
||||
#include <Standard_ErrorHandler.hxx>
|
||||
#include <Standard_Failure.hxx>
|
||||
#include <TopExp_Explorer.hxx>
|
||||
@ -61,10 +62,9 @@
|
||||
#include <gp_XYZ.hxx>
|
||||
|
||||
#include <list>
|
||||
#include <numeric>
|
||||
#include <set>
|
||||
#include <vector>
|
||||
#include <numeric>
|
||||
#include <Bnd_B3d.hxx>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -55,7 +55,6 @@
|
||||
#include "Utils_ExceptHandlers.hxx"
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <numeric>
|
||||
|
||||
typedef SMESH_Comment TComm;
|
||||
|
@ -693,14 +693,14 @@ namespace // INTERNAL STUFF
|
||||
|
||||
if ( removeImport )
|
||||
{
|
||||
// treate removal of Import algo from subMesh
|
||||
// treat removal of Import algo from subMesh
|
||||
removeSubmesh( subMesh, (_ListenerData*) data );
|
||||
}
|
||||
else if ( modifHyp ||
|
||||
( SMESH_subMesh::CLEAN == event &&
|
||||
SMESH_subMesh::COMPUTE_EVENT == eventType))
|
||||
{
|
||||
// treate modification of ImportSource hypothesis
|
||||
// treat modification of ImportSource hypothesis
|
||||
clearSubmesh( subMesh, (_ListenerData*) data, /*all=*/false );
|
||||
}
|
||||
else if ( SMESH_subMesh::CHECK_COMPUTE_STATE == event &&
|
||||
@ -720,7 +720,7 @@ namespace // INTERNAL STUFF
|
||||
d->_computedSubM.insert( *smIt);
|
||||
}
|
||||
}
|
||||
// Clear _ImportData::_n2n if it's no more useful, i.e. when
|
||||
// Clear _ImportData::_n2n if it isn't useful anymore, i.e. when
|
||||
// the event is not within mesh.Compute()
|
||||
if ( SMESH_subMesh::ALGO_EVENT == eventType )
|
||||
clearN2N( subMesh->GetFather() );
|
||||
|
@ -1841,6 +1841,8 @@ bool StdMeshers_Prism_3D::computeWalls(const Prism_3D::TPrismTopo& thePrism)
|
||||
mesh->GetSubMesh( v )->ComputeStateEngine( SMESH_subMesh::COMPUTE );
|
||||
const SMDS_MeshNode* n = SMESH_Algo::VertexNode( v, meshDS );
|
||||
newNodes[ is2ndV ? newNodes.size()-1 : 0 ] = (SMDS_MeshNode*) n;
|
||||
if ( !n )
|
||||
return toSM( error( TCom("No node on vertex #") << meshDS->ShapeToIndex( v )));
|
||||
}
|
||||
|
||||
// compute nodes on target EDGEs
|
||||
|
@ -123,17 +123,19 @@ namespace {
|
||||
|
||||
bool storeShapeForDebug(const TopoDS_Shape& shape)
|
||||
{
|
||||
bool toShow;
|
||||
#ifdef _DEBUG_
|
||||
const char* type[] ={"COMPOUND","COMPSOLID","SOLID","SHELL","FACE","WIRE","EDGE","VERTEX"};
|
||||
BRepTools::Write( shape, SMESH_Comment("/tmp/") << type[shape.ShapeType()] << "_"
|
||||
<< shape.TShape().operator->() << ".brep");
|
||||
if ( !theMeshDS[0] ) {
|
||||
show_shape( TopoDS_Shape(), "avoid warning: show_shape() defined but not used");
|
||||
toShow = !theMeshDS[0]; // no show
|
||||
#else
|
||||
toShow = theMeshDS[0]; // no show
|
||||
#endif
|
||||
if ( toShow ) {
|
||||
show_shape( shape, "avoid warning: show_shape() defined but not used");
|
||||
show_list( "avoid warning: show_list() defined but not used", list< TopoDS_Edge >() );
|
||||
}
|
||||
#else
|
||||
(void)shape; // unused in release mode
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -540,8 +542,10 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
|
||||
// b) find association of a couple of vertices and recall self.
|
||||
//
|
||||
|
||||
#ifdef _DEBUG_
|
||||
theMeshDS[0] = theMesh1->GetMeshDS(); // debug
|
||||
theMeshDS[1] = theMesh2->GetMeshDS();
|
||||
#endif
|
||||
|
||||
// =================================================================================
|
||||
// 1) Is it the case of associating a group member -> another group? (PAL16202, 16203)
|
||||
|
@ -487,7 +487,7 @@ void StdMeshersGUI_BlockRenumberCreator::onRemoveBtnClick()
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
bool StdMeshersGUI_BlockRenumberCreator::checkParams( QString& msg ) const
|
||||
bool StdMeshersGUI_BlockRenumberCreator::checkParams( QString& /*msg*/ ) const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -123,8 +123,9 @@ StdMeshers::blockcs_array* StdMeshers_BlockRenumber_i::GetBlocksOrientation()
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
bool StdMeshers_BlockRenumber_i::getObjectsDependOn( std::vector< std::string > & entryArray,
|
||||
std::vector< int > & subIDArray ) const
|
||||
bool
|
||||
StdMeshers_BlockRenumber_i::getObjectsDependOn( std::vector< std::string > & entryArray,
|
||||
std::vector< int > & /*subIDArray*/ ) const
|
||||
{
|
||||
const std::vector< StdMeshers_BlockCS >& bcsVec =
|
||||
const_cast<StdMeshers_BlockRenumber_i*>(this)->GetImpl()->GetBlocksOrientation();
|
||||
@ -145,7 +146,7 @@ bool StdMeshers_BlockRenumber_i::getObjectsDependOn( std::vector< std::string >
|
||||
//================================================================================
|
||||
|
||||
bool StdMeshers_BlockRenumber_i::setObjectsDependOn( std::vector< std::string > & entryArray,
|
||||
std::vector< int > & subIDArray )
|
||||
std::vector< int > & /*subIDArray*/ )
|
||||
{
|
||||
std::vector< StdMeshers_BlockCS > bcsVec( entryArray.size() / 3 );
|
||||
for ( size_t i = 0; i + 2 < entryArray.size(); i += 3 )
|
||||
|
@ -368,7 +368,7 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget):
|
||||
for slig in reversed(text.split(separator)):
|
||||
lig=slig.strip()
|
||||
#print "load ResumeData",lig
|
||||
if lig=="": continue #skip blanck lines
|
||||
if lig=="": continue #skip blank lines
|
||||
if lig[0]=="#": break
|
||||
try:
|
||||
tit,value=lig.split("=")
|
||||
|
@ -9,7 +9,7 @@ These options are not meshing options but allow the user to configure control pa
|
||||
|
||||
- **File**
|
||||
|
||||
You can change the file used to store your favorite remeshing hypothesis. see paragraph :ref:`hypothesis-label` for further informations.
|
||||
You can change the file used to store your favorite remeshing hypothesis. see paragraph :ref:`hypothesis-label` for further information.
|
||||
|
||||
.. image:: images/Generic.png
|
||||
:align: center
|
||||
|
@ -336,7 +336,7 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget):
|
||||
for slig in reversed(text.split(separator)):
|
||||
lig=slig.strip()
|
||||
#print "load ResumeData",lig
|
||||
if lig=="": continue #skip blanck lines
|
||||
if lig=="": continue #skip blank lines
|
||||
if lig[0]=="#": break
|
||||
try:
|
||||
tit,value=lig.split("=")
|
||||
|
Loading…
Reference in New Issue
Block a user