code: private void addPoint() {
  		ControlPoint point = new ControlPoint(Color.white, 0.5f);
  		for (int i=0;i<list.size()-1;i++) {
  			ControlPoint now = (ControlPoint) list.get(i);
  			ControlPoint next = (ControlPoint) list.get(i+1);
  			if ((now.pos <= 0.5f) && (next.pos >=0.5f)) {
  				list.add(i+1,point);
  				break;
  			}
  			
  		}
  		selected = point;
  		sortPoints();
  		repaint(0);
  		
  		fireUpdate();
  	}
docs: Add a new control point