blob: 16a6124069a1c7814e394d5072b1c1d4efc0cc8e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
// File: AIS_AttributeFilter.cxx
// Created: Tue Mar 4 18:13:59 1997
// Author: Robert COUBLANC
// <rob@robox.paris1.matra-dtv.fr>
#include <AIS_AttributeFilter.ixx>
#include <AIS_InteractiveObject.hxx>
AIS_AttributeFilter::AIS_AttributeFilter():
hasC(Standard_False),
hasW(Standard_False){}
AIS_AttributeFilter::AIS_AttributeFilter(const Quantity_NameOfColor aCol):
myCol(aCol),
hasC(Standard_True),
hasW(Standard_False){}
AIS_AttributeFilter::AIS_AttributeFilter(const Standard_Real aWid):
myWid(aWid),
hasC(Standard_False),
hasW(Standard_True){}
Standard_Boolean AIS_AttributeFilter::IsOk(const Handle(SelectMgr_EntityOwner)& anObj) const
{
if (Handle(AIS_InteractiveObject)::DownCast(anObj->Selectable()).IsNull()) return Standard_False;
Standard_Boolean okstat = Standard_True;
//#ifndef DEB
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 DEB
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;
return okstat;
}
|