##// END OF EJS Templates
Adds the ability to force an acquisition pending for an operation (1)...
Adds the ability to force an acquisition pending for an operation (1) Creates struct that contains operation properties: - its weight - the flag to force acquisition waiting

File last commit:

r1031:958f5923ee65
r1249:b9a47ff1b9cc
Show More
OptionalAxis.h
66 lines | 2.1 KiB | text/x-c | CLexer
Alexandre Leroux
Introduces optional axis for a dataseries...
r865 #ifndef SCIQLOP_OPTIONALAXIS_H
#define SCIQLOP_OPTIONALAXIS_H
Alexandre Leroux
Updates access to y-axis properties of the data series (2)...
r1031 #include <Data/ArrayDataIterator.h>
Alexandre Leroux
Introduces optional axis for a dataseries...
r865 #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...
r904 ///@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...
r865 /// @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)...
r1031 // Iterators on data
ArrayDataIterator begin();
ArrayDataIterator end();
ArrayDataIterator cbegin() const;
ArrayDataIterator cend() const;
Alexandre Leroux
Introduces optional axis for a dataseries...
r865 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