ESyS-Particle
4.0.1
Main Page
Related Pages
Namespaces
Classes
Files
File List
Geometry
SimpleParticle.h
1
2
// //
3
// Copyright (c) 2003-2011 by The University of Queensland //
4
// Earth Systems Science Computational Centre (ESSCC) //
5
// http://www.uq.edu.au/esscc //
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
14
#ifndef SIMPLEPARTICLE_H
15
#define SIMPLEPARTICLE_H
16
17
#include "Foundation/console.h"
18
#include "Foundation/vec3.h"
19
#include "Geometry/SimpleParticleData.h"
20
24
class
SimpleParticle
:
public
esys::lsm::SimpleParticleData
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
62
class
ParticleComparer
63
{
64
private
:
65
const
SimpleParticle
*m_pParticle;
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
77
#include "Geometry/SimpleParticle.hpp"
78
79
#endif
Generated on Sun Apr 13 2014 05:18:51 for ESyS-Particle by
1.8.1.2