Gyoto
GyotoComplexSpectrometer.h
Go to the documentation of this file.
1 
8 /*
9  Copyright 2013 Thibaut Paumard, Frederic Vincent
10 
11  This file is part of Gyoto.
12 
13  Gyoto is free software: you can redistribute it and/or modify
14  it under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  Gyoto is distributed in the hope that it will be useful,
19  but WITHOUT ANY WARRANTY; without even the implied warranty of
20  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  GNU General Public License for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
25  */
26 
27 
28 #ifndef __GyotoComplexSpectrometer_H_
29 #define __GyotoComplexSpectrometer_H_
30 
31 #include <GyotoSpectrometer.h>
32 
33 namespace Gyoto{
34  namespace Spectrometer {
35  class Complex;
36  }
37 }
38 
69 {
70  friend class Gyoto::SmartPointer<Gyoto::Spectrometer::Complex>;
71 
72  // Data :
73  // -----
74  protected:
75 
82 
86  Gyoto::SmartPointer<Gyoto::Spectrometer::Generic> * elements_;
87 
88 
89  public:
90  Complex();
91  Complex(const Complex& ) ;
92 
106  virtual Complex* clone() const;
107 
112  virtual ~Complex() ;
113 
114  // Mutators
115  // --------
116  public:
125  void append(Gyoto::SmartPointer<Gyoto::Spectrometer::Generic> element);
127  void remove(size_t i);
129  size_t getCardinal() const;
131 
132  virtual void tell(Gyoto::Hook::Teller *msg);
133 
134  public:
135 #ifdef GYOTO_USE_XERCES
136 
141  virtual void fillElement(FactoryMessenger *fmp) const ;
142 
150  virtual void setParameters(FactoryMessenger *fmp);
151 #endif
152 
153  // Outputs
154  // -------
155  public:
156 
167  Gyoto::SmartPointer<Gyoto::Spectrometer::Generic> operator[](size_t i) ;
169  Gyoto::SmartPointer<Gyoto::Spectrometer::Generic> const operator[](size_t i) const;
171 
182  static kind_t const Kind;
183 
184 
185  protected:
186 };
187 
188 #endif