@xtctwins/tctwins-bimx-viewer 0.1.17 → 0.1.18
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/dist/tctwins-bimx-viewer.min.es.js +141 -73
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -4
- package/types/src/toolbar/MeasureTool.d.ts +12 -2
- package/types/src/toolbar/MeasureTools/MeasureAngleTool.d.ts +8 -0
- package/types/src/toolbar/MeasureTools/MeasureDistanceTool.d.ts +8 -0
|
@@ -2660,10 +2660,10 @@ _this11._initMarkerDiv();_this11._onMouseHoverSurface=null;_this11._onHoverNothi
|
|
|
2660
2660
|
* This is `true` by default.
|
|
2661
2661
|
*
|
|
2662
2662
|
* @returns {boolean} Whether snap-to-vertex and snap-to-edge are enabled for this AngleMeasurementsMouseControl.
|
|
2663
|
-
*/function get(){return this._snapping;}/**
|
|
2663
|
+
*/function get(){return this._snapping;},set:function set(snapping){if(snapping!==this._snapping){this._snapping=snapping;this.deactivate();this.activate();}else{this._snapping=snapping;}}},{key:"mouseState",get:function get(){return this._mouseState;}/**
|
|
2664
2664
|
* Activates this AngleMeasurementsMouseControl, ready to respond to input.
|
|
2665
|
-
*/,set:function set(
|
|
2666
|
-
}var angleMeasurementsPlugin=this.angleMeasurementsPlugin;var hover=false;angleMeasurementsPlugin.on("mouseOver",function(e){
|
|
2665
|
+
*/,set:function set(state){this._mouseState=state;}},{key:"activate",value:function activate(){var _this12=this;if(this._activate){return;}if(!this.markerDiv){this._initMarkerDiv();// if the marker is destroyed after deactivation, we recreate it
|
|
2666
|
+
}var angleMeasurementsPlugin=this.angleMeasurementsPlugin;var hover=false;angleMeasurementsPlugin.on("mouseOver",function(e){hover=true;});angleMeasurementsPlugin.on("mouseLeave",function(e){hover=false;});angleMeasurementsPlugin.on("measureDelete",function(e){hover=false;});var scene=this.scene;scene.input;var canvas=scene.canvas.canvas;var clickTolerance=20;var cameraControl=angleMeasurementsPlugin.viewer.cameraControl;var pointerLens=this.pointerLens;var mouseHovering=false;var hoveredEntity=null;var lastMouseCanvasX=0;var lastMouseCanvasY=0;var mouseWorldPos=math.vec3();var mouseHoverCanvasPos=math.vec2();this._currentAngleMeasurement=null;this._onMouseHoverSurface=cameraControl.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",function(event){if(!_this12._active){return;}if(hover)return;if(event.snappedToVertex||event.snappedToEdge){if(pointerLens){pointerLens.visible=true;pointerLens.canvasPos=event.canvasPos;pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;pointerLens.snapped=true;}_this12.markerDiv.style.background="greenyellow";_this12.markerDiv.style.border="2px solid green";}else{if(pointerLens){pointerLens.visible=true;pointerLens.canvasPos=event.canvasPos;pointerLens.snappedCanvasPos=event.canvasPos;pointerLens.snapped=false;}_this12.markerDiv.style.background="pink";_this12.markerDiv.style.border="2px solid red";}var canvasPos=event.snappedCanvasPos||event.canvasPos;mouseHovering=true;hoveredEntity=event.entity;mouseWorldPos.set(event.worldPos);mouseHoverCanvasPos.set(canvasPos);switch(_this12._mouseState){case MOUSE_FINDING_ORIGIN:canvas.getBoundingClientRect();var scrollLeft=window.pageXOffset||document.documentElement.scrollLeft;var scrollTop=window.pageYOffset||document.documentElement.scrollTop;var canvasLeftEdge=scrollLeft;var canvasTopEdge=scrollTop;_this12.markerDiv.style.marginLeft="".concat(_this12._offsetX+canvasLeftEdge+canvasPos[0]-5,"px");_this12.markerDiv.style.marginTop="".concat(_this12._offsetY+canvasTopEdge+canvasPos[1]-5,"px");break;case MOUSE_FINDING_CORNER:if(_this12._currentAngleMeasurement){_this12._currentAngleMeasurement.originWireVisible=true;_this12._currentAngleMeasurement.targetWireVisible=false;_this12._currentAngleMeasurement.cornerVisible=true;_this12._currentAngleMeasurement.angleVisible=false;_this12._currentAngleMeasurement.corner.worldPos=event.worldPos;_this12._currentAngleMeasurement.corner.entity=event.entity;}_this12.markerDiv.style.marginLeft="-10000px";_this12.markerDiv.style.marginTop="-10000px";canvas.style.cursor="pointer";break;case MOUSE_FINDING_TARGET:if(_this12._currentAngleMeasurement){_this12._currentAngleMeasurement.targetWireVisible=true;_this12._currentAngleMeasurement.targetVisible=true;_this12._currentAngleMeasurement.angleVisible=true;_this12._currentAngleMeasurement.target.worldPos=event.worldPos;_this12._currentAngleMeasurement.target.entity=event.entity;}_this12.markerDiv.style.marginLeft="-10000px";_this12.markerDiv.style.marginTop="-10000px";canvas.style.cursor="pointer";break;}});canvas.addEventListener("mousedown",this._onMouseDown=function(e){if(!_this12._active){return;}if(e.which!==1){return;}lastMouseCanvasX=e.clientX;lastMouseCanvasY=e.clientY;});canvas.addEventListener("mouseup",this._onMouseUp=function(e){if(!_this12._active){return;}if(hover)return;if(e.which!==1){return;}if(e.clientX>lastMouseCanvasX+clickTolerance||e.clientX<lastMouseCanvasX-clickTolerance||e.clientY>lastMouseCanvasY+clickTolerance||e.clientY<lastMouseCanvasY-clickTolerance){return;}switch(_this12._mouseState){case MOUSE_FINDING_ORIGIN:if(mouseHovering){_this12._currentAngleMeasurement=angleMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{worldPos:mouseWorldPos},corner:{worldPos:mouseWorldPos},target:{worldPos:mouseWorldPos},precision:angleMeasurementsPlugin.precision,approximate:true});_this12._currentAngleMeasurement.clickable=false;_this12._currentAngleMeasurement.originVisible=true;_this12._currentAngleMeasurement.originWireVisible=true;_this12._currentAngleMeasurement.cornerVisible=false;_this12._currentAngleMeasurement.targetWireVisible=false;_this12._currentAngleMeasurement.targetVisible=false;_this12._currentAngleMeasurement.angleVisible=false;_this12._currentAngleMeasurement.origin.entity=hoveredEntity;_this12._mouseState=MOUSE_FINDING_CORNER;angleMeasurementsPlugin.fire("measurementStart",_this12._currentAngleMeasurement);}break;case MOUSE_FINDING_CORNER:if(mouseHovering){_this12._currentAngleMeasurement.targetWireVisible=false;_this12._currentAngleMeasurement.targetVisible=true;_this12._currentAngleMeasurement.angleVisible=true;_this12._currentAngleMeasurement.corner.entity=hoveredEntity;_this12._mouseState=MOUSE_FINDING_TARGET;}else{if(_this12._currentAngleMeasurement){_this12._currentAngleMeasurement.destroy();_this12._currentAngleMeasurement=null;hoveredEntity=null;_this12._mouseState=MOUSE_FINDING_ORIGIN;angleMeasurementsPlugin.fire("measurementCancel",_this12._currentAngleMeasurement);}}break;case MOUSE_FINDING_TARGET:if(mouseHovering){_this12._currentAngleMeasurement.targetVisible=true;_this12._currentAngleMeasurement.angleVisible=true;_this12._currentAngleMeasurement.target.entity=hoveredEntity;_this12._currentAngleMeasurement.clickable=true;hoveredEntity=null;angleMeasurementsPlugin.fire("measurementEnd",_this12._currentAngleMeasurement);_this12._currentAngleMeasurement=null;_this12._mouseState=MOUSE_FINDING_ORIGIN;}else{if(_this12._currentAngleMeasurement){_this12._currentAngleMeasurement.destroy();_this12._currentAngleMeasurement=null;hoveredEntity=null;_this12._mouseState=MOUSE_FINDING_ORIGIN;angleMeasurementsPlugin.fire("measurementCancel",_this12._currentAngleMeasurement);}}break;}});this._onMouseHoverOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){if(!_this12._active){return;}if(hover)return;mouseHovering=false;if(pointerLens){pointerLens.visible=true;pointerLens.pointerPos=event.canvasPos;pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;pointerLens.snapped=false;}_this12.markerDiv.style.marginLeft="-100px";_this12.markerDiv.style.marginTop="-100px";if(_this12._currentAngleMeasurement){switch(_this12._mouseState){case MOUSE_FINDING_ORIGIN:_this12._currentAngleMeasurement.originVisible=false;break;case MOUSE_FINDING_CORNER:_this12._currentAngleMeasurement.cornerVisible=false;_this12._currentAngleMeasurement.originWireVisible=false;_this12._currentAngleMeasurement.targetVisible=false;_this12._currentAngleMeasurement.targetWireVisible=false;_this12._currentAngleMeasurement.angleVisible=false;break;case MOUSE_FINDING_TARGET:_this12._currentAngleMeasurement.targetVisible=false;_this12._currentAngleMeasurement.targetWireVisible=false;_this12._currentAngleMeasurement.angleVisible=false;break;}canvas.style.cursor="default";}});this._activate=true;}/**
|
|
2667
2667
|
* Deactivates this AngleMeasurementsMouseControl, making it unresponsive to input.
|
|
2668
2668
|
*
|
|
2669
2669
|
* Destroys any {@link AngleMeasurement} under construction by this AngleMeasurementsMouseControl.
|
|
@@ -3944,9 +3944,9 @@ this._originDot.setVisible(this._visible&&this._originVisible);this._targetDot.s
|
|
|
3944
3944
|
* This is `true` by default.
|
|
3945
3945
|
*
|
|
3946
3946
|
* @returns {boolean} Whether snap-to-vertex and snap-to-edge are enabled for this DistanceMeasurementsMouseControl.
|
|
3947
|
-
*/function get(){return this._snapping;}/**
|
|
3947
|
+
*/function get(){return this._snapping;},set:function set(snapping){if(snapping!==this._snapping){this._snapping=snapping;this.deactivate();this.activate();}else{this._snapping=snapping;}}},{key:"mouseState",get:function get(){return this._mouseState;}/**
|
|
3948
3948
|
* Activates this DistanceMeasurementsMouseControl, ready to respond to input.
|
|
3949
|
-
*/,set:function set(
|
|
3949
|
+
*/,set:function set(state){this._mouseState=state;}},{key:"activate",value:function activate(){var _this24=this;if(this._activate){return;}if(!this._markerDiv){this._initMarkerDiv();}this.fire("activated",true);var distanceMeasurementsPlugin=this.distanceMeasurementsPlugin;var hover=false;distanceMeasurementsPlugin.on("mouseOver",function(e){hover=true;});distanceMeasurementsPlugin.on("mouseLeave",function(e){hover=false;});distanceMeasurementsPlugin.on("measureDelete",function(e){hover=false;});distanceMeasurementsPlugin.on("measurementDestroyed",function(e){});var scene=this.scene;var cameraControl=distanceMeasurementsPlugin.viewer.cameraControl;var canvas=scene.canvas.canvas;scene.input;var mouseHovering=false;var pointerWorldPos=math.vec3();var pointerCanvasPos=math.vec2();var pointerDownCanvasX;var pointerDownCanvasY;var clickTolerance=20;var hoveredEntity=null;this._mouseState=MOUSE_FIRST_CLICK_EXPECTED;this._onCameraControlHoverSnapOrSurface=cameraControl.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",function(event){if(!_this24._active){return;}if(hover)return;var canvasPos=event.snappedCanvasPos||event.canvasPos;mouseHovering=true;pointerWorldPos.set(event.worldPos);pointerCanvasPos.set(event.canvasPos);if(_this24._mouseState===MOUSE_FIRST_CLICK_EXPECTED){canvas.getBoundingClientRect();var scrollLeft=window.pageXOffset||document.documentElement.scrollLeft;var scrollTop=window.pageYOffset||document.documentElement.scrollTop;var canvasLeftEdge=scrollLeft;var canvasTopEdge=scrollTop;_this24._markerDiv.style.marginLeft="".concat(_this24._offsetX+canvasLeftEdge+canvasPos[0]-5,"px");_this24._markerDiv.style.marginTop="".concat(_this24._offsetY+canvasTopEdge+canvasPos[1]-5,"px");_this24._markerDiv.style.background="pink";if(event.snappedToVertex||event.snappedToEdge){if(_this24.pointerLens){_this24.pointerLens.visible=true;_this24.pointerLens.canvasPos=event.canvasPos;_this24.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;_this24.pointerLens.snapped=true;}_this24._markerDiv.style.background="greenyellow";_this24._markerDiv.style.border="2px solid green";}else{if(_this24.pointerLens){_this24.pointerLens.visible=true;_this24.pointerLens.canvasPos=event.canvasPos;_this24.pointerLens.snappedCanvasPos=event.canvasPos;_this24.pointerLens.snapped=false;}_this24._markerDiv.style.background="pink";_this24._markerDiv.style.border="2px solid red";}hoveredEntity=event.entity;}else{_this24._markerDiv.style.marginLeft="-10000px";_this24._markerDiv.style.marginTop="-10000px";}canvas.style.cursor="pointer";if(_this24._currentDistanceMeasurement){_this24._currentDistanceMeasurement.wireVisible=_this24._currentDistanceMeasurementInitState.wireVisible;_this24._currentDistanceMeasurement.axisVisible=_this24._currentDistanceMeasurementInitState.axisVisible&&_this24.distanceMeasurementsPlugin.defaultAxisVisible;_this24._currentDistanceMeasurement.xAxisVisible=_this24._currentDistanceMeasurementInitState.xAxisVisible&&_this24.distanceMeasurementsPlugin.defaultXAxisVisible;_this24._currentDistanceMeasurement.yAxisVisible=_this24._currentDistanceMeasurementInitState.yAxisVisible&&_this24.distanceMeasurementsPlugin.defaultYAxisVisible;_this24._currentDistanceMeasurement.zAxisVisible=_this24._currentDistanceMeasurementInitState.zAxisVisible&&_this24.distanceMeasurementsPlugin.defaultZAxisVisible;_this24._currentDistanceMeasurement.targetVisible=_this24._currentDistanceMeasurementInitState.targetVisible;_this24._currentDistanceMeasurement.target.worldPos=pointerWorldPos.slice();_this24._markerDiv.style.marginLeft="-10000px";_this24._markerDiv.style.marginTop="-10000px";}});canvas.addEventListener("mousedown",this._onMouseDown=function(e){if(!_this24._active){return;}if(e.which!==1){return;}pointerDownCanvasX=e.clientX;pointerDownCanvasY=e.clientY;});canvas.addEventListener("mouseup",this._onMouseUp=function(e){if(!_this24._active){return;}if(hover)return;if(e.which!==1){return;}if(e.clientX>pointerDownCanvasX+clickTolerance||e.clientX<pointerDownCanvasX-clickTolerance||e.clientY>pointerDownCanvasY+clickTolerance||e.clientY<pointerDownCanvasY-clickTolerance){return;}if(_this24._currentDistanceMeasurement){if(mouseHovering){_this24._currentDistanceMeasurement.target.entity=hoveredEntity;hoveredEntity=null;_this24._currentDistanceMeasurement.clickable=true;_this24.distanceMeasurementsPlugin.fire("measurementEnd",_this24._currentDistanceMeasurement);_this24._currentDistanceMeasurement=null;}else{_this24._currentDistanceMeasurement.destroy();_this24.distanceMeasurementsPlugin.fire("measurementCancel",_this24._currentDistanceMeasurement);_this24._currentDistanceMeasurement=null;hoveredEntity=null;}}else{if(mouseHovering){_this24._currentDistanceMeasurement=distanceMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{worldPos:pointerWorldPos.slice()},target:{worldPos:pointerWorldPos.slice()},precision:distanceMeasurementsPlugin.precision,approximate:true});_this24._currentDistanceMeasurementInitState.axisVisible=_this24._currentDistanceMeasurement.axisVisible&&_this24.distanceMeasurementsPlugin.defaultAxisVisible;_this24._currentDistanceMeasurementInitState.xAxisVisible=_this24._currentDistanceMeasurement.xAxisVisible&&_this24.distanceMeasurementsPlugin.defaultXAxisVisible;_this24._currentDistanceMeasurementInitState.yAxisVisible=_this24._currentDistanceMeasurement.yAxisVisible&&_this24.distanceMeasurementsPlugin.defaultYAxisVisible;_this24._currentDistanceMeasurementInitState.zAxisVisible=_this24._currentDistanceMeasurement.zAxisVisible&&_this24.distanceMeasurementsPlugin.defaultZAxisVisible;_this24._currentDistanceMeasurementInitState.wireVisible=_this24._currentDistanceMeasurement.wireVisible;_this24._currentDistanceMeasurementInitState.targetVisible=_this24._currentDistanceMeasurement.targetVisible;_this24._currentDistanceMeasurement.clickable=false;_this24._currentDistanceMeasurement.origin.entity=hoveredEntity;hoveredEntity=null;_this24.fire("measurementStart",_this24._currentDistanceMeasurement);}}});this._onCameraControlHoverSnapOrSurfaceOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){if(!_this24._active){return;}if(_this24.pointerLens){_this24.pointerLens.visible=true;_this24.pointerLens.canvasPos=event.canvasPos;_this24.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;}mouseHovering=false;_this24._markerDiv.style.marginLeft="-100px";_this24._markerDiv.style.marginTop="-100px";if(_this24._currentDistanceMeasurement){_this24._currentDistanceMeasurement.wireVisible=false;_this24._currentDistanceMeasurement.targetVisible=false;_this24._currentDistanceMeasurement.axisVisible=false;}canvas.style.cursor="default";});this._activate=true;}/**
|
|
3950
3950
|
* Deactivates this DistanceMeasurementsMouseControl, making it unresponsive to input.
|
|
3951
3951
|
*
|
|
3952
3952
|
* Destroys any {@link DistanceMeasurement} under construction by this DistanceMeasurementsMouseControl.
|
|
@@ -24738,7 +24738,7 @@ pickController.pickCursorPos=states.pointerCanvasPos;pickController.schedulePick
|
|
|
24738
24738
|
// }
|
|
24739
24739
|
},false);}return _createClass(MousePickHandler,[{key:"reset",value:function reset(){this._clicks=0;this._lastPickedEntityId=null;if(this._timeout){window.clearTimeout(this._timeout);this._timeout=null;}}},{key:"destroy",value:function destroy(){if(this.canvas!=null){this.canvas.removeEventListener("mousemove",this._canvasMouseMoveHandler);this.canvas.removeEventListener("mousedown",this._canvasMouseDownHandler);this.canvas.removeEventListener("dblclick",this._canvasDblClickHandler);this.canvas.removeEventListener("mouseup",this._canvasMouseUpHandler);}document.removeEventListener("mouseup",this._documentMouseUpHandler);if(this._timeout){window.clearTimeout(this._timeout);this._timeout=null;}}}]);}();/**
|
|
24740
24740
|
* @private
|
|
24741
|
-
*/var KeyboardPanRotateDollyHandler=/*#__PURE__*/function(){function KeyboardPanRotateDollyHandler(scene,controllers,configs,states,updates,moveRate){var _this125=this;_classCallCheck(this,KeyboardPanRotateDollyHandler);this._scene=scene;this._updates=updates;var input=scene.input;this.input=input;var keyDownMap=[];this._movespeed=moveRate?moveRate:1;var canvas=scene.canvas.canvas;var enableSetSpeedUp=false;var enableSetSpeedDown=false;var mouseMovedSinceLastKeyboardDolly=true;this._onSceneMouseMove=input.on("mousemove",function(){mouseMovedSinceLastKeyboardDolly=true;});this._onSceneKeyDown=input.on("keydown",function(keyCode){if(!(configs.active&&configs.pointerEnabled)||!scene.input.keyboardEnabled){return;}if(!states.mouseover){return;}keyDownMap[keyCode]=true;if(keyCode===input.KEY_SHIFT){canvas.style.cursor="move";}if(keyCode===input.
|
|
24741
|
+
*/var KeyboardPanRotateDollyHandler=/*#__PURE__*/function(){function KeyboardPanRotateDollyHandler(scene,controllers,configs,states,updates,moveRate){var _this125=this;_classCallCheck(this,KeyboardPanRotateDollyHandler);this._scene=scene;this._updates=updates;var input=scene.input;this.input=input;var keyDownMap=[];this._movespeed=moveRate?moveRate:1;var canvas=scene.canvas.canvas;var enableSetSpeedUp=false;var enableSetSpeedDown=false;var mouseMovedSinceLastKeyboardDolly=true;this._onSceneMouseMove=input.on("mousemove",function(){mouseMovedSinceLastKeyboardDolly=true;});this._onSceneKeyDown=input.on("keydown",function(keyCode){if(!(configs.active&&configs.pointerEnabled)||!scene.input.keyboardEnabled){return;}if(!states.mouseover){return;}keyDownMap[keyCode]=true;if(keyCode===input.KEY_SHIFT){canvas.style.cursor="move";}if(keyCode===input.KEY_EQUAL_SIGN){if(!enableSetSpeedUp){enableSetSpeedUp=true;console.log("KEY_EQUAL_SIGN",enableSetSpeedUp);}}if(keyCode===input.KEY_DASH){if(!enableSetSpeedDown){enableSetSpeedDown=true;console.log("KEY_DASH",enableSetSpeedDown);}}});this._onSceneKeyUp=input.on("keyup",function(keyCode){if(!(configs.active&&configs.pointerEnabled)||!scene.input.keyboardEnabled){return;}keyDownMap[keyCode]=false;if(keyCode===input.KEY_SHIFT){canvas.style.cursor=null;}if(controllers.pivotController.getPivoting()){controllers.pivotController.endPivot();}if(keyCode===input.KEY_ADD){enableSetSpeedUp=false;}if(keyCode===input.KEY_SUBTRACT){enableSetSpeedDown=false;}});//碰撞停止
|
|
24742
24742
|
var enableForward=true;this._scene.on("collideWithEntity",function(collideWithEntity){enableForward=!collideWithEntity;});this._onTick=scene.on("tick",function(e){if(!(configs.active&&configs.pointerEnabled)||!scene.input.keyboardEnabled){return;}if(!states.mouseover){return;}var cameraControl=controllers.cameraControl;var elapsedSecs=e.deltaTime/1000.0;//-------------------------------------------------------------------------------------------------
|
|
24743
24743
|
// Keyboard rotation
|
|
24744
24744
|
//-------------------------------------------------------------------------------------------------
|
|
@@ -24746,10 +24746,10 @@ if(!configs.planView){var rotateYPos=cameraControl._isKeyDownForAction(cameraCon
|
|
|
24746
24746
|
// Keyboard panning
|
|
24747
24747
|
//-------------------------------------------------------------------------------------------------
|
|
24748
24748
|
if(!keyDownMap[input.KEY_CTRL]&&!keyDownMap[input.KEY_ALT]){var dollyBackwards=cameraControl._isKeyDownForAction(cameraControl.DOLLY_BACKWARDS,keyDownMap);var dollyForwards=cameraControl._isKeyDownForAction(cameraControl.DOLLY_FORWARDS,keyDownMap);if(dollyBackwards||dollyForwards){var dollyDelta=elapsedSecs*configs.keyboardDollyRate;if(!configs.firstPerson&&configs.followPointer){controllers.pivotController.startPivot();}if(dollyForwards){if(!enableForward)return;updates.dollyDelta-=dollyDelta*_this125._movespeed;}else if(dollyBackwards){updates.dollyDelta+=dollyDelta*_this125._movespeed;}if(mouseMovedSinceLastKeyboardDolly){states.followPointerDirty=true;mouseMovedSinceLastKeyboardDolly=false;}}}// 调整移动速度
|
|
24749
|
-
var speedUP=cameraControl._isKeyDownForAction(cameraControl.SPEED_UP,keyDownMap);var speedDown=cameraControl._isKeyDownForAction(cameraControl.SPEED_DOWN,keyDownMap);if(speedUP||speedDown){if(enableSetSpeedUp){if(_this125._movespeed<2){
|
|
24750
|
-
var panForwards=cameraControl._isKeyDownForAction(cameraControl.PAN_FORWARDS,keyDownMap);var panBackwards=cameraControl._isKeyDownForAction(cameraControl.PAN_BACKWARDS,keyDownMap);var panLeft=cameraControl._isKeyDownForAction(cameraControl.PAN_LEFT,keyDownMap);var panRight=cameraControl._isKeyDownForAction(cameraControl.PAN_RIGHT,keyDownMap);var panUp=cameraControl._isKeyDownForAction(cameraControl.PAN_UP,keyDownMap);var panDown=cameraControl._isKeyDownForAction(cameraControl.
|
|
24749
|
+
var speedUP=cameraControl._isKeyDownForAction(cameraControl.SPEED_UP,keyDownMap);var speedDown=cameraControl._isKeyDownForAction(cameraControl.SPEED_DOWN,keyDownMap);if(speedUP||speedDown){if(enableSetSpeedUp){if(_this125._movespeed<2){_this125._movespeed+=0.5;}enableSetSpeedUp=false;}if(enableSetSpeedDown){if(_this125._movespeed>0.5){_this125._movespeed-=0.5;}else{_this125._movespeed-=0.4;}enableSetSpeedDown=false;}}//判断是否能用
|
|
24750
|
+
var panForwards=cameraControl._isKeyDownForAction(cameraControl.PAN_FORWARDS,keyDownMap);var panBackwards=cameraControl._isKeyDownForAction(cameraControl.PAN_BACKWARDS,keyDownMap);var panLeft=cameraControl._isKeyDownForAction(cameraControl.PAN_LEFT,keyDownMap);var panRight=cameraControl._isKeyDownForAction(cameraControl.PAN_RIGHT,keyDownMap);var panUp=cameraControl._isKeyDownForAction(cameraControl.PAN_UP,keyDownMap);var panDown=cameraControl._isKeyDownForAction(cameraControl.PAN_DOWN,keyDownMap);// const panDelta = (keyDownMap[input.KEY_ALT] ? 0.3 : 1.0) * elapsedSecs * configs.keyboardPanRate; // ALT for slower pan rate
|
|
24751
24751
|
var panDelta=_this125._movespeed*elapsedSecs*configs.keyboardPanRate;// ALT for slower pan rate
|
|
24752
|
-
if(panForwards||panBackwards||panLeft||panRight||panUp||panDown){if(!configs.firstPerson&&configs.followPointer){controllers.pivotController.startPivot();}if(panDown){updates.
|
|
24752
|
+
if(panForwards||panBackwards||panLeft||panRight||panUp||panDown){if(!configs.firstPerson&&configs.followPointer){controllers.pivotController.startPivot();}if(panDown){updates.panDeltaY+=panDelta;}else if(panUp){updates.panDeltaY+=-panDelta;}if(panRight){updates.panDeltaX+=-panDelta;}else if(panLeft){updates.panDeltaX+=panDelta;}if(panBackwards){updates.panDeltaZ+=panDelta;}else if(panForwards){updates.panDeltaZ+=-panDelta;}}});}return _createClass(KeyboardPanRotateDollyHandler,[{key:"movespeed",get:function get(){return this._movespeed;},set:function set(value){this._movespeed=value;}},{key:"reset",value:function reset(){}},{key:"destroy",value:function destroy(){this._scene.off(this._onTick);this.input.off(this._onSceneMouseMove);this.input.off(this._onSceneKeyDown);this.input.off(this._onSceneKeyUp);}}]);}();var SCALE_DOLLY_EACH_FRAME=1;// Recalculate dolly speed for eye->target distance on each Nth frame
|
|
24753
24753
|
var EPSILON=0.001;var tempVec3=math.vec3();/**
|
|
24754
24754
|
* Handles camera updates on each "tick" that were scheduled by the various controllers.
|
|
24755
24755
|
*
|
|
@@ -25426,7 +25426,11 @@ _this127.navMode=cfg.navMode;if(cfg.planView){_this127.planView=cfg.planView;}_t
|
|
|
25426
25426
|
* @param keyDownMap
|
|
25427
25427
|
* @private
|
|
25428
25428
|
*/,set:function set(value){value=value||"qwerty";if(utils.isString(value)){var input=this.scene.input;var keyMap={};switch(value){default:this.error("Unsupported value for 'keyMap': "+value+" defaulting to 'qwerty'");// Intentional fall-through to "qwerty"
|
|
25429
|
-
case"qwerty":keyMap[this.
|
|
25429
|
+
case"qwerty":keyMap[this.PAN_UP]=[input.KEY_E];keyMap[this.PAN_DOWN]=[input.KEY_Q];keyMap[this.PAN_LEFT]=[input.KEY_A,input.KEY_LEFT_ARROW];keyMap[this.PAN_RIGHT]=[input.KEY_D,input.KEY_RIGHT_ARROW];keyMap[this.PAN_FORWARDS]=[input.KEY_W,input.KEY_UP_ARROW];keyMap[this.PAN_BACKWARDS]=[input.KEY_S,input.KEY_DOWN_ARROW];keyMap[this.DOLLY_FORWARDS]=[input.KEY_J];keyMap[this.DOLLY_BACKWARDS]=[input.KEY_K];// keyMap[this.ROTATE_Y_POS] = [input.KEY_LEFT_ARROW];
|
|
25430
|
+
// keyMap[this.ROTATE_Y_NEG] = [input.KEY_RIGHT_ARROW];
|
|
25431
|
+
// keyMap[this.ROTATE_X_NEG] = [input.KEY_UP_ARROW];
|
|
25432
|
+
// keyMap[this.ROTATE_X_POS] = [input.KEY_DOWN_ARROW];
|
|
25433
|
+
keyMap[this.AXIS_VIEW_RIGHT]=[input.KEY_NUM_1];keyMap[this.AXIS_VIEW_BACK]=[input.KEY_NUM_2];keyMap[this.AXIS_VIEW_LEFT]=[input.KEY_NUM_3];keyMap[this.AXIS_VIEW_FRONT]=[input.KEY_NUM_4];keyMap[this.AXIS_VIEW_TOP]=[input.KEY_NUM_5];keyMap[this.AXIS_VIEW_BOTTOM]=[input.KEY_NUM_6];keyMap[this.SPEED_UP]=[input.KEY_EQUAL_SIGN];keyMap[this.SPEED_DOWN]=[input.KEY_DASH];break;case"azerty":keyMap[this.PAN_LEFT]=[input.KEY_Q];keyMap[this.PAN_RIGHT]=[input.KEY_D];keyMap[this.PAN_UP]=[input.KEY_W];keyMap[this.PAN_DOWN]=[input.KEY_X];keyMap[this.PAN_BACKWARDS]=[input.KEY_J];keyMap[this.PAN_FORWARDS]=[input.KEY_K];keyMap[this.DOLLY_FORWARDS]=[input.KEY_Z];keyMap[this.DOLLY_BACKWARDS]=[input.KEY_S];keyMap[this.ROTATE_X_POS]=[input.KEY_DOWN_ARROW];keyMap[this.ROTATE_X_NEG]=[input.KEY_UP_ARROW];keyMap[this.ROTATE_Y_POS]=[input.KEY_A,input.KEY_LEFT_ARROW];keyMap[this.ROTATE_Y_NEG]=[input.KEY_E,input.KEY_RIGHT_ARROW];keyMap[this.AXIS_VIEW_RIGHT]=[input.KEY_NUM_1];keyMap[this.AXIS_VIEW_BACK]=[input.KEY_NUM_2];keyMap[this.AXIS_VIEW_LEFT]=[input.KEY_NUM_3];keyMap[this.AXIS_VIEW_FRONT]=[input.KEY_NUM_4];keyMap[this.AXIS_VIEW_TOP]=[input.KEY_NUM_5];keyMap[this.AXIS_VIEW_BOTTOM]=[input.KEY_NUM_6];keyMap[this.SPEED_UP]=[input.KEY_EQUAL_SIGN];keyMap[this.SPEED_DOWN]=[input.KEY_DASH];break;}this._keyMap=keyMap;}else{var _keyMap=value;this._keyMap=_keyMap;}}},{key:"_isKeyDownForAction",value:function _isKeyDownForAction(action,keyDownMap){var keys=this._keyMap[action];if(!keys){return false;}if(!keyDownMap){keyDownMap=this.scene.input.keyDown;}for(var _i503=0,len=keys.length;_i503<len;_i503++){var key=keys[_i503];if(keyDownMap[key]){return true;}}return false;}/**
|
|
25430
25434
|
* Sets the HTMl element to represent the pivot point when {@link CameraControl#followPointer} is true.
|
|
25431
25435
|
*
|
|
25432
25436
|
* See class comments for an example.
|
|
@@ -70035,9 +70039,7 @@ class BIMXViewer extends _Controller__WEBPACK_IMPORTED_MODULE_3__["default"] {
|
|
|
70035
70039
|
*/
|
|
70036
70040
|
_initSingleClickEvent() {
|
|
70037
70041
|
this.viewer.cameraControl.on("mouseDownEntity", (e) => {
|
|
70038
|
-
if (this.
|
|
70039
|
-
return;
|
|
70040
|
-
if (this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70042
|
+
if (this.measureTool.getActive() || this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70041
70043
|
return;
|
|
70042
70044
|
e.preventDefault;
|
|
70043
70045
|
const hit = this.viewer.scene.pick({
|
|
@@ -70051,17 +70053,13 @@ class BIMXViewer extends _Controller__WEBPACK_IMPORTED_MODULE_3__["default"] {
|
|
|
70051
70053
|
}
|
|
70052
70054
|
});
|
|
70053
70055
|
this.viewer.cameraControl.on("mouseDownNothing", () => {
|
|
70054
|
-
if (this.
|
|
70055
|
-
return;
|
|
70056
|
-
if (this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70056
|
+
if (this.measureTool.getActive() || this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70057
70057
|
return;
|
|
70058
70058
|
this.singleChosedSpace();
|
|
70059
70059
|
this._eventTrigger.emit("pickedNothing");
|
|
70060
70060
|
});
|
|
70061
70061
|
this.viewer.cameraControl.on("touchPicked", (e) => {
|
|
70062
|
-
if (this.
|
|
70063
|
-
return;
|
|
70064
|
-
if (this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70062
|
+
if (this.measureTool.getActive() || this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70065
70063
|
return;
|
|
70066
70064
|
e.preventDefault;
|
|
70067
70065
|
const hit = this.viewer.scene.pick({
|
|
@@ -70075,9 +70073,7 @@ class BIMXViewer extends _Controller__WEBPACK_IMPORTED_MODULE_3__["default"] {
|
|
|
70075
70073
|
}
|
|
70076
70074
|
});
|
|
70077
70075
|
this.viewer.cameraControl.on("touchPickedNothing", () => {
|
|
70078
|
-
if (this.
|
|
70079
|
-
return;
|
|
70080
|
-
if (this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70076
|
+
if (this.measureTool.getActive() || this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70081
70077
|
return;
|
|
70082
70078
|
this._eventTrigger.emit("pickedNothing");
|
|
70083
70079
|
this.singleChosedSpace();
|
|
@@ -70104,9 +70100,7 @@ class BIMXViewer extends _Controller__WEBPACK_IMPORTED_MODULE_3__["default"] {
|
|
|
70104
70100
|
*/
|
|
70105
70101
|
_initDoubleClickEvent() {
|
|
70106
70102
|
this.viewer.cameraControl.on("doublePicked", (e) => {
|
|
70107
|
-
if (this.
|
|
70108
|
-
return;
|
|
70109
|
-
if (this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70103
|
+
if (this.measureTool.getActive() || this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70110
70104
|
return;
|
|
70111
70105
|
e.preventDefault;
|
|
70112
70106
|
const hit = this.viewer.scene.pick({
|
|
@@ -70120,9 +70114,7 @@ class BIMXViewer extends _Controller__WEBPACK_IMPORTED_MODULE_3__["default"] {
|
|
|
70120
70114
|
}
|
|
70121
70115
|
});
|
|
70122
70116
|
this.viewer.cameraControl.on("doublePickedNothing", () => {
|
|
70123
|
-
if (this.
|
|
70124
|
-
return;
|
|
70125
|
-
if (this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70117
|
+
if (this.measureTool.getActive() || this.sectionTool.getActive() || this.annotationTool.getActive())
|
|
70126
70118
|
return;
|
|
70127
70119
|
this.choseSpace();
|
|
70128
70120
|
this._eventTrigger.emit("doublePickedNothing");
|
|
@@ -71323,9 +71315,7 @@ class BIMXViewer extends _Controller__WEBPACK_IMPORTED_MODULE_3__["default"] {
|
|
|
71323
71315
|
* @param callback
|
|
71324
71316
|
*/
|
|
71325
71317
|
SetMeasureAngleActive(active = !this.measureAngleTool.getActive(), callback = () => { }) {
|
|
71326
|
-
this._measureTool.SetMeasureAngleActive(active);
|
|
71327
|
-
if (callback)
|
|
71328
|
-
callback(this.measureAngleTool.getActive());
|
|
71318
|
+
this._measureTool.SetMeasureAngleActive(active, callback);
|
|
71329
71319
|
}
|
|
71330
71320
|
/**
|
|
71331
71321
|
* 距离测量开关
|
|
@@ -71333,9 +71323,7 @@ class BIMXViewer extends _Controller__WEBPACK_IMPORTED_MODULE_3__["default"] {
|
|
|
71333
71323
|
* @param callback
|
|
71334
71324
|
*/
|
|
71335
71325
|
SetMeasureDistanceActive(active = !this.measureDistanceTool.getActive(), callback = () => { }) {
|
|
71336
|
-
this._measureTool.SetMeasureDistanceActive(active);
|
|
71337
|
-
if (callback)
|
|
71338
|
-
callback(this.measureDistanceTool.getActive());
|
|
71326
|
+
this._measureTool.SetMeasureDistanceActive(active, callback);
|
|
71339
71327
|
}
|
|
71340
71328
|
/**
|
|
71341
71329
|
* 剖切工具开关
|
|
@@ -71344,8 +71332,7 @@ class BIMXViewer extends _Controller__WEBPACK_IMPORTED_MODULE_3__["default"] {
|
|
|
71344
71332
|
*/
|
|
71345
71333
|
SetSectionToolActive(active = !this._sectionTool.getActive(), callback = () => { }) {
|
|
71346
71334
|
this._sectionTool.setActive(active);
|
|
71347
|
-
|
|
71348
|
-
callback(this._sectionTool.getActive());
|
|
71335
|
+
callback(this._sectionTool.getActive());
|
|
71349
71336
|
}
|
|
71350
71337
|
/**
|
|
71351
71338
|
* 隐藏工具开关
|
|
@@ -76248,21 +76235,43 @@ class MeasureTool extends _Controller__WEBPACK_IMPORTED_MODULE_0__["default"] {
|
|
|
76248
76235
|
constructor(parent, cfg) {
|
|
76249
76236
|
super(parent);
|
|
76250
76237
|
this._isTouch = false;
|
|
76238
|
+
this._tools = {};
|
|
76239
|
+
this.eventTrigger = parent.eventTrigger;
|
|
76251
76240
|
this._measure_distance_tool = new _MeasureTools_MeasureDistanceTool__WEBPACK_IMPORTED_MODULE_2__["default"](parent, {});
|
|
76252
76241
|
this._measure_angle_tool = new _MeasureTools_MeasureAngleTool__WEBPACK_IMPORTED_MODULE_1__["default"](parent, {});
|
|
76253
|
-
this.
|
|
76254
|
-
|
|
76255
|
-
this._measure_angle_tool.setEnabled(true);
|
|
76256
|
-
this._measure_distance_tool.setEnabled(true);
|
|
76257
|
-
}
|
|
76258
|
-
else {
|
|
76259
|
-
this._measure_angle_tool.setEnabled(false);
|
|
76260
|
-
this._measure_distance_tool.setEnabled(false);
|
|
76261
|
-
}
|
|
76262
|
-
});
|
|
76242
|
+
this._tools["distance"] = this._measure_distance_tool;
|
|
76243
|
+
this._tools["angle"] = this._measure_angle_tool;
|
|
76263
76244
|
this.bimViewer.on("closeAll", () => {
|
|
76264
76245
|
this.setActive(false);
|
|
76265
76246
|
});
|
|
76247
|
+
this.setActive(true);
|
|
76248
|
+
this._initEventHandle();
|
|
76249
|
+
}
|
|
76250
|
+
_initEventHandle() {
|
|
76251
|
+
this.eventTrigger.on("clickAngleMeasure", () => {
|
|
76252
|
+
if (!this.getActiveByType("angle")) {
|
|
76253
|
+
this.setActiveByType("angle", true);
|
|
76254
|
+
this.measureDistanceTool.refreshMouseState();
|
|
76255
|
+
}
|
|
76256
|
+
});
|
|
76257
|
+
this.eventTrigger.on("clickDistanceMeasure", () => {
|
|
76258
|
+
if (!this.getActiveByType("distance")) {
|
|
76259
|
+
this.setActiveByType("distance", true);
|
|
76260
|
+
this.measureAngleTool.refreshMouseState();
|
|
76261
|
+
}
|
|
76262
|
+
});
|
|
76263
|
+
}
|
|
76264
|
+
setActive(active = !this._active) {
|
|
76265
|
+
this._active = active;
|
|
76266
|
+
this._measure_angle_tool.setEnabled(active);
|
|
76267
|
+
this._measure_distance_tool.setEnabled(active);
|
|
76268
|
+
if (!active) {
|
|
76269
|
+
this._measure_angle_tool.setActive(active);
|
|
76270
|
+
this._measure_distance_tool.setActive(active);
|
|
76271
|
+
}
|
|
76272
|
+
}
|
|
76273
|
+
getActive() {
|
|
76274
|
+
return this._active;
|
|
76266
76275
|
}
|
|
76267
76276
|
set isTouch(isTouch) {
|
|
76268
76277
|
this._isTouch = isTouch;
|
|
@@ -76278,15 +76287,30 @@ class MeasureTool extends _Controller__WEBPACK_IMPORTED_MODULE_0__["default"] {
|
|
|
76278
76287
|
get measureDistanceTool() {
|
|
76279
76288
|
return this._measure_distance_tool;
|
|
76280
76289
|
}
|
|
76281
|
-
|
|
76290
|
+
getMeasureToolByType(type) {
|
|
76291
|
+
return this._tools[type];
|
|
76292
|
+
}
|
|
76293
|
+
setActiveByType(type, active = !this._tools[type].getActive()) {
|
|
76294
|
+
this.setAllDisActive();
|
|
76295
|
+
if (active) {
|
|
76296
|
+
this._tools[type].setActive(active);
|
|
76297
|
+
}
|
|
76298
|
+
}
|
|
76299
|
+
getActiveByType(type) {
|
|
76300
|
+
return this._tools[type].getActive();
|
|
76301
|
+
}
|
|
76302
|
+
SetMeasureAngleActive(active = !this._measure_angle_tool.getActive(), callback = () => { }) {
|
|
76282
76303
|
this._measure_angle_tool.setActive(active);
|
|
76283
|
-
|
|
76284
|
-
callback(this._measure_angle_tool.getActive());
|
|
76304
|
+
callback(this._measure_angle_tool.getActive());
|
|
76285
76305
|
}
|
|
76286
|
-
SetMeasureDistanceActive(active = !this._measure_distance_tool.getActive(), callback) {
|
|
76306
|
+
SetMeasureDistanceActive(active = !this._measure_distance_tool.getActive(), callback = () => { }) {
|
|
76287
76307
|
this._measure_distance_tool.setActive(active);
|
|
76288
|
-
|
|
76289
|
-
|
|
76308
|
+
callback(this._measure_distance_tool.getActive());
|
|
76309
|
+
}
|
|
76310
|
+
setAllDisActive() {
|
|
76311
|
+
for (let type in this._tools) {
|
|
76312
|
+
this._tools[type].setActive(false);
|
|
76313
|
+
}
|
|
76290
76314
|
}
|
|
76291
76315
|
setMeasureOffSet(offsetX, offsetY) {
|
|
76292
76316
|
this.measureAngleTool.offsetX = offsetX;
|
|
@@ -76365,14 +76389,24 @@ class MeasureAngleTool extends _Controller__WEBPACK_IMPORTED_MODULE_1__["default
|
|
|
76365
76389
|
});
|
|
76366
76390
|
this._initSettings();
|
|
76367
76391
|
this._initializeMeasure();
|
|
76368
|
-
|
|
76369
|
-
|
|
76370
|
-
|
|
76371
|
-
|
|
76372
|
-
|
|
76373
|
-
|
|
76374
|
-
|
|
76375
|
-
|
|
76392
|
+
}
|
|
76393
|
+
setActive(active) {
|
|
76394
|
+
this._active = active;
|
|
76395
|
+
if (active && this.chosedTarget) {
|
|
76396
|
+
this.setMeasureHightlighted(this.chosedTarget, true);
|
|
76397
|
+
}
|
|
76398
|
+
else {
|
|
76399
|
+
this.setAllHightLighted(false);
|
|
76400
|
+
}
|
|
76401
|
+
if (!this._isTouch) {
|
|
76402
|
+
this._angleMeasurementsMouseControl.active = active;
|
|
76403
|
+
}
|
|
76404
|
+
else {
|
|
76405
|
+
this._angleMeasurementsTouchControl.active = active;
|
|
76406
|
+
}
|
|
76407
|
+
}
|
|
76408
|
+
getActive() {
|
|
76409
|
+
return this._active;
|
|
76376
76410
|
}
|
|
76377
76411
|
_initSettings() {
|
|
76378
76412
|
if (!this._isTouch) {
|
|
@@ -76387,15 +76421,16 @@ class MeasureAngleTool extends _Controller__WEBPACK_IMPORTED_MODULE_1__["default
|
|
|
76387
76421
|
// this.setPointerLensActive(true);
|
|
76388
76422
|
}
|
|
76389
76423
|
_initializeMeasure() {
|
|
76390
|
-
let chosedTarget;
|
|
76424
|
+
let chosedTarget = this.chosedTarget;
|
|
76391
76425
|
this._angleMeasurementsPlugin.on("measurementCreated", (e) => {
|
|
76392
76426
|
this.eventTrigger.emit("newAngleMeasure", {
|
|
76393
76427
|
id: e.id
|
|
76394
76428
|
});
|
|
76429
|
+
this.newMeasure = e;
|
|
76395
76430
|
chosedTarget = null;
|
|
76396
76431
|
});
|
|
76397
76432
|
this._angleMeasurementsPlugin.on("measurementEnd", (e) => {
|
|
76398
|
-
if (this.getMeasureResultByID(e.id) === 0
|
|
76433
|
+
if (this.getMeasureResultByID(e.id) === 0) {
|
|
76399
76434
|
this.destroyMeasurementById(e.id);
|
|
76400
76435
|
return;
|
|
76401
76436
|
}
|
|
@@ -76411,6 +76446,8 @@ class MeasureAngleTool extends _Controller__WEBPACK_IMPORTED_MODULE_1__["default
|
|
|
76411
76446
|
e.measurement.setHighlighted(true);
|
|
76412
76447
|
});
|
|
76413
76448
|
this._angleMeasurementsPlugin.on("mouseLeave", (e) => {
|
|
76449
|
+
if (e.angleMeasurement == chosedTarget)
|
|
76450
|
+
return;
|
|
76414
76451
|
e.measurement.setHighlighted(false);
|
|
76415
76452
|
});
|
|
76416
76453
|
this._angleMeasurementsPlugin.on("clickMeasure", (e) => {
|
|
@@ -76510,6 +76547,15 @@ class MeasureAngleTool extends _Controller__WEBPACK_IMPORTED_MODULE_1__["default
|
|
|
76510
76547
|
get offsetY() {
|
|
76511
76548
|
return this._offsetY;
|
|
76512
76549
|
}
|
|
76550
|
+
/**
|
|
76551
|
+
* 重置点击事件流程进度
|
|
76552
|
+
*/
|
|
76553
|
+
refreshMouseState() {
|
|
76554
|
+
this.destroyMeasurementById(this.newMeasure.id);
|
|
76555
|
+
this._angleMeasurementsMouseControl.mouseState = 0;
|
|
76556
|
+
this.setAllHightLighted(false);
|
|
76557
|
+
this.newMeasure = null;
|
|
76558
|
+
}
|
|
76513
76559
|
/**
|
|
76514
76560
|
* 测量数据显隐设置
|
|
76515
76561
|
* @param visible
|
|
@@ -76552,7 +76598,7 @@ class MeasureAngleTool extends _Controller__WEBPACK_IMPORTED_MODULE_1__["default
|
|
|
76552
76598
|
*/
|
|
76553
76599
|
getMeasureResultByID(id) {
|
|
76554
76600
|
const measure = this.getMeasurementById(id);
|
|
76555
|
-
return measure.angle;
|
|
76601
|
+
return measure ? measure.angle : 0;
|
|
76556
76602
|
}
|
|
76557
76603
|
/**
|
|
76558
76604
|
* 设置指定id测量线的颜色
|
|
@@ -76727,14 +76773,24 @@ class MeasureDistanceTool extends _Controller__WEBPACK_IMPORTED_MODULE_1__["defa
|
|
|
76727
76773
|
});
|
|
76728
76774
|
this._initSettings();
|
|
76729
76775
|
this._initializeMeasure();
|
|
76730
|
-
|
|
76731
|
-
|
|
76732
|
-
|
|
76733
|
-
|
|
76734
|
-
|
|
76735
|
-
|
|
76736
|
-
|
|
76737
|
-
|
|
76776
|
+
}
|
|
76777
|
+
setActive(active) {
|
|
76778
|
+
this._active = active;
|
|
76779
|
+
if (active && this.chosedTarget) {
|
|
76780
|
+
this.setMeasureHightlighted(this.chosedTarget, true);
|
|
76781
|
+
}
|
|
76782
|
+
else {
|
|
76783
|
+
this.setAllHightLighted(false);
|
|
76784
|
+
}
|
|
76785
|
+
if (!this._isTouch) {
|
|
76786
|
+
this._distanceMeasurementsMouseControl.active = active;
|
|
76787
|
+
}
|
|
76788
|
+
else {
|
|
76789
|
+
this._distanceMeasurementsTouchControl.active = active;
|
|
76790
|
+
}
|
|
76791
|
+
}
|
|
76792
|
+
getActive() {
|
|
76793
|
+
return this._active;
|
|
76738
76794
|
}
|
|
76739
76795
|
_initSettings() {
|
|
76740
76796
|
if (!this._isTouch) {
|
|
@@ -76749,11 +76805,12 @@ class MeasureDistanceTool extends _Controller__WEBPACK_IMPORTED_MODULE_1__["defa
|
|
|
76749
76805
|
// this.setPointerLensActive(true);
|
|
76750
76806
|
}
|
|
76751
76807
|
_initializeMeasure() {
|
|
76752
|
-
let chosedTarget;
|
|
76808
|
+
let chosedTarget = this.chosedTarget;
|
|
76753
76809
|
this._distanceMeasurementsPlugin.on("measurementCreated", (e) => {
|
|
76754
76810
|
this.eventTrigger.emit("newDistanceMeasure", {
|
|
76755
76811
|
id: e.id
|
|
76756
76812
|
});
|
|
76813
|
+
this.newMeasure = e;
|
|
76757
76814
|
chosedTarget = null;
|
|
76758
76815
|
});
|
|
76759
76816
|
this._distanceMeasurementsPlugin.on("measurementEnd", (e) => {
|
|
@@ -76773,6 +76830,8 @@ class MeasureDistanceTool extends _Controller__WEBPACK_IMPORTED_MODULE_1__["defa
|
|
|
76773
76830
|
e.measurement.setHighlighted(true);
|
|
76774
76831
|
});
|
|
76775
76832
|
this._distanceMeasurementsPlugin.on("mouseLeave", (e) => {
|
|
76833
|
+
if (e.distanceMeasurement == chosedTarget)
|
|
76834
|
+
return;
|
|
76776
76835
|
e.measurement.setHighlighted(false);
|
|
76777
76836
|
});
|
|
76778
76837
|
this._distanceMeasurementsPlugin.on("clickMeasure", (e) => {
|
|
@@ -76904,6 +76963,15 @@ class MeasureDistanceTool extends _Controller__WEBPACK_IMPORTED_MODULE_1__["defa
|
|
|
76904
76963
|
get offsetY() {
|
|
76905
76964
|
return this._offsetY;
|
|
76906
76965
|
}
|
|
76966
|
+
/**
|
|
76967
|
+
* 重置点击事件流程进度
|
|
76968
|
+
*/
|
|
76969
|
+
refreshMouseState() {
|
|
76970
|
+
this.destroyMeasurementById(this.newMeasure.id);
|
|
76971
|
+
this._distanceMeasurementsMouseControl.mouseState = 0;
|
|
76972
|
+
this.setAllHightLighted(false);
|
|
76973
|
+
this.newMeasure = null;
|
|
76974
|
+
}
|
|
76907
76975
|
/**
|
|
76908
76976
|
* 测量数据显隐设置
|
|
76909
76977
|
* @param visible
|
|
@@ -76946,7 +77014,7 @@ class MeasureDistanceTool extends _Controller__WEBPACK_IMPORTED_MODULE_1__["defa
|
|
|
76946
77014
|
*/
|
|
76947
77015
|
getMeasureResultByID(id) {
|
|
76948
77016
|
const measure = this.getMeasurementById(id);
|
|
76949
|
-
return measure.length;
|
|
77017
|
+
return measure ? measure.length : 0;
|
|
76950
77018
|
}
|
|
76951
77019
|
/**
|
|
76952
77020
|
* 设置指定id测量线的颜色
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
export const VERSION = "0.1.
|
|
2
|
+
export const VERSION = "0.1.18";
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
export const VERSION = "0.1.
|
|
2
|
+
export const VERSION = "0.1.18";
|
package/package.json
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xtctwins/tctwins-bimx-viewer",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "BIM viewer built on xtctwins",
|
|
6
6
|
"main": "./dist/tctwins-bimx-viewer.min.es.js",
|
|
7
7
|
"types": "./types/index.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "webpack --config webpack.config.js",
|
|
10
|
-
"dev": "webpack
|
|
11
|
-
"build-dev": "webpack --config webpack.dev.config.js",
|
|
10
|
+
"dev": "webpack --config webpack.dev.config.js",
|
|
12
11
|
"docs": "esdoc",
|
|
13
12
|
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
14
13
|
"publish": "npm publish --access public",
|
|
@@ -28,7 +27,7 @@
|
|
|
28
27
|
"@types/ali-oss": "^6.16.11",
|
|
29
28
|
"@typescript-eslint/eslint-plugin": "^6.14.0",
|
|
30
29
|
"@typescript-eslint/parser": "^6.14.0",
|
|
31
|
-
"@xtctwins/tctwins-core": "^1.0.
|
|
30
|
+
"@xtctwins/tctwins-core": "^1.0.50",
|
|
32
31
|
"ali-oss": "^6.18.1",
|
|
33
32
|
"autoprefixer": "^9.8.6",
|
|
34
33
|
"axios": "^1.6.5",
|
|
@@ -1,17 +1,27 @@
|
|
|
1
1
|
import Controller from "../Controller";
|
|
2
|
+
import EventTrigger from "../EventTrigger";
|
|
2
3
|
import MeasureAngleTool from "./MeasureTools/MeasureAngleTool";
|
|
3
4
|
import MeasureDistanceTool from "./MeasureTools/MeasureDistanceTool";
|
|
4
5
|
export default class MeasureTool extends Controller {
|
|
5
6
|
private _measure_distance_tool;
|
|
6
7
|
private _measure_angle_tool;
|
|
7
8
|
private _isTouch;
|
|
9
|
+
private _tools;
|
|
10
|
+
protected eventTrigger: EventTrigger;
|
|
8
11
|
constructor(parent: any, cfg: any);
|
|
12
|
+
_initEventHandle(): void;
|
|
13
|
+
setActive(active?: boolean): void;
|
|
14
|
+
getActive(): boolean;
|
|
9
15
|
set isTouch(isTouch: boolean);
|
|
10
16
|
get isTouch(): boolean;
|
|
11
17
|
get measureAngleTool(): MeasureAngleTool;
|
|
12
18
|
get measureDistanceTool(): MeasureDistanceTool;
|
|
13
|
-
|
|
14
|
-
|
|
19
|
+
getMeasureToolByType(type: string): any;
|
|
20
|
+
setActiveByType(type: string, active?: boolean): void;
|
|
21
|
+
getActiveByType(type: string): any;
|
|
22
|
+
SetMeasureAngleActive(active?: boolean, callback?: (r?: any) => void): void;
|
|
23
|
+
SetMeasureDistanceActive(active?: boolean, callback?: (r?: any) => void): void;
|
|
24
|
+
setAllDisActive(): void;
|
|
15
25
|
setMeasureOffSet(offsetX: number, offsetY: number): void;
|
|
16
26
|
/**
|
|
17
27
|
* 设置鼠标吸附点灵敏度
|
|
@@ -15,7 +15,11 @@ export default class MeasureAngleTool extends Controller {
|
|
|
15
15
|
private _offsetX;
|
|
16
16
|
private _offsetY;
|
|
17
17
|
private _isTouch;
|
|
18
|
+
newMeasure: any;
|
|
19
|
+
chosedTarget: AngleMeasurement | any;
|
|
18
20
|
constructor(parent: any, cfg: any);
|
|
21
|
+
setActive(active: boolean): void;
|
|
22
|
+
getActive(): any;
|
|
19
23
|
protected _initSettings(): void;
|
|
20
24
|
protected _initializeMeasure(): void;
|
|
21
25
|
set isTouch(isTouch: boolean);
|
|
@@ -42,6 +46,10 @@ export default class MeasureAngleTool extends Controller {
|
|
|
42
46
|
* @return {number} mouse offset
|
|
43
47
|
*/
|
|
44
48
|
get offsetY(): number;
|
|
49
|
+
/**
|
|
50
|
+
* 重置点击事件流程进度
|
|
51
|
+
*/
|
|
52
|
+
refreshMouseState(): void;
|
|
45
53
|
/**
|
|
46
54
|
* 测量数据显隐设置
|
|
47
55
|
* @param visible
|
|
@@ -17,7 +17,11 @@ export default class MeasureDistanceTool extends Controller {
|
|
|
17
17
|
private _offsetX;
|
|
18
18
|
private _offsetY;
|
|
19
19
|
private _isTouch;
|
|
20
|
+
newMeasure: any;
|
|
21
|
+
chosedTarget: DistanceMeasurement | any;
|
|
20
22
|
constructor(parent: any, cfg: any);
|
|
23
|
+
setActive(active: boolean): void;
|
|
24
|
+
getActive(): any;
|
|
21
25
|
protected _initSettings(): void;
|
|
22
26
|
protected _initializeMeasure(): void;
|
|
23
27
|
set isTouch(isTouch: boolean);
|
|
@@ -50,6 +54,10 @@ export default class MeasureDistanceTool extends Controller {
|
|
|
50
54
|
* @return {number} mouse offset
|
|
51
55
|
*/
|
|
52
56
|
get offsetY(): number;
|
|
57
|
+
/**
|
|
58
|
+
* 重置点击事件流程进度
|
|
59
|
+
*/
|
|
60
|
+
refreshMouseState(): void;
|
|
53
61
|
/**
|
|
54
62
|
* 测量数据显隐设置
|
|
55
63
|
* @param visible
|