Fraxinus  18.10
An IGT application
cxFilterGroup.h
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
12 #ifndef CXFILTERGROUP_H_
13 #define CXFILTERGROUP_H_
14 
15 #include "cxResourceFilterExport.h"
16 
17 #include <vector>
18 #include "cxFilter.h"
19 #include "cxXmlOptionItem.h"
20 
21 
22 namespace cx {
23 
24 
30 class cxResourceFilter_EXPORT FilterGroup
31 {
32 public:
33  FilterGroup(XmlOptionFile options);
37  XmlOptionFile getOptions();
41  std::vector<FilterPtr> getFilters() const;
45  void append(FilterPtr filter);
46  void remove(Filter* filter);
47 
48  size_t size() const { return mFilters.size(); }
49  bool empty() const { return mFilters.empty(); }
50  // FilterPtr& operator[](size_t index) { return mFilters[index]; }
51  // const FilterPtr& operator[](size_t index) const { return mFilters[index]; }
52  FilterPtr get(int index) { return mFilters[index]; }
53  FilterPtr get(QString uid)
54  {
55  for (unsigned i=0; i<mFilters.size(); ++i)
56  if (mFilters[i]->getUid()==uid)
57  return mFilters[i];
58  return FilterPtr();
59  }
60 
61 private:
62  std::vector<FilterPtr> mFilters;
63  XmlOptionFile mOptions;
64 };
65 typedef boost::shared_ptr<FilterGroup> FilterGroupPtr;
66 
67 } //namespace cx
68 
69 #endif /* CXFILTERGROUP_H_ */
size_t size() const
Definition: cxFilterGroup.h:48
boost::shared_ptr< class Filter > FilterPtr
boost::shared_ptr< FilterGroup > FilterGroupPtr
Definition: cxFilterGroup.h:65
bool empty() const
Definition: cxFilterGroup.h:49
Helper class for xml files used to store ssc/cx data.
Namespace for all CustusX production code.