From 0edea24c43b7b7cd7f09778d76ba375270a11681 Mon Sep 17 00:00:00 2001 From: Riccardo Elitropi Date: Wed, 27 Mar 2024 13:08:46 +0100 Subject: [PATCH] =?UTF-8?q?Primo=20codice=20di=20prova=20(=20testare=20fun?= =?UTF-8?q?zionalit=C3=A0=20).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../THREEJS_DOORS/Door_models/Door2.3dm | Bin 0 -> 145571 bytes .../THREEJS_DOORS/Door_models/Door3.3dm | Bin 0 -> 155743 bytes .../examples/jsm/controls/OrbitControls.js | 3 +- .../THREEJS_DOORS/StaticRef/cubeControls.js | 20 ++- .../THREEJS_DOORS/StaticRef/refControls.js | 23 ++-- TestArea_IIS01/THREEJS_DOORS/index.html | 121 +++++++++++++----- TestArea_IIS01/THREEJS_DOORS/style.css | 10 +- 7 files changed, 123 insertions(+), 54 deletions(-) create mode 100644 TestArea_IIS01/THREEJS_DOORS/Door_models/Door2.3dm create mode 100644 TestArea_IIS01/THREEJS_DOORS/Door_models/Door3.3dm diff --git a/TestArea_IIS01/THREEJS_DOORS/Door_models/Door2.3dm b/TestArea_IIS01/THREEJS_DOORS/Door_models/Door2.3dm new file mode 100644 index 0000000000000000000000000000000000000000..6cccd6bab68f9101dc4f4384e02302541f184fae GIT binary patch literal 145571 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 DHBjau literal 0 HcmV?d00001 diff --git a/TestArea_IIS01/THREEJS_DOORS/Libs/node_modules/three/examples/jsm/controls/OrbitControls.js b/TestArea_IIS01/THREEJS_DOORS/Libs/node_modules/three/examples/jsm/controls/OrbitControls.js index d21c1eb..fe99d38 100644 --- a/TestArea_IIS01/THREEJS_DOORS/Libs/node_modules/three/examples/jsm/controls/OrbitControls.js +++ b/TestArea_IIS01/THREEJS_DOORS/Libs/node_modules/three/examples/jsm/controls/OrbitControls.js @@ -96,7 +96,8 @@ class OrbitControls extends EventDispatcher { this.keys = { LEFT: 'ArrowLeft', UP: 'ArrowUp', RIGHT: 'ArrowRight', BOTTOM: 'ArrowDown' }; // Mouse buttons - this.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN }; + //this.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN }; + this.mouseButtons = { MIDDLE: MOUSE.PAN }; // Touch fingers this.touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN }; diff --git a/TestArea_IIS01/THREEJS_DOORS/StaticRef/cubeControls.js b/TestArea_IIS01/THREEJS_DOORS/StaticRef/cubeControls.js index 880406c..ae2d6f1 100644 --- a/TestArea_IIS01/THREEJS_DOORS/StaticRef/cubeControls.js +++ b/TestArea_IIS01/THREEJS_DOORS/StaticRef/cubeControls.js @@ -36,6 +36,8 @@ export default class ViewCubeControls extends THREE1.EventDispatcher { this._blue = 0x0275d8 ; this._vers = null ; this._rot = null ; + this._last_event_target_x = null ; + this._last_event_target_y = null ; this._handleMouseMove = this._handleMouseMove.bind( this) ; this._handleMouseClick = this._handleMouseClick.bind( this) ; this._listen() ; @@ -175,6 +177,8 @@ export default class ViewCubeControls extends THREE1.EventDispatcher { _handleMouseMove( event) { const x = ( event.offsetX / event.target.clientWidth) * 2 - 1 ; const y = -( event.offsetY / event.target.clientHeight) * 2 + 1 ; + this._last_event_target_x = x ; + this._last_event_target_y = y ; this._checkSideOver( x, y) ; } @@ -239,8 +243,7 @@ export default class ViewCubeControls extends THREE1.EventDispatcher { const RotY_mat = new THREE1.Matrix4() ; RotY_mat.makeRotationY( Math.PI / 2) ; invRotMat.multiply( RotY_mat) ; - var euler = new THREE1.Euler() ; - euler.setFromRotationMatrix( invRotMat) ; + var euler = new THREE1.Euler().setFromRotationMatrix( invRotMat) ; this._cube.rotation.set( euler.x, euler.y , euler.z) ; if ( this._animation) { @@ -256,7 +259,10 @@ export default class ViewCubeControls extends THREE1.EventDispatcher { } else { this._interp = null ; - } + } + if ( this._last_event_target_x != null && this._last_event_target_y != null) + this._checkSideOver( this._last_event_target_x, this._last_event_target_y) ; + } _TopBottomRotation( type, orbit){ @@ -274,7 +280,7 @@ export default class ViewCubeControls extends THREE1.EventDispatcher { function loop() { const now = performance.now() ; const delta = now - start ; - const alpha = Math.min( delta/duration, maxAlpha); + const alpha = Math.min( delta / duration, maxAlpha); if ( type == 1){ if ( theta_i >= -Math.PI / 2 && theta_i <= Math.PI / 2){ theta_tt = theta_t ; @@ -318,7 +324,7 @@ export default class ViewCubeControls extends THREE1.EventDispatcher { orbit.rotateLeft( jump) ; } } - else{ + else { theta_tt = theta_t ; if ( theta_i >= 0){ theta_t = theta_i - alpha * ( theta_i - Math.PI / 2) ; @@ -857,7 +863,7 @@ var BOX_FACES = [ }, { name: FACES.RIGHT, - map: createTextSprite( "FRONT", { fontSize: 60, font: "Arial Narrow, sans-serif" }) + map: createTextSprite( "BACK", { fontSize: 60, font: "Arial Narrow, sans-serif" }) }, { name: FACES.BACK, @@ -865,7 +871,7 @@ var BOX_FACES = [ }, { name: FACES.LEFT, - map: createTextSprite( "BACK", { fontSize: 60, font: "Arial Narrow, sans-serif" }) + map: createTextSprite( "FRONT", { fontSize: 60, font: "Arial Narrow, sans-serif" }) }, { name: FACES.TOP, diff --git a/TestArea_IIS01/THREEJS_DOORS/StaticRef/refControls.js b/TestArea_IIS01/THREEJS_DOORS/StaticRef/refControls.js index 6835260..cf7a7a4 100644 --- a/TestArea_IIS01/THREEJS_DOORS/StaticRef/refControls.js +++ b/TestArea_IIS01/THREEJS_DOORS/StaticRef/refControls.js @@ -2,25 +2,31 @@ import * as THREE1 from "../Libs/node_modules/three/build/three.module.js"; export function getStaticRef( thick, length) { // color definition - const RED = 0xd9534f ; + const RED = 0xd9534f ; + const DARK_RED = 0xAE423F ; const GREEN = 0x5cb85c ; + const DARK_GREEN = 0x4A934A ; const BLUE = 0x0275d8 ; + const DARK_BLUE = 0x025EAD ; const BLACK = 0x000000 ; // cylinder geometry const axis_geometry = new THREE1.CylinderGeometry( thick, thick, length, 32) ; const arrow_geometry = new THREE1.CylinderGeometry( 0., 2 * thick, length / 5, 32) ; // materials const x_material = new THREE1.MeshBasicMaterial({ color: RED}) ; + const x_darkMaterial = new THREE1.MeshBasicMaterial({ color : DARK_RED}) ; const y_material = new THREE1.MeshBasicMaterial({ color: GREEN}) ; + const y_darkMaterial = new THREE1.MeshBasicMaterial({ color: DARK_GREEN}) ; const z_material = new THREE1.MeshBasicMaterial({ color: BLUE}) ; + const z_darkMaterial = new THREE1.MeshBasicMaterial({ color : DARK_BLUE}) ; // line-meshes const x_cylinder = new THREE1.Mesh( axis_geometry, x_material) ; const y_cylinder = new THREE1.Mesh( axis_geometry, y_material) ; const z_cylinder = new THREE1.Mesh( axis_geometry, z_material) ; // arrow-meshes - const x_cylinder_arrow = new THREE1.Mesh( arrow_geometry, x_material ) ; - const y_cylinder_arrow = new THREE1.Mesh( arrow_geometry, y_material ) ; - const z_cylinder_arrow = new THREE1.Mesh( arrow_geometry, z_material ) ; + const x_cylinder_arrow = new THREE1.Mesh( arrow_geometry, x_darkMaterial) ; + const y_cylinder_arrow = new THREE1.Mesh( arrow_geometry, y_darkMaterial) ; + const z_cylinder_arrow = new THREE1.Mesh( arrow_geometry, z_darkMaterial) ; // rotation for axis and arrows x_cylinder.rotateOnAxis( new THREE1.Vector3( 0., 0., 1.), - Math.PI / 2) ; y_cylinder.rotateOnAxis( new THREE1.Vector3( 1., 0., 0.), Math.PI / 2) ; @@ -49,10 +55,11 @@ export function getStaticRef( thick, length) { return axisGroup ; } -export function updateRef( ref, controls) { - var invRotMat = new THREE1.Matrix4() ; - invRotMat.extractRotation( controls.object.matrix) ; +export function updateRef( ref, myCamera, controls) { + var invRotMat = new THREE1.Matrix4() ; + invRotMat.extractRotation( controls.object.matrix) ; invRotMat.invert() ; - var euler = new THREE1.Euler().setFromRotationMatrix( invRotMat) ; + var euler = new THREE1.Euler().setFromRotationMatrix( invRotMat) ; ref.rotation.set( euler.x, euler.y , euler.z) ; + myCamera.updateMatrix() ; } \ No newline at end of file diff --git a/TestArea_IIS01/THREEJS_DOORS/index.html b/TestArea_IIS01/THREEJS_DOORS/index.html index 1aec83c..93f42f8 100644 --- a/TestArea_IIS01/THREEJS_DOORS/index.html +++ b/TestArea_IIS01/THREEJS_DOORS/index.html @@ -28,15 +28,21 @@
  Camera settings : 
  Zoom : Wheel-Scroll 
- Pan : Mouse-Left and Drag ( hold ) 
- Rotate : Mouse-Right and Drag ( hold )
- Center : Key-C 
+ Pan : Mouse-Wheel and Drag
+ Rotate : Key-CTRL + Mouse-Right and Drag
+ Center : Key-'Space' 
  Type : Key-O ( orthographic ) 
         Key-P ( perspective ) 
                         
  Toggle Auto-rotation : Key-R 
                         
  Toggle Show-Dimension : Key-D
+
+ Toggle Show-Cube : Key-C
+
+ Toggle Show-Frame : Key-F
+
+ Toggle Show-Grid : Key-G
                     
@@ -60,13 +66,18 @@ const FRAME_GROUP_NAME = 'frameGroup' ; const CAMERA_PERSP = 0 ; const CAMERA_ORTHO = 1 ; + const DIMENSION_GROUP_NAME = 'dimGroup' ; + const DIMENSION_DISCRIMINANT_NAME = 'dim_' ; + const GENERAL_ENTITY_GROUP_NAME = 'generalGroup' ; + const START_CAMERA_POSITION = ( new THREE.Vector3( -0.3994, 0.6339, 0.66223)).normalize() ; var SCENE_BACKGROUND_COLOR = new THREE.Color( 0x808080) ; - var CAMERA_TYPE = CAMERA_PERSP ; + var CAMERA_TYPE = CAMERA_ORTHO ; var SHOW_DIMENSION = true ; var GRID_MAIN_COLOR = new THREE.Color( 0x000000) ; var GRID_SECOND_COLOR = new THREE.Color( 0xcccccc) ; var PATH = 'https://iis01.egalware.com/Test3D/THREEJS_DOORS/Door_models' ; var FILE_NAME = getUrlParameter('src') ; + var CTRL_DOWN = false ; // referement global variables --------- var scene_ref ; var renderer_ref ; var camera_ref ; var group_ref ; var cube_ref ; @@ -102,6 +113,16 @@ // controls const controls = new OrbitControls( CAMERA_TYPE == CAMERA_PERSP ? perspCamera : ortoCamera, renderer.domElement) ; + controls.autoRotate = true ; + + // entity-groups ( to split entities between dimensions and general's ones ) + const dimensionGroup = new THREE.Group() ; + dimensionGroup.name = DIMENSION_GROUP_NAME ; + const general_entity_Group = new THREE.Group() ; + general_entity_Group.name = GENERAL_ENTITY_GROUP_NAME ; + // creating grid and frame ( over it ) Group + const gridGroup = new THREE.Group() ; + const frameGroup = new THREE.Group() ; // reading .3dm file readDoor() ; @@ -113,20 +134,20 @@ controls.update() ; cube_ref.update( controls) ; renderer_ref.render( scene_ref, camera_ref) ; + updateRef( frame_ref1, camera_ref1, controls) ; renderer_ref1.render( scene_ref1, camera_ref1) ; - updateRef( frame_ref1, controls) ; } function readDoor() { const loader = new Rhino3dmLoader() ; loader.setLibraryPath( './Libs/node_modules/three/examples/jsm/libs/rhino3dm/' ) ; loader.load( PATH + "/" + FILE_NAME, function( object) { - // passing into threejs frame - //object.rotateX( - Math.PI / 2) ; - // removing shading from colors and adjusting z-fighting with lines + // removing shading from colors and adjusting z-fighting with lines ( organizing groups entities ) for ( let i = 0 ; i < object.children.length ; ++ i) - setOpenGLRenderProperties( object.children[i]) ; - scene.add( object) ; + setOpenGLRenderProperties( object.children[i], dimensionGroup, general_entity_Group) ; + // adding groups to scene + scene.add( dimensionGroup) ; + scene.add( general_entity_Group) ; // setting Box3d of the door set3dBox( object) ; // setting camera position @@ -144,7 +165,7 @@ }) ; } - function setOpenGLRenderProperties( object) { + function setOpenGLRenderProperties( object, dimensionGroup, general_entity_Group) { if ( object.type == 'Mesh') { object.material.emissive.set( 0x000000) ; // Set emissive color to black object.material.polygonOffset = true ; // enable polygonOffset @@ -162,6 +183,11 @@ object.material.opacity = 1 ; // high-level of opacity object.renderOrder = 1 ; // ordering them on Z-buffer after meshes } + // classifying between groups + if ( object.name.substring( 0, DIMENSION_DISCRIMINANT_NAME.length) == DIMENSION_DISCRIMINANT_NAME) + dimensionGroup.add( object.clone()) ; // dimension-type object + else + general_entity_Group.add( object.clone()) ; // general-entity-type object } function set3dBox( object) { @@ -175,17 +201,21 @@ function setCameraPosition() { // maxSize of the box - const maxSize = Math.max( m_size.x, m_size.y, m_size.z) ; + var maxSize = Math.max( m_size.x, m_size.y, m_size.z) ; + const aspectRatio = window.innerWidth / window.innerHeight ; if ( CAMERA_TYPE == CAMERA_ORTHO) { - const aspectRatio = window.innerWidth / window.innerHeight ; - controls.object.left = - aspectRatio * maxSize ; - controls.object.right = aspectRatio * maxSize ; - controls.object.bottom = - maxSize ; - controls.object.top = maxSize ; - controls.object.zoom = 1.5 ; // 1.25 * maxSize + maxSize *= 5 ; + controls.object.left = - 0.2 * aspectRatio * maxSize ; + controls.object.right = 0.2 * aspectRatio * maxSize ; + controls.object.bottom = - 0.2 * maxSize ; + controls.object.top = 0.2 * maxSize ; + controls.object.zoom = 1.5 ; // 1.25 * maxSize + controls.object.near = - 2 * maxSize ; + controls.object.far = 2 * maxSize ; + maxSize /= 5 ; } // position of the camera - const positionVec = m_box.min.clone().add(( new THREE.Vector3( 0, 0.75, 1)).normalize().multiplyScalar( maxSize)) ; + const positionVec = m_box.min.clone().add( START_CAMERA_POSITION.clone().multiplyScalar( maxSize)) ; const targetVec = m_box.min.clone().add( new THREE.Vector3( 0, 0.5 * m_size.y, 0)) ; controls.object.position.copy( positionVec) ; // this zoom won't change for ortho, it's just for the position controls.target.copy( targetVec) ; @@ -201,8 +231,6 @@ const gridHalf_edge = 1.25 * Math.max( m_size.x, m_size.z) ; // defining step const step = gridHalf_edge / 5 ; - // creating grid Group - const gridGroup = new THREE.Group() ; // creating the grid and adding to the scene for ( let i = 0 ; i < 11 ; ++ i) { const x_line = new THREE.Line( @@ -257,8 +285,6 @@ new THREE.LineBasicMaterial({ color : new THREE.Color( 0x0000ff)}) ) ; - // creating the group of the frame and adding it to the scene - const frameGroup = new THREE.Group() ; frameGroup.add( x_axis) ; frameGroup.add( y_axis) ; frameGroup.add( z_axis) ; @@ -320,7 +346,7 @@ // setting standard camera posizion and lookAt -> made according cube dimension camera_ref1.position.set( 0, 0, 70) ; camera_ref1.lookAt( 0, 0, 0) ; - // creatin the cube object and adding it to the scene + // creating the cube object and adding it to the scene frame_ref1 = getStaticRef( 1, 25) ; scene_ref1.add( frame_ref1) ; } @@ -329,31 +355,61 @@ controls.autoRotate = ( ! controls.autoRotate) ; } + function toggleDimensionVisibility() { + dimensionGroup.visible = ! dimensionGroup.visible ; + } + + function toggleCubeVisibility() { + var cubeContainer = document.getElementById( 'RefRender') ; + if ( cubeContainer.style.display === "none") + cubeContainer.style.display = "block"; + else + cubeContainer.style.display = "none"; + } + + function toggleFrameVisibility() { + var frameContainer = document.getElementById( 'Ref1Render') ; + if ( frameContainer.style.display === "none") + frameContainer.style.display = "block"; + else + frameContainer.style.display = "none"; + } + + function toggleGridVisibility() { + gridGroup.visible = ! gridGroup.visible ; + frameGroup.visible = ! frameGroup.visible ; + } + // Event Listner ------------------------------------------------------------------- // KEY document.addEventListener( "keypress", function( event) { - if ( event.key === "r") + if ( event.key.toLowerCase() === "r") ToggleRotation() ; - else if ( event.key === 'p' || event.key === 'P') { + else if ( event.key.toLowerCase() === 'p') { if ( CAMERA_TYPE == CAMERA_PERSP) return ; controls.object = perspCamera.clone() ; CAMERA_TYPE = CAMERA_PERSP ; setCameraPosition() ; } - else if ( event.key === 'o' || event.key === 'O') { + else if ( event.key.toLowerCase() === 'o') { if ( CAMERA_TYPE == CAMERA_ORTHO) return ; controls.object = ortoCamera.clone() ; CAMERA_TYPE = CAMERA_ORTHO ; setCameraPosition() ; - setStaticFrame() ; } - else if ( event.key === 'd' || event.key === 'D') - window.alert( 'manca :(') ; - else if ( event.key === 'c' || event.key === 'C') + else if ( event.key.toLowerCase() === 'd') + toggleDimensionVisibility() ; + else if ( event.key.toLowerCase() === ' ') setCameraPosition() ; - }); + else if ( event.key.toLowerCase() === 'c') + toggleCubeVisibility() ; + else if ( event.key.toLowerCase() === 'f') + toggleFrameVisibility() ; + else if ( event.key.toLowerCase() === 'g') + toggleGridVisibility() ; + }) ; // Elements var helpButton = document.getElementById( "helpButton") ; @@ -375,7 +431,6 @@ // get parameter value by name return urlParams.get( name) ; } - \ No newline at end of file diff --git a/TestArea_IIS01/THREEJS_DOORS/style.css b/TestArea_IIS01/THREEJS_DOORS/style.css index edf3a45..505f31f 100644 --- a/TestArea_IIS01/THREEJS_DOORS/style.css +++ b/TestArea_IIS01/THREEJS_DOORS/style.css @@ -17,7 +17,7 @@ canvas { top: 10px ; right: 10px ; background-color: transparent ; - width: 250px ; + width: 275px ; } .container { @@ -58,15 +58,15 @@ canvas { height: 200px ; bottom: 10px ; right: 10px ; - border: 1px solid black ; + /*border: 1px solid black ;*/ } #Ref1Render { position: fixed ; - width: 200px ; - height: 200px ; + width: 150px ; + height: 150px ; bottom: 10px ; left: 10px ; background-color: transparent ; - border: 1px solid black ; + /*border: 1px solid black ;*/ }