From d66664cde28a490759fd6f3a11791b9f20c1933d Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 30 Mar 2012 23:09:45 +0200 Subject: host/simu/robots/guybrush: simulate lower clamps elements taking --- host/simu/robots/guybrush/view/robot.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'host/simu/robots/guybrush/view/robot.py') diff --git a/host/simu/robots/guybrush/view/robot.py b/host/simu/robots/guybrush/view/robot.py index fcf375cb..79c61d15 100644 --- a/host/simu/robots/guybrush/view/robot.py +++ b/host/simu/robots/guybrush/view/robot.py @@ -23,18 +23,21 @@ # }}} """Guybrush robot view.""" import simu.inter.drawable -from math import pi +from math import pi, cos +from simu.view.table_eurobot2012 import WHITE, BLACK COLOR_ROBOT = '#000000' COLOR_AXES = '#202040' class Robot (simu.inter.drawable.Drawable): - def __init__ (self, onto, position_model): + def __init__ (self, onto, position_model, clamps_model): """Construct and make connections.""" simu.inter.drawable.Drawable.__init__ (self, onto) self.position_model = position_model + self.clamps_model = clamps_model self.position_model.register (self.__position_notified) + self.clamps_model.register (self.update) def __position_notified (self): """Called on position modifications.""" @@ -48,6 +51,17 @@ class Robot (simu.inter.drawable.Drawable): if self.pos is not None: self.trans_translate (self.pos) self.trans_rotate (self.angle) + # Draw lower clamps content. + r = self.clamps_model.lower_clamp_rotation + if r is not None: + sx = cos (r) + for content in self.clamps_model.lower_clamp_content: + for e, y in content: + x = 117 + sx * 54 + color = WHITE if e.value else BLACK + self.draw_oval ((x, y), sx * e.radius, e.radius, + fill = color) + sx = - sx # Draw robot body. self.draw_polygon ((150, 171.5), (-80, 171.5), (-130, 121.5), (-130, -121.5), (-80, -171.5), (150, -171.5), -- cgit v1.2.3