1 public class TestRunner {
3 public static void main(String args[]) {
5 TestRunner r = new TestRunner();
14 Vector leafNodeVector=new Vector(nBodies);
17 // for (int i = 0; i < nBodies; i++) {
18 // leafNodeVector.insertElementAt(new LeafNodeData(), i);
22 TreeIndexGraph tree = new TreeIndexGraph();
23 TreeIndexNode root = tree.createNode(null);
26 for (int i = 0; i < nBodies; i++) {
27 LeafNodeData leaf=new LeafNodeData();
28 TreeIndexNode treenode = tree.createNode(leaf);
29 leafNodeVector.insertElementAt(treenode, i);
30 insert(tree, root,leaf);
33 for(int i=0; i<nBodies;i++){
34 TreeIndexNode body =(TreeIndexNode) leafNodeVector.elementAt(i);
36 // body.computeForce(root);
37 body.computeForce(root);
41 for(int i=0; i<nBodies;i++){
42 ((TreeIndexNode)leafNodeVector.elementAt(i)).advance();
47 private void insert(TreeIndexGraph tree, TreeIndexNode nn, LeafNodeData leafNodeData) {
48 if (nn.children==null)
49 nn.children=new TreeIndexNode[2];
50 if (nn.children[0] == null) {
51 TreeIndexNode newNode = tree.createNode(leafNodeData);
52 tree.addNode(newNode);
53 nn.children[0] = newNode;
54 } else { // if left is already occupied
55 if (nn.children[1] != null) {
56 insert(tree, nn.children[1], leafNodeData);
58 TreeIndexNode newNode = tree.createNode(null);
59 tree.addNode(newNode);
60 nn.children[1] = newNode;
61 insert(tree, newNode, leafNodeData);
72 // public void setRoot(TreeNode r) {
76 // public void computeForce() {
80 // public void traverse(TreeNode node) {
81 // if (node.body != null) {
82 // // if current one is a body
83 // acc += node.body.pos;
85 // traverse(node.left);
86 // traverse(node.right);
98 // public TreeNode(Body b) {
102 // public void addLeftChild(TreeNode n) {
106 // public void addRightChild(TreeNode n) {
110 // public TreeNode getLeftChild() {
114 // public TreeNode getRightChild() {