OctTree is now a full template
This commit is contained in:
parent
730185ff89
commit
29f991f0d4
@ -6,7 +6,6 @@ SET(CosmoTool_SRCS
|
||||
load_data.cpp
|
||||
loadGadget.cpp
|
||||
loadRamses.cpp
|
||||
octTree.cpp
|
||||
powerSpectrum.cpp
|
||||
miniargs.cpp
|
||||
growthFactor.cpp
|
||||
|
@ -186,4 +186,6 @@ namespace CosmoTool
|
||||
};
|
||||
|
||||
|
||||
#include "octTree.tcc"
|
||||
|
||||
#endif
|
||||
|
@ -39,8 +39,9 @@ knowledge of the CeCILL license and that you accept its terms.
|
||||
#include "config.hpp"
|
||||
#include "octTree.hpp"
|
||||
|
||||
namespace CosmoTool {
|
||||
|
||||
using namespace std;
|
||||
using namespace CosmoTool;
|
||||
|
||||
//#define VERBOSE
|
||||
|
||||
@ -59,7 +60,8 @@ static uint32_t mypow(uint32_t i, uint32_t p)
|
||||
return j*j*i;
|
||||
}
|
||||
|
||||
OctTree::OctTree(const FCoordinates *particles, octPtr numParticles,
|
||||
template<typename Updater, typename T>
|
||||
OctTree<Updater,T>::OctTree(const FCoordinates *particles, octPtr numParticles,
|
||||
uint32_t maxMeanTreeDepth, uint32_t maxAbsoluteDepth,
|
||||
uint32_t threshold)
|
||||
{
|
||||
@ -94,7 +96,7 @@ OctTree::OctTree(const FCoordinates *particles, octPtr numParticles,
|
||||
}
|
||||
cout << xMin[0] << " " << xMin[1] << " " << xMin[2] << " lNorm=" << lenNorm << endl;
|
||||
|
||||
cells = new OctCell[numCells];
|
||||
cells = new OctCell<T>[numCells];
|
||||
Lbox = (float)(octCoordTypeNorm+1);
|
||||
|
||||
cells[0].numberLeaves = 0;
|
||||
@ -110,12 +112,14 @@ OctTree::OctTree(const FCoordinates *particles, octPtr numParticles,
|
||||
//#endif
|
||||
}
|
||||
|
||||
OctTree::~OctTree()
|
||||
template<typename Updater, typename T>
|
||||
OctTree<Updater,T>::~OctTree()
|
||||
{
|
||||
delete cells;
|
||||
}
|
||||
|
||||
void OctTree::buildTree(uint32_t maxAbsoluteDepth)
|
||||
template<typename Updater, typename T>
|
||||
void OctTree<Updater,T>::buildTree(uint32_t maxAbsoluteDepth)
|
||||
{
|
||||
for (octPtr i = 0; i < numParticles; i++)
|
||||
{
|
||||
@ -129,7 +133,8 @@ void OctTree::buildTree(uint32_t maxAbsoluteDepth)
|
||||
}
|
||||
|
||||
|
||||
void OctTree::insertParticle(octPtr node,
|
||||
template<typename Updater, typename T>
|
||||
void OctTree<Updater,T>::insertParticle(octPtr node,
|
||||
const OctCoords& icoord,
|
||||
octCoordType halfNodeLength,
|
||||
octPtr particleId,
|
||||
@ -208,3 +213,5 @@ void OctTree::insertParticle(octPtr node,
|
||||
cells[node].children[octPos] = newNode;
|
||||
}
|
||||
|
||||
|
||||
};
|
Loading…
Reference in New Issue
Block a user