NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
niftkDataNodeVisibilityTracker.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef niftkDataStorageVisibilityTracker_h
16 #define niftkDataStorageVisibilityTracker_h
17 
18 #include "niftkCoreExports.h"
19 
20 #include <itkObject.h>
21 
22 #include <mitkDataNode.h>
23 #include <mitkDataStorage.h>
24 
26 
27 namespace mitk
28 {
29 class BaseRenderer;
30 }
31 
32 
33 namespace niftk
34 {
35 
46 class NIFTKCORE_EXPORT DataNodeVisibilityTracker : public DataNodePropertyListener
47 {
48 
49 public:
50 
52  mitkNewMacro1Param(DataNodeVisibilityTracker, const mitk::DataStorage::Pointer)
53 
54 
55  void SetTrackedRenderer(const mitk::BaseRenderer* trackedRenderer);
56 
58  void SetManagedRenderers(const std::vector<const mitk::BaseRenderer*>& managedRenderers);
59 
62  void SetNodesToIgnore(const std::vector<mitk::DataNode*>& nodesToIgnore);
63 
65  bool IsIgnored(mitk::DataNode* node);
66 
67 protected:
68 
69  DataNodeVisibilityTracker(const mitk::DataStorage::Pointer dataStorage);
70  virtual ~DataNodeVisibilityTracker();
71 
72  DataNodeVisibilityTracker(const DataNodeVisibilityTracker&); // Purposefully not implemented.
73  DataNodeVisibilityTracker& operator=(const DataNodeVisibilityTracker&); // Purposefully not implemented.
74 
76  virtual void OnNodeAdded(mitk::DataNode* node) override;
77 
80  virtual void OnPropertyChanged(mitk::DataNode* node, const mitk::BaseRenderer* renderer) override;
81 
82 private:
83 
84  const mitk::BaseRenderer* m_TrackedRenderer;
85  std::vector<const mitk::BaseRenderer*> m_ManagedRenderers;
86  std::vector<mitk::DataNode*> m_NodesToIgnore;
87 };
88 
89 }
90 
91 #endif
Definition: ReceptorMemberCommandTest.cxx:25
Definition: niftkDataNodePropertyListener.h:45
Definition: niftkDataNodeVisibilityTracker.h:46
Definition: niftkExceptionObject.h:21