def __init__(self,path,name): self.model = None self.name = name self.path = path if not(SceneManager.doesModelExist(name)): SceneManager.loadPolygonModel(path,name) self.model = SceneManager.getModel(name) SceneManager.addNodeToScene(name,"mainView") else: self.model = SceneManager.getModel(name)
def __init__(self,path,name): self.model = None self.name = name self.path = path self.rigidBodyId = None if (SceneManager.doesModelExist(name) != True): SceneManager.loadPolygonModel(path,name) self.model = SceneManager.getModel(name) addToScene("mainView") else: self.model = SceneManager.getModel(name)
def loadPolygonModel(self,path,name): try: if not(SceneManager.doesModelExist(name)): SceneManager.loadPolygonModel(path,name) self.polyModelDict[name] = SceneManager.getModel(name) else: print("loadPolygonModel - a model with specified name already exists") except: print("loadPolygonModel - something happened") #print("path: "+path) #print("name: "+name) return 1 return 0
def openFile(self): path = QtGui.QFileDialog.getOpenFileName(self, "Open Module", "") # convert path to a string path = str(path) # get filename from path (dir, file) = os.path.split(path) # based on the file, pick the name for the model if (file == 'Skeleton_FULL.OSGB'): model = "skeleton1" elif (file == 'Skeleton_Back.OSGB'): model = "skeleton2" else: title = "Invalid File" error = "Please choose Skeleton_FULL or Skeleton_Back." QtGui.QMessageBox.critical(None, title, error, QtGui.QMessageBox.Close) return # Send the model to scene manager SceneManager.loadPolygonModel(path, model) return
#optitrack stuff local_IP = "25.79.169.119" OptiTrack_IP = "25.79.169.119" OptiTrack_DataPort = 1511 OptiTrack_CmdPort = 1510 #ClientHandler.connect(local_IP,OptiTrack_IP,OptiTrack_DataPort,OptiTrack_CmdPort,ClientHandler.ConnectionType.Multicast) #load model from path #modelist = list([0]*len(paths)) #test loading multiple models modellist = [] for i in range(3): print "loading"+name+paths[i] SceneManager.loadPolygonModel(paths[i],name+paths[i]) modellist.append(SceneManager.getModel(name+paths[i])) print str(len(modellist))+" length of list after adding models" print modellist for i in range(len(modellist)): SceneManager.deleteModel(name+paths[i]) print "deleting"+name+paths[i] print str(len(modellist))+" length of list after removing the models" print modellist #todo: remove all the references to the model after removing model (aka: call delete on list on specified index) #output test, replace with infinite loop with a keyboard event to break
def selectTest(self): # Grab currently displayed test from combo box chosenTest = str(self.combo.currentText()) # Based on displayed test, send model to projectDr if chosenTest == TEST1: model = MODEL1 else: model = MODEL2 # Before we try to add a model, we should make sure one doesn't already exist if SceneManager.doesModelExist(MODEL1) or SceneManager.doesModelExist(MODEL2): title = "A skeleton model is already loaded!" error = "Please wait for current test to finish before attempting to start another." QtGui.QMessageBox.critical(None, title, error, QtGui.QMessageBox.Close) return # We can load the model in projectDr now if model == MODEL1: path = PATH1 else: path = PATH2 # Notify the user that model was successfully loaded. title = "Model Loaded" error = "Model was successfully loaded into ProjectDr." QtGui.QMessageBox.information(None, title, error, QtGui.QMessageBox.Ok) # Send the model to scene manager print("LOADING NEW TEST") # Load Skeleton SceneManager.loadPolygonModel(path, model) #Scale Skeleton SceneManager.getModel(model).setScale(.025,.025,.025) SceneManager.getModel(model).setRotationOffset(0,0,-1,1) SceneManager.getModel(model).setPositionOffset(0.105,0.15,-0.711) SceneManager.addNodeToScene(model,"mainView") SceneManager.addNodeToScene(model,"projectorView") # Load Skeleton C1 Answer SceneManager.loadPolygonModel(C1Ans, C1Ans) #Scale Skeleton SceneManager.getModel(C1Ans).setScale(.025,.025,.025) SceneManager.getModel(C1Ans).setRotationOffset(0,0,-1,1) SceneManager.getModel(C1Ans).setPositionOffset(0.105,0.15,-0.711) SceneManager.addNodeToScene(C1Ans,"mainView") # Load Skeleton T1 Answer SceneManager.loadPolygonModel(T1Ans, T1Ans) #Scale Skeleton SceneManager.getModel(T1Ans).setScale(.025,.025,.025) SceneManager.getModel(T1Ans).setRotationOffset(0,0,-1,1) SceneManager.getModel(T1Ans).setPositionOffset(0.105,0.15,-0.711) SceneManager.addNodeToScene(T1Ans,"mainView") # Load Skeleton SceneManager.loadPolygonModel(L1Ans, L1Ans) #Scale Skeleton SceneManager.getModel(L1Ans).setScale(.025,.025,.025) SceneManager.getModel(L1Ans).setRotationOffset(0,0,-1,1) SceneManager.getModel(L1Ans).setPositionOffset(0.105,0.15,-0.711) SceneManager.addNodeToScene(L1Ans,"mainView") # Start thread for running test! self.thread = WorkThread() self.thread.start() return
date = datetime.datetime.now().strftime("%B %d %I:%M%p") testName = "Skeleton Full" # Terminate the thread when we are done!! self.terminate() if __name__ == '__main__': import sys print("Starting") # Load button and hand models SceneManager.loadPolygonModel(navPath, handNavModel) SceneManager.loadPolygonModel(handPath, handButtModel) SceneManager.loadPolygonModel(buttonPath, buttonModel) SceneManager.loadPolygonModel(greenPath, greenModel) # Scale the Green Circle SceneManager.getModel(greenModel).setScale(0.01, 0.01, 0.01) SceneManager.addNodeToScene(greenModel, "mainView") # Create text but do not load into view SceneManager.loadPolygonModel("C1.OSGB", C1Model) SceneManager.getModel(C1Model).setScale(0.005, 0.005, 0.005) SceneManager.getModel(C1Model).setPositionOffset(0.350, 0, -0.090) SceneManager.getModel(C1Model).setRotationOffset(0, 0, -1, 1) SceneManager.addNodeToScene(C1Model,"mainView")
import ClientHandler import SceneManager import glob path = "C:\Users\w\Documents\Models\osg-data-master\glider.osg" name = "somethingyouwant" paths = glob.glob("C:\Users\Aedan\Desktop\Homework Folder\CMPUT 302\DICOM Models\COU\*.dcm") for i in paths: i = i[66:] print i local_IP = "25.79.169.119" OptiTrack_IP = "25.79.169.119" OptiTrack_DataPort = 1511 OptiTrack_CmdPort = 1510 ClientHandler.connect(local_IP,OptiTrack_IP,OptiTrack_DataPort,OptiTrack_CmdPort,ClientHandler.ConnectionType.Multicast) SceneManager.loadPolygonModel(path,name) model = SceneManager.getModel(name)