1 #include "TKDInterpolator.h"
2 #include "TKDNodeInfo.h"
4 #include "TClonesArray.h"
6 ClassImp(TKDInterpolator)
10 //_________________________________________________________________
11 TKDInterpolator::TKDInterpolator() :
14 // Default constructor. To be used with care since in this case building
15 // of data structure is completly left to the user responsability.
18 //_________________________________________________________________
19 TKDInterpolator::TKDInterpolator(Int_t ndim, Int_t npoints) :
20 TKDInterpolatorBase(ndim)
22 // Wrapper constructor for the TKDTree.
24 if(npoints) TKDInterpolatorBase::Build(npoints);
28 //_________________________________________________________________
29 TKDInterpolator::~TKDInterpolator()
33 //_________________________________________________________________
34 void TKDInterpolator::AddNode(const TKDNodeInfo &node)
37 printf("W - TKDInterpolator::SetNode() : Node array not defined.\n");
41 new((*fTNodes)[fNTNodes++]) TKDNodeInfo(node);
44 //_________________________________________________________________
45 void TKDInterpolator::Build(Int_t npoints, Int_t ndim)
48 TKDInterpolatorBase::Build(npoints);
51 //_________________________________________________________________
52 Int_t TKDInterpolator::GetNodeIndex(const Float_t *p)
54 /* printf("TKDInterpolator::GetNodeIndex() ...\n");
55 printf("Looking for p[");
56 for(int i=0; i<fNSize; i++) printf("%f ", p[i]);
59 for(int inode=0; inode<fNTNodes; inode++){
60 node = (TKDNodeInfo*)(*fTNodes)[inode];
62 if(node->Has(p)) return inode;
68 //_________________________________________________________________
69 Bool_t TKDInterpolator::SetNode(Int_t inode, const TKDNodeInfo &ref)
72 printf("W - TKDInterpolator::SetNode() : Node array not defined.\n");
75 if(inode >= fNTNodes){
76 printf("W - TKDInterpolator::SetNode() : Node array defined up to %d.\n", fNTNodes);
79 TKDNodeInfo *node = (TKDNodeInfo*)(*fTNodes)[inode];