Changeset 1205 in main
- Timestamp:
- 06/11/12 09:31:42 (7 years ago)
- Location:
- trunk/openPLM/document3D
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/openPLM/document3D/arborescense.py
r1022 r1205 1 import os, os.path 1 # TODO: refactor this code 2 2 3 import django.utils.simplejson as json4 5 3 def generate_javascript_for_3D(product): 6 4 """ … … 13 11 if product: 14 12 numeration=[0] 15 javascript=['var object3D = new THREE.Object3D();\n'] 16 17 18 13 javascript=['var object3D = new THREE.Object3D(); var part_to_object = {}; var part_to_parts = {};\n'] 19 14 javascript_menu=['function menu() {\nelement = document.createElement("div");\nelement.id="root";\nelement.innerHTML ="'] 20 21 22 15 23 16 javascript[0]+='var part%s=new THREE.Object3D();\n'%numeration[0] 24 17 javascript_menu[0]+=function_generate_menu(numeration[0],product.name) 25 18 26 ok=generate_javascript(product,numeration,javascript,[],javascript_menu,numeration[0])19 generate_javascript(product,numeration,javascript,[],javascript_menu,numeration[0]) 27 20 28 21 javascript_menu[0]+='</li></ul>' … … 35 28 36 29 def generate_javascript(product,numeration,javascript,loc,javascript_menu,old_numeration): 37 38 39 30 numeration[0]+=1 40 31 … … 45 36 46 37 for link in product.links: 47 48 49 50 38 for i in range(link.quantity): 51 39 … … 60 48 javascript_menu[0]+="</li>" 61 49 62 63 50 javascript[0]+=generate_functions_visibilty_parts(old_numeration,parts_generated) 64 51 … … 66 53 67 54 javascript[0]+=generate_functions_visibilty_object(old_numeration,numeration[0],product,loc) 68 69 70 55 javascript_menu[0]+="</ul>" 71 72 73 74 56 75 57 76 58 77 59 def generate_functions_visibilty_parts(numeration,parts_generated): 78 79 80 parts_definition="" 81 function=str(function_head % (locals())) 60 parts_definition = [] 61 function = [function_head % locals()] 62 part_to_parts = ['part_to_parts["part%s"] = [' % numeration] 82 63 for part_numeration_child in parts_generated: 83 parts_definition+="var part%s=new THREE.Object3D();\n"%part_numeration_child 84 function+=str(function_change_part % (locals())) 85 function+="}\n" 86 return parts_definition+function 87 88 89 64 parts_definition.append( "var part%s=new THREE.Object3D();\n"%part_numeration_child) 65 function.append(function_change_part % locals()) 66 part_to_parts.append('"part%s", ' % part_numeration_child) 67 part_to_parts.append("];\n") 68 function.append("}\n") 69 return ''.join(parts_definition) + ''.join(function) + ''.join(part_to_parts) 90 70 91 71 def generate_functions_visibilty_object(numeration,object_numeration,product,loc): 92 93 94 95 72 reference=product.geometry 96 73 part_id=str(product.doc_id) 97 74 98 function=str(function_head % (locals()))+str(function_change_object % (locals()))+"}\n" 75 function= function_head % locals() + function_change_object % locals() + "}\n" 76 function += "part_to_object['part%(numeration)s'] = object%(object_numeration)s;" % locals() 99 77 100 78 return generate_object(loc,object_numeration,reference,part_id)+function 101 79 102 80 103 104 105 81 def generate_object(loc,numeration,reference,part_id): 106 107 108 109 82 110 83 locate="var object%s=new THREE.Mesh(_%s_%s,material_for_%s_%s );\n"%(numeration,reference,part_id,reference,part_id) … … 115 88 loc[g].y2,loc[g].y3,loc[g].y4,loc[g].z1,loc[g].z2,loc[g].z3,loc[g].z4) 116 89 117 118 90 locate+="object3D.add(object%s);\n"%numeration 119 120 121 122 123 91 return locate 124 92 … … 127 95 128 96 onclick="change_part"+str(numeration)+"(\\\"click\\\")" 129 return "<li > <a href='#' onClick='%s'><b onClick='%s'></b>%s </a>"%(onclick,onclick,name)97 return "<li > <a href='#' id='li-part-%s' onClick='%s'><b onClick='%s'></b>%s </a>" % (numeration, onclick,onclick,name) 130 98 131 99 132 100 133 101 function_head = """ 134 function change_part%(numeration)s(at ribute) {135 if (at ribute==\"click\"){102 function change_part%(numeration)s(attr) { 103 if (attr == "click"){ 136 104 137 105 part%(numeration)s.visible=!part%(numeration)s.visible; … … 139 107 } 140 108 else{ 141 part%(numeration)s.visible=at ribute;109 part%(numeration)s.visible=attr; 142 110 } 143 111 """ … … 145 113 146 114 function_change_part = """ 147 change_part%(part_numeration_child)s(part%(numeration)s.visible) 115 change_part%(part_numeration_child)s(part%(numeration)s.visible); 148 116 """ 149 117 function_change_object = """ 150 118 object%(object_numeration)s.visible=part%(numeration)s.visible; 151 119 """ 152 153 120 154 155 156 157 158 159 160 161 -
trunk/openPLM/document3D/templates/Display3D.htm
r1203 r1205 242 242 spot2 = light; 243 243 light.target.position.set( 0, 8, 0 ); 244 light.shadowCameraNear 245 light.castShadow 246 light.shadowDarkness 244 light.shadowCameraNear = 0.01; 245 light.castShadow = true; 246 light.shadowDarkness = 0.1; 247 247 scene.add( light ); 248 248 … … 260 260 opacity: 0.8// obj.material.opacity 261 261 }); 262 obj.material.original_color = obj.material.color.getHex(); 262 263 } 263 264 object3D.castShadow = true; … … 321 322 }); 322 323 323 } 324 } 324 $('.menu a').hover( 325 function (){ 326 var part = "part" + $(this).attr("id").replace("li-part-", ""); 327 highlight_part(part); 328 }, 329 function () { 330 var part = "part" + $(this).attr("id").replace("li-part-", ""); 331 unhighlight_part(part); 332 } 333 ); 334 335 } 336 } 337 338 function highlight_part(part_id) { 339 340 var obj = part_to_object[part_id]; 341 if (obj != undefined){ 342 m = obj.material; 343 m.color.setHex(0xff0000); 344 } 345 $(part_to_parts[part_id]).each ( 346 function (i,p) { 347 highlight_part(p); 348 } 349 ); 350 } 351 352 function unhighlight_part(part_id) { 353 var obj = part_to_object[part_id]; 354 if (obj != undefined){ 355 m = obj.material; 356 m.color.setHex(m.original_color); 357 } 358 $(part_to_parts[part_id]).each ( 359 function (i,p) { 360 unhighlight_part(p); 361 } 362 ); 363 364 } 325 365 326 366 … … 387 427 {% endif %} 388 428 389 390 391 429 </script> 430 431 {% endblock %}
Note: See TracChangeset
for help on using the changeset viewer.