From: miha-q <> Date: Mon, 20 Jan 2025 01:12:02 +0000 (-0500) Subject: Sun Jan 19 08:12:02 PM EST 2025 X-Git-Url: http://www.foleosoft.com/?a=commitdiff_plain;h=9f27c0d1156b975ddc5333e25deb70096b3c41b1;p=QAnsel.git Sun Jan 19 08:12:02 PM EST 2025 --- diff --git a/src/imports/OrbitControls.js b/src/imports/OrbitControls.js deleted file mode 100644 index 0873097..0000000 --- a/src/imports/OrbitControls.js +++ /dev/null @@ -1,1045 +0,0 @@ -( function () { - - // Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default). - // - // Orbit - left mouse / touch: one-finger move - // Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish - // Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move - - const _changeEvent = { - type: 'change' - }; - const _startEvent = { - type: 'start' - }; - const _endEvent = { - type: 'end' - }; - - class OrbitControls extends THREE.EventDispatcher { - - constructor( object, domElement ) { - - super(); - if ( domElement === undefined ) console.warn( 'THREE.OrbitControls: The second parameter "domElement" is now mandatory.' ); - if ( domElement === document ) console.error( 'THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.' ); - this.object = object; - this.domElement = domElement; // Set to false to disable this control - - this.enabled = true; // "target" sets the location of focus, where the object orbits around - - this.target = new THREE.Vector3(); // How far you can dolly in and out ( PerspectiveCamera only ) - - this.minDistance = 0; - this.maxDistance = Infinity; // How far you can zoom in and out ( OrthographicCamera only ) - - this.minZoom = 0; - this.maxZoom = Infinity; // How far you can orbit vertically, upper and lower limits. - // Range is 0 to Math.PI radians. - - this.minPolarAngle = 0; // radians - - this.maxPolarAngle = Math.PI; // radians - // How far you can orbit horizontally, upper and lower limits. - // If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI ) - - this.minAzimuthAngle = - Infinity; // radians - - this.maxAzimuthAngle = Infinity; // radians - // Set to true to enable damping (inertia) - // If damping is enabled, you must call controls.update() in your animation loop - - this.enableDamping = false; - this.dampingFactor = 0.05; // This option actually enables dollying in and out; left as "zoom" for backwards compatibility. - // Set to false to disable zooming - - this.enableZoom = true; - this.zoomSpeed = 1.0; // Set to false to disable rotating - - this.enableRotate = true; - this.rotateSpeed = 1.0; // Set to false to disable panning - - this.enablePan = true; - this.panSpeed = 1.0; - this.screenSpacePanning = true; // if false, pan orthogonal to world-space direction camera.up - - this.keyPanSpeed = 7.0; // pixels moved per arrow key push - // Set to true to automatically rotate around the target - // If auto-rotate is enabled, you must call controls.update() in your animation loop - - this.autoRotate = false; - this.autoRotateSpeed = 2.0; // 30 seconds per orbit when fps is 60 - // The four arrow keys - - this.keys = { - LEFT: 'ArrowLeft', - UP: 'ArrowUp', - RIGHT: 'ArrowRight', - BOTTOM: 'ArrowDown' - }; // Mouse buttons - - this.mouseButtons = { - LEFT: THREE.MOUSE.ROTATE, - MIDDLE: THREE.MOUSE.DOLLY, - RIGHT: THREE.MOUSE.PAN - }; // Touch fingers - - this.touches = { - ONE: THREE.TOUCH.ROTATE, - TWO: THREE.TOUCH.DOLLY_PAN - }; // for reset - - this.target0 = this.target.clone(); - this.position0 = this.object.position.clone(); - this.zoom0 = this.object.zoom; // the target DOM element for key events - - this._domElementKeyEvents = null; // - // public methods - // - - this.getPolarAngle = function () { - - return spherical.phi; - - }; - - this.getAzimuthalAngle = function () { - - return spherical.theta; - - }; - - this.listenToKeyEvents = function ( domElement ) { - - domElement.addEventListener( 'keydown', onKeyDown ); - this._domElementKeyEvents = domElement; - - }; - - this.saveState = function () { - - scope.target0.copy( scope.target ); - scope.position0.copy( scope.object.position ); - scope.zoom0 = scope.object.zoom; - - }; - - this.reset = function () { - - scope.target.copy( scope.target0 ); - scope.object.position.copy( scope.position0 ); - scope.object.zoom = scope.zoom0; - scope.object.updateProjectionMatrix(); - scope.dispatchEvent( _changeEvent ); - scope.update(); - state = STATE.NONE; - - }; // this method is exposed, but perhaps it would be better if we can make it private... - - - this.update = function () { - - const offset = new THREE.Vector3(); // so camera.up is the orbit axis - - const quat = new THREE.Quaternion().setFromUnitVectors( object.up, new THREE.Vector3( 0, 1, 0 ) ); - const quatInverse = quat.clone().invert(); - const lastPosition = new THREE.Vector3(); - const lastQuaternion = new THREE.Quaternion(); - const twoPI = 2 * Math.PI; - return function update() { - - const position = scope.object.position; - offset.copy( position ).sub( scope.target ); // rotate offset to "y-axis-is-up" space - - offset.applyQuaternion( quat ); // angle from z-axis around y-axis - - spherical.setFromVector3( offset ); - - if ( scope.autoRotate && state === STATE.NONE ) { - - rotateLeft( getAutoRotationAngle() ); - - } - - if ( scope.enableDamping ) { - - spherical.theta += sphericalDelta.theta * scope.dampingFactor; - spherical.phi += sphericalDelta.phi * scope.dampingFactor; - - } else { - - spherical.theta += sphericalDelta.theta; - spherical.phi += sphericalDelta.phi; - - } // restrict theta to be between desired limits - - - let min = scope.minAzimuthAngle; - let max = scope.maxAzimuthAngle; - - if ( isFinite( min ) && isFinite( max ) ) { - - if ( min < - Math.PI ) min += twoPI; else if ( min > Math.PI ) min -= twoPI; - if ( max < - Math.PI ) max += twoPI; else if ( max > Math.PI ) max -= twoPI; - - if ( min <= max ) { - - spherical.theta = Math.max( min, Math.min( max, spherical.theta ) ); - - } else { - - spherical.theta = spherical.theta > ( min + max ) / 2 ? Math.max( min, spherical.theta ) : Math.min( max, spherical.theta ); - - } - - } // restrict phi to be between desired limits - - - spherical.phi = Math.max( scope.minPolarAngle, Math.min( scope.maxPolarAngle, spherical.phi ) ); - spherical.makeSafe(); - spherical.radius *= scale; // restrict radius to be between desired limits - - spherical.radius = Math.max( scope.minDistance, Math.min( scope.maxDistance, spherical.radius ) ); // move target to panned location - - if ( scope.enableDamping === true ) { - - scope.target.addScaledVector( panOffset, scope.dampingFactor ); - - } else { - - scope.target.add( panOffset ); - - } - - offset.setFromSpherical( spherical ); // rotate offset back to "camera-up-vector-is-up" space - - offset.applyQuaternion( quatInverse ); - position.copy( scope.target ).add( offset ); - scope.object.lookAt( scope.target ); - - if ( scope.enableDamping === true ) { - - sphericalDelta.theta *= 1 - scope.dampingFactor; - sphericalDelta.phi *= 1 - scope.dampingFactor; - panOffset.multiplyScalar( 1 - scope.dampingFactor ); - - } else { - - sphericalDelta.set( 0, 0, 0 ); - panOffset.set( 0, 0, 0 ); - - } - - scale = 1; // update condition is: - // min(camera displacement, camera rotation in radians)^2 > EPS - // using small-angle approximation cos(x/2) = 1 - x^2 / 8 - - if ( zoomChanged || lastPosition.distanceToSquared( scope.object.position ) > EPS || 8 * ( 1 - lastQuaternion.dot( scope.object.quaternion ) ) > EPS ) { - - scope.dispatchEvent( _changeEvent ); - lastPosition.copy( scope.object.position ); - lastQuaternion.copy( scope.object.quaternion ); - zoomChanged = false; - return true; - - } - - return false; - - }; - - }(); - - this.dispose = function () { - - scope.domElement.removeEventListener( 'contextmenu', onContextMenu ); - scope.domElement.removeEventListener( 'pointerdown', onPointerDown ); - scope.domElement.removeEventListener( 'wheel', onMouseWheel ); - scope.domElement.removeEventListener( 'touchstart', onTouchStart ); - scope.domElement.removeEventListener( 'touchend', onTouchEnd ); - scope.domElement.removeEventListener( 'touchmove', onTouchMove ); - scope.domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove ); - scope.domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp ); - - if ( scope._domElementKeyEvents !== null ) { - - scope._domElementKeyEvents.removeEventListener( 'keydown', onKeyDown ); - - } //scope.dispatchEvent( { type: 'dispose' } ); // should this be added here? - - }; // - // internals - // - - - const scope = this; - const STATE = { - NONE: - 1, - ROTATE: 0, - DOLLY: 1, - PAN: 2, - TOUCH_ROTATE: 3, - TOUCH_PAN: 4, - TOUCH_DOLLY_PAN: 5, - TOUCH_DOLLY_ROTATE: 6 - }; - let state = STATE.NONE; - const EPS = 0.000001; // current position in spherical coordinates - - const spherical = new THREE.Spherical(); - const sphericalDelta = new THREE.Spherical(); - let scale = 1; - const panOffset = new THREE.Vector3(); - let zoomChanged = false; - const rotateStart = new THREE.Vector2(); - const rotateEnd = new THREE.Vector2(); - const rotateDelta = new THREE.Vector2(); - const panStart = new THREE.Vector2(); - const panEnd = new THREE.Vector2(); - const panDelta = new THREE.Vector2(); - const dollyStart = new THREE.Vector2(); - const dollyEnd = new THREE.Vector2(); - const dollyDelta = new THREE.Vector2(); - - function getAutoRotationAngle() { - - return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed; - - } - - function getZoomScale() { - - return Math.pow( 0.95, scope.zoomSpeed ); - - } - - function rotateLeft( angle ) { - - sphericalDelta.theta -= angle; - - } - - function rotateUp( angle ) { - - sphericalDelta.phi -= angle; - - } - - const panLeft = function () { - - const v = new THREE.Vector3(); - return function panLeft( distance, objectMatrix ) { - - v.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix - - v.multiplyScalar( - distance ); - panOffset.add( v ); - - }; - - }(); - - const panUp = function () { - - const v = new THREE.Vector3(); - return function panUp( distance, objectMatrix ) { - - if ( scope.screenSpacePanning === true ) { - - v.setFromMatrixColumn( objectMatrix, 1 ); - - } else { - - v.setFromMatrixColumn( objectMatrix, 0 ); - v.crossVectors( scope.object.up, v ); - - } - - v.multiplyScalar( distance ); - panOffset.add( v ); - - }; - - }(); // deltaX and deltaY are in pixels; right and down are positive - - - const pan = function () { - - const offset = new THREE.Vector3(); - return function pan( deltaX, deltaY ) { - - const element = scope.domElement; - - if ( scope.object.isPerspectiveCamera ) { - - // perspective - const position = scope.object.position; - offset.copy( position ).sub( scope.target ); - let targetDistance = offset.length(); // half of the fov is center to top of screen - - targetDistance *= Math.tan( scope.object.fov / 2 * Math.PI / 180.0 ); // we use only clientHeight here so aspect ratio does not distort speed - - panLeft( 2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix ); - panUp( 2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix ); - - } else if ( scope.object.isOrthographicCamera ) { - - // orthographic - panLeft( deltaX * ( scope.object.right - scope.object.left ) / scope.object.zoom / element.clientWidth, scope.object.matrix ); - panUp( deltaY * ( scope.object.top - scope.object.bottom ) / scope.object.zoom / element.clientHeight, scope.object.matrix ); - - } else { - - // camera neither orthographic nor perspective - console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' ); - scope.enablePan = false; - - } - - }; - - }(); - - function dollyOut( dollyScale ) { - - if ( scope.object.isPerspectiveCamera ) { - - scale /= dollyScale; - - } else if ( scope.object.isOrthographicCamera ) { - - scope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom * dollyScale ) ); - scope.object.updateProjectionMatrix(); - zoomChanged = true; - - } else { - - console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' ); - scope.enableZoom = false; - - } - - } - - function dollyIn( dollyScale ) { - - if ( scope.object.isPerspectiveCamera ) { - - scale *= dollyScale; - - } else if ( scope.object.isOrthographicCamera ) { - - scope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom / dollyScale ) ); - scope.object.updateProjectionMatrix(); - zoomChanged = true; - - } else { - - console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' ); - scope.enableZoom = false; - - } - - } // - // event callbacks - update the object state - // - - - function handleMouseDownRotate( event ) { - - rotateStart.set( event.clientX, event.clientY ); - - } - - function handleMouseDownDolly( event ) { - - dollyStart.set( event.clientX, event.clientY ); - - } - - function handleMouseDownPan( event ) { - - panStart.set( event.clientX, event.clientY ); - - } - - function handleMouseMoveRotate( event ) { - - rotateEnd.set( event.clientX, event.clientY ); - rotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed ); - const element = scope.domElement; - rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height - - rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight ); - rotateStart.copy( rotateEnd ); - scope.update(); - - } - - function handleMouseMoveDolly( event ) { - - dollyEnd.set( event.clientX, event.clientY ); - dollyDelta.subVectors( dollyEnd, dollyStart ); - - if ( dollyDelta.y > 0 ) { - - dollyOut( getZoomScale() ); - - } else if ( dollyDelta.y < 0 ) { - - dollyIn( getZoomScale() ); - - } - - dollyStart.copy( dollyEnd ); - scope.update(); - - } - - function handleMouseMovePan( event ) { - - panEnd.set( event.clientX, event.clientY ); - panDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed ); - pan( panDelta.x, panDelta.y ); - panStart.copy( panEnd ); - scope.update(); - - } - - function handleMouseUp( ) { // no-op - } - - function handleMouseWheel( event ) { - - if ( event.deltaY < 0 ) { - - dollyIn( getZoomScale() ); - - } else if ( event.deltaY > 0 ) { - - dollyOut( getZoomScale() ); - - } - - scope.update(); - - } - - function handleKeyDown( event ) { - - let needsUpdate = false; - - switch ( event.code ) { - - case scope.keys.UP: - pan( 0, scope.keyPanSpeed ); - needsUpdate = true; - break; - - case scope.keys.BOTTOM: - pan( 0, - scope.keyPanSpeed ); - needsUpdate = true; - break; - - case scope.keys.LEFT: - pan( scope.keyPanSpeed, 0 ); - needsUpdate = true; - break; - - case scope.keys.RIGHT: - pan( - scope.keyPanSpeed, 0 ); - needsUpdate = true; - break; - - } - - if ( needsUpdate ) { - - // prevent the browser from scrolling on cursor keys - event.preventDefault(); - scope.update(); - - } - - } - - function handleTouchStartRotate( event ) { - - if ( event.touches.length == 1 ) { - - rotateStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ); - - } else { - - const x = 0.5 * ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX ); - const y = 0.5 * ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY ); - rotateStart.set( x, y ); - - } - - } - - function handleTouchStartPan( event ) { - - if ( event.touches.length == 1 ) { - - panStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ); - - } else { - - const x = 0.5 * ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX ); - const y = 0.5 * ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY ); - panStart.set( x, y ); - - } - - } - - function handleTouchStartDolly( event ) { - - const dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX; - const dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY; - const distance = Math.sqrt( dx * dx + dy * dy ); - dollyStart.set( 0, distance ); - - } - - function handleTouchStartDollyPan( event ) { - - if ( scope.enableZoom ) handleTouchStartDolly( event ); - if ( scope.enablePan ) handleTouchStartPan( event ); - - } - - function handleTouchStartDollyRotate( event ) { - - if ( scope.enableZoom ) handleTouchStartDolly( event ); - if ( scope.enableRotate ) handleTouchStartRotate( event ); - - } - - function handleTouchMoveRotate( event ) { - - if ( event.touches.length == 1 ) { - - rotateEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ); - - } else { - - const x = 0.5 * ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX ); - const y = 0.5 * ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY ); - rotateEnd.set( x, y ); - - } - - rotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed ); - const element = scope.domElement; - rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height - - rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight ); - rotateStart.copy( rotateEnd ); - - } - - function handleTouchMovePan( event ) { - - if ( event.touches.length == 1 ) { - - panEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ); - - } else { - - const x = 0.5 * ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX ); - const y = 0.5 * ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY ); - panEnd.set( x, y ); - - } - - panDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed ); - pan( panDelta.x, panDelta.y ); - panStart.copy( panEnd ); - - } - - function handleTouchMoveDolly( event ) { - - const dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX; - const dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY; - const distance = Math.sqrt( dx * dx + dy * dy ); - dollyEnd.set( 0, distance ); - dollyDelta.set( 0, Math.pow( dollyEnd.y / dollyStart.y, scope.zoomSpeed ) ); - dollyOut( dollyDelta.y ); - dollyStart.copy( dollyEnd ); - - } - - function handleTouchMoveDollyPan( event ) { - - if ( scope.enableZoom ) handleTouchMoveDolly( event ); - if ( scope.enablePan ) handleTouchMovePan( event ); - - } - - function handleTouchMoveDollyRotate( event ) { - - if ( scope.enableZoom ) handleTouchMoveDolly( event ); - if ( scope.enableRotate ) handleTouchMoveRotate( event ); - - } - - function handleTouchEnd( ) { // no-op - } // - // event handlers - FSM: listen for events and reset state - // - - - function onPointerDown( event ) { - - if ( scope.enabled === false ) return; - - switch ( event.pointerType ) { - - case 'mouse': - case 'pen': - onMouseDown( event ); - break; - // TODO touch - - } - - } - - function onPointerMove( event ) { - - if ( scope.enabled === false ) return; - - switch ( event.pointerType ) { - - case 'mouse': - case 'pen': - onMouseMove( event ); - break; - // TODO touch - - } - - } - - function onPointerUp( event ) { - - switch ( event.pointerType ) { - - case 'mouse': - case 'pen': - onMouseUp( event ); - break; - // TODO touch - - } - - } - - function onMouseDown( event ) { - - // Prevent the browser from scrolling. - event.preventDefault(); // Manually set the focus since calling preventDefault above - // prevents the browser from setting it automatically. - - scope.domElement.focus ? scope.domElement.focus() : window.focus(); - let mouseAction; - - switch ( event.button ) { - - case 0: - mouseAction = scope.mouseButtons.LEFT; - break; - - case 1: - mouseAction = scope.mouseButtons.MIDDLE; - break; - - case 2: - mouseAction = scope.mouseButtons.RIGHT; - break; - - default: - mouseAction = - 1; - - } - - switch ( mouseAction ) { - - case THREE.MOUSE.DOLLY: - if ( scope.enableZoom === false ) return; - handleMouseDownDolly( event ); - state = STATE.DOLLY; - break; - - case THREE.MOUSE.ROTATE: - if ( event.ctrlKey || event.metaKey || event.shiftKey ) { - - if ( scope.enablePan === false ) return; - handleMouseDownPan( event ); - state = STATE.PAN; - - } else { - - if ( scope.enableRotate === false ) return; - handleMouseDownRotate( event ); - state = STATE.ROTATE; - - } - - break; - - case THREE.MOUSE.PAN: - if ( event.ctrlKey || event.metaKey || event.shiftKey ) { - - if ( scope.enableRotate === false ) return; - handleMouseDownRotate( event ); - state = STATE.ROTATE; - - } else { - - if ( scope.enablePan === false ) return; - handleMouseDownPan( event ); - state = STATE.PAN; - - } - - break; - - default: - state = STATE.NONE; - - } - - if ( state !== STATE.NONE ) { - - scope.domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove ); - scope.domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp ); - scope.dispatchEvent( _startEvent ); - - } - - } - - function onMouseMove( event ) { - - if ( scope.enabled === false ) return; - event.preventDefault(); - - switch ( state ) { - - case STATE.ROTATE: - if ( scope.enableRotate === false ) return; - handleMouseMoveRotate( event ); - break; - - case STATE.DOLLY: - if ( scope.enableZoom === false ) return; - handleMouseMoveDolly( event ); - break; - - case STATE.PAN: - if ( scope.enablePan === false ) return; - handleMouseMovePan( event ); - break; - - } - - } - - function onMouseUp( event ) { - - scope.domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove ); - scope.domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp ); - if ( scope.enabled === false ) return; - handleMouseUp( event ); - scope.dispatchEvent( _endEvent ); - state = STATE.NONE; - - } - - function onMouseWheel( event ) { - - if ( scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE && state !== STATE.ROTATE ) return; - event.preventDefault(); - scope.dispatchEvent( _startEvent ); - handleMouseWheel( event ); - scope.dispatchEvent( _endEvent ); - - } - - function onKeyDown( event ) { - - if ( scope.enabled === false || scope.enablePan === false ) return; - handleKeyDown( event ); - - } - - function onTouchStart( event ) { - - if ( scope.enabled === false ) return; - event.preventDefault(); // prevent scrolling - - switch ( event.touches.length ) { - - case 1: - switch ( scope.touches.ONE ) { - - case THREE.TOUCH.ROTATE: - if ( scope.enableRotate === false ) return; - handleTouchStartRotate( event ); - state = STATE.TOUCH_ROTATE; - break; - - case THREE.TOUCH.PAN: - if ( scope.enablePan === false ) return; - handleTouchStartPan( event ); - state = STATE.TOUCH_PAN; - break; - - default: - state = STATE.NONE; - - } - - break; - - case 2: - switch ( scope.touches.TWO ) { - - case THREE.TOUCH.DOLLY_PAN: - if ( scope.enableZoom === false && scope.enablePan === false ) return; - handleTouchStartDollyPan( event ); - state = STATE.TOUCH_DOLLY_PAN; - break; - - case THREE.TOUCH.DOLLY_ROTATE: - if ( scope.enableZoom === false && scope.enableRotate === false ) return; - handleTouchStartDollyRotate( event ); - state = STATE.TOUCH_DOLLY_ROTATE; - break; - - default: - state = STATE.NONE; - - } - - break; - - default: - state = STATE.NONE; - - } - - if ( state !== STATE.NONE ) { - - scope.dispatchEvent( _startEvent ); - - } - - } - - function onTouchMove( event ) { - - if ( scope.enabled === false ) return; - event.preventDefault(); // prevent scrolling - - switch ( state ) { - - case STATE.TOUCH_ROTATE: - if ( scope.enableRotate === false ) return; - handleTouchMoveRotate( event ); - scope.update(); - break; - - case STATE.TOUCH_PAN: - if ( scope.enablePan === false ) return; - handleTouchMovePan( event ); - scope.update(); - break; - - case STATE.TOUCH_DOLLY_PAN: - if ( scope.enableZoom === false && scope.enablePan === false ) return; - handleTouchMoveDollyPan( event ); - scope.update(); - break; - - case STATE.TOUCH_DOLLY_ROTATE: - if ( scope.enableZoom === false && scope.enableRotate === false ) return; - handleTouchMoveDollyRotate( event ); - scope.update(); - break; - - default: - state = STATE.NONE; - - } - - } - - function onTouchEnd( event ) { - - if ( scope.enabled === false ) return; - handleTouchEnd( event ); - scope.dispatchEvent( _endEvent ); - state = STATE.NONE; - - } - - function onContextMenu( event ) { - - if ( scope.enabled === false ) return; - event.preventDefault(); - - } // - - - scope.domElement.addEventListener( 'contextmenu', onContextMenu ); - scope.domElement.addEventListener( 'pointerdown', onPointerDown ); - scope.domElement.addEventListener( 'wheel', onMouseWheel, { - passive: false - } ); - scope.domElement.addEventListener( 'touchstart', onTouchStart, { - passive: false - } ); - scope.domElement.addEventListener( 'touchend', onTouchEnd ); - scope.domElement.addEventListener( 'touchmove', onTouchMove, { - passive: false - } ); // force an update at start - - this.update(); - - } - - } // This set of controls performs orbiting, dollying (zooming), and panning. - // Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default). - // This is very similar to OrbitControls, another set of touch behavior - // - // Orbit - right mouse, or left mouse + ctrl/meta/shiftKey / touch: two-finger rotate - // Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish - // Pan - left mouse, or arrow keys / touch: one-finger move - - - class MapControls extends OrbitControls { - - constructor( object, domElement ) { - - super( object, domElement ); - this.screenSpacePanning = false; // pan orthogonal to world-space direction camera.up - - this.mouseButtons.LEFT = THREE.MOUSE.PAN; - this.mouseButtons.RIGHT = THREE.MOUSE.ROTATE; - this.touches.ONE = THREE.TOUCH.PAN; - this.touches.TWO = THREE.TOUCH.DOLLY_ROTATE; - - } - - } - - THREE.MapControls = MapControls; - THREE.OrbitControls = OrbitControls; - -} )(); diff --git a/src/imports/QAnsel.apk b/src/imports/QAnsel.apk deleted file mode 100644 index 0c2917c..0000000 Binary files a/src/imports/QAnsel.apk and /dev/null differ diff --git a/src/imports/bloch-sphere.html b/src/imports/bloch-sphere.html deleted file mode 100644 index 85509a6..0000000 --- a/src/imports/bloch-sphere.html +++ /dev/null @@ -1,1991 +0,0 @@ - - -
- - - - - - - - - --X = [0, 1; 1, 0]; -Y = [0, -i; i, 0]; -Z = [1, 0; 0, -1]; -H = 1/sqrt(2) * [1, 1; 1, -1]; -S = [1, 0; 0, i]; -Sdg = transpose(conj(S)); -T = [ 1, 0; 0, 1/sqrt(2) + 1/sqrt(2)*i ]; -Tdg = transpose(conj(T)); - -psi = eye(2); -ham = i * logm(psi); -for t=0:30 - expm(-i*ham*(t/30)) -end --
- ans = - - Diagonal Matrix - - 1 0 - 0 1 - - ans = - - 0.997261 + 0.052264i 0.002739 - 0.052264i - 0.002739 - 0.052264i 0.997261 + 0.052264i - - ans = - - 0.9891 + 0.1040i 0.0109 - 0.1040i - 0.0109 - 0.1040i 0.9891 + 0.1040i - - ans = - - 0.9755 + 0.1545i 0.0245 - 0.1545i - 0.0245 - 0.1545i 0.9755 + 0.1545i - - ans = - - 0.9568 + 0.2034i 0.0432 - 0.2034i - 0.0432 - 0.2034i 0.9568 + 0.2034i - - ans = - - 0.9330 + 0.2500i 0.0670 - 0.2500i - 0.0670 - 0.2500i 0.9330 + 0.2500i - - ans = - - 0.9045 + 0.2939i 0.0955 - 0.2939i - 0.0955 - 0.2939i 0.9045 + 0.2939i - - ans = - - 0.8716 + 0.3346i 0.1284 - 0.3346i - 0.1284 - 0.3346i 0.8716 + 0.3346i - - ans = - - 0.8346 + 0.3716i 0.1654 - 0.3716i - 0.1654 - 0.3716i 0.8346 + 0.3716i - - ans = - - 0.7939 + 0.4045i 0.2061 - 0.4045i - 0.2061 - 0.4045i 0.7939 + 0.4045i - - ans = - - 0.7500 + 0.4330i 0.2500 - 0.4330i - 0.2500 - 0.4330i 0.7500 + 0.4330i - - ans = - - 0.7034 + 0.4568i 0.2966 - 0.4568i - 0.2966 - 0.4568i 0.7034 + 0.4568i - - ans = - - 0.6545 + 0.4755i 0.3455 - 0.4755i - 0.3455 - 0.4755i 0.6545 + 0.4755i - - ans = - - 0.6040 + 0.4891i 0.3960 - 0.4891i - 0.3960 - 0.4891i 0.6040 + 0.4891i - - ans = - - 0.5523 + 0.4973i 0.4477 - 0.4973i - 0.4477 - 0.4973i 0.5523 + 0.4973i - - ans = - - 0.5000 + 0.5000i 0.5000 - 0.5000i - 0.5000 - 0.5000i 0.5000 + 0.5000i - - ans = - - 0.4477 + 0.4973i 0.5523 - 0.4973i - 0.5523 - 0.4973i 0.4477 + 0.4973i - - ans = - - 0.3960 + 0.4891i 0.6040 - 0.4891i - 0.6040 - 0.4891i 0.3960 + 0.4891i - - ans = - - 0.3455 + 0.4755i 0.6545 - 0.4755i - 0.6545 - 0.4755i 0.3455 + 0.4755i - - ans = - - 0.2966 + 0.4568i 0.7034 - 0.4568i - 0.7034 - 0.4568i 0.2966 + 0.4568i - - ans = - - 0.2500 + 0.4330i 0.7500 - 0.4330i - 0.7500 - 0.4330i 0.2500 + 0.4330i - - ans = - - 0.2061 + 0.4045i 0.7939 - 0.4045i - 0.7939 - 0.4045i 0.2061 + 0.4045i - - ans = - - 0.1654 + 0.3716i 0.8346 - 0.3716i - 0.8346 - 0.3716i 0.1654 + 0.3716i - - ans = - - 0.1284 + 0.3346i 0.8716 - 0.3346i - 0.8716 - 0.3346i 0.1284 + 0.3346i - - ans = - - 0.0955 + 0.2939i 0.9045 - 0.2939i - 0.9045 - 0.2939i 0.0955 + 0.2939i - - ans = - - 0.0670 + 0.2500i 0.9330 - 0.2500i - 0.9330 - 0.2500i 0.0670 + 0.2500i - - ans = - - 0.0432 + 0.2034i 0.9568 - 0.2034i - 0.9568 - 0.2034i 0.0432 + 0.2034i - - ans = - - 0.0245 + 0.1545i 0.9755 - 0.1545i - 0.9755 - 0.1545i 0.0245 + 0.1545i - - ans = - - 0.0109 + 0.1040i 0.9891 - 0.1040i - 0.9891 - 0.1040i 0.0109 + 0.1040i - - ans = - - 0.002739 + 0.052264i 0.997261 - 0.052264i - 0.997261 - 0.052264i 0.002739 + 0.052264i - - ans = - - 7.8625e-32 + 2.7756e-16i 1.0000e+00 - 2.8328e-16i - 1.0000e+00 - 2.8328e-16i 1.1008e-31 + 3.8858e-16i --
- ans = - -Diagonal Matrix - - 1 0 - 0 1 - -ans = - - 0.997261 + 0.052264i -0.052264 - 0.002739i - 0.052264 + 0.002739i 0.997261 + 0.052264i - -ans = - - 0.9891 + 0.1040i -0.1040 - 0.0109i - 0.1040 + 0.0109i 0.9891 + 0.1040i - -ans = - - 0.9755 + 0.1545i -0.1545 - 0.0245i - 0.1545 + 0.0245i 0.9755 + 0.1545i - -ans = - - 0.9568 + 0.2034i -0.2034 - 0.0432i - 0.2034 + 0.0432i 0.9568 + 0.2034i - -ans = - - 0.9330 + 0.2500i -0.2500 - 0.0670i - 0.2500 + 0.0670i 0.9330 + 0.2500i - -ans = - - 0.9045 + 0.2939i -0.2939 - 0.0955i - 0.2939 + 0.0955i 0.9045 + 0.2939i - -ans = - - 0.8716 + 0.3346i -0.3346 - 0.1284i - 0.3346 + 0.1284i 0.8716 + 0.3346i - -ans = - - 0.8346 + 0.3716i -0.3716 - 0.1654i - 0.3716 + 0.1654i 0.8346 + 0.3716i - -ans = - - 0.7939 + 0.4045i -0.4045 - 0.2061i - 0.4045 + 0.2061i 0.7939 + 0.4045i - -ans = - - 0.7500 + 0.4330i -0.4330 - 0.2500i - 0.4330 + 0.2500i 0.7500 + 0.4330i - -ans = - - 0.7034 + 0.4568i -0.4568 - 0.2966i - 0.4568 + 0.2966i 0.7034 + 0.4568i - -ans = - - 0.6545 + 0.4755i -0.4755 - 0.3455i - 0.4755 + 0.3455i 0.6545 + 0.4755i - -ans = - - 0.6040 + 0.4891i -0.4891 - 0.3960i - 0.4891 + 0.3960i 0.6040 + 0.4891i - -ans = - - 0.5523 + 0.4973i -0.4973 - 0.4477i - 0.4973 + 0.4477i 0.5523 + 0.4973i - -ans = - - 0.5000 + 0.5000i -0.5000 - 0.5000i - 0.5000 + 0.5000i 0.5000 + 0.5000i - -ans = - - 0.4477 + 0.4973i -0.4973 - 0.5523i - 0.4973 + 0.5523i 0.4477 + 0.4973i - -ans = - - 0.3960 + 0.4891i -0.4891 - 0.6040i - 0.4891 + 0.6040i 0.3960 + 0.4891i - -ans = - - 0.3455 + 0.4755i -0.4755 - 0.6545i - 0.4755 + 0.6545i 0.3455 + 0.4755i - -ans = - - 0.2966 + 0.4568i -0.4568 - 0.7034i - 0.4568 + 0.7034i 0.2966 + 0.4568i - -ans = - - 0.2500 + 0.4330i -0.4330 - 0.7500i - 0.4330 + 0.7500i 0.2500 + 0.4330i - -ans = - - 0.2061 + 0.4045i -0.4045 - 0.7939i - 0.4045 + 0.7939i 0.2061 + 0.4045i - -ans = - - 0.1654 + 0.3716i -0.3716 - 0.8346i - 0.3716 + 0.8346i 0.1654 + 0.3716i - -ans = - - 0.1284 + 0.3346i -0.3346 - 0.8716i - 0.3346 + 0.8716i 0.1284 + 0.3346i - -ans = - - 0.0955 + 0.2939i -0.2939 - 0.9045i - 0.2939 + 0.9045i 0.0955 + 0.2939i - -ans = - - 0.0670 + 0.2500i -0.2500 - 0.9330i - 0.2500 + 0.9330i 0.0670 + 0.2500i - -ans = - - 0.0432 + 0.2034i -0.2034 - 0.9568i - 0.2034 + 0.9568i 0.0432 + 0.2034i - -ans = - - 0.0245 + 0.1545i -0.1545 - 0.9755i - 0.1545 + 0.9755i 0.0245 + 0.1545i - -ans = - - 0.0109 + 0.1040i -0.1040 - 0.9891i - 0.1040 + 0.9891i 0.0109 + 0.1040i - -ans = - - 0.002739 + 0.052264i -0.052264 - 0.997261i - 0.052264 + 0.997261i 0.002739 + 0.052264i - -ans = - - -1.6653e-16 + 2.7818e-16i -2.8328e-16 - 1.0000e+00i - 2.8328e-16 + 1.0000e+00i -1.6653e-16 + 3.9190e-16i --
- ans = - -Diagonal Matrix - - 1 0 - 0 1 - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9945 + 0.1045i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9781 + 0.2079i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9511 + 0.3090i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9135 + 0.4067i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8660 + 0.5000i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8090 + 0.5878i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7431 + 0.6691i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.6691 + 0.7431i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.5878 + 0.8090i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.5000 + 0.8660i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.4067 + 0.9135i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.3090 + 0.9511i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.2079 + 0.9781i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.1045 + 0.9945i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.0000 + 1.0000i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.1045 + 0.9945i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.2079 + 0.9781i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.3090 + 0.9511i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.4067 + 0.9135i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.5000 + 0.8660i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.5878 + 0.8090i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.6691 + 0.7431i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.7431 + 0.6691i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.8090 + 0.5878i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.8660 + 0.5000i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.9135 + 0.4067i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.9511 + 0.3090i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.9781 + 0.2079i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -0.9945 + 0.1045i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 -1.0000 + 0.0000i --
- ans = - - 1 0 - 0 1 - - ans = - - 0.999198 + 0.015308i 0.001937 - 0.036956i - 0.001937 - 0.036956i 0.995324 + 0.089221i - - ans = - - 0.996800 + 0.030448i 0.007726 - 0.073508i - 0.007726 - 0.073508i 0.981348 + 0.177464i - - ans = - - 0.992832 + 0.045254i 0.017304 - 0.109254i - 0.017304 - 0.109254i 0.958224 + 0.263763i - - ans = - - 0.987339 + 0.059565i 0.030566 - 0.143803i - 0.030566 - 0.143803i 0.926206 + 0.347171i - - ans = - - 0.980380 + 0.073223i 0.047367 - 0.176777i - 0.047367 - 0.176777i 0.885646 + 0.426777i - - ans = - - 0.972031 + 0.086079i 0.067523 - 0.207813i - 0.067523 - 0.207813i 0.836986 + 0.501706i - - ans = - - 0.962384 + 0.097992i 0.090812 - 0.236573i - 0.090812 - 0.236573i 0.780760 + 0.571139i - - ans = - - 0.9515 + 0.1088i 0.1170 - 0.2627i - 0.1170 - 0.2627i 0.7176 + 0.6343i - - ans = - - 0.9396 + 0.1185i 0.1457 - 0.2860i - 0.1457 - 0.2860i 0.6482 + 0.6905i - - ans = - - 0.9268 + 0.1268i 0.1768 - 0.3062i - 0.1768 - 0.3062i 0.5732 + 0.7392i - - ans = - - 0.9131 + 0.1338i 0.2098 - 0.3230i - 0.2098 - 0.3230i 0.4936 + 0.7798i - - ans = - - 0.8988 + 0.1393i 0.2443 - 0.3362i - 0.2443 - 0.3362i 0.4102 + 0.8118i - - ans = - - 0.8840 + 0.1432i 0.2800 - 0.3458i - 0.2800 - 0.3458i 0.3239 + 0.8349i - - ans = - - 0.8689 + 0.1456i 0.3166 - 0.3516i - 0.3166 - 0.3516i 0.2357 + 0.8489i - - ans = - - 0.8536 + 0.1464i 0.3536 - 0.3536i - 0.3536 - 0.3536i 0.1464 + 0.8536i - - ans = - - 0.8382 + 0.1456i 0.3905 - 0.3516i - 0.3905 - 0.3516i 0.0572 + 0.8489i - - ans = - - 0.8231 + 0.1432i 0.4271 - 0.3458i - 0.4271 - 0.3458i -0.0310 + 0.8349i - - ans = - - 0.8083 + 0.1393i 0.4628 - 0.3362i - 0.4628 - 0.3362i -0.1173 + 0.8118i - - ans = - - 0.7940 + 0.1338i 0.4974 - 0.3230i - 0.4974 - 0.3230i -0.2007 + 0.7798i - - ans = - - 0.7803 + 0.1268i 0.5303 - 0.3062i - 0.5303 - 0.3062i -0.2803 + 0.7392i - - ans = - - 0.7675 + 0.1185i 0.5614 - 0.2860i - 0.5614 - 0.2860i -0.3553 + 0.6905i - - ans = - - 0.7556 + 0.1088i 0.5901 - 0.2627i - 0.5901 - 0.2627i -0.4247 + 0.6343i - - ans = - - 0.7447 + 0.0980i 0.6163 - 0.2366i - 0.6163 - 0.2366i -0.4879 + 0.5711i - - ans = - - 0.7351 + 0.0861i 0.6396 - 0.2078i - 0.6396 - 0.2078i -0.5441 + 0.5017i - - ans = - - 0.7267 + 0.0732i 0.6597 - 0.1768i - 0.6597 - 0.1768i -0.5928 + 0.4268i - - ans = - - 0.7198 + 0.0596i 0.6765 - 0.1438i - 0.6765 - 0.1438i -0.6333 + 0.3472i - - ans = - - 0.7143 + 0.0453i 0.6898 - 0.1093i - 0.6898 - 0.1093i -0.6653 + 0.2638i - - ans = - - 0.7103 + 0.0304i 0.6994 - 0.0735i - 0.6994 - 0.0735i -0.6885 + 0.1775i - - ans = - - 0.7079 + 0.0153i 0.7052 - 0.0370i - 0.7052 - 0.0370i -0.7024 + 0.0892i - - ans = - - 0.7071 - 0.0000i 0.7071 - 0.0000i - 0.7071 - 0.0000i -0.7071 + 0.0000i --
- ans = - -Diagonal Matrix - - 1 0 - 0 1 - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9986 + 0.0523i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9945 + 0.1045i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9877 + 0.1564i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9781 + 0.2079i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9659 + 0.2588i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9511 + 0.3090i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9336 + 0.3584i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9135 + 0.4067i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8910 + 0.4540i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8660 + 0.5000i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8387 + 0.5446i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8090 + 0.5878i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7771 + 0.6293i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7431 + 0.6691i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7071 + 0.7071i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.6691 + 0.7431i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.6293 + 0.7771i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.5878 + 0.8090i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.5446 + 0.8387i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.5000 + 0.8660i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.4540 + 0.8910i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.4067 + 0.9135i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.3584 + 0.9336i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.3090 + 0.9511i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.2588 + 0.9659i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.2079 + 0.9781i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.1564 + 0.9877i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.1045 + 0.9945i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.0523 + 0.9986i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.0000 + 1.0000i --
- ans = - -Diagonal Matrix - - 1 0 - 0 1 - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9986 - 0.0523i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9945 - 0.1045i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9877 - 0.1564i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9781 - 0.2079i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9659 - 0.2588i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9511 - 0.3090i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9336 - 0.3584i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9135 - 0.4067i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8910 - 0.4540i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8660 - 0.5000i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8387 - 0.5446i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8090 - 0.5878i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7771 - 0.6293i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7431 - 0.6691i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7071 - 0.7071i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.6691 - 0.7431i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.6293 - 0.7771i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.5878 - 0.8090i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.5446 - 0.8387i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.5000 - 0.8660i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.4540 - 0.8910i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.4067 - 0.9135i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.3584 - 0.9336i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.3090 - 0.9511i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.2588 - 0.9659i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.2079 - 0.9781i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.1564 - 0.9877i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.1045 - 0.9945i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.0523 - 0.9986i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.0000 - 1.0000i --
- ans = - -Diagonal Matrix - - 1 0 - 0 1 - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9997 + 0.0262i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9986 + 0.0523i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9969 + 0.0785i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9945 + 0.1045i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9914 + 0.1305i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9877 + 0.1564i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9833 + 0.1822i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9781 + 0.2079i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9724 + 0.2334i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9659 + 0.2588i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9588 + 0.2840i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9511 + 0.3090i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9426 + 0.3338i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9336 + 0.3584i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9239 + 0.3827i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9135 + 0.4067i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9026 + 0.4305i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8910 + 0.4540i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8788 + 0.4772i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8660 + 0.5000i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8526 + 0.5225i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8387 + 0.5446i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8241 + 0.5664i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8090 + 0.5878i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7934 + 0.6088i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7771 + 0.6293i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7604 + 0.6494i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7431 + 0.6691i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7254 + 0.6884i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7071 + 0.7071i --
- ans = - -Diagonal Matrix - - 1 0 - 0 1 - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9997 - 0.0262i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9986 - 0.0523i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9969 - 0.0785i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9945 - 0.1045i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9914 - 0.1305i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9877 - 0.1564i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9833 - 0.1822i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9781 - 0.2079i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9724 - 0.2334i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9659 - 0.2588i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9588 - 0.2840i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9511 - 0.3090i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9426 - 0.3338i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9336 - 0.3584i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9239 - 0.3827i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9135 - 0.4067i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.9026 - 0.4305i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8910 - 0.4540i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8788 - 0.4772i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8660 - 0.5000i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8526 - 0.5225i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8387 - 0.5446i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8241 - 0.5664i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.8090 - 0.5878i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7934 - 0.6088i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7771 - 0.6293i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7604 - 0.6494i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7431 - 0.6691i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7254 - 0.6884i - -ans = - -Diagonal Matrix - - 1.0000 + 0i 0 - 0 0.7071 - 0.7071i -- - diff --git a/src/imports/chart.js b/src/imports/chart.js deleted file mode 100644 index c0f9743..0000000 --- a/src/imports/chart.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Skipped minification because the original files appears to be already minified. - * Original file: /npm/chart.js@4.4.3/dist/chart.umd.js - * - * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files - */ -/*! - * Chart.js v4.4.3 - * https://www.chartjs.org - * (c) 2024 Chart.js Contributors - * Released under the MIT License - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return Go},get Decimation(){return Qo},get Filler(){return ma},get Legend(){return ya},get SubTitle(){return ka},get Title(){return Ma},get Tooltip(){return Ba}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a