123456789101112131415161718192021222324252627282930313233 |
- import 'package:fis_measure/utils/number.dart';
- import 'package:vid/us/vid_us_unit.dart';
- abstract class UnitMapBase {
- Map<VidUsUnit, double>? _map;
- final VidUsUnit unit;
- UnitMapBase(this.unit) {
- initMap();
- }
- Map<VidUsUnit, double> get map {
- _map ??= <VidUsUnit, double>{};
- return _map!;
- }
- void initMap();
- void add(VidUsUnit target, double scale) {
- map[target] = scale;
- }
- double convert(VidUsUnit target, double value) {
- if (target == unit) return value;
- if (map.containsKey(target)) {
- final scale = map[target]!;
- final result = NumUtil.roundDouble(value / scale, 2);
- return result;
- }
- return value;
- }
- }
|