##// END OF EJS Templates
change core meson config to include CatalogueAPI depends
change core meson config to include CatalogueAPI depends

File last commit:

r989:958f5923ee65
r1066:c784890db0f9
Show More
OptionalAxis.h
66 lines | 2.1 KiB | text/x-c | CLexer
Alexandre Leroux
Introduces optional axis for a dataseries...
r859 #ifndef SCIQLOP_OPTIONALAXIS_H
#define SCIQLOP_OPTIONALAXIS_H
Alexandre Leroux
Updates access to y-axis properties of the data series (2)...
r989 #include <Data/ArrayDataIterator.h>
Alexandre Leroux
Introduces optional axis for a dataseries...
r859 #include "CoreGlobal.h"
#include "Unit.h"
#include <memory>
template <int Dim>
class ArrayData;
/**
* @brief The OptionalAxis class defines an optional data axis for a series of data.
*
* An optional data axis is an axis that can be defined or not for a data series. If defined, it
* contains a unit and data (1-dim ArrayData). It is then possible to access the data or the unit.
* In the case of an undefined axis, the axis has no data and no unit. The methods for accessing the
* data or the unit are always callable but will return undefined values.
*
* @sa DataSeries
* @sa ArrayData
*/
class SCIQLOP_CORE_EXPORT OptionalAxis {
public:
/// Ctor for an undefined axis
explicit OptionalAxis();
/// Ctor for a defined axis
/// @param data the axis' data
/// @param unit the axis' unit
/// @throws std::invalid_argument if no data is associated to the axis
explicit OptionalAxis(std::shared_ptr<ArrayData<1> > data, Unit unit);
/// Copy ctor
OptionalAxis(const OptionalAxis &other);
/// Assignment operator
OptionalAxis &operator=(OptionalAxis other);
/// @return the flag that indicates if the axis is defined or not
bool isDefined() const;
Alexandre Leroux
Implements OptionalAxis::bounds() method...
r901 ///@return the min and max values of the data on the axis, NaN values if there is no data
std::pair<double, double> bounds() const;
Alexandre Leroux
Introduces optional axis for a dataseries...
r859 /// @return the number of data on the axis, 0 if the axis is not defined
int size() const;
/// @return the unit of the axis, an empty unit if the axis is not defined
Unit unit() const;
bool operator==(const OptionalAxis &other);
bool operator!=(const OptionalAxis &other);
Alexandre Leroux
Updates access to y-axis properties of the data series (2)...
r989 // Iterators on data
ArrayDataIterator begin();
ArrayDataIterator end();
ArrayDataIterator cbegin() const;
ArrayDataIterator cend() const;
Alexandre Leroux
Introduces optional axis for a dataseries...
r859 private:
bool m_Defined; ///< Axis is defined or not
std::shared_ptr<ArrayData<1> > m_Data; ///< Axis' data
Unit m_Unit; ///< Axis' unit
};
#endif // SCIQLOP_OPTIONALAXIS_H