particle_cell_2D_memo.h 1.12 KB
Newer Older
Pierre Kraemer's avatar
Pierre Kraemer committed
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
#ifndef PARTCELL2DMEMO_H
#define PARTCELL2DMEMO_H

#include "particle_cell_2D.h"

#include "Algo/Geometry/inclusion.h"
#include "Geometry/intersection.h"
#include "Geometry/orientation.h"
#include <iostream>

/* A particle cell is a particle base within a map, within a precise cell, the displacement function should indicate
   after each displacement wherein lies the new position of the particle */

namespace CGoGN
{

namespace Algo
{

namespace MovingObjects
{

template <typename PFP>
class ParticleCell2DMemo : public ParticleCell2D<PFP>
{

	public :
	typedef typename PFP::MAP Map;
	typedef typename PFP::VEC3 VEC3;
30
	typedef VertexAttribute<typename PFP::VEC3> TAB_POS;
Pierre Kraemer's avatar
Pierre Kraemer committed
31
32
33
34
35

	std::list<Dart> memo_cross;

	ParticleCell2DMemo() {};

pitiot's avatar
pitiot committed
36
	ParticleCell2DMemo(Map& map, Dart belonging_cell, VEC3 pos,const TAB_POS& tabPos) : ParticleCell2D<PFP>(map,belonging_cell,pos,tabPos)
Pierre Kraemer's avatar
Pierre Kraemer committed
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
	{};

	void vertexState(const VEC3& current);

	void edgeState(const VEC3& current,Geom::Orientation2D sideOfEdge=Geom::ALIGNED);

	void faceState(const VEC3& current);

	void move(const VEC3& newCurrent);
};

#include "particle_cell_2D_memo.hpp"
//namespace

}

}

}

#endif