Example #1
0
# -*- 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(
Example #2
0
# -*- 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])
Example #3
0
# -*- 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
Example #4
0
# -*- 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:
Example #5
0
# -*- 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)
Example #6
0
# -*- 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)