From 0acf4733c834df68b6ada89169ecd853c5c8baab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Saint-Sevin?= Date: Wed, 3 May 2023 15:37:45 +0200 Subject: [PATCH] clean centroid & default_pin code --- lib/scenic/primitive/line.ex | 12 ++---------- lib/scenic/primitive/quad.ex | 21 ++++++++++----------- lib/scenic/primitive/rectangle.ex | 7 +------ lib/scenic/primitive/rounded_rectangle.ex | 11 +++-------- lib/scenic/primitive/triangle.ex | 10 +--------- 5 files changed, 17 insertions(+), 44 deletions(-) diff --git a/lib/scenic/primitive/line.ex b/lib/scenic/primitive/line.ex index 6152e486..2090528f 100644 --- a/lib/scenic/primitive/line.ex +++ b/lib/scenic/primitive/line.ex @@ -93,10 +93,11 @@ defmodule Scenic.Primitive.Line do # -------------------------------------------------------- def default_pin(data), do: centroid(data) + def default_pin(data, _styles), do: centroid(data) # -------------------------------------------------------- @doc """ - Returns a the midpoint of the line. This is used as the default pin when applying + Returns the midpoint of the line. This is used as the default pin when applying rotate or scale transforms. """ def centroid(data) @@ -116,13 +117,4 @@ defmodule Scenic.Primitive.Line do |> Scenic.Math.Vector2.project(mx) |> Scenic.Math.Vector2.bounds() end - - # -------------------------------------------------------- - @doc false - def default_pin({{x0, y0}, {x1, y1}}, _styles) do - { - (x0 + x1) / 2, - (y0 + y1) / 2 - } - end end diff --git a/lib/scenic/primitive/quad.ex b/lib/scenic/primitive/quad.ex index e0b58331..f0f52fa7 100644 --- a/lib/scenic/primitive/quad.ex +++ b/lib/scenic/primitive/quad.ex @@ -103,9 +103,17 @@ defmodule Scenic.Primitive.Quad do end # -------------------------------------------------------- - def default_pin(data) + def default_pin(data), do: centroid(data) + def default_pin(data, _styles), do: centroid(data) - def default_pin({{x0, y0}, {x1, y1}, {x2, y2}, {x3, y3}}) do + # -------------------------------------------------------- + @doc """ + Returns the centroid of the quad. This is used as the default pin when applying + rotate or scale transforms. + """ + def centroid(data) + + def centroid({{x0, y0}, {x1, y1}, {x2, y2}, {x3, y3}}) do { (x0 + x1 + x2 + x3) / 4, (y0 + y1 + y2 + y3) / 4 @@ -149,13 +157,4 @@ defmodule Scenic.Primitive.Quad do # assumes convex, which is verified above Triangle.contains_point?({p0, p1, p2}, px) || Triangle.contains_point?({p1, p2, p3}, px) end - - # -------------------------------------------------------- - @doc false - def default_pin({{x0, y0}, {x1, y1}, {x2, y2}, {x3, y3}}, _styles) do - { - (x0 + x1 + x2 + x3) / 4, - (y0 + y1 + y2 + y3) / 4 - } - end end diff --git a/lib/scenic/primitive/rectangle.ex b/lib/scenic/primitive/rectangle.ex index 4b3a548d..39ba597f 100644 --- a/lib/scenic/primitive/rectangle.ex +++ b/lib/scenic/primitive/rectangle.ex @@ -90,6 +90,7 @@ defmodule Scenic.Primitive.Rectangle do # -------------------------------------------------------- def default_pin(data), do: centroid(data) + def default_pin(data, _styles), do: centroid(data) # -------------------------------------------------------- @doc """ @@ -110,10 +111,4 @@ defmodule Scenic.Primitive.Rectangle do # yp must be less than the height xp * w >= 0 && yp * h >= 0 && abs(xp) <= abs(w) && abs(yp) <= abs(h) end - - # -------------------------------------------------------- - @doc false - def default_pin({width, height}, _styles) do - {width / 2, height / 2} - end end diff --git a/lib/scenic/primitive/rounded_rectangle.ex b/lib/scenic/primitive/rounded_rectangle.ex index 249c5b73..f05e56b8 100644 --- a/lib/scenic/primitive/rounded_rectangle.ex +++ b/lib/scenic/primitive/rounded_rectangle.ex @@ -106,15 +106,16 @@ defmodule Scenic.Primitive.RoundedRectangle do # -------------------------------------------------------- def default_pin(data), do: centroid(data) + def default_pin(data, _styles), do: centroid(data) # -------------------------------------------------------- @doc """ - Returns a the centroid of the rectangle. This is used as the default pin when applying + Returns the centroid of the rectangle. This is used as the default pin when applying rotate or scale transforms. """ def centroid(data) - def centroid({width, height, _}) do + def centroid({width, height, _radius}) do {width / 2, height / 2} end @@ -152,10 +153,4 @@ defmodule Scenic.Primitive.RoundedRectangle do false end end - - # -------------------------------------------------------- - @doc false - def default_pin({width, height, _radius}, _styles) do - {width / 2, height / 2} - end end diff --git a/lib/scenic/primitive/triangle.ex b/lib/scenic/primitive/triangle.ex index 013484cf..f0e7fd60 100644 --- a/lib/scenic/primitive/triangle.ex +++ b/lib/scenic/primitive/triangle.ex @@ -98,6 +98,7 @@ defmodule Scenic.Primitive.Triangle do # -------------------------------------------------------- def default_pin(data), do: centroid(data) + def default_pin(data, _styles), do: centroid(data) # -------------------------------------------------------- @doc """ @@ -144,13 +145,4 @@ defmodule Scenic.Primitive.Triangle do u >= 0 && v >= 0 && u + v < 1 end end - - # -------------------------------------------------------- - @doc false - def default_pin({{x0, y0}, {x1, y1}, {x2, y2}}, _styles) do - { - (x0 + x1 + x2) / 3, - (y0 + y1 + y2) / 3 - } - end end