Salome HOME
projects
/
modules
/
geom.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2940ca7
)
bos #16792 [CEA 16785] Cannot select COMPSOLID
author
jfa
<jfa@opencascade.com>
Wed, 24 Apr 2019 10:30:22 +0000
(13:30 +0300)
committer
jfa
<jfa@opencascade.com>
Wed, 24 Apr 2019 10:30:22 +0000
(13:30 +0300)
src/GEOMGUI/GEOM_Displayer.cxx
patch
|
blob
|
history
diff --git
a/src/GEOMGUI/GEOM_Displayer.cxx
b/src/GEOMGUI/GEOM_Displayer.cxx
index 5a4dc49142583c62330eefa369fffe2a449d7579..098bff3da9a2be7bc6b8a0d905f5dea5363d74f1 100644
(file)
--- a/
src/GEOMGUI/GEOM_Displayer.cxx
+++ b/
src/GEOMGUI/GEOM_Displayer.cxx
@@
-1965,16
+1965,7
@@
void GEOM_Displayer::GlobalSelection( const TColStd_MapOfInteger& theModes,
return;
SUIT_SelectionFilter* aFilter;
return;
SUIT_SelectionFilter* aFilter;
- if ( theModes.Extent() == 1 )
- {
- int aMode = TColStd_MapIteratorOfMapOfInteger( theModes ).Key();
-
- if ( aMode == GEOM_COMPOUNDFILTER )
- aFilter = getComplexFilter( theSubShapes );
- else
- aFilter = getFilter( aMode );
- }
- else if ( theModes.Extent() > 1 )
+ if ( theModes.Extent() > 0 )
{
TColStd_MapOfInteger aTopAbsModes;
TColStd_MapIteratorOfMapOfInteger anIter( theModes );
{
TColStd_MapOfInteger aTopAbsModes;
TColStd_MapIteratorOfMapOfInteger anIter( theModes );
@@
-1985,6
+1976,14
@@
void GEOM_Displayer::GlobalSelection( const TColStd_MapOfInteger& theModes,
int aMode = anIter.Key();
if ( aMode == GEOM_COMPOUNDFILTER )
aFilter = getComplexFilter( theSubShapes );
int aMode = anIter.Key();
if ( aMode == GEOM_COMPOUNDFILTER )
aFilter = getComplexFilter( theSubShapes );
+ if ( aMode == GEOM_COMPOUND ) {
+ // always add COMPSOLID filter together with COMPOUND filter
+ aFilter = new GEOM_TypeFilter( getStudy(), TopAbs_COMPSOLID, true );
+ aListOfFilters.append( aFilter );
+
+ // add the COMPOUND filter itself
+ aFilter = getFilter( aMode );
+ }
else
aFilter = getFilter( aMode );
else
aFilter = getFilter( aMode );
@@
-1992,7
+1991,8
@@
void GEOM_Displayer::GlobalSelection( const TColStd_MapOfInteger& theModes,
aListOfFilters.append( aFilter );
}
aListOfFilters.append( aFilter );
}
- aFilter = new GEOM_LogicalFilter( aListOfFilters, GEOM_LogicalFilter::LO_OR );
+ if (aListOfFilters.size() > 1)
+ aFilter = new GEOM_LogicalFilter( aListOfFilters, GEOM_LogicalFilter::LO_OR );
}
else
return;
}
else
return;