diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-04-07 18:04:29 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-04-07 18:04:29 +0200 |
| commit | 4bb6240b401605ef6d905273db07545e14f9a21f (patch) | |
| tree | b01163a5fce3fe62d16abcbdabf37bc373617ff1 /src/geom/point.rs | |
| parent | 1192132dc0a9e991953fd29e93f87c8437a53ea0 (diff) | |
Make `Relative` generic
Diffstat (limited to 'src/geom/point.rs')
| -rw-r--r-- | src/geom/point.rs | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/geom/point.rs b/src/geom/point.rs index 6d77507b..afce68ba 100644 --- a/src/geom/point.rs +++ b/src/geom/point.rs @@ -35,20 +35,25 @@ impl Point { Self { x: Length::zero(), y } } - /// Whether both components are zero. - pub fn is_zero(self) -> bool { - self.x.is_zero() && self.y.is_zero() - } - /// Transform the point with the given transformation. - pub fn transform(self, transform: Transform) -> Self { + pub fn transform(self, ts: Transform) -> Self { Self::new( - transform.sx.resolve(self.x) + transform.kx.resolve(self.y) + transform.tx, - transform.ky.resolve(self.x) + transform.sy.resolve(self.y) + transform.ty, + ts.sx.resolve(self.x) + ts.kx.resolve(self.y) + ts.tx, + ts.ky.resolve(self.x) + ts.sy.resolve(self.y) + ts.ty, ) } } +impl Numeric for Point { + fn zero() -> Self { + Self::zero() + } + + fn is_finite(self) -> bool { + self.x.is_finite() && self.y.is_finite() + } +} + impl Get<SpecAxis> for Point { type Component = Length; |
