ESyS-Particle  2.3.4
BasicParticle.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 #ifndef __BASICPARTICLE_H
14 #define __BASICPARTICLE_H
15 
16 // -- project includes --
17 #include "Foundation/vec3.h"
18 
19 // --- STL includes ---
20 #include <map>
21 #include <utility>
22 
23 using std::map;
24 using std::pair;
25 using std::make_pair;
26 
27 namespace esys
28 {
29  namespace lsm
30  {
31  class SimpleParticleData;
32  }
33 }
34 
45 {
46 protected:
48  double m_rad;
50  int m_tag;
51 
52 public:
53  static const CBasicParticle INVALID;
54 
56  CBasicParticle(const Vec3 &pos, double radius, int id=-1, int tag=-1);
58 
59  inline virtual ~CBasicParticle(){}
60 
61  inline Vec3 & getPPos() {return m_pos;}
62  inline Vec3 getPos() const {return m_pos;}
63  inline void setPos(const Vec3 &pos) {m_pos = pos;}
64  inline double getRad() const {return m_rad;}
65  inline int getID() const {return m_global_id;}
66  inline void setID(int id) {m_global_id = id;}
67 
68  inline void moveBy(Vec3 v){m_pos+=v;}
69  inline void moveTo(Vec3 v){m_pos=v;}
70  inline void setRad(double r){m_rad=r;}
71 
73  inline void setTag(int t){m_tag=t;}
74  inline int getTag() const {return m_tag;}
75  inline bool isValid() const {return (getID() >= 0);}
76 };
77 ostream& operator<<(ostream&,const CBasicParticle&);
78 
79 #endif //__BASICPARTICLE_H
CBasicParticle::INVALID
static const CBasicParticle INVALID
Definition: BasicParticle.h:53
CBasicParticle::m_pos
Vec3 m_pos
position
Definition: BasicParticle.h:47
CBasicParticle::getPPos
Vec3 & getPPos()
Definition: BasicParticle.h:61
CBasicParticle::m_rad
double m_rad
radius
Definition: BasicParticle.h:48
CBasicParticle::m_global_id
int m_global_id
Definition: BasicParticle.h:49
CBasicParticle::setRad
void setRad(double r)
Definition: BasicParticle.h:70
CBasicParticle::~CBasicParticle
virtual ~CBasicParticle()
Definition: BasicParticle.h:59
CBasicParticle::isValid
bool isValid() const
Definition: BasicParticle.h:75
BasicParticle.h
CBasicParticle::m_id
int m_id
Definition: BasicParticle.h:35
operator<<
ostream & operator<<(ostream &, const CBasicParticle &)
Definition: BasicParticle.cpp:42
esys::lsm::SimpleParticleData
Definition: SimpleParticleData.h:28
esys
Definition: CheckPointable.cpp:17
CBasicParticle::setTag
void setTag(int t)
particle tag handling
Definition: BasicParticle.h:73
BasicParticle.h
CBasicParticle::setPos
void setPos(const Vec3 &pos)
Definition: BasicParticle.h:63
CBasicParticle::getTag
int getTag() const
Definition: BasicParticle.h:74
CBasicParticle::m_tag
int m_tag
Definition: BasicParticle.h:50
Vec3
Definition: vec3.h:47
CBasicParticle::setID
void setID(int id)
Definition: BasicParticle.h:66
vec3.h
operator<<
ostream & operator<<(ostream &ost, const CBasicParticle &BP)
Definition: BasicParticle.cpp:42
Vec3::ZERO
static const Vec3 ZERO
Definition: vec3.h:52
CBasicParticle::getID
int getID() const
Definition: BasicParticle.h:65
CBasicParticle::moveBy
void moveBy(Vec3 v)
move relative to current position
Definition: BasicParticle.h:68
CBasicParticle::getRad
double getRad() const
Definition: BasicParticle.h:64
CBasicParticle::CBasicParticle
CBasicParticle()
Definition: BasicParticle.cpp:18
CBasicParticle::getPos
Vec3 getPos() const
Definition: BasicParticle.h:62
SimpleParticleData.h
CBasicParticle
Basic Particle class. Contains only the "geometric part" of the particle, i.e. position and radius,...
Definition: BasicParticle.h:45
CBasicParticle::moveTo
void moveTo(Vec3 v)
move absolute
Definition: BasicParticle.h:69