@operato/scene-visualizer 1.2.26 → 1.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,24 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ### [1.2.28](https://github.com/things-scene/operato-scene/compare/v1.2.27...v1.2.28) (2023-04-24)
7
+
8
+
9
+ ### :bug: Bug Fix
10
+
11
+ * disable automatic rotating of 3d-container when it's in edit mode. ([26e73c8](https://github.com/things-scene/operato-scene/commit/26e73c8c70a690fde18da2a9aec0321e08f210ee))
12
+
13
+
14
+
15
+ ### [1.2.27](https://github.com/things-scene/operato-scene/compare/v1.2.26...v1.2.27) (2023-04-22)
16
+
17
+
18
+ ### :bug: Bug Fix
19
+
20
+ * add required information to help for indoor, tab and gltf-object ([502ab75](https://github.com/things-scene/operato-scene/commit/502ab75364b1edd55e0c05371980782415f5f97e))
21
+
22
+
23
+
6
24
  ### [1.2.26](https://github.com/things-scene/operato-scene/compare/v1.2.25...v1.2.26) (2023-04-22)
7
25
 
8
26
 
package/db.sqlite CHANGED
Binary file
@@ -46,7 +46,7 @@ var ThreeControls = function (object, component) {
46
46
  this.keyPanSpeed = 7.0; // pixels moved per arrow key push
47
47
  // Set to true to automatically rotate around the target
48
48
  // If auto-rotate is enabled, you must call controls.update() in your animation loop
49
- this.autoRotate = this.component.state.autoRotate || false;
49
+ this.autoRotate = (this.component.app && !this.component.app.isEditMode && this.component.state.autoRotate) || false;
50
50
  this.autoRotateSpeed = this.component.state.rotationSpeed || 2.0; // 30 seconds per round when fps is 60
51
51
  // Set to false to disable use of the keys
52
52
  this.enableKeys = true;
@@ -1 +1 @@
1
- {"version":3,"file":"three-controls.js","sourceRoot":"","sources":["../src/three-controls.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n/**\n * @author qiao / https://github.com/qiao\n * @author mrdoob / http://mrdoob.com\n * @author alteredq / http://alteredqualia.com/\n * @author WestLangley / http://github.com/WestLangley\n * @author erich666 / http://erichaines.com\n */\n\n// This set of controls performs orbiting, dollying (zooming), and panning.\n// Unlike TrackballControls, it maintains the \"up\" direction object.up (+Y by default).\n//\n// Orbit - left mouse / touch: one finger move\n// Zoom - middle mouse, or mousewheel / touch: two finger spread or squish\n// Pan - right mouse, or arrow keys / touch: three finger swipe\nimport { Component } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\n\nvar ThreeControls = function (this: any, object: THREE.Camera, component: Component) {\n this.object = object\n\n this.component = component\n\n // Set to false to disable this control\n this.enabled = true\n\n // \"target\" sets the location of focus, where the object orbits around\n this.target = new THREE.Vector3()\n\n // How far you can dolly in and out ( PerspectiveCamera only )\n this.minDistance = 0\n this.maxDistance = Infinity\n\n // How far you can zoom in and out ( OrthographicCamera only )\n this.minZoom = 0\n this.maxZoom = Infinity\n\n // How far you can orbit vertically, upper and lower limits.\n // Range is 0 to Math.PI radians.\n this.minPolarAngle = 0 // radians\n this.maxPolarAngle = Math.PI // radians\n\n // How far you can orbit horizontally, upper and lower limits.\n // If set, must be a sub-interval of the interval [ - Math.PI, Math.PI ].\n this.minAzimuthAngle = -Infinity // radians\n this.maxAzimuthAngle = Infinity // radians\n\n // Set to true to enable damping (inertia)\n // If damping is enabled, you must call controls.update() in your animation loop\n this.enableDamping = false\n this.dampingFactor = 0.25\n\n // This option actually enables dollying in and out; left as \"zoom\" for backwards compatibility.\n // Set to false to disable zooming\n this.enableZoom = true\n this.zoomSpeed = 1.0\n\n // Set to false to disable rotating\n this.enableRotate = true\n this.rotateSpeed = 1.0\n\n // Set to false to disable panning\n this.enablePan = true\n this.keyPanSpeed = 7.0 // pixels moved per arrow key push\n\n // Set to true to automatically rotate around the target\n // If auto-rotate is enabled, you must call controls.update() in your animation loop\n this.autoRotate = this.component.state.autoRotate || false\n this.autoRotateSpeed = this.component.state.rotationSpeed || 2.0 // 30 seconds per round when fps is 60\n\n // Set to false to disable use of the keys\n this.enableKeys = true\n\n // The four arrow keys\n this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 }\n\n // Mouse buttons\n this.mouseButtons = { ORBIT: THREE.MOUSE.LEFT, ZOOM: THREE.MOUSE.MIDDLE, PAN: THREE.MOUSE.RIGHT }\n\n // for reset\n this.target0 = this.target.clone()\n this.position0 = this.object.position.clone()\n this.zoom0 = this.object.zoom\n\n // flags\n this.cameraChanged = false\n\n //\n // public methods\n //\n\n this.getPolarAngle = function () {\n return spherical.phi\n }\n\n this.getAzimuthalAngle = function () {\n return spherical.theta\n }\n\n this.saveState = function () {\n scope.target0.copy(scope.target)\n scope.position0.copy(scope.object.position)\n scope.zoom0 = scope.object.zoom\n }\n\n this.reset = function () {\n scope.target.copy(scope.target0)\n scope.object.position.copy(scope.position0)\n scope.object.zoom = scope.zoom0\n\n scope.object.updateProjectionMatrix()\n // scope.dispatchEvent( changeEvent );\n\n scope.update()\n\n state = STATE.NONE\n }\n\n // this method is exposed, but perhaps it would be better if we can make it private...\n this.update = (function () {\n var offset = new THREE.Vector3()\n\n // so camera.up is the orbit axis\n var quat = new THREE.Quaternion().setFromUnitVectors(object.up, new THREE.Vector3(0, 1, 0))\n var quatInverse = quat.clone().invert()\n\n var lastPosition = new THREE.Vector3()\n var lastQuaternion = new THREE.Quaternion()\n\n return function update() {\n // if (!(scope.cameraChanged || scope.autoRotate))\n // return false;\n\n var position = scope.object.position\n\n offset.copy(position).sub(scope.target)\n\n // rotate offset to \"y-axis-is-up\" space\n offset.applyQuaternion(quat)\n\n // angle from z-axis around y-axis\n spherical.setFromVector3(offset)\n\n if (scope.autoRotate && state === STATE.NONE) {\n // theta = getAutoRotationAngle();\n // thetaDelta = - getAutoRotationAngle();\n // theta = 0;\n\n rotateLeft(getAutoRotationAngle())\n scope.component.invalidate()\n // spherical.theta = getAutoRotationAngle();\n }\n\n spherical.theta += sphericalDelta.theta\n spherical.phi += sphericalDelta.phi\n\n // restrict theta to be between desired limits\n spherical.theta = Math.max(scope.minAzimuthAngle, Math.min(scope.maxAzimuthAngle, spherical.theta))\n\n // restrict phi to be between desired limits\n spherical.phi = Math.max(scope.minPolarAngle, Math.min(scope.maxPolarAngle, spherical.phi))\n\n spherical.makeSafe()\n\n spherical.radius *= scale\n\n // restrict radius to be between desired limits\n spherical.radius = Math.max(scope.minDistance, Math.min(scope.maxDistance, spherical.radius))\n\n // move target to panned location\n scope.target.add(panOffset)\n\n offset.setFromSpherical(spherical)\n\n // rotate offset back to \"camera-up-vector-is-up\" space\n offset.applyQuaternion(quatInverse)\n\n position.copy(scope.target).add(offset)\n\n scope.object.lookAt(scope.target)\n\n if (scope.enableDamping === true) {\n sphericalDelta.theta *= 1 - scope.dampingFactor\n sphericalDelta.phi *= 1 - scope.dampingFactor\n } else {\n sphericalDelta.set(0, 0, 0)\n }\n\n scale = 1\n panOffset.set(0, 0, 0)\n\n // update condition is:\n // min(camera displacement, camera rotation in radians)^2 > EPS\n // using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\n // if ((scope.cameraChanged || zoomChanged) && (\n // lastPosition.distanceToSquared(scope.object.position) > EPS ||\n // 8 * (1 - lastQuaternion.dot(scope.object.quaternion)) > EPS)) {\n if (\n zoomChanged ||\n lastPosition.distanceToSquared(scope.object.position) > EPS ||\n 8 * (1 - lastQuaternion.dot(scope.object.quaternion)) > EPS\n ) {\n lastPosition.copy(scope.object.position)\n lastQuaternion.copy(scope.object.quaternion)\n\n scope.component.invalidate()\n scope.cameraChanged = false\n zoomChanged = false\n\n return true\n }\n\n // if (this.autoRotate) {\n // scope.component.invalidate()\n // }\n return false\n }\n })()\n\n this.dispose = function () {}\n\n //\n // event handlers - FSM: listen for events and reset state\n //\n\n this.onMouseDown = function (event: MouseEvent) {}\n\n this.onMouseMove = function (event: MouseEvent) {}\n\n this.onMouseUp = function (event: MouseEvent) {}\n\n this.onDragStart = function (event: DragEvent) {\n if (this.enabled === false || this.enableRotate === false) return\n\n scope.component.stop()\n this.autoRotate = false\n\n if (event.altKey === true) state = STATE.PAN\n else state = STATE.ROTATE\n\n switch (state) {\n case STATE.ROTATE:\n if (this.enableRotate) handleDragStartRotate(event)\n break\n\n case STATE.DOLLY:\n if (this.enableZoom) handleDragStartDolly(event)\n break\n\n case STATE.PAN:\n if (this.enablePan) handleDragStartPan(event)\n break\n }\n }\n\n this.onDragMove = function (event: DragEvent) {\n if (!this.enabled) return\n\n if (event.altKey === true) state = STATE.PAN\n else state = STATE.ROTATE\n\n switch (state) {\n case STATE.ROTATE:\n if (this.enableRotate) handleDragMoveRotate(event)\n break\n\n case STATE.DOLLY:\n if (this.enableZoom) handleDragMoveDolly(event)\n break\n\n case STATE.PAN:\n if (this.enablePan) handleDragMovePan(event)\n break\n }\n }\n\n this.onDragEnd = function (event: DragEvent) {\n if (this.enabled === false || this.enableRotate === false) return\n\n state = STATE.NONE\n\n START_TIME = null\n this.autoRotate = this.component.state.autoRotate || false\n\n scope.component.threed_animate()\n // scope.update();\n }\n\n this.onKeyDown = function (event: KeyboardEvent) {\n if (this.enabled === false || this.enableKeys === false || this.enablePan === false) return\n\n handleKeyDown(event)\n }\n\n this.onTouchStart = function (event: TouchEvent) {\n if (this.enabled === false) return\n\n switch (event.touches.length) {\n case 1: // one-fingered touch: rotate\n if (this.enableRotate === false) return\n handleTouchStartRotate(event)\n state = STATE.TOUCH_ROTATE\n break\n\n case 2: // two-fingered touch: pan\n this.lastScale = (event as any).scale || 1\n if (this.enablePan === false) return\n handleTouchStartPan(event)\n state = STATE.TOUCH_PAN\n break\n // case 2: // two-fingered touch: dolly\n // if ( this.enableZoom === false ) return;\n // handleTouchStartDolly( event );\n // state = STATE.TOUCH_DOLLY;\n // break;\n\n // case 3: // three-fingered touch: pan\n // if ( this.enablePan === false ) return;\n // handleTouchStartPan( event );\n // state = STATE.TOUCH_PAN;\n // break;\n\n default:\n state = STATE.NONE\n }\n }\n\n this.onTouchMove = function (event: TouchEvent) {\n if (this.enabled === false) return\n\n switch (event.touches.length) {\n case 1: // one-fingered touch: rotate\n if (this.enableRotate === false) return\n if (state !== STATE.TOUCH_ROTATE) return // is this needed?...\n handleTouchMoveRotate(event)\n break\n case 2: // two-fingered touch: pan\n if (Math.abs(this.lastScale - (event as any).scale || 1) > 0.05) {\n return\n }\n if (this.enablePan === false) return\n if (state !== STATE.TOUCH_PAN) return // is this needed?...\n handleTouchMovePan(event)\n break\n // case 2: // two-fingered touch: dolly\n // if ( this.enableZoom === false ) return;\n // if ( state !== STATE.TOUCH_DOLLY ) return; // is this needed?...\n // handleTouchMoveDolly( event );\n // break;\n // case 3: // three-fingered touch: pan\n // if ( this.enablePan === false ) return;\n // if ( state !== STATE.TOUCH_PAN ) return; // is this needed?...\n // handleTouchMovePan( event );\n // break;\n default:\n state = STATE.NONE\n }\n }\n\n this.onTouchEnd = function (event: TouchEvent) {\n if (this.enabled === false) return\n this.lastScale = 1\n\n handleTouchEnd(event)\n // this.dispatchEvent( endEvent );\n state = STATE.NONE\n }\n\n this.doAutoRotate = function (autoRotate: boolean) {\n START_TIME = null\n this.cameraChanged = true\n this.autoRotate = autoRotate\n this.update()\n }\n\n //\n // internals\n //\n\n var scope = this\n\n var changeEvent = { type: 'change' }\n var startEvent = { type: 'start' }\n var endEvent = { type: 'end' }\n\n var STATE = { NONE: -1, ROTATE: 0, DOLLY: 1, PAN: 2, TOUCH_ROTATE: 3, TOUCH_DOLLY: 4, TOUCH_PAN: 5 }\n\n var state = STATE.NONE\n\n var EPS = 0.000001\n\n // current position in spherical coordinates\n var spherical = new THREE.Spherical()\n var sphericalDelta = new THREE.Spherical()\n\n var scale = 1\n var panOffset = new THREE.Vector3()\n var zoomChanged = false\n\n var rotateStart = new THREE.Vector2()\n var rotateEnd = new THREE.Vector2()\n var rotateDelta = new THREE.Vector2()\n\n var panStart = new THREE.Vector2()\n var panEnd = new THREE.Vector2()\n var panDelta = new THREE.Vector2()\n\n var dollyStart = new THREE.Vector2()\n var dollyEnd = new THREE.Vector2()\n var dollyDelta = new THREE.Vector2()\n\n var START_TIME: number | null = null\n var offsetTheta = 0\n\n function getAutoRotationAngle() {\n if (!START_TIME) {\n START_TIME = performance.now()\n offsetTheta = spherical.theta\n return 0\n }\n\n var lastTime = performance.now() - START_TIME\n var progress = lastTime / (60000 / scope.autoRotateSpeed)\n\n // return - 2 * Math.PI * progress;\n return 2 * Math.PI * progress + spherical.theta - offsetTheta\n // return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;\n }\n\n function getZoomScale() {\n return Math.pow(0.95, scope.zoomSpeed)\n }\n\n function rotateLeft(angle: number) {\n sphericalDelta.theta -= angle\n }\n\n function rotateUp(angle: number) {\n sphericalDelta.phi -= angle\n }\n\n var panLeft = (function () {\n var v = new THREE.Vector3()\n\n return function panLeft(distance: number, objectMatrix: any) {\n v.setFromMatrixColumn(objectMatrix, 0) // get X column of objectMatrix\n v.multiplyScalar(-distance)\n\n panOffset.add(v)\n }\n })()\n\n var panUp = (function () {\n var v = new THREE.Vector3()\n\n return function panUp(distance: number, objectMatrix: any) {\n v.setFromMatrixColumn(objectMatrix, 1) // get Y column of objectMatrix\n v.multiplyScalar(distance)\n\n panOffset.add(v)\n }\n })()\n\n // deltaX and deltaY are in pixels; right and down are positive\n var pan = (function () {\n var offset = new THREE.Vector3()\n\n return function pan(deltaX: number, deltaY: number) {\n // var element = scope.component === document ? scope.component.body : scope.component\n const { width, height } = scope.component.bounds\n\n if (scope.object.isPerspectiveCamera) {\n // perspective\n var position = scope.object.position\n offset.copy(position).sub(scope.target)\n var targetDistance = offset.length()\n\n // half of the fov is center to top of screen\n targetDistance *= Math.tan(((scope.object.fov / 2) * Math.PI) / 180.0)\n\n // we actually don't use screenWidth, since perspective camera is fixed to screen height\n panLeft((2 * deltaX * targetDistance) / height, scope.object.matrix)\n // panLeft( 2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix );\n panUp((2 * deltaY * targetDistance) / height, scope.object.matrix)\n // panUp( 2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix );\n } else if (scope.object.isOrthographicCamera) {\n // orthographic\n panLeft((deltaX * (scope.object.right - scope.object.left)) / scope.object.zoom / width, scope.object.matrix)\n // panLeft( deltaX * ( scope.object.right - scope.object.left ) / element.clientWidth, scope.object.matrix );\n panUp((deltaY * (scope.object.top - scope.object.bottom)) / scope.object.zoom / height, scope.object.matrix)\n // panUp( deltaY * ( scope.object.top - scope.object.bottom ) / element.clientHeight, scope.object.matrix );\n } else {\n // camera neither orthographic nor perspective\n console.warn('WARNING: ThreeControls.js encountered an unknown camera type - pan disabled.')\n scope.enablePan = false\n }\n }\n })()\n\n function dollyIn(dollyScale: number) {\n if (scope.object.isPerspectiveCamera) {\n scale /= dollyScale\n } else if (scope.object.isOrthographicCamera) {\n scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom * dollyScale))\n scope.object.updateProjectionMatrix()\n zoomChanged = true\n } else {\n console.warn('WARNING: ThreeControls.js encountered an unknown camera type - dolly/zoom disabled.')\n scope.enableZoom = false\n }\n }\n\n function dollyOut(dollyScale: number) {\n if (scope.object.isPerspectiveCamera) {\n scale *= dollyScale\n } else if (scope.object.isOrthographicCamera) {\n scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom / dollyScale))\n scope.object.updateProjectionMatrix()\n zoomChanged = true\n } else {\n console.warn('WARNING: ThreeControls.js encountered an unknown camera type - dolly/zoom disabled.')\n scope.enableZoom = false\n }\n }\n\n //\n // event callbacks - update the object state\n //\n\n function handleDragStartRotate(event: DragEvent) {\n rotateStart.set(event.offsetX, event.offsetY)\n }\n\n function handleDragStartDolly(event: DragEvent) {\n dollyStart.set(event.offsetX, event.offsetY)\n }\n\n function handleDragStartPan(event: DragEvent) {\n panStart.set(event.offsetX, event.offsetY)\n }\n\n function handleDragMoveRotate(event: DragEvent) {\n rotateEnd.set(event.offsetX, event.offsetY)\n rotateDelta.subVectors(rotateEnd, rotateStart)\n\n var element = scope.component\n\n // rotating across whole screen goes 360 degrees around\n rotateLeft(((2 * Math.PI * rotateDelta.x) / element.get('width')) * scope.rotateSpeed)\n\n // rotating up and down along whole screen attempts to go 360, but limited to 180\n rotateUp(((2 * Math.PI * rotateDelta.y) / element.get('height')) * scope.rotateSpeed)\n\n rotateStart.copy(rotateEnd)\n\n scope.update()\n }\n\n function handleDragMoveDolly(event: DragEvent) {\n dollyEnd.set(event.offsetX, event.offsetY)\n\n dollyDelta.subVectors(dollyEnd, dollyStart)\n\n if (dollyDelta.y > 0) {\n dollyIn(getZoomScale())\n } else if (dollyDelta.y < 0) {\n dollyOut(getZoomScale())\n }\n\n dollyStart.copy(dollyEnd)\n\n scope.update()\n }\n\n function handleDragMovePan(event: DragEvent) {\n panEnd.set(event.offsetX, event.offsetY)\n\n panDelta.subVectors(panEnd, panStart)\n\n pan(panDelta.x, panDelta.y)\n\n panStart.copy(panEnd)\n\n scope.update()\n }\n\n function handleMouseUp(event: MouseEvent) {}\n\n function handleKeyDown(event: KeyboardEvent) {\n switch (event.keyCode) {\n case scope.keys.UP:\n pan(0, scope.keyPanSpeed)\n scope.update()\n break\n\n case scope.keys.BOTTOM:\n pan(0, -scope.keyPanSpeed)\n scope.update()\n break\n\n case scope.keys.LEFT:\n pan(scope.keyPanSpeed, 0)\n scope.update()\n break\n\n case scope.keys.RIGHT:\n pan(-scope.keyPanSpeed, 0)\n scope.update()\n break\n }\n }\n\n function handleTouchStartRotate(event: TouchEvent) {\n var x = (event.touches[0] as any).offsetX || event.touches[0].pageX\n var y = (event.touches[0] as any).offsetY || event.touches[0].pageY\n\n rotateStart.set(x, y)\n }\n\n function handleTouchStartDolly(event: TouchEvent) {\n var dx = event.touches[0].pageX - event.touches[1].pageX\n var dy = event.touches[0].pageY - event.touches[1].pageY\n\n var distance = Math.sqrt(dx * dx + dy * dy)\n\n dollyStart.set(0, distance)\n }\n\n function handleTouchStartPan(event: TouchEvent) {\n var x = (event.touches[0] as any).offsetX || event.touches[0].pageX\n var y = (event.touches[0] as any).offsetY || event.touches[0].pageY\n\n panStart.set(x, y)\n }\n\n function handleTouchMoveRotate(event: TouchEvent) {\n var x = (event.touches[0] as any).offsetX || event.touches[0].pageX\n var y = (event.touches[0] as any).offsetY || event.touches[0].pageY\n\n rotateEnd.set(x, y)\n rotateDelta.subVectors(rotateEnd, rotateStart)\n\n var element = scope.component === document ? scope.component.body : scope.component\n\n // rotating across whole screen goes 360 degrees around\n rotateLeft(((2 * Math.PI * rotateDelta.x) / element.model.width) * scope.rotateSpeed)\n // rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientWidth * scope.rotateSpeed );\n\n // rotating up and down along whole screen attempts to go 360, but limited to 180\n rotateUp(((2 * Math.PI * rotateDelta.y) / element.model.height) * scope.rotateSpeed)\n // rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight * scope.rotateSpeed );\n\n rotateStart.copy(rotateEnd)\n\n scope.update()\n }\n\n function handleTouchMoveDolly(event: TouchEvent) {\n var dx = event.touches[0].pageX - event.touches[1].pageX\n var dy = event.touches[0].pageY - event.touches[1].pageY\n\n var distance = Math.sqrt(dx * dx + dy * dy)\n\n dollyEnd.set(0, distance)\n\n dollyDelta.subVectors(dollyEnd, dollyStart)\n\n if (dollyDelta.y > 0) {\n dollyOut(getZoomScale())\n } else if (dollyDelta.y < 0) {\n dollyIn(getZoomScale())\n }\n\n dollyStart.copy(dollyEnd)\n\n scope.update()\n }\n\n function handleTouchMovePan(event: TouchEvent) {\n var x = (event.touches[0] as any).offsetX || event.touches[0].pageX\n var y = (event.touches[0] as any).offsetY || event.touches[0].pageY\n\n panEnd.set(x, y)\n\n panDelta.subVectors(panEnd, panStart)\n\n pan(panDelta.x, panDelta.y)\n\n panStart.copy(panEnd)\n\n scope.update()\n }\n\n function handleTouchEnd(event: TouchEvent) {}\n\n this.update()\n}\n\nThreeControls.prototype = {} //Object.create( THREE.EventDispatcher.prototype );\nThreeControls.prototype.constructor = ThreeControls\nObject.defineProperties(ThreeControls.prototype, {\n center: {\n get: function () {\n console.warn('THREE.OrbitControls: .center has been renamed to .target')\n return this.target\n }\n },\n\n // backward compatibility\n\n noZoom: {\n get: function () {\n console.warn('THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead.')\n return !this.enableZoom\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead.')\n this.enableZoom = !value\n }\n },\n\n noRotate: {\n get: function () {\n console.warn('THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead.')\n return !this.enableRotate\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead.')\n this.enableRotate = !value\n }\n },\n\n noPan: {\n get: function () {\n console.warn('THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead.')\n return !this.enablePan\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead.')\n this.enablePan = !value\n }\n },\n\n noKeys: {\n get: function () {\n console.warn('THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead.')\n return !this.enableKeys\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead.')\n this.enableKeys = !value\n }\n },\n\n staticMoving: {\n get: function () {\n console.warn('THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead.')\n return !this.enableDamping\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead.')\n this.enableDamping = !value\n }\n },\n\n dynamicDampingFactor: {\n get: function () {\n console.warn('THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead.')\n return this.dampingFactor\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead.')\n this.dampingFactor = value\n }\n }\n})\n\nexport default ThreeControls\n"]}
1
+ {"version":3,"file":"three-controls.js","sourceRoot":"","sources":["../src/three-controls.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n/**\n * @author qiao / https://github.com/qiao\n * @author mrdoob / http://mrdoob.com\n * @author alteredq / http://alteredqualia.com/\n * @author WestLangley / http://github.com/WestLangley\n * @author erich666 / http://erichaines.com\n */\n\n// This set of controls performs orbiting, dollying (zooming), and panning.\n// Unlike TrackballControls, it maintains the \"up\" direction object.up (+Y by default).\n//\n// Orbit - left mouse / touch: one finger move\n// Zoom - middle mouse, or mousewheel / touch: two finger spread or squish\n// Pan - right mouse, or arrow keys / touch: three finger swipe\nimport { Component } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\n\nvar ThreeControls = function (this: any, object: THREE.Camera, component: Component) {\n this.object = object\n\n this.component = component\n\n // Set to false to disable this control\n this.enabled = true\n\n // \"target\" sets the location of focus, where the object orbits around\n this.target = new THREE.Vector3()\n\n // How far you can dolly in and out ( PerspectiveCamera only )\n this.minDistance = 0\n this.maxDistance = Infinity\n\n // How far you can zoom in and out ( OrthographicCamera only )\n this.minZoom = 0\n this.maxZoom = Infinity\n\n // How far you can orbit vertically, upper and lower limits.\n // Range is 0 to Math.PI radians.\n this.minPolarAngle = 0 // radians\n this.maxPolarAngle = Math.PI // radians\n\n // How far you can orbit horizontally, upper and lower limits.\n // If set, must be a sub-interval of the interval [ - Math.PI, Math.PI ].\n this.minAzimuthAngle = -Infinity // radians\n this.maxAzimuthAngle = Infinity // radians\n\n // Set to true to enable damping (inertia)\n // If damping is enabled, you must call controls.update() in your animation loop\n this.enableDamping = false\n this.dampingFactor = 0.25\n\n // This option actually enables dollying in and out; left as \"zoom\" for backwards compatibility.\n // Set to false to disable zooming\n this.enableZoom = true\n this.zoomSpeed = 1.0\n\n // Set to false to disable rotating\n this.enableRotate = true\n this.rotateSpeed = 1.0\n\n // Set to false to disable panning\n this.enablePan = true\n this.keyPanSpeed = 7.0 // pixels moved per arrow key push\n\n // Set to true to automatically rotate around the target\n // If auto-rotate is enabled, you must call controls.update() in your animation loop\n this.autoRotate = (this.component.app && !this.component.app.isEditMode && this.component.state.autoRotate) || false\n this.autoRotateSpeed = this.component.state.rotationSpeed || 2.0 // 30 seconds per round when fps is 60\n\n // Set to false to disable use of the keys\n this.enableKeys = true\n\n // The four arrow keys\n this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 }\n\n // Mouse buttons\n this.mouseButtons = { ORBIT: THREE.MOUSE.LEFT, ZOOM: THREE.MOUSE.MIDDLE, PAN: THREE.MOUSE.RIGHT }\n\n // for reset\n this.target0 = this.target.clone()\n this.position0 = this.object.position.clone()\n this.zoom0 = this.object.zoom\n\n // flags\n this.cameraChanged = false\n\n //\n // public methods\n //\n\n this.getPolarAngle = function () {\n return spherical.phi\n }\n\n this.getAzimuthalAngle = function () {\n return spherical.theta\n }\n\n this.saveState = function () {\n scope.target0.copy(scope.target)\n scope.position0.copy(scope.object.position)\n scope.zoom0 = scope.object.zoom\n }\n\n this.reset = function () {\n scope.target.copy(scope.target0)\n scope.object.position.copy(scope.position0)\n scope.object.zoom = scope.zoom0\n\n scope.object.updateProjectionMatrix()\n // scope.dispatchEvent( changeEvent );\n\n scope.update()\n\n state = STATE.NONE\n }\n\n // this method is exposed, but perhaps it would be better if we can make it private...\n this.update = (function () {\n var offset = new THREE.Vector3()\n\n // so camera.up is the orbit axis\n var quat = new THREE.Quaternion().setFromUnitVectors(object.up, new THREE.Vector3(0, 1, 0))\n var quatInverse = quat.clone().invert()\n\n var lastPosition = new THREE.Vector3()\n var lastQuaternion = new THREE.Quaternion()\n\n return function update() {\n // if (!(scope.cameraChanged || scope.autoRotate))\n // return false;\n\n var position = scope.object.position\n\n offset.copy(position).sub(scope.target)\n\n // rotate offset to \"y-axis-is-up\" space\n offset.applyQuaternion(quat)\n\n // angle from z-axis around y-axis\n spherical.setFromVector3(offset)\n\n if (scope.autoRotate && state === STATE.NONE) {\n // theta = getAutoRotationAngle();\n // thetaDelta = - getAutoRotationAngle();\n // theta = 0;\n\n rotateLeft(getAutoRotationAngle())\n scope.component.invalidate()\n // spherical.theta = getAutoRotationAngle();\n }\n\n spherical.theta += sphericalDelta.theta\n spherical.phi += sphericalDelta.phi\n\n // restrict theta to be between desired limits\n spherical.theta = Math.max(scope.minAzimuthAngle, Math.min(scope.maxAzimuthAngle, spherical.theta))\n\n // restrict phi to be between desired limits\n spherical.phi = Math.max(scope.minPolarAngle, Math.min(scope.maxPolarAngle, spherical.phi))\n\n spherical.makeSafe()\n\n spherical.radius *= scale\n\n // restrict radius to be between desired limits\n spherical.radius = Math.max(scope.minDistance, Math.min(scope.maxDistance, spherical.radius))\n\n // move target to panned location\n scope.target.add(panOffset)\n\n offset.setFromSpherical(spherical)\n\n // rotate offset back to \"camera-up-vector-is-up\" space\n offset.applyQuaternion(quatInverse)\n\n position.copy(scope.target).add(offset)\n\n scope.object.lookAt(scope.target)\n\n if (scope.enableDamping === true) {\n sphericalDelta.theta *= 1 - scope.dampingFactor\n sphericalDelta.phi *= 1 - scope.dampingFactor\n } else {\n sphericalDelta.set(0, 0, 0)\n }\n\n scale = 1\n panOffset.set(0, 0, 0)\n\n // update condition is:\n // min(camera displacement, camera rotation in radians)^2 > EPS\n // using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\n // if ((scope.cameraChanged || zoomChanged) && (\n // lastPosition.distanceToSquared(scope.object.position) > EPS ||\n // 8 * (1 - lastQuaternion.dot(scope.object.quaternion)) > EPS)) {\n if (\n zoomChanged ||\n lastPosition.distanceToSquared(scope.object.position) > EPS ||\n 8 * (1 - lastQuaternion.dot(scope.object.quaternion)) > EPS\n ) {\n lastPosition.copy(scope.object.position)\n lastQuaternion.copy(scope.object.quaternion)\n\n scope.component.invalidate()\n scope.cameraChanged = false\n zoomChanged = false\n\n return true\n }\n\n // if (this.autoRotate) {\n // scope.component.invalidate()\n // }\n return false\n }\n })()\n\n this.dispose = function () {}\n\n //\n // event handlers - FSM: listen for events and reset state\n //\n\n this.onMouseDown = function (event: MouseEvent) {}\n\n this.onMouseMove = function (event: MouseEvent) {}\n\n this.onMouseUp = function (event: MouseEvent) {}\n\n this.onDragStart = function (event: DragEvent) {\n if (this.enabled === false || this.enableRotate === false) return\n\n scope.component.stop()\n this.autoRotate = false\n\n if (event.altKey === true) state = STATE.PAN\n else state = STATE.ROTATE\n\n switch (state) {\n case STATE.ROTATE:\n if (this.enableRotate) handleDragStartRotate(event)\n break\n\n case STATE.DOLLY:\n if (this.enableZoom) handleDragStartDolly(event)\n break\n\n case STATE.PAN:\n if (this.enablePan) handleDragStartPan(event)\n break\n }\n }\n\n this.onDragMove = function (event: DragEvent) {\n if (!this.enabled) return\n\n if (event.altKey === true) state = STATE.PAN\n else state = STATE.ROTATE\n\n switch (state) {\n case STATE.ROTATE:\n if (this.enableRotate) handleDragMoveRotate(event)\n break\n\n case STATE.DOLLY:\n if (this.enableZoom) handleDragMoveDolly(event)\n break\n\n case STATE.PAN:\n if (this.enablePan) handleDragMovePan(event)\n break\n }\n }\n\n this.onDragEnd = function (event: DragEvent) {\n if (this.enabled === false || this.enableRotate === false) return\n\n state = STATE.NONE\n\n START_TIME = null\n this.autoRotate = this.component.state.autoRotate || false\n\n scope.component.threed_animate()\n // scope.update();\n }\n\n this.onKeyDown = function (event: KeyboardEvent) {\n if (this.enabled === false || this.enableKeys === false || this.enablePan === false) return\n\n handleKeyDown(event)\n }\n\n this.onTouchStart = function (event: TouchEvent) {\n if (this.enabled === false) return\n\n switch (event.touches.length) {\n case 1: // one-fingered touch: rotate\n if (this.enableRotate === false) return\n handleTouchStartRotate(event)\n state = STATE.TOUCH_ROTATE\n break\n\n case 2: // two-fingered touch: pan\n this.lastScale = (event as any).scale || 1\n if (this.enablePan === false) return\n handleTouchStartPan(event)\n state = STATE.TOUCH_PAN\n break\n // case 2: // two-fingered touch: dolly\n // if ( this.enableZoom === false ) return;\n // handleTouchStartDolly( event );\n // state = STATE.TOUCH_DOLLY;\n // break;\n\n // case 3: // three-fingered touch: pan\n // if ( this.enablePan === false ) return;\n // handleTouchStartPan( event );\n // state = STATE.TOUCH_PAN;\n // break;\n\n default:\n state = STATE.NONE\n }\n }\n\n this.onTouchMove = function (event: TouchEvent) {\n if (this.enabled === false) return\n\n switch (event.touches.length) {\n case 1: // one-fingered touch: rotate\n if (this.enableRotate === false) return\n if (state !== STATE.TOUCH_ROTATE) return // is this needed?...\n handleTouchMoveRotate(event)\n break\n case 2: // two-fingered touch: pan\n if (Math.abs(this.lastScale - (event as any).scale || 1) > 0.05) {\n return\n }\n if (this.enablePan === false) return\n if (state !== STATE.TOUCH_PAN) return // is this needed?...\n handleTouchMovePan(event)\n break\n // case 2: // two-fingered touch: dolly\n // if ( this.enableZoom === false ) return;\n // if ( state !== STATE.TOUCH_DOLLY ) return; // is this needed?...\n // handleTouchMoveDolly( event );\n // break;\n // case 3: // three-fingered touch: pan\n // if ( this.enablePan === false ) return;\n // if ( state !== STATE.TOUCH_PAN ) return; // is this needed?...\n // handleTouchMovePan( event );\n // break;\n default:\n state = STATE.NONE\n }\n }\n\n this.onTouchEnd = function (event: TouchEvent) {\n if (this.enabled === false) return\n this.lastScale = 1\n\n handleTouchEnd(event)\n // this.dispatchEvent( endEvent );\n state = STATE.NONE\n }\n\n this.doAutoRotate = function (autoRotate: boolean) {\n START_TIME = null\n this.cameraChanged = true\n this.autoRotate = autoRotate\n this.update()\n }\n\n //\n // internals\n //\n\n var scope = this\n\n var changeEvent = { type: 'change' }\n var startEvent = { type: 'start' }\n var endEvent = { type: 'end' }\n\n var STATE = { NONE: -1, ROTATE: 0, DOLLY: 1, PAN: 2, TOUCH_ROTATE: 3, TOUCH_DOLLY: 4, TOUCH_PAN: 5 }\n\n var state = STATE.NONE\n\n var EPS = 0.000001\n\n // current position in spherical coordinates\n var spherical = new THREE.Spherical()\n var sphericalDelta = new THREE.Spherical()\n\n var scale = 1\n var panOffset = new THREE.Vector3()\n var zoomChanged = false\n\n var rotateStart = new THREE.Vector2()\n var rotateEnd = new THREE.Vector2()\n var rotateDelta = new THREE.Vector2()\n\n var panStart = new THREE.Vector2()\n var panEnd = new THREE.Vector2()\n var panDelta = new THREE.Vector2()\n\n var dollyStart = new THREE.Vector2()\n var dollyEnd = new THREE.Vector2()\n var dollyDelta = new THREE.Vector2()\n\n var START_TIME: number | null = null\n var offsetTheta = 0\n\n function getAutoRotationAngle() {\n if (!START_TIME) {\n START_TIME = performance.now()\n offsetTheta = spherical.theta\n return 0\n }\n\n var lastTime = performance.now() - START_TIME\n var progress = lastTime / (60000 / scope.autoRotateSpeed)\n\n // return - 2 * Math.PI * progress;\n return 2 * Math.PI * progress + spherical.theta - offsetTheta\n // return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;\n }\n\n function getZoomScale() {\n return Math.pow(0.95, scope.zoomSpeed)\n }\n\n function rotateLeft(angle: number) {\n sphericalDelta.theta -= angle\n }\n\n function rotateUp(angle: number) {\n sphericalDelta.phi -= angle\n }\n\n var panLeft = (function () {\n var v = new THREE.Vector3()\n\n return function panLeft(distance: number, objectMatrix: any) {\n v.setFromMatrixColumn(objectMatrix, 0) // get X column of objectMatrix\n v.multiplyScalar(-distance)\n\n panOffset.add(v)\n }\n })()\n\n var panUp = (function () {\n var v = new THREE.Vector3()\n\n return function panUp(distance: number, objectMatrix: any) {\n v.setFromMatrixColumn(objectMatrix, 1) // get Y column of objectMatrix\n v.multiplyScalar(distance)\n\n panOffset.add(v)\n }\n })()\n\n // deltaX and deltaY are in pixels; right and down are positive\n var pan = (function () {\n var offset = new THREE.Vector3()\n\n return function pan(deltaX: number, deltaY: number) {\n // var element = scope.component === document ? scope.component.body : scope.component\n const { width, height } = scope.component.bounds\n\n if (scope.object.isPerspectiveCamera) {\n // perspective\n var position = scope.object.position\n offset.copy(position).sub(scope.target)\n var targetDistance = offset.length()\n\n // half of the fov is center to top of screen\n targetDistance *= Math.tan(((scope.object.fov / 2) * Math.PI) / 180.0)\n\n // we actually don't use screenWidth, since perspective camera is fixed to screen height\n panLeft((2 * deltaX * targetDistance) / height, scope.object.matrix)\n // panLeft( 2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix );\n panUp((2 * deltaY * targetDistance) / height, scope.object.matrix)\n // panUp( 2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix );\n } else if (scope.object.isOrthographicCamera) {\n // orthographic\n panLeft((deltaX * (scope.object.right - scope.object.left)) / scope.object.zoom / width, scope.object.matrix)\n // panLeft( deltaX * ( scope.object.right - scope.object.left ) / element.clientWidth, scope.object.matrix );\n panUp((deltaY * (scope.object.top - scope.object.bottom)) / scope.object.zoom / height, scope.object.matrix)\n // panUp( deltaY * ( scope.object.top - scope.object.bottom ) / element.clientHeight, scope.object.matrix );\n } else {\n // camera neither orthographic nor perspective\n console.warn('WARNING: ThreeControls.js encountered an unknown camera type - pan disabled.')\n scope.enablePan = false\n }\n }\n })()\n\n function dollyIn(dollyScale: number) {\n if (scope.object.isPerspectiveCamera) {\n scale /= dollyScale\n } else if (scope.object.isOrthographicCamera) {\n scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom * dollyScale))\n scope.object.updateProjectionMatrix()\n zoomChanged = true\n } else {\n console.warn('WARNING: ThreeControls.js encountered an unknown camera type - dolly/zoom disabled.')\n scope.enableZoom = false\n }\n }\n\n function dollyOut(dollyScale: number) {\n if (scope.object.isPerspectiveCamera) {\n scale *= dollyScale\n } else if (scope.object.isOrthographicCamera) {\n scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom / dollyScale))\n scope.object.updateProjectionMatrix()\n zoomChanged = true\n } else {\n console.warn('WARNING: ThreeControls.js encountered an unknown camera type - dolly/zoom disabled.')\n scope.enableZoom = false\n }\n }\n\n //\n // event callbacks - update the object state\n //\n\n function handleDragStartRotate(event: DragEvent) {\n rotateStart.set(event.offsetX, event.offsetY)\n }\n\n function handleDragStartDolly(event: DragEvent) {\n dollyStart.set(event.offsetX, event.offsetY)\n }\n\n function handleDragStartPan(event: DragEvent) {\n panStart.set(event.offsetX, event.offsetY)\n }\n\n function handleDragMoveRotate(event: DragEvent) {\n rotateEnd.set(event.offsetX, event.offsetY)\n rotateDelta.subVectors(rotateEnd, rotateStart)\n\n var element = scope.component\n\n // rotating across whole screen goes 360 degrees around\n rotateLeft(((2 * Math.PI * rotateDelta.x) / element.get('width')) * scope.rotateSpeed)\n\n // rotating up and down along whole screen attempts to go 360, but limited to 180\n rotateUp(((2 * Math.PI * rotateDelta.y) / element.get('height')) * scope.rotateSpeed)\n\n rotateStart.copy(rotateEnd)\n\n scope.update()\n }\n\n function handleDragMoveDolly(event: DragEvent) {\n dollyEnd.set(event.offsetX, event.offsetY)\n\n dollyDelta.subVectors(dollyEnd, dollyStart)\n\n if (dollyDelta.y > 0) {\n dollyIn(getZoomScale())\n } else if (dollyDelta.y < 0) {\n dollyOut(getZoomScale())\n }\n\n dollyStart.copy(dollyEnd)\n\n scope.update()\n }\n\n function handleDragMovePan(event: DragEvent) {\n panEnd.set(event.offsetX, event.offsetY)\n\n panDelta.subVectors(panEnd, panStart)\n\n pan(panDelta.x, panDelta.y)\n\n panStart.copy(panEnd)\n\n scope.update()\n }\n\n function handleMouseUp(event: MouseEvent) {}\n\n function handleKeyDown(event: KeyboardEvent) {\n switch (event.keyCode) {\n case scope.keys.UP:\n pan(0, scope.keyPanSpeed)\n scope.update()\n break\n\n case scope.keys.BOTTOM:\n pan(0, -scope.keyPanSpeed)\n scope.update()\n break\n\n case scope.keys.LEFT:\n pan(scope.keyPanSpeed, 0)\n scope.update()\n break\n\n case scope.keys.RIGHT:\n pan(-scope.keyPanSpeed, 0)\n scope.update()\n break\n }\n }\n\n function handleTouchStartRotate(event: TouchEvent) {\n var x = (event.touches[0] as any).offsetX || event.touches[0].pageX\n var y = (event.touches[0] as any).offsetY || event.touches[0].pageY\n\n rotateStart.set(x, y)\n }\n\n function handleTouchStartDolly(event: TouchEvent) {\n var dx = event.touches[0].pageX - event.touches[1].pageX\n var dy = event.touches[0].pageY - event.touches[1].pageY\n\n var distance = Math.sqrt(dx * dx + dy * dy)\n\n dollyStart.set(0, distance)\n }\n\n function handleTouchStartPan(event: TouchEvent) {\n var x = (event.touches[0] as any).offsetX || event.touches[0].pageX\n var y = (event.touches[0] as any).offsetY || event.touches[0].pageY\n\n panStart.set(x, y)\n }\n\n function handleTouchMoveRotate(event: TouchEvent) {\n var x = (event.touches[0] as any).offsetX || event.touches[0].pageX\n var y = (event.touches[0] as any).offsetY || event.touches[0].pageY\n\n rotateEnd.set(x, y)\n rotateDelta.subVectors(rotateEnd, rotateStart)\n\n var element = scope.component === document ? scope.component.body : scope.component\n\n // rotating across whole screen goes 360 degrees around\n rotateLeft(((2 * Math.PI * rotateDelta.x) / element.model.width) * scope.rotateSpeed)\n // rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientWidth * scope.rotateSpeed );\n\n // rotating up and down along whole screen attempts to go 360, but limited to 180\n rotateUp(((2 * Math.PI * rotateDelta.y) / element.model.height) * scope.rotateSpeed)\n // rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight * scope.rotateSpeed );\n\n rotateStart.copy(rotateEnd)\n\n scope.update()\n }\n\n function handleTouchMoveDolly(event: TouchEvent) {\n var dx = event.touches[0].pageX - event.touches[1].pageX\n var dy = event.touches[0].pageY - event.touches[1].pageY\n\n var distance = Math.sqrt(dx * dx + dy * dy)\n\n dollyEnd.set(0, distance)\n\n dollyDelta.subVectors(dollyEnd, dollyStart)\n\n if (dollyDelta.y > 0) {\n dollyOut(getZoomScale())\n } else if (dollyDelta.y < 0) {\n dollyIn(getZoomScale())\n }\n\n dollyStart.copy(dollyEnd)\n\n scope.update()\n }\n\n function handleTouchMovePan(event: TouchEvent) {\n var x = (event.touches[0] as any).offsetX || event.touches[0].pageX\n var y = (event.touches[0] as any).offsetY || event.touches[0].pageY\n\n panEnd.set(x, y)\n\n panDelta.subVectors(panEnd, panStart)\n\n pan(panDelta.x, panDelta.y)\n\n panStart.copy(panEnd)\n\n scope.update()\n }\n\n function handleTouchEnd(event: TouchEvent) {}\n\n this.update()\n}\n\nThreeControls.prototype = {} //Object.create( THREE.EventDispatcher.prototype );\nThreeControls.prototype.constructor = ThreeControls\nObject.defineProperties(ThreeControls.prototype, {\n center: {\n get: function () {\n console.warn('THREE.OrbitControls: .center has been renamed to .target')\n return this.target\n }\n },\n\n // backward compatibility\n\n noZoom: {\n get: function () {\n console.warn('THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead.')\n return !this.enableZoom\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead.')\n this.enableZoom = !value\n }\n },\n\n noRotate: {\n get: function () {\n console.warn('THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead.')\n return !this.enableRotate\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead.')\n this.enableRotate = !value\n }\n },\n\n noPan: {\n get: function () {\n console.warn('THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead.')\n return !this.enablePan\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead.')\n this.enablePan = !value\n }\n },\n\n noKeys: {\n get: function () {\n console.warn('THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead.')\n return !this.enableKeys\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead.')\n this.enableKeys = !value\n }\n },\n\n staticMoving: {\n get: function () {\n console.warn('THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead.')\n return !this.enableDamping\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead.')\n this.enableDamping = !value\n }\n },\n\n dynamicDampingFactor: {\n get: function () {\n console.warn('THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead.')\n return this.dampingFactor\n },\n\n set: function (value) {\n console.warn('THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead.')\n this.dampingFactor = value\n }\n }\n})\n\nexport default ThreeControls\n"]}
@@ -2,14 +2,15 @@
2
2
 
3
3
  glTF (혹은 glb)포맷의 3D object를 board에 임포트 하는 방법에 대해서 알아본다.
4
4
 
5
+ ## properties
5
6
 
6
-
7
+ 1. source (value-property) : glTF 오브젝트 URL
7
8
 
8
9
  ## upload
9
- 1. 첨부파일 메뉴에서 3D Gltf오브젝트 파일을 업로드한다.
10
10
 
11
+ 1. 첨부파일 메뉴에서 3D Gltf오브젝트 파일을 업로드한다.
11
12
 
12
- ## use
13
+ ## use
13
14
 
14
15
  1. 모델링 화면에서 컴포넌트 툴바의 3D컴포넌트 내의 gltf-object를 찾아 클릭하여 생성한다.
15
16
  ![gltf 컴포넌트 생성][gltf_import_5]
@@ -2,9 +2,13 @@
2
2
 
3
3
  Learn how to import 3D objects in glTF (or glb) format into board.
4
4
 
5
+ ## properties
6
+
7
+ 1. source (value-property) : glTF object URL
8
+
5
9
  ## upload
6
- 1. Upload the 3D Gltf object file from the attachment menu.
7
10
 
11
+ 1. Upload the 3D Gltf object file from the attachment menu.
8
12
 
9
13
  ## usage
10
14
 
@@ -1,25 +1,27 @@
1
1
  # gltf-object
2
2
 
3
- 了解如何将glTF(或glb)格式的3D对象导入board。
3
+ 了解如何将 glTF(或 glb)格式的 3D 对象导入 board。
4
4
 
5
+ ## properties
5
6
 
7
+ 1. source (value-property) : glTF object URL
6
8
 
7
9
  ## upload
8
- 1. 从附件菜单上载3D Gltf对象文件。
9
10
 
11
+ 1. 从附件菜单上载 3D Gltf 对象文件。
10
12
 
11
- ## use
13
+ ## use
12
14
 
13
- 1. 在建模屏幕中,找到并单击组件工具栏的3D组件中的gltf-object来创建它。
15
+ 1. 在建模屏幕中,找到并单击组件工具栏的 3D 组件中的 gltf-object 来创建它。
14
16
  ![gltf 컴포넌트 생성][gltf_import_5]
15
17
 
16
- 2. 单击已创建的gltf对象的属性窗口中的第4个选项卡,然后输入URL值,或通过其旁边的选择器窗口选择gltf对象。
18
+ 2. 单击已创建的 gltf 对象的属性窗口中的第 4 个选项卡,然后输入 URL 值,或通过其旁边的选择器窗口选择 gltf 对象。
17
19
  ![gltf 추가 및 보여주기][gltf_import_6]
18
20
 
19
- 3. 在建模屏幕上,在组件工具栏的3D组件中找到visualizer,单击以创建它,然后将之前创建的gltf对象拖动到visualizer中。
21
+ 3. 在建模屏幕上,在组件工具栏的 3D 组件中找到 visualizer,单击以创建它,然后将之前创建的 gltf 对象拖动到 visualizer 中。
20
22
  ![visualizer 생성][gltf_import_7]
21
23
 
22
- 4. 在预览屏幕上检查gltf-object。
24
+ 4. 在预览屏幕上检查 gltf-object。
23
25
  ![미리보기 화면 확인][gltf_import_8]
24
26
 
25
27
  [gltf_import_5]: ../images/gltf_import_5.png
@@ -6,9 +6,14 @@
6
6
  "auditLog": "logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json",
7
7
  "files": [
8
8
  {
9
- "date": 1682127511828,
10
- "name": "logs/application-2023-04-22-10.log",
11
- "hash": "af79264097d1d5a2a8751968dc37e4b973b3da6c16428536abbef855e9a6197b"
9
+ "date": 1682311771683,
10
+ "name": "logs/application-2023-04-24-13.log",
11
+ "hash": "308d8bd89639190321ed5ec959e2a2e70f817beea06ab6e6bcce38e8434958f2"
12
+ },
13
+ {
14
+ "date": 1682312800924,
15
+ "name": "logs/application-2023-04-24-14.log",
16
+ "hash": "b0de333ddd3629539938a8c5f5b55697ec5582bec9296ec199065f260f1d3aaf"
12
17
  }
13
18
  ],
14
19
  "hashType": "sha256"
@@ -5,15 +5,25 @@
5
5
  },
6
6
  "auditLog": "logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json",
7
7
  "files": [
8
- {
9
- "date": 1680982525600,
10
- "name": "logs/connections-2023-04-09-04.log",
11
- "hash": "6fc12bd52555f69e005a0d0b45efe21694cfe24f9acd57eb3a4b156f0a3ed844"
12
- },
13
8
  {
14
9
  "date": 1682127513098,
15
10
  "name": "logs/connections-2023-04-22-10.log",
16
11
  "hash": "f03c5ef33dab51f66f16d8cd7cf1efb393c3be199d62203bb157c11e6d1bfa62"
12
+ },
13
+ {
14
+ "date": 1682129146590,
15
+ "name": "logs/connections-2023-04-22-11.log",
16
+ "hash": "fd01098e1b598d688d8d29ba58084707e2f622a8039b4ff658d11ee33bb9d519"
17
+ },
18
+ {
19
+ "date": 1682311773130,
20
+ "name": "logs/connections-2023-04-24-13.log",
21
+ "hash": "ae8f1370da7eb86d08afccf82959daaa55caafaf040e2085274f28f90753b5bc"
22
+ },
23
+ {
24
+ "date": 1682312801993,
25
+ "name": "logs/connections-2023-04-24-14.log",
26
+ "hash": "ee927e633d4502a0e55fa670e495a10639855b6f7b4621726e3825cb7abe1247"
17
27
  }
18
28
  ],
19
29
  "hashType": "sha256"
@@ -0,0 +1,15 @@
1
+ 2023-04-24T13:49:32+09:00 info: File Storage is Ready.
2
+ 2023-04-24T13:49:33+09:00 error: oracledb module loading failed
3
+ 2023-04-24T13:49:34+09:00 info: Default DataSource established
4
+ 2023-04-24T13:49:34+09:00 info: Transaction DataSource established
5
+ 2023-04-24T13:49:34+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
6
+ 2023-04-24T13:49:34+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
7
+ 2023-04-24T13:50:25+09:00 error: Unauthorized!
8
+ 2023-04-24T13:50:58+09:00 error: Unauthorized!
9
+ 2023-04-24T13:51:02+09:00 error: Unauthorized!
10
+ 2023-04-24T13:56:42+09:00 info: File Storage is Ready.
11
+ 2023-04-24T13:56:43+09:00 error: oracledb module loading failed
12
+ 2023-04-24T13:56:44+09:00 info: Default DataSource established
13
+ 2023-04-24T13:56:44+09:00 info: Transaction DataSource established
14
+ 2023-04-24T13:56:44+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
15
+ 2023-04-24T13:56:44+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
@@ -0,0 +1,12 @@
1
+ 2023-04-24T14:06:41+09:00 info: File Storage is Ready.
2
+ 2023-04-24T14:06:42+09:00 error: oracledb module loading failed
3
+ 2023-04-24T14:06:43+09:00 info: Default DataSource established
4
+ 2023-04-24T14:06:43+09:00 info: Transaction DataSource established
5
+ 2023-04-24T14:06:43+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
6
+ 2023-04-24T14:06:43+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
7
+ 2023-04-24T14:07:50+09:00 info: File Storage is Ready.
8
+ 2023-04-24T14:07:50+09:00 error: oracledb module loading failed
9
+ 2023-04-24T14:07:51+09:00 info: Default DataSource established
10
+ 2023-04-24T14:07:51+09:00 info: Transaction DataSource established
11
+ 2023-04-24T14:07:51+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
12
+ 2023-04-24T14:07:51+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
@@ -0,0 +1,41 @@
1
+ 2023-04-22T11:05:48+09:00 info: Initializing ConnectionManager...
2
+ 2023-04-22T11:05:48+09:00 info: Connector 'echo-back-server' started to ready
3
+ 2023-04-22T11:05:48+09:00 info: Connector 'echo-back' started to ready
4
+ 2023-04-22T11:05:48+09:00 info: Connector 'http-connector' started to ready
5
+ 2023-04-22T11:05:48+09:00 info: Connector 'graphql-connector' started to ready
6
+ 2023-04-22T11:05:48+09:00 info: Connector 'sqlite-connector' started to ready
7
+ 2023-04-22T11:05:48+09:00 info: Connector 'postgresql-connector' started to ready
8
+ 2023-04-22T11:05:48+09:00 info: Connector 'mqtt-connector' started to ready
9
+ 2023-04-22T11:05:48+09:00 info: Connector 'mssql-connector' started to ready
10
+ 2023-04-22T11:05:48+09:00 info: Connector 'oracle-connector' started to ready
11
+ 2023-04-22T11:05:48+09:00 info: Connector 'mysql-connector' started to ready
12
+ 2023-04-22T11:05:48+09:00 info: Connector 'socket-server' started to ready
13
+ 2023-04-22T11:05:48+09:00 info: Connector 'msgraph-connector' started to ready
14
+ 2023-04-22T11:05:48+09:00 info: Connector 'openai-connector' started to ready
15
+ 2023-04-22T11:05:48+09:00 info: echo-back-servers are ready
16
+ 2023-04-22T11:05:48+09:00 info: echo-back connections are ready
17
+ 2023-04-22T11:05:48+09:00 info: http-connector connections are ready
18
+ 2023-04-22T11:05:48+09:00 info: graphql-connector connections are ready
19
+ 2023-04-22T11:05:48+09:00 info: sqlite-connector connections are ready
20
+ 2023-04-22T11:05:48+09:00 info: postgresql-connector connections are ready
21
+ 2023-04-22T11:05:48+09:00 info: mqtt-connector connections are ready
22
+ 2023-04-22T11:05:48+09:00 info: mssql-connector connections are ready
23
+ 2023-04-22T11:05:48+09:00 info: oracle-connector connections are ready
24
+ 2023-04-22T11:05:48+09:00 info: mysql-connector connections are ready
25
+ 2023-04-22T11:05:48+09:00 info: socket servers are ready
26
+ 2023-04-22T11:05:48+09:00 info: msgraph-connector connections are ready
27
+ 2023-04-22T11:05:48+09:00 info: openai-connector connections are ready
28
+ 2023-04-22T11:05:48+09:00 info: All connector for 'echo-back-server' ready
29
+ 2023-04-22T11:05:48+09:00 info: All connector for 'echo-back' ready
30
+ 2023-04-22T11:05:48+09:00 info: All connector for 'http-connector' ready
31
+ 2023-04-22T11:05:48+09:00 info: All connector for 'graphql-connector' ready
32
+ 2023-04-22T11:05:48+09:00 info: All connector for 'sqlite-connector' ready
33
+ 2023-04-22T11:05:48+09:00 info: All connector for 'postgresql-connector' ready
34
+ 2023-04-22T11:05:48+09:00 info: All connector for 'mqtt-connector' ready
35
+ 2023-04-22T11:05:48+09:00 info: All connector for 'mssql-connector' ready
36
+ 2023-04-22T11:05:48+09:00 info: All connector for 'oracle-connector' ready
37
+ 2023-04-22T11:05:48+09:00 info: All connector for 'mysql-connector' ready
38
+ 2023-04-22T11:05:48+09:00 info: All connector for 'socket-server' ready
39
+ 2023-04-22T11:05:48+09:00 info: All connector for 'msgraph-connector' ready
40
+ 2023-04-22T11:05:48+09:00 info: All connector for 'openai-connector' ready
41
+ 2023-04-22T11:05:48+09:00 info: ConnectionManager initialization done:
@@ -0,0 +1,82 @@
1
+ 2023-04-24T13:49:34+09:00 info: Initializing ConnectionManager...
2
+ 2023-04-24T13:49:34+09:00 info: Connector 'echo-back-server' started to ready
3
+ 2023-04-24T13:49:34+09:00 info: Connector 'echo-back' started to ready
4
+ 2023-04-24T13:49:34+09:00 info: Connector 'http-connector' started to ready
5
+ 2023-04-24T13:49:34+09:00 info: Connector 'graphql-connector' started to ready
6
+ 2023-04-24T13:49:34+09:00 info: Connector 'sqlite-connector' started to ready
7
+ 2023-04-24T13:49:34+09:00 info: Connector 'postgresql-connector' started to ready
8
+ 2023-04-24T13:49:34+09:00 info: Connector 'mqtt-connector' started to ready
9
+ 2023-04-24T13:49:34+09:00 info: Connector 'mssql-connector' started to ready
10
+ 2023-04-24T13:49:34+09:00 info: Connector 'oracle-connector' started to ready
11
+ 2023-04-24T13:49:34+09:00 info: Connector 'mysql-connector' started to ready
12
+ 2023-04-24T13:49:34+09:00 info: Connector 'socket-server' started to ready
13
+ 2023-04-24T13:49:34+09:00 info: Connector 'msgraph-connector' started to ready
14
+ 2023-04-24T13:49:34+09:00 info: Connector 'openai-connector' started to ready
15
+ 2023-04-24T13:49:34+09:00 info: echo-back-servers are ready
16
+ 2023-04-24T13:49:34+09:00 info: echo-back connections are ready
17
+ 2023-04-24T13:49:34+09:00 info: http-connector connections are ready
18
+ 2023-04-24T13:49:34+09:00 info: graphql-connector connections are ready
19
+ 2023-04-24T13:49:34+09:00 info: sqlite-connector connections are ready
20
+ 2023-04-24T13:49:34+09:00 info: postgresql-connector connections are ready
21
+ 2023-04-24T13:49:34+09:00 info: mqtt-connector connections are ready
22
+ 2023-04-24T13:49:34+09:00 info: mssql-connector connections are ready
23
+ 2023-04-24T13:49:34+09:00 info: oracle-connector connections are ready
24
+ 2023-04-24T13:49:34+09:00 info: mysql-connector connections are ready
25
+ 2023-04-24T13:49:34+09:00 info: socket servers are ready
26
+ 2023-04-24T13:49:34+09:00 info: msgraph-connector connections are ready
27
+ 2023-04-24T13:49:34+09:00 info: openai-connector connections are ready
28
+ 2023-04-24T13:49:34+09:00 info: All connector for 'echo-back-server' ready
29
+ 2023-04-24T13:49:34+09:00 info: All connector for 'echo-back' ready
30
+ 2023-04-24T13:49:34+09:00 info: All connector for 'http-connector' ready
31
+ 2023-04-24T13:49:34+09:00 info: All connector for 'graphql-connector' ready
32
+ 2023-04-24T13:49:34+09:00 info: All connector for 'sqlite-connector' ready
33
+ 2023-04-24T13:49:34+09:00 info: All connector for 'postgresql-connector' ready
34
+ 2023-04-24T13:49:34+09:00 info: All connector for 'mqtt-connector' ready
35
+ 2023-04-24T13:49:34+09:00 info: All connector for 'mssql-connector' ready
36
+ 2023-04-24T13:49:34+09:00 info: All connector for 'oracle-connector' ready
37
+ 2023-04-24T13:49:34+09:00 info: All connector for 'mysql-connector' ready
38
+ 2023-04-24T13:49:34+09:00 info: All connector for 'socket-server' ready
39
+ 2023-04-24T13:49:34+09:00 info: All connector for 'msgraph-connector' ready
40
+ 2023-04-24T13:49:34+09:00 info: All connector for 'openai-connector' ready
41
+ 2023-04-24T13:49:34+09:00 info: ConnectionManager initialization done:
42
+ 2023-04-24T13:56:45+09:00 info: Initializing ConnectionManager...
43
+ 2023-04-24T13:56:45+09:00 info: Connector 'echo-back-server' started to ready
44
+ 2023-04-24T13:56:45+09:00 info: Connector 'echo-back' started to ready
45
+ 2023-04-24T13:56:45+09:00 info: Connector 'http-connector' started to ready
46
+ 2023-04-24T13:56:45+09:00 info: Connector 'graphql-connector' started to ready
47
+ 2023-04-24T13:56:45+09:00 info: Connector 'sqlite-connector' started to ready
48
+ 2023-04-24T13:56:45+09:00 info: Connector 'postgresql-connector' started to ready
49
+ 2023-04-24T13:56:45+09:00 info: Connector 'mqtt-connector' started to ready
50
+ 2023-04-24T13:56:45+09:00 info: Connector 'mssql-connector' started to ready
51
+ 2023-04-24T13:56:45+09:00 info: Connector 'oracle-connector' started to ready
52
+ 2023-04-24T13:56:45+09:00 info: Connector 'mysql-connector' started to ready
53
+ 2023-04-24T13:56:45+09:00 info: Connector 'socket-server' started to ready
54
+ 2023-04-24T13:56:45+09:00 info: Connector 'msgraph-connector' started to ready
55
+ 2023-04-24T13:56:45+09:00 info: Connector 'openai-connector' started to ready
56
+ 2023-04-24T13:56:45+09:00 info: echo-back-servers are ready
57
+ 2023-04-24T13:56:45+09:00 info: echo-back connections are ready
58
+ 2023-04-24T13:56:45+09:00 info: http-connector connections are ready
59
+ 2023-04-24T13:56:45+09:00 info: graphql-connector connections are ready
60
+ 2023-04-24T13:56:45+09:00 info: sqlite-connector connections are ready
61
+ 2023-04-24T13:56:45+09:00 info: postgresql-connector connections are ready
62
+ 2023-04-24T13:56:45+09:00 info: mqtt-connector connections are ready
63
+ 2023-04-24T13:56:45+09:00 info: mssql-connector connections are ready
64
+ 2023-04-24T13:56:45+09:00 info: oracle-connector connections are ready
65
+ 2023-04-24T13:56:45+09:00 info: mysql-connector connections are ready
66
+ 2023-04-24T13:56:45+09:00 info: socket servers are ready
67
+ 2023-04-24T13:56:45+09:00 info: msgraph-connector connections are ready
68
+ 2023-04-24T13:56:45+09:00 info: openai-connector connections are ready
69
+ 2023-04-24T13:56:45+09:00 info: All connector for 'echo-back-server' ready
70
+ 2023-04-24T13:56:45+09:00 info: All connector for 'echo-back' ready
71
+ 2023-04-24T13:56:45+09:00 info: All connector for 'http-connector' ready
72
+ 2023-04-24T13:56:45+09:00 info: All connector for 'graphql-connector' ready
73
+ 2023-04-24T13:56:45+09:00 info: All connector for 'sqlite-connector' ready
74
+ 2023-04-24T13:56:45+09:00 info: All connector for 'postgresql-connector' ready
75
+ 2023-04-24T13:56:45+09:00 info: All connector for 'mqtt-connector' ready
76
+ 2023-04-24T13:56:45+09:00 info: All connector for 'mssql-connector' ready
77
+ 2023-04-24T13:56:45+09:00 info: All connector for 'oracle-connector' ready
78
+ 2023-04-24T13:56:45+09:00 info: All connector for 'mysql-connector' ready
79
+ 2023-04-24T13:56:45+09:00 info: All connector for 'socket-server' ready
80
+ 2023-04-24T13:56:45+09:00 info: All connector for 'msgraph-connector' ready
81
+ 2023-04-24T13:56:45+09:00 info: All connector for 'openai-connector' ready
82
+ 2023-04-24T13:56:45+09:00 info: ConnectionManager initialization done:
@@ -0,0 +1,82 @@
1
+ 2023-04-24T14:06:43+09:00 info: Initializing ConnectionManager...
2
+ 2023-04-24T14:06:43+09:00 info: Connector 'echo-back-server' started to ready
3
+ 2023-04-24T14:06:43+09:00 info: Connector 'echo-back' started to ready
4
+ 2023-04-24T14:06:43+09:00 info: Connector 'http-connector' started to ready
5
+ 2023-04-24T14:06:43+09:00 info: Connector 'graphql-connector' started to ready
6
+ 2023-04-24T14:06:43+09:00 info: Connector 'sqlite-connector' started to ready
7
+ 2023-04-24T14:06:43+09:00 info: Connector 'postgresql-connector' started to ready
8
+ 2023-04-24T14:06:43+09:00 info: Connector 'mqtt-connector' started to ready
9
+ 2023-04-24T14:06:43+09:00 info: Connector 'mssql-connector' started to ready
10
+ 2023-04-24T14:06:43+09:00 info: Connector 'oracle-connector' started to ready
11
+ 2023-04-24T14:06:43+09:00 info: Connector 'mysql-connector' started to ready
12
+ 2023-04-24T14:06:43+09:00 info: Connector 'socket-server' started to ready
13
+ 2023-04-24T14:06:43+09:00 info: Connector 'msgraph-connector' started to ready
14
+ 2023-04-24T14:06:43+09:00 info: Connector 'openai-connector' started to ready
15
+ 2023-04-24T14:06:43+09:00 info: echo-back-servers are ready
16
+ 2023-04-24T14:06:43+09:00 info: echo-back connections are ready
17
+ 2023-04-24T14:06:43+09:00 info: http-connector connections are ready
18
+ 2023-04-24T14:06:43+09:00 info: graphql-connector connections are ready
19
+ 2023-04-24T14:06:43+09:00 info: sqlite-connector connections are ready
20
+ 2023-04-24T14:06:43+09:00 info: postgresql-connector connections are ready
21
+ 2023-04-24T14:06:43+09:00 info: mqtt-connector connections are ready
22
+ 2023-04-24T14:06:43+09:00 info: mssql-connector connections are ready
23
+ 2023-04-24T14:06:43+09:00 info: oracle-connector connections are ready
24
+ 2023-04-24T14:06:43+09:00 info: mysql-connector connections are ready
25
+ 2023-04-24T14:06:43+09:00 info: socket servers are ready
26
+ 2023-04-24T14:06:43+09:00 info: msgraph-connector connections are ready
27
+ 2023-04-24T14:06:43+09:00 info: openai-connector connections are ready
28
+ 2023-04-24T14:06:43+09:00 info: All connector for 'echo-back-server' ready
29
+ 2023-04-24T14:06:43+09:00 info: All connector for 'echo-back' ready
30
+ 2023-04-24T14:06:43+09:00 info: All connector for 'http-connector' ready
31
+ 2023-04-24T14:06:43+09:00 info: All connector for 'graphql-connector' ready
32
+ 2023-04-24T14:06:43+09:00 info: All connector for 'sqlite-connector' ready
33
+ 2023-04-24T14:06:43+09:00 info: All connector for 'postgresql-connector' ready
34
+ 2023-04-24T14:06:43+09:00 info: All connector for 'mqtt-connector' ready
35
+ 2023-04-24T14:06:43+09:00 info: All connector for 'mssql-connector' ready
36
+ 2023-04-24T14:06:43+09:00 info: All connector for 'oracle-connector' ready
37
+ 2023-04-24T14:06:43+09:00 info: All connector for 'mysql-connector' ready
38
+ 2023-04-24T14:06:43+09:00 info: All connector for 'socket-server' ready
39
+ 2023-04-24T14:06:43+09:00 info: All connector for 'msgraph-connector' ready
40
+ 2023-04-24T14:06:43+09:00 info: All connector for 'openai-connector' ready
41
+ 2023-04-24T14:06:43+09:00 info: ConnectionManager initialization done:
42
+ 2023-04-24T14:07:51+09:00 info: Initializing ConnectionManager...
43
+ 2023-04-24T14:07:51+09:00 info: Connector 'echo-back-server' started to ready
44
+ 2023-04-24T14:07:51+09:00 info: Connector 'echo-back' started to ready
45
+ 2023-04-24T14:07:51+09:00 info: Connector 'http-connector' started to ready
46
+ 2023-04-24T14:07:51+09:00 info: Connector 'graphql-connector' started to ready
47
+ 2023-04-24T14:07:51+09:00 info: Connector 'sqlite-connector' started to ready
48
+ 2023-04-24T14:07:51+09:00 info: Connector 'postgresql-connector' started to ready
49
+ 2023-04-24T14:07:51+09:00 info: Connector 'mqtt-connector' started to ready
50
+ 2023-04-24T14:07:51+09:00 info: Connector 'mssql-connector' started to ready
51
+ 2023-04-24T14:07:51+09:00 info: Connector 'oracle-connector' started to ready
52
+ 2023-04-24T14:07:51+09:00 info: Connector 'mysql-connector' started to ready
53
+ 2023-04-24T14:07:51+09:00 info: Connector 'socket-server' started to ready
54
+ 2023-04-24T14:07:51+09:00 info: Connector 'msgraph-connector' started to ready
55
+ 2023-04-24T14:07:51+09:00 info: Connector 'openai-connector' started to ready
56
+ 2023-04-24T14:07:51+09:00 info: echo-back-servers are ready
57
+ 2023-04-24T14:07:51+09:00 info: echo-back connections are ready
58
+ 2023-04-24T14:07:51+09:00 info: http-connector connections are ready
59
+ 2023-04-24T14:07:51+09:00 info: graphql-connector connections are ready
60
+ 2023-04-24T14:07:51+09:00 info: sqlite-connector connections are ready
61
+ 2023-04-24T14:07:51+09:00 info: postgresql-connector connections are ready
62
+ 2023-04-24T14:07:51+09:00 info: mqtt-connector connections are ready
63
+ 2023-04-24T14:07:51+09:00 info: mssql-connector connections are ready
64
+ 2023-04-24T14:07:51+09:00 info: oracle-connector connections are ready
65
+ 2023-04-24T14:07:51+09:00 info: mysql-connector connections are ready
66
+ 2023-04-24T14:07:51+09:00 info: socket servers are ready
67
+ 2023-04-24T14:07:51+09:00 info: msgraph-connector connections are ready
68
+ 2023-04-24T14:07:51+09:00 info: openai-connector connections are ready
69
+ 2023-04-24T14:07:51+09:00 info: All connector for 'echo-back-server' ready
70
+ 2023-04-24T14:07:51+09:00 info: All connector for 'echo-back' ready
71
+ 2023-04-24T14:07:51+09:00 info: All connector for 'http-connector' ready
72
+ 2023-04-24T14:07:51+09:00 info: All connector for 'graphql-connector' ready
73
+ 2023-04-24T14:07:51+09:00 info: All connector for 'sqlite-connector' ready
74
+ 2023-04-24T14:07:51+09:00 info: All connector for 'postgresql-connector' ready
75
+ 2023-04-24T14:07:51+09:00 info: All connector for 'mqtt-connector' ready
76
+ 2023-04-24T14:07:51+09:00 info: All connector for 'mssql-connector' ready
77
+ 2023-04-24T14:07:51+09:00 info: All connector for 'oracle-connector' ready
78
+ 2023-04-24T14:07:51+09:00 info: All connector for 'mysql-connector' ready
79
+ 2023-04-24T14:07:51+09:00 info: All connector for 'socket-server' ready
80
+ 2023-04-24T14:07:51+09:00 info: All connector for 'msgraph-connector' ready
81
+ 2023-04-24T14:07:51+09:00 info: All connector for 'openai-connector' ready
82
+ 2023-04-24T14:07:51+09:00 info: ConnectionManager initialization done: