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)
Exemple #2
0
	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 
Exemple #6
0
	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
Exemple #7
0
		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")
Exemple #8
0
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)