예제 #1
0
파일: App.py 프로젝트: afcarl/labeling_tool
    def __init__(self):
        #ShowBase.__init__(self)
        Utils.checkVersion()

        # Disable the camera trackball controls.
        base.disableMouse()
        self.render = base.render

        #create a list of debug points. These can be toggled ON/OFF
        self.debugPoints = []

        #Disable moving stuff until all assets are loaded
        self.assetsLoaded = False

        #create my own "camera"
        self.rroot = self.render.attachNewNode('rroot')  #Translational Root
        self.rroot.setPos(0.0, 0.0, 0.0)
        self.root = self.rroot.attachNewNode('root')  #Rotational Root

        self.camPosTrackerUp = self.render.attachNewNode('camPosTrackerUp')
        self.camPosTrackerUp.setPos(0, 0, 1)

        self.z = self.root.attachNewNode('z')
        self.z.setPos(0, 0, 1)
        self.y = self.root.attachNewNode('y')
        self.y.setPos(0, 1, 0)
        self.x = self.root.attachNewNode('x')
        self.x.setPos(1, 0, 0)
        self.debugPoints.append(addDebugPoint(self.root, 1.0, 1.0, 1.0))
        self.debugPoints.append(addDebugPoint(self.z, 0.0, 0.0, 1.0))
        self.debugPoints.append(addDebugPoint(self.y, 0.0, 0.5, 0.5))
        self.debugPoints.append(addDebugPoint(self.x, 0.5, 0.0, 0.5))

        #Load matcher object
        #self.object = MatcherObject(self.root, GeometryParser.loadGeomObject)
        self.objects = {}
        self.selectedObject = None

        #Load point cloud
        self.pointcloud = MatcherObject(self.root,
                                        GeometryParser.loadPointCloud)
        self.pointcloud.setPointCloudThickness(4)

        self.accept('mouse1Delta', self.ldelta)
        self.accept('mouse2Delta', self.mdelta)
        self.accept('mouse3Delta', self.rdelta)
        self.accept('wheel_up', self.mscrollUp)
        self.accept('wheel_down', self.mscrollDown)
        self.accept(Settings.TOGGLE_DEBUG_HOTKEY, self.toggleDebug)
        self.accept(Settings.ICP_HOTKEY, self.runICP)

        #self.accept('q', self.testFunc)
        self.accept('object_click', self.selectObject)
        self.accept(base.win.getWindowEvent(), self.onWindowEvent)
        self.hideDebugPoints()  #Hide debug points
        self.debugPointsShown = False
        self.mouseCont = MCont.MouseControls()

        #MENU
        self.accept(base.win.getWindowEvent(), self.onWindowEvent)

        self.bridgeMenu = HorizontalMenu(self,
                                         file('res/bridgeMenu.txt').read(),
                                         style='transparent.ccss',
                                         scale=.05)
        self.mini_img = MiniImage(self)
        self.accept(Settings.RRENDER_TOGGLE_HOTKEY,
                    self.mini_img.appToggleHotkeyAction)