BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
IAxis Class Referenceabstract
Inheritance diagram for IAxis:
Collaboration diagram for IAxis:

Public Member Functions

 IAxis (const std::string &name)
 
virtual IAxisclone () const =0
 
virtual ~IAxis ()
 
virtual size_t size () const =0
 
std::string getName () const
 
void setName (std::string name)
 
virtual double operator[] (size_t index) const =0
 
virtual Bin1D getBin (size_t index) const =0
 
virtual double getMin () const =0
 
virtual double getMax () const =0
 
virtual double getBinCenter (size_t index) const =0
 
virtual size_t findClosestIndex (double value) const =0
 
bool operator== (const IAxis &right) const
 
bool operator!= (const IAxis &right) const
 
virtual std::vector< double > getBinCenters () const
 
virtual std::vector< double > getBinBoundaries () const
 
virtual IAxiscreateClippedAxis (double left, double right) const
 
virtual bool contains (double value) const
 
virtual std::string pyString (const std::string &units, size_t offset) const =0
 

Protected Member Functions

virtual void print (std::ostream &ostr) const =0
 
virtual bool equals (const IAxis &other) const
 

Private Member Functions

 IAxis (const IAxis &)
 
IAxisoperator= (const IAxis &)
 

Private Attributes

std::string m_name
 

Friends

std::ostream & operator<< (std::ostream &ostr, const IAxis &m)
 

Detailed Description

Interface for one-dimensional axes.

Definition at line 24 of file IAxis.h.

Constructor & Destructor Documentation

◆ IAxis() [1/2]

IAxis::IAxis ( const std::string &  name)
inline

constructors

Definition at line 28 of file IAxis.h.

28 : m_name(name) {}
std::string m_name
axis name
Definition: IAxis.h:92

◆ ~IAxis()

virtual IAxis::~IAxis ( )
inlinevirtual

destructor

Definition at line 34 of file IAxis.h.

34 {}

◆ IAxis() [2/2]

IAxis::IAxis ( const IAxis )
private

Member Function Documentation

◆ clone()

◆ size()

virtual size_t IAxis::size ( ) const
pure virtual

◆ getName()

◆ setName()

void IAxis::setName ( std::string  name)
inline

Sets the axis label.

Definition at line 43 of file IAxis.h.

43 { m_name = name; }

References m_name.

◆ operator[]()

virtual double IAxis::operator[] ( size_t  index) const
pure virtual

indexed accessor retrieves a sample

Implemented in PointwiseAxis, VariableBinAxis, and FixedBinAxis.

◆ getBin()

◆ getMin()

◆ getMax()

◆ getBinCenter()

virtual double IAxis::getBinCenter ( size_t  index) const
pure virtual

◆ findClosestIndex()

virtual size_t IAxis::findClosestIndex ( double  value) const
pure virtual

◆ operator==()

bool IAxis::operator== ( const IAxis right) const
inline

test for equality

Definition at line 63 of file IAxis.h.

63 { return equals(right); }
virtual bool equals(const IAxis &other) const
Definition: IAxis.cpp:18

References equals().

Here is the call graph for this function:

◆ operator!=()

bool IAxis::operator!= ( const IAxis right) const
inline

Definition at line 64 of file IAxis.h.

64 { return !(*this == right); }

◆ getBinCenters()

◆ getBinBoundaries()

std::vector< double > IAxis::getBinBoundaries ( ) const
virtual

Reimplemented in PointwiseAxis, VariableBinAxis, and FixedBinAxis.

Definition at line 28 of file IAxis.cpp.

29 {
31  "IAxis::getBinBoundaries() -> Error. Not implemented.");
32 }

◆ createClippedAxis()

IAxis * IAxis::createClippedAxis ( double  left,
double  right 
) const
virtual

Creates a new clipped axis.

Reimplemented in PointwiseAxis, ConstKBinAxis, VariableBinAxis, FixedBinAxis, and CustomBinAxis.

Definition at line 34 of file IAxis.cpp.

35 {
37  "IAxis::createClippedAxis() -> Error. Not implemented.");
38 }

Referenced by IntensityDataFunctions::createClippedDataSet().

◆ contains()

bool IAxis::contains ( double  value) const
virtual

Returns true if axis contains given point.

Definition at line 40 of file IAxis.cpp.

41 {
42  return value >= getMin() && value < getMax();
43 }
virtual double getMin() const =0
Returns value of first point of axis.
virtual double getMax() const =0
Returns value of last point of axis.

References getMax(), and getMin().

Referenced by Histogram1D::crop(), Histogram2D::crop(), RectangularDetector::indexOfSpecular(), and SphericalDetector::indexOfSpecular().

Here is the call graph for this function:

◆ pyString()

virtual std::string IAxis::pyString ( const std::string &  units,
size_t  offset 
) const
pure virtual

◆ print()

virtual void IAxis::print ( std::ostream &  ostr) const
protectedpure virtual

◆ equals()

bool IAxis::equals ( const IAxis other) const
protectedvirtual

Reimplemented in PointwiseAxis, ConstKBinAxis, VariableBinAxis, FixedBinAxis, and CustomBinAxis.

Definition at line 18 of file IAxis.cpp.

19 {
20  return getName() == other.getName();
21 }
std::string getName() const
retrieve the label of the axis
Definition: IAxis.h:40

References getName().

Referenced by CustomBinAxis::equals(), FixedBinAxis::equals(), VariableBinAxis::equals(), ConstKBinAxis::equals(), PointwiseAxis::equals(), and operator==().

Here is the call graph for this function:

◆ operator=()

IAxis& IAxis::operator= ( const IAxis )
private

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  ostr,
const IAxis m 
)
friend

Definition at line 66 of file IAxis.h.

67  {
68  m.print(ostr);
69  return ostr;
70  }
virtual void print(std::ostream &ostr) const =0

Member Data Documentation

◆ m_name

std::string IAxis::m_name
private

axis name

Definition at line 92 of file IAxis.h.

Referenced by getName(), and setName().


The documentation for this class was generated from the following files: