1 #ifndef CASM_IntegralCluster
2 #define CASM_IntegralCluster
27 class IntegralCluster;
47 template <
typename Iterator>
56 const std::vector<Element> &
elements()
const;
72 template <
typename Iterator>
75 : m_element(begin, end), m_prim_ptr(&prim) {}
A CRTP base class for a cluster of anything.
iterator end()
Iterator to the past-the-last element in the cluster.
traits< MostDerived >::Element Element
iterator begin()
Iterator to first element in the cluster.
IntegralCluster & operator+=(xtal::UnitCell trans)
Translate the cluster by a UnitCell translation.
std::vector< xtal::UnitCellCoord > m_element
const PrimType * m_prim_ptr
std::vector< Element > & elements()
Access vector of elements.
const PrimType & prim() const
IntegralCluster(PrimType const &prim)
xtal::Translatable< GenericCluster< CRTPBase< IntegralCluster > > > Base
xtal::Coordinate coordinate(size_type i) const
Return the coordinate corresponding to element(i)
Structure specifies the lattice and atomic basis of a crystal.
Represents cartesian and fractional coordinates.
xtal::UnitCellCoord Element
CRTP class to implement '-=', '+', and '-' in terms of '+='.