Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Using files from package LightApp instead of SalomeApp
[modules/smesh.git]
/
src
/
SMESHFiltersSelection
/
SMESH_TypeFilter.cxx
diff --git
a/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx
b/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx
index 5e98287df5541ea4724d70b505dc72a3e64c321d..f406022d264b4c852e47da78af1f6e5d218ae115 100644
(file)
--- a/
src/SMESHFiltersSelection/SMESH_TypeFilter.cxx
+++ b/
src/SMESHFiltersSelection/SMESH_TypeFilter.cxx
@@
-3,7
+3,7
@@
#include <SUIT_Session.h>
#include <SalomeApp_Study.h>
#include <SUIT_Session.h>
#include <SalomeApp_Study.h>
-#include <
Salome
App_DataOwner.h>
+#include <
Light
App_DataOwner.h>
SMESH_TypeFilter::SMESH_TypeFilter (MeshObjectType theType)
{
SMESH_TypeFilter::SMESH_TypeFilter (MeshObjectType theType)
{
@@
-16,10
+16,10
@@
SMESH_TypeFilter::~SMESH_TypeFilter()
bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const
{
bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const
{
- bool Ok = false;
+ bool Ok = false
, extractReference = true
;
- const
Salome
App_DataOwner* owner =
- dynamic_cast<const
Salome
App_DataOwner*>(theDataOwner);
+ const
Light
App_DataOwner* owner =
+ dynamic_cast<const
Light
App_DataOwner*>(theDataOwner);
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>
(SUIT_Session::session()->activeApplication()->activeStudy());
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>
(SUIT_Session::session()->activeApplication()->activeStudy());
@@
-27,26
+27,34
@@
bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const
_PTR(Study) study = appStudy->studyDS();
QString entry = owner->entry();
_PTR(Study) study = appStudy->studyDS();
QString entry = owner->entry();
- _PTR(SObject) obj (study->FindObjectID(entry.latin1()));
+ _PTR(SObject) obj (study->FindObjectID(entry.latin1())), aRefSO;
+ if( extractReference && obj && obj->ReferencedObject( aRefSO ) )
+ obj = aRefSO;
if (!obj) return false;
_PTR(SObject) objFather = obj->GetFather();
_PTR(SComponent) objComponent = obj->GetFatherComponent();
if (!obj) return false;
_PTR(SObject) objFather = obj->GetFather();
_PTR(SComponent) objComponent = obj->GetFatherComponent();
+ if( objComponent->ComponentDataType()!="SMESH" )
+ return false;
+
int aLevel = obj->Depth() - objComponent->Depth();
int aLevel = obj->Depth() - objComponent->Depth();
- // Max level under the component is
4
:
+ // Max level under the component is
5
:
//
// 0 Mesh Component
// 1 |- Hypotheses
// 2 | |- Regular 1D
// |- Algorithms
// |- Mesh 1
//
// 0 Mesh Component
// 1 |- Hypotheses
// 2 | |- Regular 1D
// |- Algorithms
// |- Mesh 1
+ // |- * Main Shape
// |- Applied Hypotheses
// |- Applied Algorithms
// |- Submeshes on Face
// 3 | |- SubmeshFace
// |- Applied Hypotheses
// |- Applied Algorithms
// |- Submeshes on Face
// 3 | |- SubmeshFace
+ // 4 | |- * Face 1
// 4 | |- Applied algorithms ( selectable in Use Case Browser )
// 4 | |- Applied algorithms ( selectable in Use Case Browser )
+ // 5 | |- Regular 1D
// |- Group Of Nodes
if (aLevel <= 0)
// |- Group Of Nodes
if (aLevel <= 0)
@@
-56,13
+64,21
@@
bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const
{
case HYPOTHESIS:
{
{
case HYPOTHESIS:
{
- if ( aLevel == 2 && ( objFather->Tag() == 1 ))
+ if ( aLevel == 2 && ( objFather->Tag() == 1 )) // hypo definition
+ Ok = true;
+ else if ( aLevel == 3 && ( objFather->Tag() == 2 )) // applied global hypo
+ Ok = true;
+ else if ( aLevel == 5 && ( objFather->Tag() == 2 )) // applied local hypo
Ok = true;
break;
}
case ALGORITHM:
{
Ok = true;
break;
}
case ALGORITHM:
{
- if ( aLevel == 2 && ( objFather->Tag() == 2 ))
+ if ( aLevel == 2 && ( objFather->Tag() == 2 )) // algo definition
+ Ok = true;
+ else if ( aLevel == 3 && ( objFather->Tag() == 3 )) // applied global algo
+ Ok = true;
+ else if ( aLevel == 5 && ( objFather->Tag() == 3 )) // applied local algo
Ok = true;
break;
}
Ok = true;
break;
}