ESyS-Particle  2.3.4
SimpleParticle.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 
14 #ifndef SIMPLEPARTICLE_H
15 #define SIMPLEPARTICLE_H
16 
17 #include "Foundation/console.h"
18 #include "Foundation/vec3.h"
20 
25 {
26 public:
27  static const SimpleParticle INVALID;
28 
29  inline SimpleParticle(const Vec3 &posn, double radius, int id=0, int tag=0);
30 
31  inline SimpleParticle(const SimpleParticle &p);
32 
33  inline SimpleParticle &operator=(const SimpleParticle &p);
34 
35  inline const Vec3 &getPos() const;
36  inline void setPos(const Vec3 &pos);
37  inline void moveTo(const Vec3 &v);
38  inline void translateBy(const Vec3 &v);
39  inline void moveBy(const Vec3 &v);
40  inline void rotate(const Vec3 &rotation, const Vec3 &posn);
41  inline double getRad() const;
42  inline void setRad(double r);
43 
44  inline bool isValid() const;
45 
46  template <typename TmplVisitor>
47  void visit(const TmplVisitor &visitor) const;
48 
49  template <typename TmplVisitor>
50  void visit(TmplVisitor &visitor);
51 };
52 
53 inline std::ostream& operator<<(std::ostream &oStream, const SimpleParticle &particle);
54 
63 {
64  private:
66  public:
72  inline ParticleComparer(const SimpleParticle&);
73  inline bool operator()(const SimpleParticle&, const SimpleParticle&) const;
74  inline bool operator()(const SimpleParticle*, const SimpleParticle*) const;
75 };
76 
78 
79 #endif
SimpleParticle::getRad
double getRad() const
Definition: SimpleParticle.hpp:70
SimpleParticle::translateBy
void translateBy(const Vec3 &v)
Definition: SimpleParticle.hpp:45
ParticleComparer::m_pParticle
const SimpleParticle * m_pParticle
Definition: SimpleParticle.h:65
SimpleParticle::operator=
SimpleParticle & operator=(const SimpleParticle &p)
Definition: SimpleParticle.hpp:24
SimpleParticle::getPos
const Vec3 & getPos() const
Definition: SimpleParticle.hpp:30
SimpleParticle::isValid
bool isValid() const
Definition: SimpleParticle.hpp:80
console.h
SimpleParticle::setPos
void setPos(const Vec3 &pos)
Definition: SimpleParticle.hpp:35
SimpleParticle
Definition: SimpleParticle.h:25
esys::lsm::SimpleParticleData
Definition: SimpleParticleData.h:28
ParticleComparer::operator()
bool operator()(const SimpleParticle &, const SimpleParticle &) const
Definition: SimpleParticle.hpp:115
ParticleComparer::ParticleComparer
ParticleComparer(const SimpleParticle &)
Definition: SimpleParticle.hpp:107
SimpleParticle.h
SimpleParticle.hpp
SimpleParticle::moveBy
void moveBy(const Vec3 &v)
Definition: SimpleParticle.hpp:50
SimpleParticle::rotate
void rotate(const Vec3 &rotation, const Vec3 &posn)
Definition: SimpleParticle.hpp:55
SimpleParticle::SimpleParticle
SimpleParticle(const Vec3 &posn, double radius, int id=0, int tag=0)
Definition: SimpleParticle.hpp:14
ParticleComparer
Compares distance of 2 particles to a 3rd particle.
Definition: SimpleParticle.h:63
Vec3
Definition: vec3.h:47
vec3.h
SimpleParticle::moveTo
void moveTo(const Vec3 &v)
Definition: SimpleParticle.hpp:40
Vec3::ZERO
static const Vec3 ZERO
Definition: vec3.h:52
SimpleParticle::INVALID
static const SimpleParticle INVALID
Definition: SimpleParticle.h:27
operator<<
std::ostream & operator<<(std::ostream &oStream, const SimpleParticle &particle)
SimpleParticle::visit
void visit(const TmplVisitor &visitor) const
Definition: SimpleParticle.hpp:86
SimpleParticleData.h
SimpleParticle::setRad
void setRad(double r)
Definition: SimpleParticle.hpp:75