-
Notifications
You must be signed in to change notification settings - Fork 28
/
TreeNode.h
43 lines (31 loc) · 1.02 KB
/
TreeNode.h
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/** @file TreeNode.h
This header defines the structures used to make up trees.
@author Graeme Lufkin (gwl@u.washington.edu)
@date 01 Aug 2005 - Deleted the class SFCTreeNode in favor of GenericTreeNode, Filippo
*/
#ifndef TREENODE_H
#define TREENODE_H
#include <sstream>
#include "SFC.h"
namespace TreeStuff {
using namespace SFC;
/// @brief Convert a Key into a printable string.
inline std::string keyBits(const Key k, const int numBits) {
std::ostringstream oss;
//oss << "N";
bool ready = false;
for(int i = 0; i < numBits; i++) {
Key k2 = k & (static_cast<Key>(1) << (62 - i));
if (ready) oss << (k2 ? 1 : 0);
else if (k2 != 0) ready = true;
}
return oss.str();
}
/// This converts a "radius to the furthest particle" to the standard
/// Barnes-Hut cell size. We use it to keep the definition of theta
/// consistent.
const double opening_geometry_factor = 2 / sqrt(3.0);
/// The maximum number of particles in a bucket.
extern int maxBucketSize;
} //close namespace TreeStuff
#endif //TREENODE_H