line.rs 624 B

1234567891011121314151617181920212223242526272829
  1. use std::fmt::Display;
  2. use binrw::{BinRead, BinWrite};
  3. use crate::{array_of::ArrayOf, types::Point};
  4. use super::ObjBase;
  5. #[derive(BinRead, BinWrite, Debug)]
  6. pub enum LineType {
  7. #[brw(magic = 0x0001u64)]
  8. Point(Point),
  9. #[brw(magic = 0x0100u64)]
  10. Line { points: ArrayOf<Point> },
  11. #[brw(magic = 0x0300u64)]
  12. Bezier { points: ArrayOf<Point> },
  13. }
  14. #[derive(BinRead, BinWrite, Debug)]
  15. pub struct Lines {
  16. pub base: ObjBase,
  17. pub lines: ArrayOf<LineType>,
  18. }
  19. impl Display for Lines {
  20. fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  21. write!(f, "{}", self.base)
  22. }
  23. }