1 // Copyright (C) 2005 OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License.
8 // This library is distributed in the hope that it will be useful
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #ifndef SVTK_Functor_H
20 #define SVTK_Functor_H
26 #include <VTKViewer_Functor.h>
28 #include "SALOME_InteractiveObject.hxx"
32 This file contains numbers of functors that allows user to perform corresponding operations with existing presentations.
33 Combination with algorithms it gives powerful, flexible and simple to extend way to introduce new type of operation.
40 //! This functor check, if the actor have pointed entry
41 template<class TActor>
45 //! To construct the functor
46 TIsSameEntry(const char* theEntry):
49 //! To calculate the functor
50 bool operator()(TActor* theActor)
52 if ( theActor->hasIO() )
54 Handle(SALOME_InteractiveObject) anIO = theActor->getIO();
55 if ( anIO->hasEntry() )
56 return myEntry == anIO->getEntry();
63 //----------------------------------------------------------------
64 //! This functor check, if the actor point to the same #SALOME_InteractiveObject
65 template<class TActor>
68 Handle(SALOME_InteractiveObject) myIObject;
69 //! To construct the functor
70 TIsSameIObject(const Handle(SALOME_InteractiveObject)& theIObject):
73 //! To calculate the functor
74 bool operator()(TActor* theActor)
78 Handle(SALOME_InteractiveObject) anIO = theActor->getIO();
79 return myIObject->isSame(anIO);
86 //----------------------------------------------------------------
88 This highlight every input actor
90 template<class TActor>
94 //! To construct the functor
95 THighlight(bool theIsHighlight):
96 myIsHighlight( theIsHighlight )
98 //! To calculate the functor
99 void operator()(TActor* theActor)
101 if(theActor->GetVisibility() && theActor->GetMapper())
102 theActor->highlight( myIsHighlight );