Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified src/atom_atominfo.cpp

    r112b09 rd74077  
    1010#include "periodentafel.hpp"
    1111#include "World.hpp"
     12#include "element.hpp"
    1213#include "atom_atominfo.hpp"
    1314
    1415/** Constructor of class AtomInfo.
    1516 */
    16 AtomInfo::AtomInfo() : type(NULL) {};
     17AtomInfo::AtomInfo() : AtomicElement(NULL) {};
     18
     19/** Copy constructor of class AtomInfo.
     20 */
     21AtomInfo::AtomInfo(const AtomInfo &_atom) : AtomicPosition(_atom.AtomicPosition), AtomicElement(_atom.AtomicElement) {};
     22
     23AtomInfo::AtomInfo(const VectorInterface &_v) : AtomicPosition(_v.getPosition()), AtomicElement(NULL)
     24{};
    1725
    1826/** Destructor of class AtomInfo.
     
    2230};
    2331
    24 const element *AtomInfo::getType(){
    25   return type;
     32const element *AtomInfo::getType() const
     33{
     34  return AtomicElement;
     35}
     36
     37const double& AtomInfo::operator[](size_t i) const
     38{
     39  return AtomicPosition[i];
     40}
     41
     42const double& AtomInfo::at(size_t i) const
     43{
     44  return AtomicPosition.at(i);
     45}
     46
     47void AtomInfo::set(size_t i, const double value)
     48{
     49  AtomicPosition.at(i) = value;
     50}
     51
     52const Vector& AtomInfo::getPosition() const
     53{
     54  return AtomicPosition;
    2655}
    2756
    2857void AtomInfo::setType(const element* _type) {
    29   type = _type;
     58  AtomicElement = _type;
    3059}
    3160
    32 void AtomInfo::setType(int Z) {
     61void AtomInfo::setType(const int Z) {
    3362  const element *elem = World::getInstance().getPeriode()->FindElement(Z);
    3463  setType(elem);
    3564}
     65
     66void AtomInfo::setPosition(const Vector& _vector)
     67{
     68  AtomicPosition = _vector;
     69  //cout << "AtomInfo::setPosition: " << getType()->symbol << " at " << getPosition() << endl;
     70}
     71
     72const VectorInterface& AtomInfo::operator+=(const Vector& b)
     73{
     74  AtomicPosition += b;
     75  return *this;
     76}
     77
     78const VectorInterface& AtomInfo::operator-=(const Vector& b)
     79{
     80  AtomicPosition -= b;
     81  return *this;
     82}
     83
     84Vector const AtomInfo::operator+(const Vector& b) const
     85{
     86  Vector a(AtomicPosition);
     87  a += b;
     88  return a;
     89}
     90
     91Vector const AtomInfo::operator-(const Vector& b) const
     92{
     93  Vector a(AtomicPosition);
     94  a -= b;
     95  return a;
     96}
     97
     98double AtomInfo::distance(const Vector &point) const
     99{
     100  return AtomicPosition.distance(point);
     101}
     102
     103double AtomInfo::DistanceSquared(const Vector &y) const
     104{
     105  return AtomicPosition.DistanceSquared(y);
     106}
     107
     108double AtomInfo::distance(const VectorInterface &_atom) const
     109{
     110  return _atom.distance(AtomicPosition);
     111}
     112
     113double AtomInfo::DistanceSquared(const VectorInterface &_atom) const
     114{
     115  return _atom.DistanceSquared(AtomicPosition);
     116}
     117
     118VectorInterface &AtomInfo::operator=(const Vector& _vector)
     119{
     120  AtomicPosition = _vector;
     121  return *this;
     122}
     123
     124void AtomInfo::ScaleAll(const double *factor)
     125{
     126  AtomicPosition.ScaleAll(factor);
     127}
     128
     129void AtomInfo::ScaleAll(const Vector &factor)
     130{
     131  AtomicPosition.ScaleAll(factor);
     132}
     133
     134void AtomInfo::Scale(const double factor)
     135{
     136  AtomicPosition.Scale(factor);
     137}
     138
     139void AtomInfo::Zero()
     140{
     141  AtomicPosition.Zero();
     142}
     143
     144void AtomInfo::One(const double one)
     145{
     146  AtomicPosition.One(one);
     147}
     148
     149void AtomInfo::LinearCombinationOfVectors(const Vector &x1, const Vector &x2, const Vector &x3, const double * const factors)
     150{
     151  AtomicPosition.LinearCombinationOfVectors(x1,x2,x3,factors);
     152}
     153
     154const AtomInfo& operator*=(AtomInfo& a, const double m)
     155{
     156  a.Scale(m);
     157  return a;
     158}
     159
     160AtomInfo const operator*(const AtomInfo& a, const double m)
     161{
     162  AtomInfo copy(a);
     163  copy *= m;
     164  return copy;
     165}
     166
     167AtomInfo const operator*(const double m, const AtomInfo& a)
     168{
     169  AtomInfo copy(a);
     170  copy *= m;
     171  return copy;
     172}
     173
     174std::ostream & AtomInfo::operator << (std::ostream &ost) const
     175{
     176  return (ost << getPosition());
     177}
     178
     179std::ostream & operator << (std::ostream &ost, const AtomInfo &a)
     180{
     181  ost << a;
     182  return ost;
     183}
     184
Note: See TracChangeset for help on using the changeset viewer.