/** Calculates the x and y min and pax pos of this opject */ private void generateMaxMinPos() { if (this.lanes.size() > 0) { float maxPos[] = {0, 0}; float minPos[] = { this.lanes.get(0).getMinPos().getComponent(0), this.lanes.get(0).getMinPos().getComponent(1) }; for (IUIAdapterLane<?> lane : this.lanes) { for (int ix = 0; ix <= 1; ix++) { // Max position if (maxPos[ix] < lane.getMaxPos().getComponent(ix)) { maxPos[ix] = lane.getMaxPos().getComponent(ix); } // Min position if (minPos[ix] > lane.getMinPos().getComponent(ix)) { minPos[ix] = lane.getMinPos().getComponent(ix); } } } this.maxPos = new Vector(maxPos); this.minPos = new Vector(minPos); } else { this.maxPos = this.minPos = new Vector(new float[] {0, 0}); } }
@Override public void move(IVector pos) { for (IUIAdapterLane<?> lane : this.lanes) { lane.move(pos); } // calculate the new max and min pos this.generateMaxMinPos(); }
@Override public void setScale(float scale) throws Exception { for (IUIAdapterLane<?> lane : this.lanes) { lane.setScale(scale); } // calculate the new max and min pos this.generateMaxMinPos(); }