- // calculate altitude scale factor
- _altFactor = 1.0;
- if (_scaler.getMaximumAlt() >= 0)
- {
- // limit by altitude cap or by data range?
- if (_scaler.getMaximumAlt() > _altitudeCap)
- {
- // data is bigger than cap
- _altFactor = _modelSize / _scaler.getMaximumAlt();
- }
- else
- {
- // capped
- _altFactor = _modelSize / _altitudeCap;
- }
+ // cap altitude scale factor if it's too big
+ double maxScaledAlt = _scaler.getMaxScaledAlt() * _altFactor;
+ if (maxScaledAlt > _modelSize) {
+ // capped
+ _altFactor = _altFactor * _modelSize / maxScaledAlt;