21 #ifndef __MIA_2DDATAFIELD_HH 22 #define __MIA_2DDATAFIELD_HH 1 35 #include <miaconfig.h> 37 #ifndef EXPORT_2DDATAFIELD 38 # define EXPORT_2DDATAFIELD EXPORT_2D 58 typedef ::std::vector<typename __holder_type_dispatch<T>::type>
data_array;
64 typedef typename data_array::iterator iterator;
65 typedef typename data_array::const_iterator const_iterator;
66 typedef typename data_array::const_reference const_reference;
67 typedef typename data_array::reference reference;
68 typedef typename data_array::const_pointer const_pointer;
69 typedef typename data_array::pointer pointer;
70 typedef typename data_array::value_type value_type;
71 typedef typename data_array::difference_type difference_type;
72 typedef typename data_array::size_type size_type;
123 T get_interpol_val_at(
const C2DFVector& p)
const;
129 void make_single_ref();
147 const_reference operator()(
size_t x,
size_t y)
const;
154 reference operator()(
size_t x,
size_t y);
165 return (*m_data)[idx];
177 return (*m_data)[idx];
181 const_reference operator()(
const C2DBounds& l)
const;
184 reference operator()(
const C2DBounds& l);
192 void get_data_line_x(
size_t y, std::vector<T>& buffer)
const;
199 void get_data_line_y(
size_t x, std::vector<T>& buffer)
const;
207 void put_data_line_x(
size_t y,
const std::vector<T>& buffer);
215 void put_data_line_y(
size_t x,
const std::vector<T>& buffer);
218 size_type size()
const;
222 const data_array& data = *m_data;
227 const_iterator
end()
const {
228 const data_array& data = *m_data;
238 return m_data->begin();
248 return m_data->end();
260 const_iterator b = begin();
261 advance(b, x + y * m_size.x);
271 iterator b = begin();
272 advance(b, x + y * m_size.x);
295 const static value_type Zero;
343 #define DEFINE_2DFIELD_TEMPLATE(TYPE) \ 344 extern template class EXPORT_2D EXPORT_2D T2DDatafield<TYPE>; \ 345 extern template class EXPORT_2D range2d_iterator<T2DDatafield<TYPE>::iterator>; \ 346 extern template class EXPORT_2D range2d_iterator<T2DDatafield<TYPE>::const_iterator>; \ 347 extern template class EXPORT_2D range2d_iterator_with_boundary_flag<T2DDatafield<TYPE>::iterator>; \ 348 extern template class EXPORT_2D range2d_iterator_with_boundary_flag<T2DDatafield<TYPE>::const_iterator>; 350 DEFINE_2DFIELD_TEMPLATE(
float);
353 DEFINE_2DFIELD_TEMPLATE(
signed long);
354 DEFINE_2DFIELD_TEMPLATE(
unsigned long);
356 DEFINE_2DFIELD_TEMPLATE(
double);
357 DEFINE_2DFIELD_TEMPLATE(
unsigned int);
358 DEFINE_2DFIELD_TEMPLATE(
signed int);
359 DEFINE_2DFIELD_TEMPLATE(
unsigned short);
360 DEFINE_2DFIELD_TEMPLATE(
signed short);
361 DEFINE_2DFIELD_TEMPLATE(
unsigned char);
362 DEFINE_2DFIELD_TEMPLATE(
signed char);
T2DDatafield< unsigned short > C2DUSDatafield
2D scalar field that holds unsigned short values
TTranslator< C2DFVector > C2DFVectorTranslator
typedef for the C2DFVector to std::string translator
const_iterator begin_at(size_t x, size_t y) const
Generic string vs. attribute translator singleton.
const_reference operator[](size_t idx) const
const_iterator begin() const
#define EXPORT_2DDATAFIELD
define used export 2D symbols
T2DDatafield< bool > C2DBitDatafield
2D scalar field that holds bool values
a 2D iterator that knows its position in the 2D grid ans supports iterating over sub-ranges ...
T2DDatafield< signed int > C2DSIDatafield
2D scalar field that holds signed int values
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
iterator begin_at(size_t x, size_t y)
const_iterator end() const
CTParameter< C2DFVector > C2DFVectorParameter
Parameter type for 2D vector.
Generic type of a complex paramter.
T2DDatafield< unsigned int > C2DUIDatafield
2D scalar field that holds unsigned int values
T2DDatafield< unsigned char > C2DUBDatafield
2D scalar field that holds unsigned char (=byte) values
CTParameter< C2DBounds > C2DBoundsParameter
Parameter type for 2D size definitions.
A class to hold data on a regular 2D grid.
T2DDatafield< float > C2DFDatafield
2D scalar field that holds float values
T2DDatafield< signed short > C2DSSDatafield
2D scalar field that holds signed short values
reference operator[](size_t idx)
::std::vector< typename __holder_type_dispatch< T >::type > data_array
type for the flat reprentation of the 2D data field
std::shared_ptr< data_array > data_pointer
pointer type
T2DDatafield< signed char > C2DSBDatafield
2D scalar field that holds signed char values
Class of an attribute that holds data of type T.
T2DDatafield< double > C2DDDatafield
2D scalar field that holds double values
#define NS_MIA_END
conveniance define to end the mia namespace