FResizableRegionData constructor

FResizableRegionData({
  1. required int index,
  2. required ({double max, double min, double total}) extent,
  3. required ({double max, double min}) offset,
})

Implementation

new({required this.index, required ({double min, double max, double total}) extent, required this.offset})
  : assert(0 <= index, 'index ($index) must be >= 0'),
    assert(0 < extent.min, 'extent.min (${extent.min}) must be > 0'),
    assert(extent.min < extent.max, 'min ${extent.min} must be < max ${extent.max}'),
    assert(extent.max <= extent.total, 'extent.max (${extent.max}) must be <= extent.total (${extent.total})'),
    assert(0 <= offset.min, 'offset.min ${offset.min} must be >= 0'),
    assert(offset.min < offset.max, 'offset.min (${offset.min}) must be < offset.max (${offset.max})'),
    assert(
      0.0.lessOrAround(offset.max - offset.min) && (offset.max - offset.min).lessOrAround(extent.max),
      'Current extent (${offset.max - offset.min}) must be >= 0 and <= extent.max (${extent.max})',
    ),
    extent = (min: extent.min, current: offset.max - offset.min, max: extent.max, total: extent.total);