nextrpg.geometry.dimension

 1from dataclasses import dataclass
 2from typing import Self
 3
 4type Pixel = int | float
 5type PixelPerMillisecond = int | float
 6type ValueScaling = int | float
 7type Percentage = float
 8
 9
10@dataclass(frozen=True)
11class Dimension:
12    value: Pixel
13
14    def __lt__(self, other: Self) -> bool:
15        return self.value < other.value
16
17    def __le__(self, other: Self) -> bool:
18        return self.value <= other.value
19
20    def __neg__(self) -> Self:
21        return type(self)(-self.value)
22
23    def __add__(self, other: Self) -> Self:
24        return type(self)(self.value + other.value)
25
26    def __sub__(self, other: Self) -> Self:
27        return self + -other
28
29    def __mul__(self, other: ValueScaling) -> Self:
30        return type(self)(self.value * other)
31
32    def __rmul__(self, other: ValueScaling) -> Self:
33        return self * other
34
35    def __truediv__(self, other: ValueScaling) -> Self:
36        return self * (1.0 / other)
37
38    def __rtruediv__(self, other: ValueScaling) -> Self:
39        return other * (1.0 / self)
type Pixel = int | float
type PixelPerMillisecond = int | float
type ValueScaling = int | float
type Percentage = float
@dataclass(frozen=True)
class Dimension:
11@dataclass(frozen=True)
12class Dimension:
13    value: Pixel
14
15    def __lt__(self, other: Self) -> bool:
16        return self.value < other.value
17
18    def __le__(self, other: Self) -> bool:
19        return self.value <= other.value
20
21    def __neg__(self) -> Self:
22        return type(self)(-self.value)
23
24    def __add__(self, other: Self) -> Self:
25        return type(self)(self.value + other.value)
26
27    def __sub__(self, other: Self) -> Self:
28        return self + -other
29
30    def __mul__(self, other: ValueScaling) -> Self:
31        return type(self)(self.value * other)
32
33    def __rmul__(self, other: ValueScaling) -> Self:
34        return self * other
35
36    def __truediv__(self, other: ValueScaling) -> Self:
37        return self * (1.0 / other)
38
39    def __rtruediv__(self, other: ValueScaling) -> Self:
40        return other * (1.0 / self)
Dimension(value: Pixel)
value: Pixel