Line data Source code
1 : // Copyright 2023 The terCAD team. All rights reserved.
2 : // Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.
3 :
4 : import 'dart:math';
5 :
6 : import 'package:material_ui/material_ui.dart';
7 :
8 : extension ColorExt on Color {
9 0 : MaterialColor get toMaterialColor {
10 0 : final Map<int, Color> colorMap = {};
11 0 : for (int i = 50; i <= 900; i += 100) {
12 0 : colorMap[i] = withValues(alpha: i / 1000.0);
13 : }
14 0 : return MaterialColor(toARGB32(), colorMap);
15 : }
16 :
17 0 : static Color getRandom() {
18 : List<Color> colors = Colors.primaries;
19 0 : Random random = Random();
20 0 : return colors[random.nextInt(colors.length)];
21 : }
22 :
23 0 : static MaterialColor getRandomMaterialColor() {
24 0 : return getRandom().toMaterialColor;
25 : }
26 :
27 0 : Color mesh(Color color, double percent) =>
28 0 : HSLColor.lerp(HSLColor.fromColor(this), HSLColor.fromColor(color), percent)!.toColor();
29 : }
|