transform.py (2251B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dynamicresources\client\ess\bracket\transform.py 2 import weakref 3 import codereload 4 import enum 5 import eveui 6 import geo2 7 import threadutils 8 import trinity 9 10 class EssRootTransformController(object): 11 12 def __init__(self, ess_ball, scene): 13 self._scene_ref = weakref.ref(scene) 14 self.transform = trinity.EveRootTransform() 15 self.transform.translationCurve = ess_ball 16 scene.uiObjects.append(self.transform) 17 18 def __del__(self): 19 scene = self._scene_ref() 20 if scene is not None: 21 scene.uiObjects.fremove(self.transform) 22 23 @property 24 def world_position(self): 25 _, _, position = geo2.MatrixDecompose(self.transform.worldTransform) 26 return position 27 28 29 @codereload.reloadable_enum 30 31 class BankTransformSide(enum.IntEnum): 32 left = 1 33 right = 2 34 35 36 class BankPanelTransformController(object): 37 38 def __init__(self, root, camera, side = None, offset_y = 0.0, radius = 0.0): 39 self.root = root 40 self.camera = camera 41 self.offset_y = offset_y 42 self.radius = radius 43 self.side = BankTransformSide(side) if side is not None else None 44 self._closed = False 45 self.transform = trinity.EveTransform() 46 self.root.transform.children.append(self.transform) 47 self._start_update_loop() 48 49 def __del__(self): 50 if not self._closed: 51 self.close() 52 53 def close(self): 54 if not self._closed: 55 self._closed = True 56 self.root.transform.children.fremove(self.transform) 57 self.root = None 58 59 @threadutils.threaded 60 def _start_update_loop(self): 61 while not self._closed: 62 if self.side is None: 63 tangent = (0, 0, 0) 64 elif self.side == BankTransformSide.left: 65 tangent = self.camera.left 66 elif self.side == BankTransformSide.right: 67 tangent = self.camera.right 68 else: 69 raise RuntimeError('Unknown side {!r}'.format(self.side)) 70 self.transform.translation = geo2.Vec3Add((0, self.offset_y, 0), geo2.Vec3Scale(tangent, self.radius)) 71 eveui.wait_for_next_frame()