PatternData.fromArrays constructor

PatternData.fromArrays({
  1. required List<List<double>> amplitude,
  2. required List<List<double>> frequency,
  3. required List<List<double>> discrete,
})

Raw array constructor matching the native iOS/Android shorthand:

PatternData.fromArrays(
  amplitude: [[0, 0.5], [500, 1.0]],
  frequency: [[0, 0.3]],
  discrete: [[100, 1.0, 0.8]],
);

Each amplitude/frequency entry is [time, value]; each discrete entry is [time, amplitude, frequency].

Implementation

factory PatternData.fromArrays({
  required List<List<double>> amplitude,
  required List<List<double>> frequency,
  required List<List<double>> discrete,
}) {
  return PatternData(
    continuousPattern: ContinuousPattern(
      amplitude:
          amplitude.map((p) => ValuePoint(time: p[0], value: p[1])).toList(),
      frequency:
          frequency.map((p) => ValuePoint(time: p[0], value: p[1])).toList(),
    ),
    discretePattern:
        discrete
            .map(
              (p) =>
                  DiscretePoint(time: p[0], amplitude: p[1], frequency: p[2]),
            )
            .toList(),
  );
}