ESyS-Particle
4.0.1
Main Page
Related Pages
Namespaces
Classes
Files
File List
Geometry
RandomAssembly3D.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
#ifndef __RANDOMASSEMBLY3D_H
14
#define __RANDOMASSEMBLY3D_H
15
16
//-- project includes --
17
#include "Geometry/ARandomAssembly.h"
18
#include "Geometry/SimpleParticle.h"
19
#include "Geometry/BasicInteraction.h"
20
#include "Geometry/Plane.h"
21
22
//-- STL includes --
23
#include <vector>
24
#include <set>
25
26
using
std::set;
27
using
std::vector;
28
37
class
ARandomAssembly3D
:
public
ARandomAssembly
38
{
39
protected
:
40
vector<Plane> Borders;
41
double
m_rmin,
m_rmax
;
42
double
m_xmin,m_xmax,m_ymin,m_ymax,m_zmin,
m_zmax
;
43
bool
m_circ_x;
44
45
virtual
Vec3
getAPoint()=0;
46
47
bool
findAFit
(
SimpleParticle
&,
const
vector<SimpleParticle>&);
48
bool
findAFit
(
SimpleParticle
&,
const
vector<SimpleParticle>&,
const
Plane
&);
49
virtual
bool
checkAFit
(
const
SimpleParticle
&);
50
virtual
Plane
getClosestPlane
(
const
SimpleParticle
&);
51
void
fillSpace
(
int
);
52
virtual
int
getNParts()
const
=0;
53
54
public
:
55
virtual
void
generate(
int
,
unsigned
int
)=0;
56
virtual
void
insertParticle(
const
SimpleParticle
)=0;
57
virtual
void
tagParticleClosestTo(
const
Vec3
&,
int
)=0;
58
virtual
void
tagEdgeY(
int
,
int
,
double
)=0;
59
virtual
void
tagEdgeZ(
int
,
int
,
double
)=0;
60
};
61
62
#endif // __RANDOMASSEMBLY3D_H
Generated on Sat Mar 22 2014 08:30:43 for ESyS-Particle by
1.8.1.2