Wave constructor

Wave({
  1. WaveDirection direction = WaveDirection.right2Left,
  2. WaveGravityDirection gravityDirection = WaveGravityDirection.down,
  3. double amplitude = 40.0,
  4. int frequency = 1,
  5. double phase = 0.0,
  6. double offset = 0.75,
  7. bool useScaledOffset = true,
  8. required Color color,
  9. Color? lineColor,
  10. double lineThickness = 2.0,
})

Creates a new Wave object.

Implementation

Wave({
  this.direction = WaveDirection.right2Left,
  this.gravityDirection = WaveGravityDirection.down,
  this.amplitude = 40.0,
  this.frequency = 1,
  this.phase = 0.0,
  this.offset = 0.75,
  this.useScaledOffset = true,
  required this.color,
  this.lineColor,
  this.lineThickness = 2.0,
})  : assert(amplitude >= 0.0),
      assert(frequency >= 0.0),
      assert(phase >= 0.0 && phase <= 1.0),
      assert(
        useScaledOffset ? offset >= 0.0 && offset <= 1.0 : offset >= 0.0,
      ),
      assert(lineThickness >= 0.0),
      assert(
        identical(direction, WaveDirection.left2Right) ||
                identical(direction, WaveDirection.right2Left)
            ? identical(gravityDirection, WaveGravityDirection.down) ||
                identical(gravityDirection, WaveGravityDirection.up) == true
            : identical(gravityDirection, WaveGravityDirection.right) ||
                identical(gravityDirection, WaveGravityDirection.left) ==
                    true,
        'If the wave is horizontal, gravity can only be up or down. If the '
        'wave is vertical, gravity can only be left or right.',
      );