15 #ifndef BORNAGAIN_SAMPLE_LATTICE_LATTICE2D_H
16 #define BORNAGAIN_SAMPLE_LATTICE_LATTICE2D_H
Defines and implements the standard mix-in ICloneable.
A two-dimensional Bravais lattice with no special symmetry.
virtual double unitCellArea() const
virtual double length2() const
BasicLattice2D * clone() const
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
virtual double length1() const
BasicLattice2D(double length1, double length2, double angle, double xi)
virtual double latticeAngle() const
A two-dimensional Bravais lattice with hexagonal symmetry.
virtual double unitCellArea() const
virtual double length1() const
HexagonalLattice2D * clone() const
virtual double length2() const
virtual double latticeAngle() const
HexagonalLattice2D(double length, double xi)
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
Interface for polymorphic classes that should not be copied, except by explicit cloning.
Visitor interface to visit ISampleNode objects.
Base class for tree-like structures containing parameterized objects.
A two-dimensional Bravais lattice.
double rotationAngle() const
ReciprocalBases reciprocalBases() const
virtual double latticeAngle() const =0
virtual void onChange()
Action to be taken in inherited class when a parameter has changed.
virtual double length2() const =0
virtual double length1() const =0
void setRotationEnabled(bool enabled)
virtual Lattice2D * clone() const =0
Lattice2D(const NodeMeta &meta, const std::vector< double > &PValues)
virtual double unitCellArea() const =0
A two-dimensional Bravais lattice with square unit cell.
SquareLattice2D * clone() const
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
SquareLattice2D(double length, double xi=0.0)
virtual double length2() const
virtual double length1() const
virtual double latticeAngle() const
virtual double unitCellArea() const
double m_asy
x,y coordinates of a*
double m_bsy
x,y coordinates of b*