@@ -2,7 +2,7 @@ use super::utility_functions::overlay_canvas_context;
22use  crate :: consts:: { 
33	ARC_SWEEP_GIZMO_RADIUS ,  COLOR_OVERLAY_BLUE ,  COLOR_OVERLAY_BLUE_50 ,  COLOR_OVERLAY_GREEN ,  COLOR_OVERLAY_RED ,  COLOR_OVERLAY_WHITE ,  COLOR_OVERLAY_YELLOW ,  COLOR_OVERLAY_YELLOW_DULL , 
44	COMPASS_ROSE_ARROW_SIZE ,  COMPASS_ROSE_HOVER_RING_DIAMETER ,  COMPASS_ROSE_MAIN_RING_DIAMETER ,  COMPASS_ROSE_RING_INNER_DIAMETER ,  DOWEL_PIN_RADIUS ,  MANIPULATOR_GROUP_MARKER_SIZE , 
5- 	PIVOT_CROSSHAIR_LENGTH ,  PIVOT_CROSSHAIR_THICKNESS ,  PIVOT_DIAMETER ,  SEGMENT_SELECTED_THICKNESS , 
5+ 	PIVOT_CROSSHAIR_LENGTH ,  PIVOT_CROSSHAIR_THICKNESS ,  PIVOT_DIAMETER ,  RESIZE_HANDLE_SIZE , SEGMENT_SELECTED_THICKNESS , SKEW_TRIANGLE_OFFSET , SKEW_TRIANGLE_SIZE , 
66} ; 
77use  crate :: messages:: portfolio:: document:: utility_types:: document_metadata:: LayerNodeIdentifier ; 
88use  crate :: messages:: prelude:: Message ; 
@@ -153,6 +153,11 @@ impl core::hash::Hash for OverlayContext {
153153} 
154154
155155impl  OverlayContext  { 
156+ 	pub  fn  reverse_scale ( & self ,  distance :  f64 )  -> f64  { 
157+ 		// No-op when rendering to canvas 
158+ 		distance
159+ 	} 
160+ 156161	pub  fn  quad ( & mut  self ,  quad :  Quad ,  stroke_color :  Option < & str > ,  color_fill :  Option < & str > )  { 
157162		self . dashed_polygon ( & quad. 0 ,  stroke_color,  color_fill,  None ,  None ,  None ) ; 
158163	} 
@@ -499,6 +504,20 @@ impl OverlayContext {
499504		self . square ( position,  None ,  Some ( color_fill) ,  Some ( COLOR_OVERLAY_BLUE ) ) ; 
500505	} 
501506
507+ 	pub  fn  resize_handle ( & mut  self ,  position :  DVec2 ,  rotation :  f64 )  { 
508+ 		let  quad = DAffine2 :: from_angle_translation ( rotation,  position)  *  Quad :: from_box ( [ DVec2 :: splat ( -RESIZE_HANDLE_SIZE  / 2. ) ,  DVec2 :: splat ( RESIZE_HANDLE_SIZE  / 2. ) ] ) ; 
509+ 		self . quad ( quad,  None ,  Some ( COLOR_OVERLAY_WHITE ) ) ; 
510+ 	} 
511+ 512+ 	pub  fn  skew_handles ( & mut  self ,  edge_start :  DVec2 ,  edge_end :  DVec2 )  { 
513+ 		let  edge_dir = ( edge_end - edge_start) . normalize ( ) ; 
514+ 		let  mid = edge_end. midpoint ( edge_start) ; 
515+ 516+ 		for  edge in  [ edge_dir,  -edge_dir]  { 
517+ 			self . draw_triangle ( mid + edge *  ( 3.  + SKEW_TRIANGLE_OFFSET ) ,  edge,  SKEW_TRIANGLE_SIZE ,  None ,  None ) ; 
518+ 		} 
519+ 	} 
520+ 502521	/// Transforms the canvas context to adjust for DPI scaling 
503522	/// 
504523	/// Overwrites all existing tranforms. This operation can be reversed with [`Self::reset_transform`]. 
0 commit comments