import 'plant.dart'; class Beet { List beetrows= [BeetRow()]; void Add(BeetRow beetrow){ beetrows.add(beetrow); } } class BeetRow { List plants= []; double get verticalSpace { return getMaxVerticalSpace(this); } double get horizontalSpace { return plants.map((plant) => plant.horizontalSpace) .reduce((value, element) => value+=element); } void Add(Plant plant){ plants.add(plant); } } double getMaxVerticalSpace(BeetRow beetrow) { double maxVerticalSpace = 0; for (var plant in beetrow.plants) { if (plant.verticalSpace > maxVerticalSpace) { maxVerticalSpace = plant.verticalSpace; } } return maxVerticalSpace; } double getMaxHorizontalSpace(Beet beet) { double maxHorizontalSpace = 0; for (var beetrow in beet.beetrows) { if (beetrow.horizontalSpace > maxHorizontalSpace) { maxHorizontalSpace = beetrow.horizontalSpace; } } return maxHorizontalSpace; }