diff --git a/IntervalTree.h b/IntervalTree.h index a6979a0..f309ecb 100644 --- a/IntervalTree.h +++ b/IntervalTree.h @@ -5,8 +5,7 @@ #include #include - -template +template class Interval { public: K start; @@ -20,12 +19,12 @@ class Interval { }; template -int intervalStart(const Interval& i) { +K intervalStart(const Interval& i) { return i.start; } template -int intervalStop(const Interval& i) { +K intervalStop(const Interval& i) { return i.stop; } @@ -35,7 +34,7 @@ template return out; } -template +template class IntervalStartSorter { public: bool operator() (const Interval& a, const Interval& b) { @@ -43,7 +42,7 @@ class IntervalStartSorter { } }; -template +template class IntervalTree { public: @@ -54,7 +53,7 @@ class IntervalTree { intervalVector intervals; intervalTree* left; intervalTree* right; - int center; + K center; IntervalTree(void) : left(NULL) @@ -96,11 +95,11 @@ class IntervalTree { IntervalTree( intervalVector& ivals, - unsigned int depth = 16, - unsigned int minbucket = 64, - int leftextent = 0, - int rightextent = 0, - unsigned int maxbucket = 512 + std::size_t depth = 16, + std::size_t minbucket = 64, + K leftextent = 0, + K rightextent = 0, + std::size_t maxbucket = 512 ) : left(NULL) , right(NULL) @@ -117,9 +116,9 @@ class IntervalTree { std::sort(ivals.begin(), ivals.end(), intervalStartSorter); } - int leftp = 0; - int rightp = 0; - int centerp = 0; + K leftp = 0; + K rightp = 0; + K centerp = 0; if (leftextent || rightextent) { leftp = leftextent;