Version: 9.16.0
VTKViewer_Algorithm.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// SALOME VTKViewer : build VTK viewer into Salome desktop
24// File : VTKViewer_ViewFrame.h
25// Author : Nicolas REJNERI
26
27#ifndef VTKViewer_Algorithm_H
28#define VTKViewer_Algorithm_H
29
30#include "VTKViewer.h"
31
32#include <vtkActorCollection.h>
33
34class vtkActor;
35
36namespace VTK
37{
55 {
56 vtkActorCollection* myActorCollection;
57
58 ActorCollectionCopy( vtkActorCollection* theActorCollection );
60
61 vtkActorCollection* GetActors() const;
62 };
63
67 template<typename TActor, typename TFunction>
68 TFunction ForEach(vtkActorCollection *theCollection, TFunction theFun)
69 {
70 if(theCollection){
71 theCollection->InitTraversal();
72 while(vtkActor *anAct = theCollection->GetNextActor())
73 if(TActor *anActor = dynamic_cast<TActor*>(anAct))
74 theFun(anActor);
75 }
76 return theFun;
77 }
78
83 template<typename TActor, typename TPredicate, typename TFunction>
84 TFunction ForEachIf(vtkActorCollection *theCollection,
85 TPredicate thePredicate,
86 TFunction theFun)
87 {
88 if(theCollection){
89 theCollection->InitTraversal();
90 while(vtkActor *anAct = theCollection->GetNextActor())
91 if(TActor *anActor = dynamic_cast<TActor*>(anAct))
92 if(thePredicate(anActor))
93 theFun(anActor);
94 }
95 return theFun;
96 }
97
102 template<typename TActor, typename TPredicate>
103 TActor* Find(vtkActorCollection *theCollection, TPredicate thePredicate)
104 {
105 if(theCollection){
106 theCollection->InitTraversal();
107 while(vtkActor *anAct = theCollection->GetNextActor())
108 if(TActor *anActor = dynamic_cast<TActor*>(anAct))
109 if(thePredicate(anActor))
110 return anActor;
111 }
112 return NULL;
113 }
114
115}
116
117#endif
#define VTKVIEWER_EXPORT
Definition: VTKViewer.h:33
Definition: VTKViewer_Algorithm.cxx:23
TFunction ForEachIf(vtkActorCollection *theCollection, TPredicate thePredicate, TFunction theFun)
Definition: VTKViewer_Algorithm.h:84
TActor * Find(vtkActorCollection *theCollection, TPredicate thePredicate)
Definition: VTKViewer_Algorithm.h:103
TFunction ForEach(vtkActorCollection *theCollection, TFunction theFun)
Definition: VTKViewer_Algorithm.h:68
Definition: VTKViewer_Algorithm.h:55
vtkActorCollection * myActorCollection
Definition: VTKViewer_Algorithm.h:56