///
/// Functions and classes for manipulating the primitive cell
///
/// @author: Junyi Wang (jywang)
///
#include "primitive.h"

namespace tbplas::builder {

Orbital::Orbital(const double& fa_, const double& fb_, const double& fc_,
    const double& energy_, const int64_t& label_)
    : fa(fa_)
    , fb(fb_)
    , fc(fc_)
    , energy(energy_)
    , label(label_)
{
}

Eigen::Vector3d Orbital::get_position() const
{
    return Eigen::Vector3d { fa, fb, fc };
}

void Orbital::set_position(const Eigen::Vector3d& new_pos)
{
    fa = new_pos(0);
    fb = new_pos(1);
    fc = new_pos(2);
}

} // namespace tbplas::builder