# -*- coding: cp1252 -*- ## # Cet outil permet de lier une propriété de directivité d'un récepteur # à la position d'une source. # import uilocale import uictrl as ui import os ScriptFolder = ui.application.getapplicationpath( )["systemscript"] + "preceiv_sourceTracker" + os.sep #Déclaration de la méthode de traduction _ = uilocale.InstallUiModule(ScriptFolder, ui.application.getlocale()) ## # L'instance de cette classe est placée dans l'élément position d'une source et est appelé si la position de la source est mis à jour class PositionUpdater: ## # Initialisation # @param receiverId Receiver id # @param isPositionTracker True if this is a link between source position and receiver position, False if this is a link between the source position and the receiver orientation def __init__(self, receiverId, isPositionTracker=False): self.isPositionTracker = isPositionTracker self.receiverid = receiverId self.sourceposid = -1 self.srcid = -1 self.srclbl = "" self.UpdateLinker() if self.isPositionTracker: self.old_src_pos = ui.element(
# -*- coding: UTF-8 -*- import uictrl as ui import uilocale import urllib.request import os import re _ = uilocale.InstallUiModule( ui.application.getapplicationpath()["systemscript"] + "check_version" + os.sep, ui.application.getlocale()) def versionToCode(major, minor, revision): return major * 1000000 + minor * 1000 + revision def check_version(): visimpa = list(map(int, ui.application.getversion().split(".")))[:3] visimpa = versionToCode(visimpa[0], visimpa[1], visimpa[2]) with urllib.request.urlopen( "https://raw.githubusercontent.com/Ifsttar/I-Simpa/master/CMakeLists.txt" ) as response: html = response.read().decode("utf-8") p = re.compile("^project \(isimpa VERSION (\d+\.)?(\d+\.)?(\*|\d+)") for line in html.split("\n"): r = p.match(line) if r is not None: major = int(r.group(1)[:1]) minor = int(r.group(2)[:1])
# -*- coding: cp1252 -*- from __future__ import print_function #compatibilité python 3.0 import uictrl as ui import sys from libsimpa import vec3 import math import uilocale import os _=uilocale.InstallUiModule(ui.application.getapplicationpath()["userscript"]+"source_tools"+os.sep,ui.application.getlocale()) def MakeLineSrc(srcgroupindice,startpoint=[0,0,0],quantity=1,step=[1,0,0]): """ Crée une ligne de source sonores """ #on recupere le groupe des sources srcgroup=ui.element(srcgroupindice) #on recupere tout les indices des sources déjà existante oldsrclst=srcgroup.getallelementbytype(ui.element_type.ELEMENT_TYPE_SCENE_SOURCES_SOURCE) #On construit les quantity nouvelles sources for i in range(0,quantity): ui.application.sendevent(srcgroup,ui.idevent.IDEVENT_NEW_SOURCE) #on cherche a obtenir les indices des nouvelles sources newsrclst=srcgroup.getallelementbytype(ui.element_type.ELEMENT_TYPE_SCENE_SOURCES_SOURCE) createdsrc=[] for src in newsrclst: if src not in oldsrclst: createdsrc.append(src) #on modifie la position des sources selon les pas de positions en paramètre curpos=startpoint
# -*- coding: cp1252 -*- from __future__ import print_function #compatibilité python 3.0 import uictrl as ui import sys from libsimpa import vec3 import math import uilocale _=uilocale.InstallUiModule(ui.application.getapplicationpath()["userscript"]+"recp_tool\\",ui.application.getlocale()) def MakeLineRecp(recpgroupindice,startpoint=[0,0,0],quantity=1,step=[1,0,0]): """ Crée une ligne de récepteurs ponctuels """ #on recupere le groupe des recepteurs recpgroup=ui.element(recpgroupindice) #on recupere tout les indices des récepteurs ponctuels déjà présents oldrecplst=recpgroup.getallelementbytype(ui.element_type.ELEMENT_TYPE_SCENE_RECEPTEURSP_RECEPTEUR) #On construit les quantity nouveaux récepteurs ponctuels for i in range(0,quantity): ui.application.sendevent(recpgroup,ui.idevent.IDEVENT_NEW_RECEPTEUR_P) #on cherche a obtenir les indices des nouveaux récepteurs ponctuels newrecplst=recpgroup.getallelementbytype(ui.element_type.ELEMENT_TYPE_SCENE_RECEPTEURSP_RECEPTEUR) createdrecp=[] for recp in newrecplst: if recp not in oldrecplst: createdrecp.append(recp) #on modifie la position des récepteurs ponctuels selon les pas de positions en paramètre curpos=startpoint for recp in createdrecp:
# -*- coding: cp1252 -*- import uictrl as ui import uilocale _ = uilocale.InstallUiModule( ui.application.getapplicationpath()["userscript"] + "md_octave\\", ui.application.getlocale()) class MD_Octave(ui.element): """ Declaration of MD computation core """ def __init__(self, idel): ui.element.__init__(self, idel) if not self.hasproperty("exeName"): # Nouveau projet ui.element( self.appendpropertytext("modelName", "", "mesh.cbin", True, True)).hide() ui.element(self.appendpropertytext("exeName", "", "md_octave.py")).hide() ui.element(self.appendpropertytext("corePath", "", "md_octave/")).hide() if self.getelementbytype( ui.element_type.ELEMENT_TYPE_CORE_CORE_CONFMAILLAGE) == -1: # Set maximum volume of 0.1 m3 meshel = ui.element( self.appendfilsbytype( ui.element_type.ELEMENT_TYPE_CORE_CORE_CONFMAILLAGE)) meshel.updateboolconfig("ismaxvol", True)
# -*- coding: UTF-8 -*- import uictrl as ui import operator import uilocale import os import collections _ = uilocale.InstallUiModule( ui.application.getapplicationpath()["systemscript"] + "job_tool" + os.sep, ui.application.getlocale()) def GetCurrentProjectPath(): projconfel = ui.element( ui.element(ui.application.getrootscene()).getelementbytype( ui.element_type.ELEMENT_TYPE_SCENE_PROJET_CONFIGURATION)) return projconfel.getstringconfig("urlsave") job_types = {} class job(object): """ Cette classe représente un travail Elle peut être importée et exportée sous forme de chaînes de caractères """ def __init__(self, params): self.jobname = params[0] self.from_str(params)