typeof scriptcore=S;; typeof PlugChannel=Chn;; var scriptiniCore ="";; /************************************ Fonction d'analyse du fichier ini *************************************/ fun AnalyseIniFile(l,blurp)= let hd l -> s in if s==nil then nil else if !strcmp s "core" then set scriptcore=strcat scriptcore nth_list l 1 else nil; 0;; /************************************* Fonction d'initialisation du fichier ini du plugin et chargement des differents scripts **************************************/ fun loadIniFile(f)= dyndebg "dyneditor.diagc.pkg"::"loadIniFile"::nil; apply_on_list strextr _getpack _checkpack f @AnalyseIniFile nil; _scriptc PlugChannel scriptcore; 0 ;; /************************************* Fonction de modification de la texture d'un materiau s : fichier texture type : EXPLO_TEXTURED param: [o m] objet et materiau qui doivent etre modifiés Renvoie un entier **************************************/ fun modifyTexture(s,type,checked,m)= let M3getType session m -> type in C3DsetType m type|MAT_TEXTURED 0; C3DsetTexture m s 1; 0 ;; /************************************* Fonction de modification du mode texture d'un materiau color :couleur de flat param: [o m] objet et materiau qui doivent etre modifiés Renvoie un entier **************************************/ fun modifyFlat(color,m)= let M3getType session m -> type in if color!=nil then { C3DsetType m type&(~MAT_TEXTURED) 0; C3DsetFlat m color 1 } else nil ;; /************************************* Fonction de modification du mode texture d'un materiau color :couleur de flat param: [o m] objet et materiau qui doivent etre modifiés Renvoie un entier **************************************/ fun modifyFlatColor(color,m)= C3DsetFlat m color 1;; /************************************* Fonction de modification du filtre d'un materiau filter : S filtre param : m nom du materiau Renvoie un entier **************************************/ fun modifyFilter(filter,m)= C3DsetFilter m filter 1;; /************************************* Fonction de modification de la transparence d'un materiau Renvoie un entier **************************************/ fun modifyTransparency(istransp,transp,m)= let M3getType session m -> type in { C3DsetType m (if istransp then type|MAT_TRANSP else type&(~MAT_TRANSP)) 0; C3DsetTransp m transp 1; }; 0 ;; /************************************* Fonction de modification de la couleur de fond de la scene Renvoie un entier **************************************/ fun modifyBackColor(color)= C3DsetBackColor color 1;; /************************************* Fonction de modification de la lumiere globale de la scene Renvoie un entier **************************************/ fun modifyLightGlobal(islight,light)= C3DsetGlobalLight (if islight then light else nil) 1;; /************************************* Fonction de modification de la gravité de la scene Renvoie un entier **************************************/ fun modifyGravity(isgrav, grav)= C3DsetGravity (if isgrav then grav else nil) 1;; /************************************* Fonction d'ouverture de la boite de selection de la couleur flat d'un materiau color :couleur de flat param: [o m] objet et materiau qui doivent etre modifiés Renvoie un entier **************************************/ fun openFlat(win,color,m)= let _GETscreenSize -> [w h] in { _CRcolorMap _channel win (w-326)/2 (h-320)/2 (_loc this "SELFLAT" nil) mkfun2 @modifyFlat m color; 0 };; /************************************* Fonction d'ouverture de la boite de selection de la couleur flat d'un materiau color :couleur de flat param: [o m] objet et materiau qui doivent etre modifiés Renvoie un entier **************************************/ fun openFlatColor(win,color,m)= let _GETscreenSize -> [w h] in { _CRcolorMap _channel win (w-326)/2 (h-320)/2 (_loc this "SELFLATCOLOR" nil) mkfun2 @modifyFlatColor m color; 0 };; /************************************* Fonction d'ouverture de la boite de selection du filtre d'un materiau Renvoie un entier **************************************/ fun openFilterTexture(win,x,y,texture,filter,m)= _CRfilterMap _channel win x y (_loc this "SELFILTER" nil) texture filter mkfun2 @modifyFilter m; 0 ;; /************************************* Fonction d'ouverture de la boite de selection de la transparence d'un materiau Renvoie un entier **************************************/ fun openTranspTexture(win,x,y,istransp,transp,m)= _CRtranspMap _channel win x y (_loc this "SELTRANSP" nil) mkfun3 @modifyTransparency m istransp transp; 0 ;; /************************************* Fonction d'ouverture de la boite de selection de la couleur de fond de la scene Renvoie un entier **************************************/ fun openBackColor(win,fond)= let _GETscreenSize -> [w h] in _CRcolorMap _channel win (w-326)/2 (h-320)/2 (_loc this "SELBACKCLR" nil) @modifyBackColor fond; 0 ;; /************************************* Fonction d'ouverture de la boite de selection de la lumière globale de la scène Renvoie un entier **************************************/ fun openLightGlobal(win,x,y,light)= _CRlightMap _channel win x y (_loc this "SELLIGHTCOEFF" nil) @modifyLightGlobal (light!=nil) (if light==nil then 31 else light) (_loc this "DIAG_AMBIENT" nil) 0 63; 0 ;; /************************************* Fonction d'ouverture de la boite de selection de la gravité de la scène Renvoie un entier **************************************/ fun openGravity(win,x,y,grav)= _CRlightMap _channel win x y (_loc this "SELGRAVITY" nil) @modifyGravity (grav!=nil) (if grav==nil then 0 else grav) (_loc this "DIAG_GRAVITY" nil) (-30) 30; 0 ;; fun compFiles(s1,s2)= !strcmpi s1 s2;; fun removelistfromlist(l1,l2)= if l1==nil then l2 else removelistfromlist tl l1 removef_from_list l2 @compFiles hd l1;; /**************************************** Fonction evaluant la nouvelle position d'un objet en face de la camera Renvoie la nouvelle position *****************************************/ fun evalNewM3dPos(view)= [(M3convVrt view.V3dsession view.V3dcamera shell [0 (-100) 200]) [0 0 0]] ;; /************************************* Fonction d'ajout d'un m3d en tant que fils de m Renvoie un entier **************************************/ fun addObject(s,type,checked, param)= let param -> [view father func] in let if checked || (view == nil) then [[0 0 0] [0 0 0]] else evalNewM3dPos view -> pos in { /* MAC ICI : pq la callback est elle définis aprés l'appel à la fonction ????? je change ca en éspérant que cela ne créer pas de problèmes C3DaddM3d s pos father; C3DsetCBaddM3d func;*/ C3DsetCBaddM3d func; C3DaddM3d s pos father; }; 0;; /************************************* Callback de la boite de dialogue de suppression d'objet **************************************/ fun cbremoveObj(msg,param,i)= let param -> [object type func] in if i then { /* MAC ICI : pq la callback est elle définis aprés l'appel à la fonction ????? je change ca en éspérant que cela ne créer pas de problèmes C3DdelM3d object type; C3DsetCBdelM3d func;*/ C3DsetCBdelM3d func; C3DdelM3d object type; } else nil; 0;; /************************************* Fonction d'ouverture de la boite de confirmation de suppression de l'objet Renvoie un entier **************************************/ fun openRemoveObject(objectname, channel, win, object, type, func)= _DLGrflmessage _DLGMessageBox channel win strcat (_loc this "DELOBJECT" nil) objectname if type then _loc this "CDELALL" nil else _loc this "CDEL" nil 2 @cbremoveObj [object type func]; 0;;