// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
-#include <AIS_AttributeFilter.ixx>
+#include <AIS_AttributeFilter.hxx>
#include <AIS_InteractiveObject.hxx>
+#include <SelectMgr_EntityOwner.hxx>
+#include <Standard_Type.hxx>
+IMPLEMENT_STANDARD_RTTIEXT(AIS_AttributeFilter,SelectMgr_Filter)
AIS_AttributeFilter::AIS_AttributeFilter():
hasC(Standard_False),
Standard_Boolean AIS_AttributeFilter::IsOk(const Handle(SelectMgr_EntityOwner)& anObj) const
{
- if (Handle(AIS_InteractiveObject)::DownCast(anObj->Selectable()).IsNull()) return Standard_False;
+ Handle(AIS_InteractiveObject) aSelectable (Handle(AIS_InteractiveObject)::DownCast (anObj->Selectable()));
+ if (aSelectable.IsNull())
+ return Standard_False;
+
Standard_Boolean okstat = Standard_True;
+ if( hasC && aSelectable->HasColor() )
+ {
+ Quantity_Color aColor;
+ aSelectable->Color (aColor);
+ okstat = (myCol == aColor.Name());
+ }
-//#ifndef OCCT_DEBUG
- Handle(SelectMgr_SelectableObject) aSelectable = anObj->Selectable() ;
- if( hasC && ((Handle(AIS_InteractiveObject)&) aSelectable)->HasColor() )
-//#else
-// if(hasC && ((Handle(AIS_InteractiveObject)&) anObj->Selectable())->HasColor())
-//#endif
- okstat = (myCol == ((Handle(AIS_InteractiveObject)&) anObj)->Color());
-
-//#ifndef OCCT_DEBUG
- aSelectable = anObj->Selectable() ;
- if( hasW && ((Handle(AIS_InteractiveObject)&) aSelectable)->HasWidth() )
-//#else
-// if(hasW && ((Handle(AIS_InteractiveObject)&) anObj->Selectable())->HasWidth())
-//#endif
- okstat = (myWid == ((Handle(AIS_InteractiveObject)&) anObj)->Width()) && okstat;
+ if( hasW && aSelectable->HasWidth() )
+ okstat = (myWid == aSelectable->Width()) && okstat;
return okstat;
-
}