refactor: excel parse
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# Copyright (c) 2021-2022, Manfred Moitzi
|
||||
# License: MIT License
|
||||
from __future__ import annotations
|
||||
import enum
|
||||
from typing import NamedTuple, Union
|
||||
|
||||
from ezdxf.math import Vec2, Vec3
|
||||
|
||||
__all__ = [
|
||||
"Command",
|
||||
"AnyCurve",
|
||||
"PathElement",
|
||||
"LineTo",
|
||||
"Curve3To",
|
||||
"Curve4To",
|
||||
"MoveTo",
|
||||
]
|
||||
|
||||
|
||||
@enum.unique
|
||||
class Command(enum.IntEnum):
|
||||
LINE_TO = 1 # (LINE_TO, end vertex)
|
||||
CURVE3_TO = 2 # (CURVE3_TO, end vertex, ctrl) quadratic bezier
|
||||
CURVE4_TO = 3 # (CURVE4_TO, end vertex, ctrl1, ctrl2) cubic bezier
|
||||
MOVE_TO = 4 # (MOVE_TO, end vertex), creates a gap and starts a sub-path
|
||||
|
||||
|
||||
class LineTo(NamedTuple):
|
||||
end: Vec2|Vec3
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
return Command.LINE_TO
|
||||
|
||||
|
||||
class MoveTo(NamedTuple):
|
||||
end: Vec2|Vec3
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
return Command.MOVE_TO
|
||||
|
||||
|
||||
class Curve3To(NamedTuple):
|
||||
end: Vec2|Vec3
|
||||
ctrl: Vec2|Vec3
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
return Command.CURVE3_TO
|
||||
|
||||
|
||||
class Curve4To(NamedTuple):
|
||||
end: Vec2|Vec3
|
||||
ctrl1: Vec2|Vec3
|
||||
ctrl2: Vec2|Vec3
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
return Command.CURVE4_TO
|
||||
|
||||
|
||||
AnyCurve = (Command.CURVE3_TO, Command.CURVE4_TO)
|
||||
PathElement = Union[LineTo, Curve3To, Curve4To, MoveTo]
|
||||
Reference in New Issue
Block a user