@@ -103,9 +103,17 @@ defmodule Scenic.Primitive.Quad do
103
103
end
104
104
105
105
# --------------------------------------------------------
106
- def default_pin ( data )
106
+ def default_pin ( data ) , do: centroid ( data )
107
+ def default_pin ( data , _styles ) , do: centroid ( data )
107
108
108
- def default_pin ( { { x0 , y0 } , { x1 , y1 } , { x2 , y2 } , { x3 , y3 } } ) do
109
+ # --------------------------------------------------------
110
+ @ doc """
111
+ Returns the centroid of the quad. This is used as the default pin when applying
112
+ rotate or scale transforms.
113
+ """
114
+ def centroid ( data )
115
+
116
+ def centroid ( { { x0 , y0 } , { x1 , y1 } , { x2 , y2 } , { x3 , y3 } } ) do
109
117
{
110
118
( x0 + x1 + x2 + x3 ) / 4 ,
111
119
( y0 + y1 + y2 + y3 ) / 4
@@ -149,13 +157,4 @@ defmodule Scenic.Primitive.Quad do
149
157
# assumes convex, which is verified above
150
158
Triangle . contains_point? ( { p0 , p1 , p2 } , px ) || Triangle . contains_point? ( { p1 , p2 , p3 } , px )
151
159
end
152
-
153
- # --------------------------------------------------------
154
- @ doc false
155
- def default_pin ( { { x0 , y0 } , { x1 , y1 } , { x2 , y2 } , { x3 , y3 } } , _styles ) do
156
- {
157
- ( x0 + x1 + x2 + x3 ) / 4 ,
158
- ( y0 + y1 + y2 + y3 ) / 4
159
- }
160
- end
161
160
end
0 commit comments