LightingConfig constructor

LightingConfig({
  1. required double radius,
  2. required Color color,
  3. bool withPulse = false,
  4. bool useComponentAngle = false,
  5. Curve pulseCurve = Curves.decelerate,
  6. double pulseVariation = 0.1,
  7. double pulseSpeed = 0.1,
  8. double? blurBorder,
  9. LightingType type = LightingType.circle,
  10. Vector2? align,
  11. LightingMode mode = LightingMode.cutout,
  12. LightFalloff falloff = LightFalloff.blur,
  13. double innerRadius = 0.35,
  14. double intensity = 1,
  15. BlendMode additiveBlendMode = BlendMode.plus,
  16. LightFlicker? flicker,
  17. bool castShadows = false,
})

Implementation

LightingConfig({
  required this.radius,
  required this.color,
  this.withPulse = false,
  this.useComponentAngle = false,
  this.pulseCurve = Curves.decelerate,
  this.pulseVariation = 0.1,
  this.pulseSpeed = 0.1,
  double? blurBorder,
  this.type = LightingType.circle,
  Vector2? align,
  this.mode = LightingMode.cutout,
  this.falloff = LightFalloff.blur,
  this.innerRadius = 0.35,
  this.intensity = 1,
  this.additiveBlendMode = BlendMode.plus,
  this.flicker,
  this.castShadows = false,
})  : assert(intensity >= 0 && intensity <= 1),
      assert(innerRadius >= 0 && innerRadius <= 1),
      align = align?.clone() ?? Vector2.zero(),
      blurBorder = blurBorder ?? radius {
  _pulseAnimation = PulseValue(
    speed: pulseSpeed,
    curve: pulseCurve,
    pulseVariation: pulseVariation,
  );

  _maskFilter = this.blurBorder > 0
      ? MaskFilter.blur(
          BlurStyle.normal,
          _convertRadiusToSigma(this.blurBorder),
        )
      : null;
}