mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-05 07:44:18 +05:00
Fix for improvement 0019927 (EDF770 SMESH: Analyzing the Mesh Quality: Orphan nodes).
This commit is contained in:
parent
01e646e9da
commit
503b60803a
@ -237,6 +237,25 @@ SMESH_ActorDef::SMESH_ActorDef()
|
|||||||
aFilter = myNodeActor->GetExtractUnstructuredGrid();
|
aFilter = myNodeActor->GetExtractUnstructuredGrid();
|
||||||
aFilter->SetModeOfExtraction(VTKViewer_ExtractUnstructuredGrid::ePoints);
|
aFilter->SetModeOfExtraction(VTKViewer_ExtractUnstructuredGrid::ePoints);
|
||||||
|
|
||||||
|
myNodeExtProp = vtkProperty::New();
|
||||||
|
myNodeExtProp->DeepCopy(myNodeProp);
|
||||||
|
anRGB[0] = 1 - anRGB[0];
|
||||||
|
anRGB[1] = 1 - anRGB[1];
|
||||||
|
anRGB[2] = 1 - anRGB[2];
|
||||||
|
myNodeExtProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
|
||||||
|
myNodeExtProp->SetPointSize(aPointSize);
|
||||||
|
|
||||||
|
myNodeExtActor = SMESH_DeviceActor::New();
|
||||||
|
myNodeExtActor->SetUserMatrix(aMatrix);
|
||||||
|
myNodeExtActor->SetStoreClippingMapping(true);
|
||||||
|
myNodeExtActor->PickableOff();
|
||||||
|
myNodeExtActor->SetHighlited(true);
|
||||||
|
myNodeExtActor->SetVisibility(false);
|
||||||
|
myNodeExtActor->SetProperty(myNodeExtProp);
|
||||||
|
myNodeExtActor->SetRepresentation(SMESH_DeviceActor::ePoint);
|
||||||
|
aFilter = myNodeExtActor->GetExtractUnstructuredGrid();
|
||||||
|
aFilter->SetModeOfExtraction(VTKViewer_ExtractUnstructuredGrid::ePoints);
|
||||||
|
aFilter->RegisterCellsWithType(VTK_VERTEX);
|
||||||
|
|
||||||
//Definition of Pickable and Highlitable engines
|
//Definition of Pickable and Highlitable engines
|
||||||
//----------------------------------------------
|
//----------------------------------------------
|
||||||
@ -394,6 +413,7 @@ SMESH_ActorDef::~SMESH_ActorDef()
|
|||||||
myPreselectProp->Delete();
|
myPreselectProp->Delete();
|
||||||
|
|
||||||
myNodeProp->Delete();
|
myNodeProp->Delete();
|
||||||
|
myNodeExtProp->Delete();
|
||||||
|
|
||||||
my1DProp->Delete();
|
my1DProp->Delete();
|
||||||
my1DActor->Delete();
|
my1DActor->Delete();
|
||||||
@ -407,6 +427,8 @@ SMESH_ActorDef::~SMESH_ActorDef()
|
|||||||
myNodeActor->Delete();
|
myNodeActor->Delete();
|
||||||
myBaseActor->Delete();
|
myBaseActor->Delete();
|
||||||
|
|
||||||
|
myNodeExtActor->Delete();
|
||||||
|
|
||||||
myHighlitableActor->Delete();
|
myHighlitableActor->Delete();
|
||||||
|
|
||||||
//Deleting of pints numbering pipeline
|
//Deleting of pints numbering pipeline
|
||||||
@ -582,6 +604,10 @@ SetControlMode(eControl theMode,
|
|||||||
aFunctor.reset(new SMESH::Controls::FreeEdges());
|
aFunctor.reset(new SMESH::Controls::FreeEdges());
|
||||||
myControlActor = my2DActor;
|
myControlActor = my2DActor;
|
||||||
break;
|
break;
|
||||||
|
case eFreeNodes:
|
||||||
|
aFunctor.reset(new SMESH::Controls::FreeNodes());
|
||||||
|
myControlActor = myNodeActor;
|
||||||
|
break;
|
||||||
case eMultiConnection:
|
case eMultiConnection:
|
||||||
aFunctor.reset(new SMESH::Controls::MultiConnection());
|
aFunctor.reset(new SMESH::Controls::MultiConnection());
|
||||||
myControlActor = my1DActor;
|
myControlActor = my1DActor;
|
||||||
@ -663,6 +689,9 @@ SetControlMode(eControl theMode,
|
|||||||
if(aNbCells){
|
if(aNbCells){
|
||||||
myControlMode = theMode;
|
myControlMode = theMode;
|
||||||
switch(myControlMode){
|
switch(myControlMode){
|
||||||
|
case eFreeNodes:
|
||||||
|
myNodeExtActor->SetExtControlMode(aFunctor);
|
||||||
|
break;
|
||||||
case eFreeEdges:
|
case eFreeEdges:
|
||||||
case eFreeBorders:
|
case eFreeBorders:
|
||||||
my1DExtActor->SetExtControlMode(aFunctor);
|
my1DExtActor->SetExtControlMode(aFunctor);
|
||||||
@ -711,6 +740,8 @@ void SMESH_ActorDef::AddToRender(vtkRenderer* theRenderer){
|
|||||||
theRenderer->AddActor(myNodeActor);
|
theRenderer->AddActor(myNodeActor);
|
||||||
theRenderer->AddActor(myBaseActor);
|
theRenderer->AddActor(myBaseActor);
|
||||||
|
|
||||||
|
theRenderer->AddActor(myNodeExtActor);
|
||||||
|
|
||||||
my3DActor->AddToRender(theRenderer);
|
my3DActor->AddToRender(theRenderer);
|
||||||
my2DActor->AddToRender(theRenderer);
|
my2DActor->AddToRender(theRenderer);
|
||||||
|
|
||||||
@ -734,6 +765,8 @@ void SMESH_ActorDef::RemoveFromRender(vtkRenderer* theRenderer){
|
|||||||
theRenderer->RemoveActor(myNodeActor);
|
theRenderer->RemoveActor(myNodeActor);
|
||||||
theRenderer->RemoveActor(myBaseActor);
|
theRenderer->RemoveActor(myBaseActor);
|
||||||
|
|
||||||
|
theRenderer->RemoveActor(myNodeExtActor);
|
||||||
|
|
||||||
theRenderer->RemoveActor(myHighlitableActor);
|
theRenderer->RemoveActor(myHighlitableActor);
|
||||||
|
|
||||||
theRenderer->RemoveActor(my1DActor);
|
theRenderer->RemoveActor(my1DActor);
|
||||||
@ -765,6 +798,8 @@ bool SMESH_ActorDef::Init(TVisualObjPtr theVisualObj,
|
|||||||
|
|
||||||
myHighlitableActor->Init(myVisualObj,myImplicitBoolean);
|
myHighlitableActor->Init(myVisualObj,myImplicitBoolean);
|
||||||
|
|
||||||
|
myNodeExtActor->Init(myVisualObj,myImplicitBoolean);
|
||||||
|
|
||||||
my1DActor->Init(myVisualObj,myImplicitBoolean);
|
my1DActor->Init(myVisualObj,myImplicitBoolean);
|
||||||
my1DExtActor->Init(myVisualObj,myImplicitBoolean);
|
my1DExtActor->Init(myVisualObj,myImplicitBoolean);
|
||||||
|
|
||||||
@ -829,6 +864,8 @@ void SMESH_ActorDef::SetTransform(VTKViewer_Transform* theTransform){
|
|||||||
|
|
||||||
myHighlitableActor->SetTransform(theTransform);
|
myHighlitableActor->SetTransform(theTransform);
|
||||||
|
|
||||||
|
myNodeExtActor->SetTransform(theTransform);
|
||||||
|
|
||||||
my1DActor->SetTransform(theTransform);
|
my1DActor->SetTransform(theTransform);
|
||||||
my1DExtActor->SetTransform(theTransform);
|
my1DExtActor->SetTransform(theTransform);
|
||||||
|
|
||||||
@ -952,6 +989,8 @@ void SMESH_ActorDef::SetVisibility(int theMode, bool theIsUpdateRepersentation){
|
|||||||
myNodeActor->VisibilityOff();
|
myNodeActor->VisibilityOff();
|
||||||
myBaseActor->VisibilityOff();
|
myBaseActor->VisibilityOff();
|
||||||
|
|
||||||
|
myNodeExtActor->VisibilityOff();
|
||||||
|
|
||||||
my1DActor->VisibilityOff();
|
my1DActor->VisibilityOff();
|
||||||
my1DExtActor->VisibilityOff();
|
my1DExtActor->VisibilityOff();
|
||||||
|
|
||||||
@ -968,6 +1007,9 @@ void SMESH_ActorDef::SetVisibility(int theMode, bool theIsUpdateRepersentation){
|
|||||||
|
|
||||||
if(myControlMode != eNone){
|
if(myControlMode != eNone){
|
||||||
switch(myControlMode){
|
switch(myControlMode){
|
||||||
|
case eFreeNodes:
|
||||||
|
myNodeExtActor->VisibilityOn();
|
||||||
|
break;
|
||||||
case eFreeEdges:
|
case eFreeEdges:
|
||||||
case eFreeBorders:
|
case eFreeBorders:
|
||||||
my1DExtActor->VisibilityOn();
|
my1DExtActor->VisibilityOn();
|
||||||
@ -1118,6 +1160,7 @@ void SMESH_ActorDef::SetRepresentation(int theMode){
|
|||||||
|
|
||||||
myPickableActor = myBaseActor;
|
myPickableActor = myBaseActor;
|
||||||
myNodeActor->SetVisibility(false);
|
myNodeActor->SetVisibility(false);
|
||||||
|
myNodeExtActor->SetVisibility(false);
|
||||||
vtkProperty *aProp = NULL, *aBackProp = NULL;
|
vtkProperty *aProp = NULL, *aBackProp = NULL;
|
||||||
SMESH_DeviceActor::EReperesent aReperesent = SMESH_DeviceActor::EReperesent(-1);
|
SMESH_DeviceActor::EReperesent aReperesent = SMESH_DeviceActor::EReperesent(-1);
|
||||||
switch(myRepresentation){
|
switch(myRepresentation){
|
||||||
@ -1356,6 +1399,7 @@ void SMESH_ActorDef::GetEdgeColor(vtkFloatingPointType& r,vtkFloatingPointType&
|
|||||||
|
|
||||||
void SMESH_ActorDef::SetNodeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
|
void SMESH_ActorDef::SetNodeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
|
||||||
myNodeProp->SetColor(r,g,b);
|
myNodeProp->SetColor(r,g,b);
|
||||||
|
myNodeExtProp->SetColor(1.0-r,1.0-g,1.0-b);
|
||||||
Modified();
|
Modified();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1399,6 +1443,7 @@ void SMESH_ActorDef::SetLineWidth(vtkFloatingPointType theVal){
|
|||||||
|
|
||||||
void SMESH_ActorDef::SetNodeSize(vtkFloatingPointType theVal){
|
void SMESH_ActorDef::SetNodeSize(vtkFloatingPointType theVal){
|
||||||
myNodeProp->SetPointSize(theVal);
|
myNodeProp->SetPointSize(theVal);
|
||||||
|
myNodeExtProp->SetPointSize(theVal);
|
||||||
myHighlightProp->SetPointSize(theVal);
|
myHighlightProp->SetPointSize(theVal);
|
||||||
myPreselectProp->SetPointSize(theVal);
|
myPreselectProp->SetPointSize(theVal);
|
||||||
|
|
||||||
@ -1433,6 +1478,8 @@ SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed)
|
|||||||
|
|
||||||
myHighlitableActor->SetImplicitFunctionUsed(theIsImplicitFunctionUsed);
|
myHighlitableActor->SetImplicitFunctionUsed(theIsImplicitFunctionUsed);
|
||||||
|
|
||||||
|
myNodeExtActor->SetImplicitFunctionUsed(theIsImplicitFunctionUsed);
|
||||||
|
|
||||||
my1DActor->SetImplicitFunctionUsed(theIsImplicitFunctionUsed);
|
my1DActor->SetImplicitFunctionUsed(theIsImplicitFunctionUsed);
|
||||||
my1DExtActor->SetImplicitFunctionUsed(theIsImplicitFunctionUsed);
|
my1DExtActor->SetImplicitFunctionUsed(theIsImplicitFunctionUsed);
|
||||||
|
|
||||||
|
@ -96,9 +96,9 @@ class SMESHOBJECT_EXPORT SMESH_Actor: public SALOME_Actor
|
|||||||
virtual void SetFacesOriented(bool theIsFacesOriented) = 0;
|
virtual void SetFacesOriented(bool theIsFacesOriented) = 0;
|
||||||
virtual bool GetFacesOriented() = 0;
|
virtual bool GetFacesOriented() = 0;
|
||||||
|
|
||||||
enum eControl{eNone, eLength, eLength2D, eFreeBorders, eFreeEdges, eMultiConnection,
|
enum eControl{eNone, eLength, eLength2D, eFreeBorders, eFreeEdges, eFreeNodes,
|
||||||
eArea, eTaper, eAspectRatio, eMinimumAngle, eWarping, eSkew,
|
eMultiConnection, eArea, eTaper, eAspectRatio, eMinimumAngle, eWarping,
|
||||||
eAspectRatio3D, eMultiConnection2D, eVolume3D};
|
eSkew, eAspectRatio3D, eMultiConnection2D, eVolume3D};
|
||||||
virtual void SetControlMode(eControl theMode) = 0;
|
virtual void SetControlMode(eControl theMode) = 0;
|
||||||
virtual eControl GetControlMode() = 0;
|
virtual eControl GetControlMode() = 0;
|
||||||
|
|
||||||
|
@ -220,6 +220,9 @@ class SMESH_ActorDef : public SMESH_Actor
|
|||||||
SMESH_DeviceActor* my3DActor;
|
SMESH_DeviceActor* my3DActor;
|
||||||
SMESH_DeviceActor* myControlActor;
|
SMESH_DeviceActor* myControlActor;
|
||||||
|
|
||||||
|
vtkProperty* myNodeExtProp;
|
||||||
|
SMESH_DeviceActor* myNodeExtActor;
|
||||||
|
|
||||||
vtkProperty* my1DProp;
|
vtkProperty* my1DProp;
|
||||||
SMESH_DeviceActor* my1DActor;
|
SMESH_DeviceActor* my1DActor;
|
||||||
vtkProperty* my1DExtProp;
|
vtkProperty* my1DExtProp;
|
||||||
|
@ -545,6 +545,19 @@ SMESH_DeviceActor
|
|||||||
SetUnstructuredGrid(aDataSet);
|
SetUnstructuredGrid(aDataSet);
|
||||||
aDataSet->Delete();
|
aDataSet->Delete();
|
||||||
}
|
}
|
||||||
|
else if(FreeNodes* aFreeNodes = dynamic_cast<FreeNodes*>(theFunctor.get())){
|
||||||
|
myExtractUnstructuredGrid->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
|
||||||
|
vtkUnstructuredGrid* aGrid = myVisualObj->GetUnstructuredGrid();
|
||||||
|
vtkIdType aNbCells = aGrid->GetNumberOfCells();
|
||||||
|
for( vtkIdType i = 0; i < aNbCells; i++ ){
|
||||||
|
vtkIdType anObjId = myVisualObj->GetNodeObjId(i);
|
||||||
|
if(aFreeNodes->IsSatisfy(anObjId))
|
||||||
|
myExtractUnstructuredGrid->RegisterCell(i);
|
||||||
|
}
|
||||||
|
if(!myExtractUnstructuredGrid->IsCellsRegistered())
|
||||||
|
myExtractUnstructuredGrid->RegisterCell(-1);
|
||||||
|
SetUnstructuredGrid(myVisualObj->GetUnstructuredGrid());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -771,6 +771,10 @@
|
|||||||
aTitle = QObject::tr( "MULTI_BORDERS" );
|
aTitle = QObject::tr( "MULTI_BORDERS" );
|
||||||
aControl = SMESH_Actor::eMultiConnection;
|
aControl = SMESH_Actor::eMultiConnection;
|
||||||
break;
|
break;
|
||||||
|
case 6005:
|
||||||
|
aTitle = QObject::tr( "FREE_NODES" );
|
||||||
|
aControl = SMESH_Actor::eFreeNodes;
|
||||||
|
break;
|
||||||
case 6019:
|
case 6019:
|
||||||
aTitle = QObject::tr( "MULTI2D_BORDERS" );
|
aTitle = QObject::tr( "MULTI2D_BORDERS" );
|
||||||
aControl = SMESH_Actor::eMultiConnection2D;
|
aControl = SMESH_Actor::eMultiConnection2D;
|
||||||
@ -2425,6 +2429,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
|||||||
case 6002:
|
case 6002:
|
||||||
case 6003:
|
case 6003:
|
||||||
case 6004:
|
case 6004:
|
||||||
|
case 6005:
|
||||||
case 6009:
|
case 6009:
|
||||||
if ( vtkwnd ) {
|
if ( vtkwnd ) {
|
||||||
|
|
||||||
@ -2651,6 +2656,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
|||||||
createSMESHAction( 6002, "FREE_EDGE", "ICON_FREE_EDGE", 0, true );
|
createSMESHAction( 6002, "FREE_EDGE", "ICON_FREE_EDGE", 0, true );
|
||||||
createSMESHAction( 6003, "FREE_BORDER", "ICON_FREE_EDGE_2D", 0, true );
|
createSMESHAction( 6003, "FREE_BORDER", "ICON_FREE_EDGE_2D", 0, true );
|
||||||
createSMESHAction( 6004, "CONNECTION", "ICON_CONNECTION", 0, true );
|
createSMESHAction( 6004, "CONNECTION", "ICON_CONNECTION", 0, true );
|
||||||
|
createSMESHAction( 6005, "FREE_NODE", "ICON_FREE_NODE", 0, true );
|
||||||
createSMESHAction( 6011, "AREA", "ICON_AREA", 0, true );
|
createSMESHAction( 6011, "AREA", "ICON_AREA", 0, true );
|
||||||
createSMESHAction( 6012, "TAPER", "ICON_TAPER", 0, true );
|
createSMESHAction( 6012, "TAPER", "ICON_TAPER", 0, true );
|
||||||
createSMESHAction( 6013, "ASPECT", "ICON_ASPECT", 0, true );
|
createSMESHAction( 6013, "ASPECT", "ICON_ASPECT", 0, true );
|
||||||
@ -2794,6 +2800,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
|||||||
createMenu( 6001, ctrlId, -1 );
|
createMenu( 6001, ctrlId, -1 );
|
||||||
createMenu( 6004, ctrlId, -1 );
|
createMenu( 6004, ctrlId, -1 );
|
||||||
createMenu( separator(), ctrlId, -1 );
|
createMenu( separator(), ctrlId, -1 );
|
||||||
|
createMenu( 6005, ctrlId, -1 );
|
||||||
createMenu( 6002, ctrlId, -1 );
|
createMenu( 6002, ctrlId, -1 );
|
||||||
createMenu( 6018, ctrlId, -1 );
|
createMenu( 6018, ctrlId, -1 );
|
||||||
createMenu( 6019, ctrlId, -1 );
|
createMenu( 6019, ctrlId, -1 );
|
||||||
@ -2885,6 +2892,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
|||||||
createTool( 6003, ctrlTb );
|
createTool( 6003, ctrlTb );
|
||||||
createTool( 6004, ctrlTb );
|
createTool( 6004, ctrlTb );
|
||||||
createTool( separator(), ctrlTb );
|
createTool( separator(), ctrlTb );
|
||||||
|
createTool( 6005, ctrlTb );
|
||||||
createTool( 6002, ctrlTb );
|
createTool( 6002, ctrlTb );
|
||||||
createTool( 6018, ctrlTb );
|
createTool( 6018, ctrlTb );
|
||||||
createTool( 6019, ctrlTb );
|
createTool( 6019, ctrlTb );
|
||||||
@ -3139,6 +3147,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
|||||||
// Controls
|
// Controls
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
QString
|
QString
|
||||||
|
aMeshInVtkHasNodes = aMeshInVTK + "&&" + hasNodes,
|
||||||
aMeshInVtkHasEdges = aMeshInVTK + "&&" + hasEdges,
|
aMeshInVtkHasEdges = aMeshInVTK + "&&" + hasEdges,
|
||||||
aMeshInVtkHasFaces = aMeshInVTK + "&&" + hasFaces,
|
aMeshInVtkHasFaces = aMeshInVTK + "&&" + hasFaces,
|
||||||
aMeshInVtkHasVolumes = aMeshInVTK + "&&" + hasVolumes;
|
aMeshInVtkHasVolumes = aMeshInVTK + "&&" + hasVolumes;
|
||||||
@ -3164,8 +3173,12 @@ void SMESHGUI::initialize( CAM_Application* app )
|
|||||||
|
|
||||||
popupMgr()->insert( separator(), anId, -1 );
|
popupMgr()->insert( separator(), anId, -1 );
|
||||||
|
|
||||||
|
popupMgr()->insert( action( 6005 ), anId, -1 ); // FREE_NODE
|
||||||
|
popupMgr()->setRule( action( 6005 ), aMeshInVtkHasNodes, QtxPopupMgr::VisibleRule );
|
||||||
|
popupMgr()->setRule( action( 6005 ), "controlMode = 'eFreeNodes'", QtxPopupMgr::ToggleRule );
|
||||||
|
|
||||||
popupMgr()->insert( action( 6002 ), anId, -1 ); // FREE_EDGE
|
popupMgr()->insert( action( 6002 ), anId, -1 ); // FREE_EDGE
|
||||||
popupMgr()->setRule( action( 6002 ), aMeshInVtkHasFaces, QtxPopupMgr::VisibleRule );
|
popupMgr()->setRule( action( 6002 ), aMeshInVtkHasEdges, QtxPopupMgr::VisibleRule );
|
||||||
popupMgr()->setRule( action( 6002 ), "controlMode = 'eFreeEdges'", QtxPopupMgr::ToggleRule );
|
popupMgr()->setRule( action( 6002 ), "controlMode = 'eFreeEdges'", QtxPopupMgr::ToggleRule );
|
||||||
|
|
||||||
popupMgr()->insert( action( 6018 ), anId, -1 ); // LENGTH_2D
|
popupMgr()->insert( action( 6018 ), anId, -1 ); // LENGTH_2D
|
||||||
|
@ -1071,6 +1071,7 @@ void SMESHGUI_FilterTable::SetCriterion (const int theRow,
|
|||||||
theCriterion.Type != SMESH::FT_LyingOnGeom &&
|
theCriterion.Type != SMESH::FT_LyingOnGeom &&
|
||||||
theCriterion.Type != SMESH::FT_FreeBorders &&
|
theCriterion.Type != SMESH::FT_FreeBorders &&
|
||||||
theCriterion.Type != SMESH::FT_FreeEdges &&
|
theCriterion.Type != SMESH::FT_FreeEdges &&
|
||||||
|
theCriterion.Type != SMESH::FT_FreeNodes &&
|
||||||
theCriterion.Type != SMESH::FT_BadOrientedVolume)
|
theCriterion.Type != SMESH::FT_BadOrientedVolume)
|
||||||
aTable->item( theRow, 2 )->setText(QString("%1").arg(theCriterion.Threshold, 0, 'g', 15));
|
aTable->item( theRow, 2 )->setText(QString("%1").arg(theCriterion.Threshold, 0, 'g', 15));
|
||||||
else
|
else
|
||||||
@ -1299,7 +1300,8 @@ void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int col, con
|
|||||||
|
|
||||||
int aCriterionType = GetCriterionType(row);
|
int aCriterionType = GetCriterionType(row);
|
||||||
|
|
||||||
if (aType == SMESH::EDGE && aCriterionType == SMESH::FT_FreeBorders ||
|
if ( aType == SMESH::NODE && aCriterionType == SMESH::FT_FreeNodes ||
|
||||||
|
aType == SMESH::EDGE && aCriterionType == SMESH::FT_FreeBorders ||
|
||||||
aType == SMESH::FACE && aCriterionType == SMESH::FT_FreeEdges ||
|
aType == SMESH::FACE && aCriterionType == SMESH::FT_FreeEdges ||
|
||||||
aType == SMESH::VOLUME && aCriterionType == SMESH::FT_BadOrientedVolume)
|
aType == SMESH::VOLUME && aCriterionType == SMESH::FT_BadOrientedVolume)
|
||||||
{
|
{
|
||||||
@ -1527,6 +1529,7 @@ const QMap<int, QString>& SMESHGUI_FilterTable::getCriteria (const int theType)
|
|||||||
aCriteria[ SMESH::FT_BelongToCylinder ] = tr("BELONG_TO_CYLINDER");
|
aCriteria[ SMESH::FT_BelongToCylinder ] = tr("BELONG_TO_CYLINDER");
|
||||||
aCriteria[ SMESH::FT_BelongToGenSurface ] = tr("BELONG_TO_GENSURFACE");
|
aCriteria[ SMESH::FT_BelongToGenSurface ] = tr("BELONG_TO_GENSURFACE");
|
||||||
aCriteria[ SMESH::FT_LyingOnGeom ] = tr("LYING_ON_GEOM");
|
aCriteria[ SMESH::FT_LyingOnGeom ] = tr("LYING_ON_GEOM");
|
||||||
|
aCriteria[ SMESH::FT_FreeNodes ] = tr("FREE_NODES");
|
||||||
}
|
}
|
||||||
return aCriteria;
|
return aCriteria;
|
||||||
}
|
}
|
||||||
|
@ -222,6 +222,10 @@
|
|||||||
<source>ICON_FREE_EDGE_2D</source>
|
<source>ICON_FREE_EDGE_2D</source>
|
||||||
<translation>mesh_free_edges_2d.png</translation>
|
<translation>mesh_free_edges_2d.png</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>ICON_FREE_NODE</source>
|
||||||
|
<translation>mesh_free_nodes.png</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>ICON_HYPO</source>
|
<source>ICON_HYPO</source>
|
||||||
<translation>mesh_hypo_length.png</translation>
|
<translation>mesh_hypo_length.png</translation>
|
||||||
|
@ -306,6 +306,10 @@
|
|||||||
<source>MEN_FREE_EDGE</source>
|
<source>MEN_FREE_EDGE</source>
|
||||||
<translation>Free Edges</translation>
|
<translation>Free Edges</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>MEN_FREE_NODE</source>
|
||||||
|
<translation>Free Nodes</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>MEN_GLOBAL_HYPO</source>
|
<source>MEN_GLOBAL_HYPO</source>
|
||||||
<translation>Global Hypothesis</translation>
|
<translation>Global Hypothesis</translation>
|
||||||
@ -2060,6 +2064,12 @@ Consider saving your work before application crash</translation>
|
|||||||
<source>STB_FREE_EDGE</source>
|
<source>STB_FREE_EDGE</source>
|
||||||
<translation>Free Edges</translation>
|
<translation>Free Edges</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>STB_FREE_NODE</source>
|
||||||
|
<translation>Free Nodes</translation>
|
||||||
|
</message>
|
||||||
|
|
||||||
|
|
||||||
<message>
|
<message>
|
||||||
<source>STB_GLOBAL_HYPO</source>
|
<source>STB_GLOBAL_HYPO</source>
|
||||||
<translation>Global Hypothesis</translation>
|
<translation>Global Hypothesis</translation>
|
||||||
@ -2532,6 +2542,12 @@ Consider saving your work before application crash</translation>
|
|||||||
<source>TOP_FREE_EDGE</source>
|
<source>TOP_FREE_EDGE</source>
|
||||||
<translation>Free Edges</translation>
|
<translation>Free Edges</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>TOP_FREE_NODE</source>
|
||||||
|
<translation>Free Nodes</translation>
|
||||||
|
</message>
|
||||||
|
|
||||||
|
|
||||||
<message>
|
<message>
|
||||||
<source>TOP_GLOBAL_HYPO</source>
|
<source>TOP_GLOBAL_HYPO</source>
|
||||||
<translation>Global Hypothesis</translation>
|
<translation>Global Hypothesis</translation>
|
||||||
@ -3734,6 +3750,12 @@ Please enter correct value and try again</translation>
|
|||||||
<source>FREE_EDGES</source>
|
<source>FREE_EDGES</source>
|
||||||
<translation>Free edges</translation>
|
<translation>Free edges</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>FREE_NODES</source>
|
||||||
|
<translation>Free nodes</translation>
|
||||||
|
</message>
|
||||||
|
|
||||||
|
|
||||||
<message>
|
<message>
|
||||||
<source>ID</source>
|
<source>ID</source>
|
||||||
<translation>ID</translation>
|
<translation>ID</translation>
|
||||||
|
@ -475,7 +475,7 @@ class smeshDC(SMESH._objref_SMESH_Gen):
|
|||||||
else:
|
else:
|
||||||
print "Error: The treshold should be a string."
|
print "Error: The treshold should be a string."
|
||||||
return None
|
return None
|
||||||
elif CritType in [FT_FreeBorders, FT_FreeEdges, FT_BadOrientedVolume]:
|
elif CritType in [FT_FreeBorders, FT_FreeEdges, FT_BadOrientedVolume, FT_FreeNodes]:
|
||||||
# At this point the treshold is unnecessary
|
# At this point the treshold is unnecessary
|
||||||
if aTreshold == FT_LogicalNOT:
|
if aTreshold == FT_LogicalNOT:
|
||||||
aCriterion.UnaryOp = self.EnumToLong(FT_LogicalNOT)
|
aCriterion.UnaryOp = self.EnumToLong(FT_LogicalNOT)
|
||||||
|
Loading…
Reference in New Issue
Block a user