0031642: Visualization - crash in Graphic3d_Structure::SetVisual() on redisplaying...
[occt.git] / src / StdSelect / StdSelect_ShapeTypeFilter.cxx
CommitLineData
b311480e 1// Created on: 1996-09-17
2// Created by: Odile Olivier
3// Copyright (c) 1996-1999 Matra Datavision
973c2be1 4// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5//
973c2be1 6// This file is part of Open CASCADE Technology software library.
b311480e 7//
d5f74e42 8// This library is free software; you can redistribute it and/or modify it under
9// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 10// by the Free Software Foundation, with special exception defined in the file
11// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12// distribution for complete text of the license and disclaimer of any warranty.
b311480e 13//
973c2be1 14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
7fd59977 16
7fd59977 17
42cf5bc1 18#include <SelectMgr_EntityOwner.hxx>
19#include <Standard_Type.hxx>
20#include <StdSelect_BRepOwner.hxx>
21#include <StdSelect_ShapeTypeFilter.hxx>
7fd59977 22
92efcf78 23IMPLEMENT_STANDARD_RTTIEXT(StdSelect_ShapeTypeFilter,SelectMgr_Filter)
24
7fd59977 25//==================================================
26// Function: StdSelect_ShapeTypeFilter
27// Purpose : Constructeur
28//==================================================
7fd59977 29StdSelect_ShapeTypeFilter::StdSelect_ShapeTypeFilter(const TopAbs_ShapeEnum aType):
30myType(aType){}
31
32
33//==================================================
34// Function: IsOk
35// Purpose : Renvoie True si la shape est du type defini a la construction
36//==================================================
37
38Standard_Boolean StdSelect_ShapeTypeFilter::IsOk(const Handle(SelectMgr_EntityOwner)& EO) const
39{
40 Handle(StdSelect_BRepOwner) BRO = Handle(StdSelect_BRepOwner)::DownCast( EO );
41 if( BRO.IsNull() || !BRO->HasShape() ) return Standard_False;
42 const TopoDS_Shape& anobj= BRO->Shape();
43 return anobj.ShapeType() == myType;
44}
45Standard_Boolean StdSelect_ShapeTypeFilter::ActsOn(const TopAbs_ShapeEnum aStandardMode) const
46{return aStandardMode==myType;}