1 Commits

Author SHA1 Message Date
4e81f4b3cd Übungstest 7 2022-06-09 14:40:49 +02:00
2 changed files with 27 additions and 0 deletions

View File

@ -51,6 +51,12 @@ public class Octree {
if (root == null) return;
root.draw(cd);
}
public int getNumberOfBalancedRegions() {
if (root == null || !(root instanceof OctreeNode r)) return 0;
return r.getNumberOfBalancedRegions();
}
}
abstract class OctreeItem {
@ -149,6 +155,26 @@ class OctreeNode extends OctreeItem {
((octNum & 4) != 0) ? -1 : 1)
.times(this.size / 4));
}
private boolean isBalanced() {
for (OctreeItem i : children) {
if (!(i instanceof OctreeLeaf))
return false;
}
return true;
}
protected int getNumberOfBalancedRegions() {
if (isBalanced()) return 1;
int c = 0;
for (OctreeItem i : children) {
if (i instanceof OctreeNode n) {
c += n.getNumberOfBalancedRegions();
}
}
return c;
}
}
class OctreeLeaf extends OctreeItem {

View File

@ -55,6 +55,7 @@ public class Simulation {
for (Body body : bodies) {
octree.add(body);
}
System.out.println(octree.getNumberOfBalancedRegions());
octree.applyForces(bodies, 100);
if ((seconds % 60) == 0) {