function quick_key2(ev){ var qmap = { "w":["y",1], "s":["y",-1], "d":["x",1], "a":["x",-1], "q":["z",1], "e":["z",-1], } var obj_groups = glob_u.data.o3.obj_arrs var key = ev.key.toLowerCase() var o = qmap[key] if (o){ var o3 = obj_groups.select_1x // obj_groups.select_1 clog(obj_groups.select_1) o3.object.position[o[0]] += o[1] * .008 } clog("qk/2",o,key,qmap) switch(ev.key.toLowerCase()){ case "w": case "a": case "s": case "d": } // clog("qk/2") } function select_highlight(obj,color="#ff0"){ var circle var r = {} var geometry,circle,material geometry = new THREE.CircleGeometry( .12, 3 ); geometry = new THREE.CircleGeometry( .12, 3.1 ); geometry = new THREE.CircleGeometry( .12, 12.9 ); material = new THREE.MeshBasicMaterial( {color,opacity: 0.5,transparent:true, } ); material.side = THREE.DoubleSide circle = new THREE.Mesh( geometry, material ); r.material=material r.circle=circle var obj_groups = glob_u.data.o3.obj_arrs r.circle.position.x = obj.object.position.x r.circle.position.y = obj.object.position.y r.circle.position.z = obj.object.position.z +.00001 r.circle.position.z = obj.object.position.z +.0000001 r.circle.position.z = obj.object.position.z -.00001 scene.add(r.circle) scene.remove(obj_groups.select_1) obj_groups.select_1 = r.circle obj_groups.select_1x = obj r.circle.tx1="select_1" glob_u.cb.ord.run_cbs("add_scene_obj",{o3d:r.circle}) } function rcast() { clog("...") var raycaster = new THREE.Raycaster(); raycaster.setFromCamera( pointer, camera ); clog(raycaster) var intersects = raycaster.intersectObjects( scene.children, false ) // fn(raycaster) var obj_groups = glob_u.data.o3.obj_arrs for (o of intersects){ if (o.object.tx1){ continue } clog(o) select_highlight(o) return } } function add_scene_obj(o,scope,info) { // clog("add_scene_obj",{o,scope,info}) } function discard_scene_obj(o,scope,info) { // clog("discard_scene_obj",{o,scope,info}) // clog("aaaaaaaaaa") } // {o3d:} // clog("??????????????????????????????????????????????/..~") glob_u.cb.ord.reg_cb(add_scene_obj,"add_scene_obj","") glob_u.cb.ord.reg_cb(discard_scene_obj,"discard_scene_obj","") // merge_partial_template() function fn(raycaster){ cnt = Math.round(Math.random()) cnt=0 cnt2=0 for (o of scene.children){ if (!cnt2){ clog(o,cnt) } cnt2 += 1 cnt = !cnt // o.rotation.x = Math.random() * Math.PI /2 // o.rotation.x = Math.PI * Math.round(Math.random()) * 2 if (cnt || 1) { o.rotation.z = raycaster.ray.origin.z o.rotation.x = raycaster.ray.origin.x o.rotation.y = raycaster.ray.origin.y o.rotation.z = raycaster.ray.direction.z o.rotation.x = raycaster.ray.direction.x o.rotation.y = raycaster.ray.direction.y o.rotation.z = raycaster.camera.rotation.z o.rotation.x = raycaster.camera.rotation.x o.rotation.y = raycaster.camera.rotation.y } else { o.rotation.x = 0 o.rotation.y = 0 o.rotation.z = 0 } // o.rotation.x = 1 * Math.round(Math.random()) * 2 } } // fn() function fn2(){ var en var doomed=[] for (en of scene.children){ if (en.tx1){ doomed.push(en) } } for (en of doomed){ scene.remove(en) } } fn2()