25 #ifndef WVALUESETBASE_H
26 #define WVALUESETBASE_H
31 #include <boost/variant.hpp>
33 #include "../common/math/WValue.h"
34 #include "WDataHandlerEnums.h"
35 #include "WExportDataHandler.h"
38 template<
typename T >
42 typedef boost::variant< WValueSet< uint8_t >
const*,
77 virtual size_t size()
const = 0;
82 virtual size_t rawSize()
const = 0;
88 virtual double getScalarDouble(
size_t i )
const = 0;
100 virtual WVector_2 getWVector(
size_t i )
const = 0;
105 virtual size_t dimension()
const
113 virtual size_t order()
const
123 virtual size_t elementsPerValue()
const
126 return static_cast< size_t >( std::pow( static_cast< double >( m_dimension ), static_cast< int >( m_order ) ) );
143 virtual double getMinimumValue()
const = 0;
151 virtual double getMaximumValue()
const = 0;
161 template<
typename Func_T >
162 typename Func_T::result_type applyFunction( Func_T
const& func )
164 return boost::apply_visitor( func, getVariant() );
189 virtual WValueSetVariant
const getVariant()
const
191 return WValueSetVariant();
195 #endif // WVALUESETBASE_H