public void Move() { if (IsOutside) { return; } if (CompEngine) { step = CompEngine.EngineStep; } else { step = 0; } for (int i = 0; i < Quantity; i++) { CompCar = Cars [i]; if (i == 0) { CompCar.MoveByPath(step); CompCar.BogeyLeft.CalcCompositionPosition(CompCar, CompCar.BogeyLeft.Offset); CompCar.BogeyRight.CalcCompositionPosition(CompCar, CompCar.BogeyRight.Offset); } else { CompCar.CalcCompositionPosition(Cars [i - 1], Constants.RS_OFFSET); CompCar.BogeyLeft.CalcCompositionPosition(CompCar, CompCar.BogeyLeft.Offset); CompCar.BogeyRight.CalcCompositionPosition(CompCar, CompCar.BogeyRight.Offset); } } }