Set origin draw Reset Origin
is
(let ((origin (move 50 50))) (draw something))
(defmethod draw :before () (move 50 50)) (defmethod draw () (draw-something)) (defmethod draw :after () (move -50 -50))
Ditto for Moose (in Perl)...
before draw => sub { shift->move( 50, 50 )}; sub draw { shift->draw_something } after draw => sub { shift->move( -50, -50 )};
{ package DrawRole; use Moose::Role; before draw => sub { shift->move( 50, 50 )}; after draw => sub { shift->move( -50, -50 )}; } my $d = Draw->new; DrawRole->meta->apply( $d );
Set origin draw Reset Origin
is
Similar in the Common Lisp object system we use :before, :after and :around methods.