Changeset 650 in main for branches


Ignore:
Timestamp:
01/18/12 09:00:09 (9 years ago)
Author:
agalech
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3D/openPLM/document3D/arborescense.py

    r649 r650  
    22from openPLM.document3D.models import * 
    33from openPLM.document3D.Mesh import * 
    4 from openPLM.document3D.composer import * 
    5 from openPLM.document3D.diviser import * 
    64from kjbuckets import kjGraph 
    75from OCC.TopLoc import TopLoc_Location 
     
    119import os, os.path 
    1210import time 
    13 def parcours_recursif(my_shapes_arbre,graph,part_numeration,objects_numeration,menu_generate_objects,loc,old_name,root): 
    14      
     11 
     12 
     13def generate_file_arborescense(my_shapes_arbre,doc_file): 
     14 
     15 
     16 
     17    graph=kjGraph() 
     18    root=[] 
     19    part_numeration=[0] 
     20    objects_numeration=[0] 
     21    menu_generate_objects=["var object3D = new THREE.Object3D();\n"] 
     22 
     23    for i in range(len(my_shapes_arbre)):#para evitar entrar en el root si este tiene cantidad superior a uno 
     24        ok=parcours_recursif(my_shapes_arbre[i],graph,part_numeration,objects_numeration,menu_generate_objects,[],"",root,doc_file.id) 
     25  
     26    if ok: 
     27        generate_file(doc_file,graph,root,menu_generate_objects) 
     28 
     29        
     30    return part_numeration, objects_numeration 
     31 
     32 
     33def parcours_recursif(my_shapes_arbre,graph,part_numeration,objects_numeration,menu_generate_objects,loc,old_name,root,doc_id): 
    1534     
    1635    if  isinstance(my_shapes_arbre,node_shape): 
     
    2645                nom=my_shapes_arbre.name_component+"."+str(part_numeration[0]) 
    2746                root.append(nom) 
    28                  
    29             menu_generate_objects[0]+="var part%s=new THREE.Object3D();\n"%part_numeration[0] 
     47            menu_generate_objects[0]+="var part%s_%s=new THREE.Object3D();\n"%(part_numeration[0],doc_id) 
    3048            part_numeration[0]=part_numeration[0]+1 
    31              
    3249            for i in range(len(my_shapes_arbre.children)): 
    33              
    34                 parcours_recursif(my_shapes_arbre.children[i],graph,part_numeration,objects_numeration,menu_generate_objects,loc2,nom,root) 
     50                parcours_recursif(my_shapes_arbre.children[i],graph,part_numeration,objects_numeration,menu_generate_objects,loc2,nom,root,doc_id) 
    3551             
    3652             
     
    5874            t=transformation.TranslationPart() 
    5975            if a:         
    60                 menu_generate_objects[0]+="object%s.matrix.setRotationAxis(new THREE.Vector3( %s, %s, %s ), %s);\n"%(objects_numeration[0],gp.X(),gp.Y(),gp.Z(),b) 
     76                menu_generate_objects[0]+="object%s_%s.matrix.setRotationAxis(new THREE.Vector3( %s, %s, %s ), %s);\n"%(objects_numeration[0],doc_id,gp.X(),gp.Y(),gp.Z(),b) 
    6177                 
    62             menu_generate_objects[0]+="object%s.matrix.setPosition(new THREE.Vector3( %s, %s, %s ));\n"%(objects_numeration[0],t.X(),t.Y(),t.Z()) 
    63             menu_generate_objects[0]+="object%s.matrixAutoUpdate = false;\n"%objects_numeration[0] 
     78            menu_generate_objects[0]+="object%s_%s.matrix.setPosition(new THREE.Vector3( %s, %s, %s ));\n"%(objects_numeration[0],doc_id,t.X(),t.Y(),t.Z()) 
     79            menu_generate_objects[0]+="object%s_%s.matrixAutoUpdate = false;\n"%(objects_numeration[0],doc_id) 
    6480             
    6581             
    6682        graph.add(old_name,objects_numeration[0]) 
    6783        objects_numeration[0]=objects_numeration[0]+1 
    68                    
     84                       
    6985    return True      
    70      
    71      
    72 def generate_file_arborescense(my_shapes_arbre,doc_file): 
    73  
    74  
    75  
    76     graph=kjGraph() 
    77     root=[] 
    78     part_numeration=[0] 
    79     objects_numeration=[0] 
    80     menu_generate_objects=["var object3D = new THREE.Object3D();\n"] 
    81      
    82     for i in range(len(my_shapes_arbre)):#para evitar entrar en el root si este tiene cantidad superior a uno 
    83         ok=parcours_recursif(my_shapes_arbre[i],graph,part_numeration,objects_numeration,menu_generate_objects,[],"",root) 
    84   
    85     if ok: 
    86         generate_file(doc_file,graph,root,menu_generate_objects) 
    87  
    88         
    89     return part_numeration, objects_numeration 
     86    
     87     
     88 
    9089 
    9190  
     
    112111        ######Generate Menu javascript and objects##################################################################################         
    113112        output.write("function menu() {\nelement = document.createElement(\"div\");\nelement.id=\"root\";\nelement.innerHTML =\"")         
    114         generate_menu(graph,root,output 
     113        generate_menu(graph,root,output,doc_file.id 
    115114        output.write("\";\ndocument.getElementById('menu_').appendChild(element);\n}\n") 
    116115        ######End generate menu##################################################################################################### 
     
    118117         
    119118        #####           Generate objects javascript 
    120         #generate_objects(graph,root,output) 
    121119        output.write(menu_generate_objects[0]) 
    122120        #####           End generate objects 
     
    124122                 
    125123        #####           Generate functions javascript 
    126         generate_functions(graph,root,output) 
     124        generate_functions(graph,root,output,doc_file.id) 
    127125        #####           End generate functions 
    128126         
     
    148146    if (atribute==\"click\"){ 
    149147     
    150         part%(part_id)s.visible=!part%(part_id)s.visible; 
     148        part%(part_id)s_%(doc_id)s.visible=!part%(part_id)s_%(doc_id)s.visible; 
    151149         
    152150    } 
    153151    else{ 
    154         part%(part_id)s.visible=atribute; 
     152        part%(part_id)s_%(doc_id)s.visible=atribute; 
    155153    } 
    156154         
    157155"""  
    158156function_change_part = """ 
    159     change_part%(part_id_2)s(part%(part_id)s.visible)        
     157    change_part%(part_id_2)s_%(doc_id)s(part%(part_id)s_%(doc_id)s.visible)        
    160158""" 
    161159function_change_object = """ 
    162     object%(object_id)s.visible=part%(part_id)s.visible;    
     160    object%(object_id)s_%(doc_id)s.visible=part%(part_id)s_%(doc_id)s.visible;    
    163161"""                                     
    164162           
    165 def generate_functions(graph,root,output,nom=''): 
     163def generate_functions(graph,root,output,doc_id,nom=''): 
    166164 
    167165 
     
    194192 
    195193            output.write("}\n") 
    196             generate_functions(graph,'',output,root[i]) 
     194            generate_functions(graph,'',output,doc_id,root[i]) 
    197195 
    198196#def generate_objects(): 
     
    202200  
    203201 
    204 def generate_menu(graph,root,output,nom=''): 
     202def generate_menu(graph,root,output,doc_id,nom=''): 
    205203 
    206204 
     
    218216            part_id=part_extension.replace(".","") 
    219217 
    220             functio_onclick="change_part"+part_id+"(\\\"click\\\")" 
     218            functio_onclick="change_part"+part_id+"_"+str(doc_id)+"(\\\"click\\\")" 
    221219            output.write("<li > <a href='#' onClick='%s'><b onClick='%s'></b>%s </a>"%(functio_onclick,functio_onclick,part_name)) 
    222220           
    223             generate_menu(graph,'',output,root[i])        
     221            generate_menu(graph,'',output,doc_id,root[i])        
    224222            output.write("</li>") 
    225223 
     
    232230var NewMaterial=new THREE.MeshBasicMaterial({opacity:1,shading:THREE.SmoothShading}); 
    233231NewMaterial.color.setRGB(%(red)f,%(green)f,%(blue)f); 
    234 var object%(numeration)s=new THREE.Mesh( new _%(reference)s(),NewMaterial ); 
    235 object3D.add(object%(numeration)s);         
     232var object%(numeration)s_%(doc_id)s=new THREE.Mesh( new _%(reference)s(),NewMaterial ); 
     233object3D.add(object%(numeration)s_%(doc_id)s);         
    236234"""    
    237235#el grafo para las partes tiene el nombre .id correlativa, para las hojas es directamente un ID             
Note: See TracChangeset for help on using the changeset viewer.