Two optimizations: - If a value remains the same, nothing happens - Recompute geometry only before drawing and bound access, not after each set Closes #413