FAbstractMover.hpp 1.51 KB
Newer Older
1
// ===================================================================================
2 3 4 5
// Copyright ScalFmm 2016 INRIA, Olivier Coulaud, Bérenger Bramas,
// Matthias Messner olivier.coulaud@inria.fr, berenger.bramas@inria.fr
// This software is a computer program whose purpose is to compute the
// FMM.
6
//
7
// This software is governed by the CeCILL-C and LGPL licenses and
8
// abiding by the rules of distribution of free software.
9 10 11
// An extension to the license is given to allow static linking of scalfmm
// inside a proprietary application (no matter its license).
// See the main license file for more details.
12 13 14 15
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 17 18
// GNU General Public and CeCILL-C Licenses for more details.
// "http://www.cecill.info".
// "http://www.gnu.org/licenses".
19 20 21 22
// ===================================================================================
#ifndef FABSTRACTLEAFINTERFACE_HPP
#define FABSTRACTLEAFINTERFACE_HPP

23
template<class FReal,class OctreeClass,class ParticleClass>
24 25
class FAbstractMover{
public:
26 27
    virtual void getParticlePosition(ParticleClass* lf, const FSize idxPart, FPoint<FReal>* particlePos) = 0;
    virtual void removeFromLeafAndKeep(ParticleClass* lf, const FPoint<FReal>& particlePos, const FSize idxPart, FParticleType type) = 0;
28 29 30 31 32 33 34 35
    virtual void insertAllParticles(OctreeClass* tree) = 0;
};





#endif //FABSTRACTLEAFINTERFACE_HPP