ya2 · news · projects · code · about

some cleaning
[pmachines.git] / ya2 / p3d / p3d.py
index 2ea7b6f9e2f4d9f469f093004f83e3cb337d3730..90799158da16a3b91eaa283596ecab629b076a65 100755 (executable)
@@ -1,16 +1,15 @@
 import sys
 from logging import info
 from os.path import exists, dirname
-from os import getcwd, _exit
+from os import _exit
 from glob import glob
 from pathlib import Path
 from panda3d.core import loadPrcFileData, Texture, TextPropertiesManager, \
     TextProperties, PandaSystem, Filename, WindowProperties, GraphicsWindow
 from panda3d.bullet import get_bullet_version
-from direct.showbase.ShowBase import ShowBase
 from direct.showbase.DirectObject import DirectObject
 from direct.task.Task import Task
-#from gltf import patch_loader
+# from gltf import patch_loader
 
 
 # class LibShowBase(ShowBase): pass
@@ -37,7 +36,8 @@ class LibP3d(DirectObject):
     def fixpath(path):
         home = '/home/flavio'
         if sys.platform == 'win32' and not exists(exists(home + '/.wine/')):
-            if path.startswith('/'): path = path[1] + ':\\' + path[3:]
+            if path.startswith('/'):
+                path = path[1] + ':\\' + path[3:]
             path = path.replace('/', '\\')
         return path
 
@@ -45,13 +45,15 @@ class LibP3d(DirectObject):
     def p3dpath(path): return Filename.fromOsSpecific(path)
 
     @property
-    def last_frame_dt(self): return globalClock.get_dt()
+    def last_frame_dt(self):
+        return globalClock.get_dt()
 
     @property
     def build_version(self):
         appimg_mnt = glob('/tmp/.mount_Yocto*')
         if appimg_mnt:
-            #with open(appimg_mnt[0] + '/usr/bin/appimage_version.txt') as fver:
+            # with open(
+            #     appimg_mnt[0] + '/usr/bin/appimage_version.txt') as fver:
             with open(self.curr_path + '/assets/bld_version.txt') as fver:
                 return fver.read().strip()
         try:
@@ -79,13 +81,14 @@ class LibP3d(DirectObject):
         is_snap = is_snap and par_path.endswith('/x1')
         if is_snap:
             return str(Path(par_path).absolute())
-        #return getcwd()
+        # return getcwd()
         curr_path = dirname(__file__)
         info('current path: %s' % curr_path)
         return curr_path
 
     @staticmethod
-    def send(msg): return messenger.send(msg)
+    def send(msg):
+        return messenger.send(msg)
 
     @staticmethod
     def do_later(time, meth, args=None):
@@ -98,20 +101,22 @@ class LibP3d(DirectObject):
         return taskMgr.add(mth, mth.__name__, priority)
 
     @staticmethod
-    def remove_task(tsk): taskMgr.remove(tsk)
-
-    def init(self, green=(.2, .8, .2, 1), red=(.8, .2, .2, 1), end_cb=None):
-        LibShowBase()
-        base.disableMouse()
-        #patch_loader(base.loader)
-        self.__end_cb = end_cb
-        self.__init_win()
-        self.__init_fonts(green, red)
-        self.__set_roots()
-        self.accept('aspectRatioChanged', self.on_aspect_ratio_changed)
+    def remove_task(tsk):
+        taskMgr.remove(tsk)
+
+    # def init(self, green=(.2, .8, .2, 1), red=(.8, .2, .2, 1), end_cb=None):
+    #     LibShowBase()
+    #     base.disableMouse()
+    #     #patch_loader(base.loader)
+    #     self.__end_cb = end_cb
+    #     self.__init_win()
+    #     self.__init_fonts(green, red)
+    #     self.__set_roots()
+    #     self.accept('aspectRatioChanged', self.on_aspect_ratio_changed)
 
     @staticmethod
     def __set_roots():
+        base = base
         base.a2dTopQuarter = base.aspect2d.attachNewNode('a2dTopQuarter')
         base.a2dTopQuarter.set_pos(base.a2dLeft / 2, 0, base.a2dTop)
         base.a2dTopThirdQuarter = \
@@ -131,6 +136,7 @@ class LibP3d(DirectObject):
 
     @staticmethod
     def on_aspect_ratio_changed():
+        base = base
         base.a2dTopQuarter.set_pos(base.a2dLeft / 2, 0, base.a2dTop)
         base.a2dTopThirdQuarter.set_pos(base.a2dRight / 2, 0, base.a2dTop)
         base.a2dBottomQuarter.set_pos(base.a2dLeft / 2, 0, base.a2dBottom)
