Example #1
0
def main():
    SourcesNumber, ListenersNumber = ShowConfigurationDialog(1, 1)
    newscene = data.scenes.new()
    data.scenes.active = newscene
    #TODO: this doesn't clear all the data!
    for group in data.groups:
        data.groups.unlink(group)
    for scene in data.scenes:
        for ob in scene.objects:
            scene.objects.unlink(ob)
        if scene != newscene:
            data.scenes.unlink(scene)
    AddListeners(newscene, ListenersNumber.val)
    AddSources(newscene, SourcesNumber.val)
    if (NetworkExporterFilename and Blender.sys.exists(NetworkExporterFilename)
            == 1):  # if is an existent filename
        NetworkExporter = Blender.Text.Load(NetworkExporterFilename)
        Blender.Run(NetworkExporter.name)
    if (OSCSenderFilename and Blender.sys.exists(OSCSenderFilename) == 1):
        OSCSender = Blender.Text.Load(OSCSenderFilename)
        import BlenderOSCSender
        for object in data.scenes.active.objects:
            if BlenderOSCSender.isSource(
                    object) or BlenderOSCSender.isListener(object):
                object.addScriptLink(OSCSender.name, 'ObjectUpdate')
        data.scenes.active.addScriptLink(OSCSender.name, 'FrameChanged')
    if (ChoreoExporterFilename
            and Blender.sys.exists(ChoreoExporterFilename) == 1):
        Blender.Text.Load(ChoreoExporterFilename)
Example #2
0
def main():
	SourcesNumber,ListenersNumber=ShowConfigurationDialog(1,1)
	newscene=data.scenes.new()
	data.scenes.active=newscene
#TODO: this doesn't clear all the data!
	for group in data.groups:
		data.groups.unlink(group)
	for scene in data.scenes:
		for ob in scene.objects:
			scene.objects.unlink(ob)
		if scene!=newscene:
			data.scenes.unlink(scene)
	AddListeners(newscene,ListenersNumber.val)
	AddSources(newscene,SourcesNumber.val)
	if (NetworkExporterFilename and Blender.sys.exists(NetworkExporterFilename)==1): # if is an existent filename
		NetworkExporter=Blender.Text.Load(NetworkExporterFilename)
		Blender.Run(NetworkExporter.name)
	if (OSCSenderFilename and Blender.sys.exists(OSCSenderFilename)==1):
		OSCSender=Blender.Text.Load(OSCSenderFilename)
		import BlenderOSCSender
		for object in data.scenes.active.objects:
			if BlenderOSCSender.isSource(object) or BlenderOSCSender.isListener(object):
				object.addScriptLink(OSCSender.name,'ObjectUpdate')
		data.scenes.active.addScriptLink(OSCSender.name,'FrameChanged')
	if (ChoreoExporterFilename and Blender.sys.exists(ChoreoExporterFilename)==1):
		Blender.Text.Load(ChoreoExporterFilename)
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 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()