1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/////////////////////////////////////////////////////////////
// //
// Copyright (c) 2007-2014 by The University of Queensland //
// Centre for Geoscience Computing //
// http://earth.uq.edu.au/centre-geoscience-computing //
// //
// Primary Business: Brisbane, Queensland, Australia //
// Licensed under the Open Software License version 3.0 //
// http://www.opensource.org/licenses/osl-3.0.php //
// //
/////////////////////////////////////////////////////////////
#ifndef __INSERTGENERATOR3D_H
#define __INSERTGENERATOR3D_H
// --- Project includes ---
#include "AGenerator3D.h"
/*!
\class InsertGenerator3D
Packing generator using Place et al. insertion based algorithm in 3D.
*/
class InsertGenerator3D : public AGenerator3D
{
protected:
double m_rmin;
double m_rmax;
double m_max_tries;
int m_max_iter;
double m_prec;
double m_next_tag;
bool m_old_seeding;
virtual void seedParticles(AVolume3D* ,MNTable3D* ,int,int);
virtual void seedParticles(AVolume3D* ,MNTable3D* ,int,int,ShapeList*);
public:
InsertGenerator3D();
InsertGenerator3D(double,double,int,int,double);
InsertGenerator3D(double,double,int,int,double,bool);
virtual ~InsertGenerator3D();
void setOldSeeding(bool);
virtual void fillIn(AVolume3D* ,MNTable3D* ,int,int);
virtual void fillIn(AVolume3D* ,MNTable3D* ,int,int,ShapeList*);
virtual void fillIn(AVolume3D* ,MNTable3D* ,int,int,double);
virtual void generatePacking3 (AVolume3D*,MNTable3D*,int);
virtual void generatePacking4 (AVolume3D*,MNTable3D*,int,int);
virtual void generatePackingMaxVolume(AVolume3D*,MNTable3D*,int,int,double);
virtual void generatePacking (AVolume3D*,MNTable3D*,int,int,ShapeList*);
void setNextTag(int);
friend ostream& operator << (ostream&,const InsertGenerator3D&);
};
#endif // __INSERTGENERATOR2D_H
|