perimeter.py (1379B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\drawingpolygon\components\perimeter.py 2 from drawingpolygon.drawingelement import DrawingElement 3 from carbonui.primitives.vectorlinetrace import VectorLineTrace, CORNERTYPE_NONE 4 from signals import Signal 5 import trinity 6 7 class PolygonSegment(VectorLineTrace): 8 default_cornerType = CORNERTYPE_NONE 9 default_spriteEffect = trinity.TR2_SFX_FILL_AA 10 11 def ApplyAttributes(self, attributes): 12 super(PolygonSegment, self).ApplyAttributes(attributes) 13 self.on_removed = Signal(signalName='on_removed') 14 15 def Close(self): 16 self.on_removed() 17 super(PolygonSegment, self).Close() 18 19 def is_available(self): 20 return self.renderObject is not None 21 22 def execute_only_if_available(function): 23 24 def wrapper(self, *args, **kwargs): 25 if self.is_available(): 26 return function(self, *args, **kwargs) 27 28 return wrapper 29 30 @execute_only_if_available 31 def add_vertex(self, x, y): 32 self.AddPoint(pos=(x, y), color=self.color.GetRGBA()) 33 34 @execute_only_if_available 35 def remove_vertex(self, index): 36 self.RemovePoint(index) 37 38 @execute_only_if_available 39 def update_vertex(self, index, x, y): 40 self.UpdatePoint(index, x, y) 41 42 43 class PolygonPerimeter(DrawingElement, PolygonSegment): 44 pass