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:flutter/material.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 6 : colorMap[i] = Color.fromRGBO(red, green, blue, i / 1000.0); 13 : } 14 2 : return MaterialColor(value, 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 0 : Color mesh(Color color, double percent) => 28 0 : HSLColor.lerp(HSLColor.fromColor(this), HSLColor.fromColor(color), percent)!.toColor(); 29 : }