##// END OF EJS Templates
Fix some glitches which occurred when dragging in the visualization something from the sides.
Fix some glitches which occurred when dragging in the visualization something from the sides.

File last commit:

r865:4db543fb8475
r886:4ed691514436
Show More
OptionalAxis.h
58 lines | 1.9 KiB | text/x-c | CLexer
#ifndef SCIQLOP_OPTIONALAXIS_H
#define SCIQLOP_OPTIONALAXIS_H
#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;
/// @return gets the data at the index passed in parameter, NaN if the index is outside the
/// bounds of the axis, or if the axis is undefined
double at(int index) const;
/// @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);
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