def main():
    if Blender.sys.exists(MainSceneMaker) != 1:
        Blender.Draw.PupMenu("Cannot found the scene creator (scene_maker.py). Aborting")
        return 0

    Blender.Run(MainSceneMaker)

    scene = data.scenes.active
    # 	sources=data.groups['Audio_Sources'].objects
    sources = BlenderOSCSender.getSources(scene)
    for object in sources:
        object.setIpo(
            makeCircleIpo(object, object.name + "demo", 6, 2 * math.pi * list(sources).index(object) / len(sources))
        )
        firstFrame = Blender.Get("staframe")
        x = object.ipo.getCurve()[0].evaluate(firstFrame)
        y = object.ipo.getCurve()[1].evaluate(firstFrame)
        z = object.ipo.getCurve()[2].evaluate(firstFrame)
        object.setLocation((x, y, z))
示例#2
0
def main():
    if Blender.sys.exists(MainSceneMaker) != 1:
        Blender.Draw.PupMenu(
            'Cannot found the scene creator (scene_maker.py). Aborting')
        return 0

    Blender.Run(MainSceneMaker)

    scene = data.scenes.active
    #	sources=data.groups['Audio_Sources'].objects
    sources = BlenderOSCSender.getSources(scene)
    for object in sources:
        object.setIpo(
            makeCircleIpo(
                object, object.name + "demo", 6,
                2 * math.pi * list(sources).index(object) / len(sources)))
        firstFrame = Blender.Get('staframe')
        x = object.ipo.getCurve()[0].evaluate(firstFrame)
        y = object.ipo.getCurve()[1].evaluate(firstFrame)
        z = object.ipo.getCurve()[2].evaluate(firstFrame)
        object.setLocation((x, y, z))
def GenerateNetworkOSCReceiver(filename):
	liblos=""
	connections=""
	printers=""
	argumentNumbers=3
	xPosition=50
	yPosition=150
#create sources receivers and its monitors
	scene=Blender.Scene.GetCurrent()
	sources=BlenderOSCSender.getSources(scene)
	templatePath="/SpatDIF/sources/%(objectNumber)s/%(sufix_path)s"
	dictionary_paths=['xyz','ypr']
	for source in sources:
		sourceName=source.name.replace(".","_")
		port=7000
		# try to get the port on object name:
		portInName=re.search('_p([0-9]+)$',sourceName)
		if portInName!=None:
			port=int(portInName.group(1))
		for sufix_path in dictionary_paths:
			libloName="source_%s_%s" % (sourceName,sufix_path)
			printerName="printer_source_%s_%s" % (sourceName,sufix_path)
			objectNumber=str(sources.index(source))
			liblos+=makeLibloSource(libloName,templatePath % vars(),(xPosition,yPosition),3,port)
			printers+=makeControlPrinter(printerName,(xPosition,yPosition+150),3)
			for o in range(3):
				sufix="_"+str(o)
				connections+=makeControlConnection(libloName,(templatePath%vars()).replace("/","_")+sufix,printerName,"ControlPrinter"+sufix)
			xPosition+=300
		xPosition+=150
	xPosition=50
	yPosition=600
#create listeners receivers and its monitors
	listeners=BlenderOSCSender.getListeners(scene)
	templatePath="/SpatDIF/listeners/%(objectNumber)s/%(sufix_path)s"
	for listener in listeners:
		listenerName=listener.name.replace(".","_")
		port=7000
		# try to get the port on object name:
		portInName=re.search('_p([0-9]+)$',listenerName)
		if portInName!=None:
			port=int(portInName.group(1))
		for sufix_path in dictionary_paths:
			libloName="listener_%s_%s" % (listenerName,sufix_path)
			printerName="printer_listener_%s_%s" % (listenerName,sufix_path)
			objectNumber=str(listeners.index(listener))
			liblos+=makeLibloSource(libloName,templatePath % vars(),(xPosition,yPosition),3,port)
			printers+=makeControlPrinter(printerName,(xPosition,yPosition+150),3)
			for o in range(3):
				sufix="_"+str(o)
				connections+=makeControlConnection(libloName,(templatePath%vars()).replace("/","_")+sufix,printerName,"ControlPrinter"+sufix)
			xPosition+=300
		xPosition+=150
