1 6 package com.thoughtriver.open.vectorvisuals; 7 8 import java.util.*; 9 10 21 public class LODManager { 22 23 24 final private SortedSet<Level> levels; 25 26 29 public LODManager() { 30 levels = new TreeSet<Level>(); 31 addLevel(Double.MAX_VALUE, Integer.MAX_VALUE); 32 } 33 34 42 public void addLevel(final double scale, final int detail) { 43 Level level = new Level(scale, detail); 44 levels.add(level); 45 } 46 47 53 public int getLevel(final double scale) { 54 for (Level level : levels) { 55 if (scale <= level.getScale()) { 56 return level.getDetail(); 57 } 58 } 59 60 return 0; 62 } 63 64 70 private class Level implements Comparable <Level> { 71 72 73 final private double scale; 74 75 76 final private int detail; 77 78 87 Level(final double scale, final int detail) { 88 this.scale = scale; 89 this.detail = detail; 90 } 91 92 95 public int compareTo(final Level o) { 96 double diff = getScale() - o.getScale(); 97 return (diff < 0 ? -1 : 1); 98 } 99 100 105 int getDetail() { 106 return detail; 107 } 108 109 114 double getScale() { 115 return scale; 116 } 117 118 } 119 } 120 | Popular Tags |