32 #include "pteros/core/atom.h"
38 using AtomStateIterator = std::vector<Eigen::Vector3f>::iterator;
39 using AtomStateConstIterator = std::vector<Eigen::Vector3f>::const_iterator;
40 using AtomIterator = std::vector<Atom>::iterator;
41 using AtomConstIterator = std::vector<Atom>::const_iterator;
57 void set(
const System& sys,
int i,
int fr);
61 inline const int& index()
const {
return ind; }
63 inline int& resid(){
return atom_ptr->resid; }
64 inline const int& resid()
const {
return atom_ptr->resid; }
66 inline std::string& name(){
return atom_ptr->name; }
67 inline const std::string& name()
const {
return atom_ptr->name; }
69 inline char& chain(){
return atom_ptr->chain; }
70 inline const char& chain()
const {
return atom_ptr->chain; }
72 inline std::string& resname(){
return atom_ptr->resname; }
73 inline const std::string& resname()
const {
return atom_ptr->resname; }
75 inline std::string& tag(){
return atom_ptr->tag; }
76 inline const std::string& tag()
const {
return atom_ptr->tag; }
78 inline float& occupancy(){
return atom_ptr->occupancy; }
79 inline const float& occupancy()
const {
return atom_ptr->occupancy; }
81 inline float& beta(){
return atom_ptr->beta; }
82 inline const float& beta()
const {
return atom_ptr->beta; }
84 inline int& resindex() {
return atom_ptr->resindex; }
85 inline const int& resindex()
const {
return atom_ptr->resindex; }
87 inline float& mass(){
return atom_ptr->mass; }
88 inline const float& mass()
const {
return atom_ptr->mass; }
90 inline float& charge(){
return atom_ptr->charge; }
91 inline const float& charge()
const {
return atom_ptr->charge; }
93 inline int& type(){
return atom_ptr->type; }
94 inline const int& type()
const {
return atom_ptr->type; }
96 inline std::string& type_name(){
return atom_ptr->type_name; }
97 inline const std::string& type_name()
const {
return atom_ptr->type_name; }
99 inline float& x(){
return (*coord_ptr)(0); }
100 inline const float& x()
const {
return (*coord_ptr)(0); }
102 inline float& y(){
return (*coord_ptr)(1); }
103 inline const float& y()
const {
return (*coord_ptr)(1); }
105 inline float& z(){
return (*coord_ptr)(2); }
106 inline const float& z()
const {
return (*coord_ptr)(2); }
108 inline Eigen::Vector3f& xyz(){
return *coord_ptr; }
109 inline const Eigen::Vector3f& xyz()
const {
return *coord_ptr; }
119 inline Atom& atom(){
return *atom_ptr; }
120 inline const Atom& atom()
const {
return *atom_ptr; }
122 inline int& atomic_number(){
return atom_ptr->atomic_number; }
123 inline const int& atomic_number()
const {
return atom_ptr->atomic_number; }
125 std::string element_name()
const;
131 AtomIterator atom_ptr;
132 AtomStateIterator coord_ptr;