summaryrefslogtreecommitdiff
path: root/src/AIS/AIS_AttributeFilter.cxx
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;
  
}