area_abstract.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import 'package:fis_measure/interfaces/date_types/point.dart';
  2. import 'package:fis_measure/interfaces/process/items/item.dart';
  3. import 'package:fis_measure/interfaces/process/items/item_metas.dart';
  4. import 'package:fis_measure/process/items/item.dart';
  5. import 'package:fis_measure/process/items/item_feature.dart';
  6. abstract class AreaItemAbstract extends MeasureItem<AreaItemFeatureAbstract> {
  7. bool _isClosed = true;
  8. AreaItemAbstract(ItemMeta meta, IMeasureItem? parent) : super(meta, parent);
  9. bool get isClosed => _isClosed;
  10. set isClosed(bool val) {
  11. if (val != _isClosed) {
  12. _isClosed = val;
  13. }
  14. }
  15. }
  16. abstract class AreaItemFeatureAbstract extends MeasureItemFeature {
  17. double _splineTension = 0.0;
  18. bool _isClosed = true;
  19. AreaItemFeatureAbstract(AreaItemAbstract refItem) : super(refItem) {
  20. isClosed = refItem.isClosed;
  21. }
  22. double get splineTension => _splineTension;
  23. set splineTension(double val) {
  24. if (val != _splineTension) {
  25. _splineTension = val;
  26. }
  27. }
  28. DPoint get startPoint => innerPoints.first;
  29. DPoint get endPoint => innerPoints.last;
  30. bool get isClosed => _isClosed;
  31. set isClosed(bool val) {
  32. if (val != _isClosed) {
  33. _isClosed = val;
  34. }
  35. }
  36. /// 接收新坐标
  37. void adopt(DPoint point) {
  38. innerPoints.add(point);
  39. }
  40. }