- if(_transform[i].step > 0) {
- double scrollval = 0.0;
- if(_transform[i].scroll > 0) {
- // calculate scroll amount (for odometer like movement)
- double remainder = _transform[i].step - fmod(fabs(_transform[i].prop->getDoubleValue()), _transform[i].step);
- if (remainder < _transform[i].scroll) {
- scrollval = (_transform[i].scroll - remainder) / _transform[i].scroll * _transform[i].step;
- }
- }
- // apply stepping of input value
- if(_transform[i].prop->getDoubleValue() > 0)
- _transform[i].position = ((floor(_transform[i].prop->getDoubleValue()/_transform[i].step) * _transform[i].step) + _transform[i].offset) * _transform[i].factor;
- else
- _transform[i].position = ((ceil(_transform[i].prop->getDoubleValue()/_transform[i].step) * _transform[i].step) + _transform[i].offset) * _transform[i].factor;
- } else {
- _transform[i].position = (_transform[i].prop->getDoubleValue() + _transform[i].offset) * _transform[i].factor;
- }
+ _transform[i].position = (apply_mods(_transform[i].prop->getDoubleValue(), _transform[i].step,_transform[i].scroll) + _transform[i].offset) * _transform[i].factor;