ESyS-Particle  2.3
BasicParticle.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2014 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.opensource.org/licenses/osl-3.0.php //
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
bool isValid() const
Definition: BasicParticle.h:75
Vec3 & getPPos()
Definition: BasicParticle.h:61
Definition: vec3.h:46
virtual ~CBasicParticle()
Definition: BasicParticle.h:59
int m_global_id
Definition: BasicParticle.h:49
static const CBasicParticle INVALID
Definition: BasicParticle.h:53
Vec3 getPos() const
Definition: BasicParticle.h:62
ostream & operator<<(ostream &, const CBasicParticle &)
Definition: BasicParticle.cpp:42
int m_tag
Definition: BasicParticle.h:50
void setRad(double r)
Definition: BasicParticle.h:70
Definition: SimpleParticleData.h:27
Definition: CheckPointable.cpp:16
int getID() const
Definition: BasicParticle.h:65
Vec3 m_pos
position
Definition: BasicParticle.h:47
int getTag() const
Definition: BasicParticle.h:74
Basic Particle class. Contains only the "geometric part" of the particle, i.e. position and radius...
Definition: BasicParticle.h:44
double m_rad
radius
Definition: BasicParticle.h:48
double getRad() const
Definition: BasicParticle.h:64
CBasicParticle()
Definition: BasicParticle.cpp:18
void setPos(const Vec3 &pos)
Definition: BasicParticle.h:63
void setID(int id)
Definition: BasicParticle.h:66
void setTag(int t)
particle tag handling
Definition: BasicParticle.h:73
void moveTo(Vec3 v)
move absolute
Definition: BasicParticle.h:69
void moveBy(Vec3 v)
move relative to current position
Definition: BasicParticle.h:68