#create sync receivers and it monitors
	path="/SpatDIF/sync/FrameChanged"
	libloName="sync_Framechanged"
	printerName="printer_sync_FrameChanged"
	liblos+=makeLibloSource(libloName,path,(50,0),1,port)
	printers+=makeControlPrinter(printerName,(300,0),1,(291,70))
	connections+=makeControlConnection(libloName,path.replace("/","_")+"_0",printerName,"In Control")
	f=open(filename,'w')
	networkId="Exported_Blender_scene_receiver_network"
	body=liblos+printers+connections
	f.write(Network % vars())
	f.close()
	print "OSC receivers CLAM Network exported as %(filename)s" % vars()
def GenerateNetworkOSCReceiver(filename):
    liblos = ""
    connections = ""
    printers = ""
    argumentNumbers = 3
    xPosition = 50
    yPosition = 150
    #create sources receivers and its monitors
    scene = Blender.Scene.GetCurrent()
    sources = BlenderOSCSender.getSources(scene)
    templatePath = "/SpatDIF/sources/%(objectNumber)s/%(sufix_path)s"
    dictionary_paths = ['xyz', 'ypr']
    for source in sources:
        sourceName = source.name.replace(".", "_")
        port = 7000
        # try to get the port on object name:
        portInName = re.search('_p([0-9]+)$', sourceName)
        if portInName != None:
            port = int(portInName.group(1))
        for sufix_path in dictionary_paths:
            libloName = "source_%s_%s" % (sourceName, sufix_path)
            printerName = "printer_source_%s_%s" % (sourceName, sufix_path)
            objectNumber = str(sources.index(source))
            liblos += makeLibloSource(libloName, templatePath % vars(),
                                      (xPosition, yPosition), 3, port)
            printers += makeControlPrinter(printerName,
                                           (xPosition, yPosition + 150), 3)
            for o in range(3):
                sufix = "_" + str(o)
                connections += makeControlConnection(
                    libloName,
                    (templatePath % vars()).replace("/", "_") + sufix,
                    printerName, "ControlPrinter" + sufix)
            xPosition += 300
        xPosition += 150
    xPosition = 50
    yPosition = 600
    #create listeners receivers and its monitors
    listeners = BlenderOSCSender.getListeners(scene)
    templatePath = "/SpatDIF/listeners/%(objectNumber)s/%(sufix_path)s"
    for listener in listeners:
        listenerName = listener.name.replace(".", "_")
        port = 7000
        # try to get the port on object name:
        portInName = re.search('_p([0-9]+)$', listenerName)
        if portInName != None:
            port = int(portInName.group(1))
        for sufix_path in dictionary_paths:
            libloName = "listener_%s_%s" % (listenerName, sufix_path)
            printerName = "printer_listener_%s_%s" % (listenerName, sufix_path)
            objectNumber = str(listeners.index(listener))
            liblos += makeLibloSource(libloName, templatePath % vars(),
                                      (xPosition, yPosition), 3, port)
            printers += makeControlPrinter(printerName,
                                           (xPosition, yPosition + 150), 3)
            for o in range(3):
                sufix = "_" + str(o)
                connections += makeControlConnection(
                    libloName,
                    (templatePath % vars()).replace("/", "_") + sufix,
                    printerName, "ControlPrinter" + sufix)
            xPosition += 300
        xPosition += 150
#create sync receivers and it monitors
    path = "/SpatDIF/sync/FrameChanged"
    libloName = "sync_Framechanged"
    printerName = "printer_sync_FrameChanged"
    liblos += makeLibloSource(libloName, path, (50, 0), 1, port)
    printers += makeControlPrinter(printerName, (300, 0), 1, (291, 70))
    connections += makeControlConnection(libloName,
                                         path.replace("/", "_") + "_0",
                                         printerName, "In Control")
    f = open(filename, 'w')
    networkId = "Exported_Blender_scene_receiver_network"
    body = liblos + printers + connections
    f.write(Network % vars())
    f.close()
    print "OSC receivers CLAM Network exported as %(filename)s" % vars()