@@ -138,7 +144,8 @@ class LibP3d(DirectObject):
             base.a2dRight / 2, 0, base.a2dBottom)
 
     @property
-    def has_window(self): return bool(base.win)
+    def has_window(self):
+        return bool(base.win)
 
     @property
     def resolution(self):
@@ -167,7 +174,8 @@ class LibP3d(DirectObject):
     def set_resolution(res, fullscreen=None):
         props = WindowProperties()
         props.set_size(res)
-        if fullscreen: props.set_fullscreen(True)
+        if fullscreen:
+            props.set_fullscreen(True)
         if isinstance(base.win, GraphicsWindow):
             base.win.request_properties(props)
 
@@ -194,7 +202,8 @@ class LibP3d(DirectObject):
 
     def __on_end(self):
         base.closeWindow(base.win)
-        if self.__end_cb: self.__end_cb()
+        if self.__end_cb:
+            self.__end_cb()
         _exit(0)
 
     @staticmethod
@@ -202,7 +211,8 @@ class LibP3d(DirectObject):
         font = base.loader.loadFont(filepath)
         font.set_pixels_per_unit(60)
         font.set_minfilter(Texture.FTLinearMipmapLinear)
-        if outline: font.set_outline((0, 0, 0, 1), .8, .2)
+        if outline:
+            font.set_outline((0, 0, 0, 1), .8, .2)
         return font
 
     @staticmethod
@@ -221,10 +231,12 @@ class LibP3d(DirectObject):
     def user_appdata_dir(self): return Filename.get_user_appdata_directory()
 
     @property
-    def driver_vendor(self): return base.win.get_gsg().get_driver_vendor()
+    def driver_vendor(self):
+        return base.win.get_gsg().get_driver_vendor()
 
     @property
-    def driver_renderer(self): return base.win.get_gsg().get_driver_renderer()
+    def driver_renderer(self):
+        return base.win.get_gsg().get_driver_renderer()
 
     @property
     def driver_shader_version_major(self):
@@ -235,7 +247,8 @@ class LibP3d(DirectObject):
         return base.win.get_gsg().get_driver_shader_version_minor()
 
     @property
-    def driver_version(self): return base.win.get_gsg().get_driver_version()
+    def driver_version(self):
+        return base.win.get_gsg().get_driver_version()
 
     @property
     def driver_version_major(self):
@@ -251,20 +264,25 @@ class LibP3d(DirectObject):
             return base.win.get_properties().get_fullscreen()
 
     @property
-    def volume(self): return base.sfxManagerList[0].get_volume()
+    def volume(self):
+        return base.sfxManagerList[0].get_volume()
 
     @volume.setter
-    def volume(self, vol): base.sfxManagerList[0].set_volume(vol)
+    def volume(self, vol):
+        base.sfxManagerList[0].set_volume(vol)
 
     @property
     def mousepos(self):
         mwn = base.mouseWatcherNode
-        if not mwn: return 0, 0
-        if not mwn.hasMouse(): return 0, 0
+        if not mwn:
+            return 0, 0
+        if not mwn.hasMouse():
+            return 0, 0
         return mwn.get_mouse_x(), mwn.get_mouse_y()
 
     @property
-    def aspect_ratio(self): return base.getAspectRatio()
+    def aspect_ratio(self):
+        return base.getAspectRatio()
 
     @staticmethod
     def wdg_pos(wdg):
@@ -294,7 +312,9 @@ class LibP3d(DirectObject):
     @staticmethod
     def find_geoms(model, name):  # no need to be cached
         geoms = model.node.find_all_matches('**/+GeomNode')
-        is_nm = lambda geom: geom.get_name().startswith(name)
+
+        def is_nm(geom):
+            return geom.get_name().startswith(name)
         named_geoms = [geom for geom in geoms if is_nm(geom)]
         return [ng for ng in named_geoms if name in ng.get_name()]
 
@@ -327,8 +347,8 @@ class LibP3d(DirectObject):
     def remap_str(self, key):
         if not base.win:  # when launched with --version
             return key
-        #if isinstance(base.win, GraphicsBuffer):
-        #    return key
+        # if isinstance(base.win, GraphicsBuffer):
+        #     return key
         kmap = base.win.get_keyboard_map()
         for i in range(kmap.get_num_buttons()):
             if str(key).lower() == kmap.get_mapped_button_label(i).lower():