Line data Source code
1 : import 'package:mrx_icon_font_gen/parser/path/model/arguments/coordinate_pair.dart'; 2 : import 'package:mrx_icon_font_gen/parser/path/model/command_arguments.dart'; 3 : 4 : class CoordinatePairSequence extends CommandArguments { 5 : final List<CoordinatePair> coordinatePairs; 6 : 7 14 : CoordinatePairSequence({ 8 : required this.coordinatePairs, 9 : }); 10 : 11 10 : @override 12 : String toString() { 13 20 : return coordinatePairs.join(' '); 14 : } 15 : 16 14 : @override 17 : bool operator ==(Object other) { 18 14 : if (other is! CoordinatePairSequence) { 19 : return false; 20 : } 21 70 : if (other.coordinatePairs.length != coordinatePairs.length) { 22 : return false; 23 : } 24 56 : for (int i = 0; i < coordinatePairs.length; i++) { 25 70 : if (other.coordinatePairs[i] != coordinatePairs[i]) { 26 : return false; 27 : } 28 : } 29 : return true; 30 : } 31 : 32 10 : @override 33 20 : int get hashCode => Object.hashAll(coordinatePairs); 34 : } 35 : 36 : class CoordinatePairDouble extends CoordinatePairSequence { 37 5 : CoordinatePairDouble({ 38 : required List<CoordinatePair> coordinatePairs, 39 5 : }) : super( 40 : coordinatePairs: coordinatePairs, 41 : ); 42 : } 43 : 44 : class CoordinatePairTriplet extends CoordinatePairSequence { 45 4 : CoordinatePairTriplet({ 46 : required List<CoordinatePair> coordinatePairs, 47 4 : }) : super( 48 : coordinatePairs: coordinatePairs, 49 : ); 50 : }