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 1 : MaterialColor get toMaterialColor {
10 1 : final Map<int, Color> colorMap = {};
11 2 : for (int i = 50; i <= 900; i += 100) {
12 3 : colorMap[i] = withValues(alpha: i / 1000.0);
13 : }
14 2 : return MaterialColor(toARGB32(), colorMap);
15 : }
16 :
17 1 : static Color getRandom() {
18 : List<Color> colors = Colors.primaries;
19 1 : Random random = Random();
20 3 : return colors[random.nextInt(colors.length)];
21 : }
22 :
23 1 : static MaterialColor getRandomMaterialColor() {
24 2 : return getRandom().toMaterialColor;
25 : }
26 :
27 1 : Color mesh(Color color, double percent) =>
28 4 : HSLColor.lerp(HSLColor.fromColor(this), HSLColor.fromColor(color), percent)!.toColor();
29 : }
|