OpenStructure
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
image_list.hh
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 // This file is part of the OpenStructure project <www.openstructure.org>
3 //
4 // Copyright (C) 2008-2011 by the OpenStructure authors
5 // Copyright (C) 2003-2010 by the IPLT authors
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License as published by the Free
9 // Software Foundation; either version 3.0 of the License, or (at your option)
10 // any later version.
11 // This library is distributed in the hope that it will be useful, but WITHOUT
12 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
14 // details.
15 //
16 // You should have received a copy of the GNU Lesser General Public License
17 // along with this library; if not, write to the Free Software Foundation, Inc.,
18 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 //------------------------------------------------------------------------------
20 
21 /*
22  Author:Andreas Schenk
23 */
24 
25 #ifndef IMG_IMAGE_LIST_HH
26 #define IMG_IMAGE_LIST_HH
27 
28 
29 #include <ost/img/image.hh>
30 
31 namespace ost { namespace img {
32 
33 
34 
36 
43 class DLLEXPORT_OST_IMG_BASE ImageList: public std::vector<ImageHandle> {
44 public:
45  ImageList();
46  ImageList(const ImageList& il);
47  ImageList(ImageList::iterator start,ImageList::iterator end);
48  ImageHandle GetGallery(unsigned int columns=0,bool border=false);
49  ImageHandle GetImageStack();
50 
51 
55 
57 
60  void Apply(NonModAlgorithm& a) const;
61 
63 
66  void ApplyIP(NonModAlgorithm& a) const;
67 
69 
72  void ApplyIP(ModIPAlgorithm& a);
73 
75 
82  ImageList Apply(ModIPAlgorithm& a) const;
83 
85  void ApplyIP(const ConstModIPAlgorithm& a);
86 
87  ImageList Apply(const ConstModIPAlgorithm& a) const;
88 
89  void ApplyIP(ModOPAlgorithm& a);
90 
91  ImageList Apply(ModOPAlgorithm& a) const;
92 
93  void ApplyIP(const ConstModOPAlgorithm& a);
94 
95  ImageList Apply(const ConstModOPAlgorithm& a) const;
97 
102 
103  void StateApply(ImageStateNonModVisitorBase& v) const;
104 
106  void StateApplyIP(ImageStateModIPVisitorBase& v);
108  ImageList StateApply(ImageStateModIPVisitorBase& v) const;
110  void StateApplyIP(const ImageStateConstModIPVisitorBase& v);
112  ImageList StateApply(const ImageStateConstModIPVisitorBase& v) const;
114  void StateApplyIP(ImageStateModOPVisitorBase& v);
116  ImageList StateApply(ImageStateModOPVisitorBase& v) const;
118  void StateApplyIP(const ImageStateConstModOPVisitorBase& v);
120  ImageList StateApply(const ImageStateConstModOPVisitorBase& v) const;
122  void StateApplyIP(ImageStateMorphVisitorBase& v);
124 
125  ImageList StateApply(ImageStateMorphVisitorBase& v) const;
126  ImageList& operator+=(Real v);
127  ImageList& operator+=(const Complex& v);
128  ImageList& operator-=(Real v);
129  ImageList& operator-=(const Complex& v);
130  ImageList& operator*=(Real v);
131  ImageList& operator*=(const Complex& v);
132  ImageList& operator/=(Real v);
133  ImageList& operator/=(const Complex& v);
134  ImageList& operator+=(const ConstImageHandle& h);
135  ImageList& operator-=(const ConstImageHandle& h);
136  ImageList& operator*=(const ConstImageHandle& h);
137  ImageList& operator/=(const ConstImageHandle& h);
138  ImageList& operator+=(const Function& h);
139  ImageList& operator-=(const Function& h);
140  ImageList& operator*=(const Function& h);
141  ImageList& operator/=(const Function& h);
142 private:
143  Size get_max_size_();
144  DataType get_data_type_();
145 
146 };
147 
148 }}
149 
150 #endif