return dim_;
}
+void
+Stencil::rotate (Real a, Offset off)
+{
+ rotate_degrees (a * 180/M_PI, off);
+}
+
/*
- * Rotate this stencil around the point [x, y]
+ Rotate this stencil around the point RELATIVE_OFF.
+
+ RELATIVE_OFF is measured in terms of the extent of the stencil, so
+ -1 = LEFT/DOWN edge, 1 = RIGHT/UP edge.
*/
void
-Stencil::rotate (Real a, Offset off)
+Stencil::rotate_degrees (Real a, Offset relative_off)
{
const Real x_cen = extent (X_AXIS).center ();
const Real y_cen = extent (Y_AXIS).center ();
/*
* Calculate the center of rotation
*/
- const Real x = x_cen + off[X_AXIS] * x_cen;
- const Real y = y_cen + off[Y_AXIS] * y_cen;
+ const Real x = x_cen + relative_off[X_AXIS] * x_cen;
+ const Real y = y_cen + relative_off[Y_AXIS] * y_cen;
/*
* Build scheme expression (processed in stencil-interpret.cc)
Real his_extent;
if (i.is_empty ())
{
- programming_error ("Stencil::moved_to_edge: adding empty stencil.");
+ programming_error ("Stencil::add_at_edge: adding empty stencil.");
his_extent = 0.0;
}
else