@xeokit/xeokit-sdk 2.5.2-beta-10 → 2.5.2-beta-13
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/xeokit-sdk.cjs.js +146 -132
- package/dist/xeokit-sdk.es.js +146 -132
- package/dist/xeokit-sdk.es5.js +84 -84
- package/dist/xeokit-sdk.min.cjs.js +1 -1
- package/dist/xeokit-sdk.min.es.js +1 -1
- package/dist/xeokit-sdk.min.es5.js +1 -1
- package/package.json +1 -1
- package/src/src/extras/ContextMenu/ContextMenu.js +907 -0
- package/src/src/extras/ContextMenu/index.js +1 -0
- package/src/src/extras/MarqueePicker/MarqueePicker.js +352 -0
- package/src/src/extras/MarqueePicker/MarqueePickerMouseControl.js +174 -0
- package/src/src/extras/MarqueePicker/index.js +2 -0
- package/src/src/extras/PointerLens/PointerLens.js +312 -0
- package/src/src/extras/PointerLens/index.js +1 -0
- package/src/src/extras/collision/ObjectsKdTree3.js +149 -0
- package/src/src/extras/collision/index.js +1 -0
- package/src/src/extras/index.js +4 -0
- package/src/src/index.js +3 -0
- package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +731 -0
- package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +84 -0
- package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsMouseControl.js +435 -0
- package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +406 -0
- package/src/src/plugins/AngleMeasurementsPlugin/index.js +3 -0
- package/src/src/plugins/AnnotationsPlugin/Annotation.js +368 -0
- package/src/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +583 -0
- package/src/src/plugins/AnnotationsPlugin/index.js +1 -0
- package/src/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
- package/src/src/plugins/AxisGizmoPlugin/index.js +1 -0
- package/src/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +977 -0
- package/src/src/plugins/BCFViewpointsPlugin/index.js +1 -0
- package/src/src/plugins/CityJSONLoaderPlugin/CityJSONDefaultDataSource.js +29 -0
- package/src/src/plugins/CityJSONLoaderPlugin/CityJSONLoaderPlugin.js +751 -0
- package/src/src/plugins/CityJSONLoaderPlugin/index.js +1 -0
- package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +963 -0
- package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +84 -0
- package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsMouseControl.js +399 -0
- package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +505 -0
- package/src/src/plugins/DistanceMeasurementsPlugin/index.js +3 -0
- package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesControl.js +639 -0
- package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesPlugin.js +436 -0
- package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Overview.js +247 -0
- package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Plane.js +167 -0
- package/src/src/plugins/FaceAlignedSectionPlanesPlugin/index.js +1 -0
- package/src/src/plugins/FastNavPlugin/FastNavPlugin.js +429 -0
- package/src/src/plugins/FastNavPlugin/index.js +1 -0
- package/src/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +140 -0
- package/src/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +421 -0
- package/src/src/plugins/GLTFLoaderPlugin/GLTFSceneModelLoader.js +669 -0
- package/src/src/plugins/GLTFLoaderPlugin/index.js +2 -0
- package/src/src/plugins/LASLoaderPlugin/LASDefaultDataSource.js +58 -0
- package/src/src/plugins/LASLoaderPlugin/LASLoaderPlugin.js +563 -0
- package/src/src/plugins/LASLoaderPlugin/index.js +1 -0
- package/src/src/plugins/LASLoaderPlugin/loadLASHeader.js +183 -0
- package/src/src/plugins/NavCubePlugin/CubeTextureCanvas.js +290 -0
- package/src/src/plugins/NavCubePlugin/NavCubePlugin.js +753 -0
- package/src/src/plugins/NavCubePlugin/index.js +1 -0
- package/src/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
- package/src/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
- package/src/src/plugins/OBJLoaderPlugin/index.js +1 -0
- package/src/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
- package/src/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +274 -0
- package/src/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
- package/src/src/plugins/STLLoaderPlugin/index.js +2 -0
- package/src/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
- package/src/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
- package/src/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
- package/src/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +404 -0
- package/src/src/plugins/SectionPlanesPlugin/index.js +1 -0
- package/src/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
- package/src/src/plugins/SkyboxesPlugin/index.js +1 -0
- package/src/src/plugins/StoreyViewsPlugin/Storey.js +84 -0
- package/src/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
- package/src/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +773 -0
- package/src/src/plugins/StoreyViewsPlugin/index.js +1 -0
- package/src/src/plugins/TreeViewPlugin/RenderService.js +169 -0
- package/src/src/plugins/TreeViewPlugin/TreeViewNode.js +101 -0
- package/src/src/plugins/TreeViewPlugin/TreeViewPlugin.js +1370 -0
- package/src/src/plugins/TreeViewPlugin/index.js +1 -0
- package/src/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
- package/src/src/plugins/ViewCullPlugin/index.js +1 -0
- package/src/src/plugins/WebIFCLoaderPlugin/WebIFCDefaultDataSource.js +58 -0
- package/src/src/plugins/WebIFCLoaderPlugin/WebIFCLoaderPlugin.js +942 -0
- package/src/src/plugins/WebIFCLoaderPlugin/index.js +1 -0
- package/src/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +95 -0
- package/src/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +1194 -0
- package/src/src/plugins/XKTLoaderPlugin/index.js +2 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +169 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV10.js +660 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV11.js +663 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +230 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +223 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +283 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +246 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +439 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +563 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV9.js +518 -0
- package/src/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +2 -0
- package/src/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
- package/src/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
- package/src/src/plugins/XML3DLoaderPlugin/index.js +1 -0
- package/src/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
- package/src/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
- package/src/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
- package/src/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
- package/src/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
- package/src/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
- package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
- package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
- package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
- package/src/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
- package/src/src/plugins/index.js +21 -0
- package/src/src/plugins/lib/culling/ObjectCullStates.js +208 -0
- package/src/src/plugins/lib/earcut.js +677 -0
- package/src/src/plugins/lib/html/Dot.js +179 -0
- package/src/src/plugins/lib/html/Label.js +174 -0
- package/src/src/plugins/lib/html/Wire.js +220 -0
- package/src/src/viewer/Configs.js +127 -0
- package/src/src/viewer/Plugin.js +233 -0
- package/src/src/viewer/Viewer.js +542 -0
- package/src/src/viewer/index.js +5 -0
- package/src/src/viewer/localization/LocaleService.js +475 -0
- package/src/src/viewer/metadata/IFCObjectDefaultColors.js +163 -0
- package/src/src/viewer/metadata/IFCObjectDefaults.js +17 -0
- package/src/src/viewer/metadata/MetaModel.js +414 -0
- package/src/src/viewer/metadata/MetaObject.js +223 -0
- package/src/src/viewer/metadata/MetaScene.js +336 -0
- package/src/src/viewer/metadata/Property.js +55 -0
- package/src/src/viewer/metadata/PropertySet.js +77 -0
- package/src/src/viewer/scene/Bitmap/Bitmap.js +473 -0
- package/src/src/viewer/scene/Bitmap/index.js +1 -0
- package/src/src/viewer/scene/CameraControl/CameraControl.js +1750 -0
- package/src/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
- package/src/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
- package/src/src/viewer/scene/CameraControl/lib/controllers/PickController.js +265 -0
- package/src/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +384 -0
- package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
- package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +183 -0
- package/src/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
- package/src/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +345 -0
- package/src/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +376 -0
- package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +288 -0
- package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +235 -0
- package/src/src/viewer/scene/Component.js +915 -0
- package/src/src/viewer/scene/Entity.js +502 -0
- package/src/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
- package/src/src/viewer/scene/ImagePlane/index.js +1 -0
- package/src/src/viewer/scene/LineSet/LineSet.js +163 -0
- package/src/src/viewer/scene/LineSet/index.js +1 -0
- package/src/src/viewer/scene/camera/Camera.js +912 -0
- package/src/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
- package/src/src/viewer/scene/camera/CameraPath.js +194 -0
- package/src/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
- package/src/src/viewer/scene/camera/CustomProjection.js +149 -0
- package/src/src/viewer/scene/camera/Frustum.js +316 -0
- package/src/src/viewer/scene/camera/Ortho.js +286 -0
- package/src/src/viewer/scene/camera/Perspective.js +304 -0
- package/src/src/viewer/scene/camera/index.js +2 -0
- package/src/src/viewer/scene/canvas/Canvas.js +490 -0
- package/src/src/viewer/scene/canvas/Spinner.js +323 -0
- package/src/src/viewer/scene/constants/constants.js +371 -0
- package/src/src/viewer/scene/core.js +268 -0
- package/src/src/viewer/scene/geometry/Geometry.js +33 -0
- package/src/src/viewer/scene/geometry/ReadableGeometry.js +682 -0
- package/src/src/viewer/scene/geometry/VBOGeometry.js +319 -0
- package/src/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
- package/src/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
- package/src/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
- package/src/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
- package/src/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
- package/src/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
- package/src/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
- package/src/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
- package/src/src/viewer/scene/geometry/builders/index.js +8 -0
- package/src/src/viewer/scene/geometry/index.js +4 -0
- package/src/src/viewer/scene/geometry/loaders/index.js +2 -0
- package/src/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
- package/src/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
- package/src/src/viewer/scene/index.js +21 -0
- package/src/src/viewer/scene/input/Input.js +1333 -0
- package/src/src/viewer/scene/libs/k3d.js +1032 -0
- package/src/src/viewer/scene/lights/AmbientLight.js +175 -0
- package/src/src/viewer/scene/lights/CubeTexture.js +156 -0
- package/src/src/viewer/scene/lights/DirLight.js +314 -0
- package/src/src/viewer/scene/lights/Light.js +29 -0
- package/src/src/viewer/scene/lights/LightMap.js +77 -0
- package/src/src/viewer/scene/lights/PointLight.js +395 -0
- package/src/src/viewer/scene/lights/ReflectionMap.js +79 -0
- package/src/src/viewer/scene/lights/Shadow.js +138 -0
- package/src/src/viewer/scene/lights/index.js +5 -0
- package/src/src/viewer/scene/marker/Marker.js +383 -0
- package/src/src/viewer/scene/marker/SpriteMarker.js +356 -0
- package/src/src/viewer/scene/marker/index.js +2 -0
- package/src/src/viewer/scene/materials/EdgeMaterial.js +359 -0
- package/src/src/viewer/scene/materials/EmphasisMaterial.js +613 -0
- package/src/src/viewer/scene/materials/Fresnel.js +222 -0
- package/src/src/viewer/scene/materials/LambertMaterial.js +378 -0
- package/src/src/viewer/scene/materials/LinesMaterial.js +169 -0
- package/src/src/viewer/scene/materials/Material.js +39 -0
- package/src/src/viewer/scene/materials/MetallicMaterial.js +820 -0
- package/src/src/viewer/scene/materials/PhongMaterial.js +860 -0
- package/src/src/viewer/scene/materials/PointsMaterial.js +409 -0
- package/src/src/viewer/scene/materials/SpecularMaterial.js +807 -0
- package/src/src/viewer/scene/materials/Texture.js +513 -0
- package/src/src/viewer/scene/materials/index.js +8 -0
- package/src/src/viewer/scene/math/Frustum.js +118 -0
- package/src/src/viewer/scene/math/buildEdgeIndices.js +162 -0
- package/src/src/viewer/scene/math/geometryCompressionUtils.js +365 -0
- package/src/src/viewer/scene/math/index.js +3 -0
- package/src/src/viewer/scene/math/math.js +5386 -0
- package/src/src/viewer/scene/math/rtcCoords.js +139 -0
- package/src/src/viewer/scene/mementos/CameraMemento.js +200 -0
- package/src/src/viewer/scene/mementos/ModelMemento.js +263 -0
- package/src/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
- package/src/src/viewer/scene/mementos/index.js +3 -0
- package/src/src/viewer/scene/mesh/Mesh.js +2202 -0
- package/src/src/viewer/scene/mesh/draw/DrawRenderer.js +996 -0
- package/src/src/viewer/scene/mesh/draw/DrawShaderSource.js +1570 -0
- package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +259 -0
- package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +159 -0
- package/src/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +286 -0
- package/src/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +262 -0
- package/src/src/viewer/scene/mesh/index.js +1 -0
- package/src/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +217 -0
- package/src/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +157 -0
- package/src/src/viewer/scene/mesh/pick/PickMeshRenderer.js +223 -0
- package/src/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +151 -0
- package/src/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +200 -0
- package/src/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +124 -0
- package/src/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
- package/src/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +98 -0
- package/src/src/viewer/scene/metriqs/Metriqs.js +259 -0
- package/src/src/viewer/scene/model/ENTITY_FLAGS.js +21 -0
- package/src/src/viewer/scene/model/PerformanceModel.js +26 -0
- package/src/src/viewer/scene/model/RENDER_PASSES.js +34 -0
- package/src/src/viewer/scene/model/SceneModel.js +4018 -0
- package/src/src/viewer/scene/model/SceneModelEntity.js +715 -0
- package/src/src/viewer/scene/model/SceneModelMesh.js +341 -0
- package/src/src/viewer/scene/model/SceneModelTexture.js +38 -0
- package/src/src/viewer/scene/model/SceneModelTextureSet.js +59 -0
- package/src/src/viewer/scene/model/SceneModelTransform.js +404 -0
- package/src/src/viewer/scene/model/VBOSceneModel.js +26 -0
- package/src/src/viewer/scene/model/calculateUniquePositions.js +126 -0
- package/src/src/viewer/scene/model/compression.js +227 -0
- package/src/src/viewer/scene/model/dtx/BindableDataTexture.js +31 -0
- package/src/src/viewer/scene/model/dtx/lines/DTXLinesBuffer.js +27 -0
- package/src/src/viewer/scene/model/dtx/lines/DTXLinesLayer.js +891 -0
- package/src/src/viewer/scene/model/dtx/lines/DTXLinesState.js +46 -0
- package/src/src/viewer/scene/model/dtx/lines/DTXLinesTextureFactory.js +411 -0
- package/src/src/viewer/scene/model/dtx/lines/dataTextureRamStats.js +49 -0
- package/src/src/viewer/scene/model/dtx/lines/rebucketPositions.js +208 -0
- package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesColorRenderer.js +389 -0
- package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesRenderers.js +65 -0
- package/src/src/viewer/scene/model/dtx/triangles/DTXTrianglesLayer.js +1322 -0
- package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesBuffer.js +46 -0
- package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesState.js +250 -0
- package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesTextureFactory.js +518 -0
- package/src/src/viewer/scene/model/dtx/triangles/lib/dataTextureRamStats.js +54 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesColorRenderer.js +619 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesDepthRenderer.js +464 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesColorRenderer.js +414 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesRenderer.js +422 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesNormalsRenderer.js +345 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesOcclusionRenderer.js +436 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickDepthRenderer.js +462 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickMeshRenderer.js +436 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsFlatRenderer.js +455 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsRenderer.js +440 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesRenderers.js +307 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSilhouetteRenderer.js +465 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapInitRenderer.js +466 -0
- package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapRenderer.js +427 -0
- package/src/src/viewer/scene/model/index.js +5 -0
- package/src/src/viewer/scene/model/rebucketPositions.js +354 -0
- package/src/src/viewer/scene/model/vbo/ScratchMemory.js +63 -0
- package/src/src/viewer/scene/model/vbo/VBORenderer.js +646 -0
- package/src/src/viewer/scene/model/vbo/batching/lines/VBOBatchingLinesLayer.js +699 -0
- package/src/src/viewer/scene/model/vbo/batching/lines/lib/VBOBatchingLinesBuffer.js +19 -0
- package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLineSnapInitRenderer.js +316 -0
- package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesColorRenderer.js +114 -0
- package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesRenderers.js +99 -0
- package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSilhouetteRenderer.js +124 -0
- package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapInitRenderer.js +311 -0
- package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapRenderer.js +309 -0
- package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOSceneModelLineBatchingRenderer.js +24 -0
- package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsBuffer.js +20 -0
- package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsLayer.js +718 -0
- package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsRenderer.js +24 -0
- package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsColorRenderer.js +168 -0
- package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsOcclusionRenderer.js +136 -0
- package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickDepthRenderer.js +156 -0
- package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickMeshRenderer.js +148 -0
- package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsRenderers.js +144 -0
- package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsShadowRenderer.js +107 -0
- package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSilhouetteRenderer.js +146 -0
- package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapInitRenderer.js +309 -0
- package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapRenderer.js +303 -0
- package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesBuffer.js +24 -0
- package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +1257 -0
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesEdgesColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js} +6 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesEdgesRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js} +6 -4
- package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +12 -0
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesRenderers.js → src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js} +45 -45
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js} +4 -3
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesColorTextureRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesDepthRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesFlatColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesNormalsRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesOcclusionRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPBRRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickDepthRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickMeshRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickNormalsFlatRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickNormalsRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesShadowRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSilhouetteRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js} +3 -3
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSnapInitRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js} +1 -1
- package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSnapRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js} +1 -1
- package/src/src/viewer/scene/model/vbo/float16.js +760 -0
- package/src/src/viewer/scene/model/vbo/instancing/lines/VBOInstancingLinesLayer.js +704 -0
- package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesColorRenderer.js +148 -0
- package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderer.js +26 -0
- package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderers.js +139 -0
- package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSilhouetteRenderer.js +127 -0
- package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapInitRenderer.js +331 -0
- package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapRenderer.js +316 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/VBOInstancingPointsLayer.js +728 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsColorRenderer.js +174 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsDepthRenderer.js +156 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsOcclusionRenderer.js +149 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickDepthRenderer.js +170 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickMeshRenderer.js +152 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderer.js +26 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderers.js +174 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsShadowRenderer.js +119 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSilhouetteRenderer.js +154 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapInitRenderer.js +330 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapRenderer.js +311 -0
- package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingTrianglesRenderer.js +150 -0
- package/src/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +1190 -0
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesEdgesColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js} +8 -4
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesEdgesRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js} +8 -5
- package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +12 -0
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesRenderers.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js} +45 -45
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js} +3 -3
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesColorTextureRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesDepthRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesFlatColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesFlatNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOSceneModelTriangleInstancingRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js} +1 -1
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesOcclusionRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPBRRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickDepthRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickMeshRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickNormalsFlatRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesShadowRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSilhouetteRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js} +2 -2
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSnapInitRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js} +1 -1
- package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSnapRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js} +1 -1
- package/src/src/viewer/scene/nodes/Node.js +1383 -0
- package/src/src/viewer/scene/nodes/index.js +1 -0
- package/src/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
- package/src/src/viewer/scene/paths/Curve.js +183 -0
- package/src/src/viewer/scene/paths/Path.js +239 -0
- package/src/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
- package/src/src/viewer/scene/paths/SplineCurve.js +133 -0
- package/src/src/viewer/scene/paths/index.js +5 -0
- package/src/src/viewer/scene/postfx/SAO.js +543 -0
- package/src/src/viewer/scene/scene/Scene.js +2802 -0
- package/src/src/viewer/scene/sectionPlane/SectionPlane.js +198 -0
- package/src/src/viewer/scene/sectionPlane/SectionPlaneCache.js +101 -0
- package/src/src/viewer/scene/sectionPlane/index.js +1 -0
- package/src/src/viewer/scene/skybox/Skybox.js +123 -0
- package/src/src/viewer/scene/skybox/index.js +1 -0
- package/src/src/viewer/scene/stats.js +44 -0
- package/src/src/viewer/scene/utils/Cache.js +29 -0
- package/src/src/viewer/scene/utils/FileLoader.js +161 -0
- package/src/src/viewer/scene/utils/Loader.js +55 -0
- package/src/src/viewer/scene/utils/LoadingManager.js +86 -0
- package/src/src/viewer/scene/utils/Map.js +45 -0
- package/src/src/viewer/scene/utils/Queue.js +56 -0
- package/src/src/viewer/scene/utils/WorkerPool.js +73 -0
- package/src/src/viewer/scene/utils/index.js +6 -0
- package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/KTX2TextureTranscoder.js +650 -0
- package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/index.js +1 -0
- package/src/src/viewer/scene/utils/textureTranscoders/TextureTranscoder.js +31 -0
- package/src/src/viewer/scene/utils/textureTranscoders/index.js +2 -0
- package/src/src/viewer/scene/utils.js +453 -0
- package/src/src/viewer/scene/viewport/Viewport.js +212 -0
- package/src/src/viewer/scene/webgl/ArrayBuf.js +121 -0
- package/src/src/viewer/scene/webgl/Attribute.js +23 -0
- package/src/src/viewer/scene/webgl/Drawable.js +270 -0
- package/src/src/viewer/scene/webgl/FrameContext.js +313 -0
- package/src/src/viewer/scene/webgl/PickResult.js +364 -0
- package/src/src/viewer/scene/webgl/Pickable.js +69 -0
- package/src/src/viewer/scene/webgl/Program.js +181 -0
- package/src/src/viewer/scene/webgl/RenderBuffer.js +378 -0
- package/src/src/viewer/scene/webgl/RenderBufferManager.js +34 -0
- package/src/src/viewer/scene/webgl/RenderFlags.js +203 -0
- package/src/src/viewer/scene/webgl/RenderState.js +40 -0
- package/src/src/viewer/scene/webgl/Renderer.js +1781 -0
- package/src/src/viewer/scene/webgl/Sampler.js +18 -0
- package/src/src/viewer/scene/webgl/Shader.js +49 -0
- package/src/src/viewer/scene/webgl/Texture2D.js +442 -0
- package/src/src/viewer/scene/webgl/convertConstant.js +244 -0
- package/src/src/viewer/scene/webgl/getExtension.js +32 -0
- package/src/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
- package/src/src/viewer/scene/webgl/occlusion/OcclusionTester.js +426 -0
- package/src/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +324 -0
- package/src/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +376 -0
- package/src/src/viewer/scene/webgl/webglEnums.js +61 -0
- package/src/src/viewer/scene/webglInfo.js +47 -0
- package/src/viewer/scene/model/SceneModel.js +1 -1
- package/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +1 -1
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js +131 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js +135 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +12 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js +375 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js +34 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js +238 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js +270 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js +126 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js +235 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js +139 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js +125 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js +561 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js +144 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +121 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js +131 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js +107 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js +136 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js +311 -0
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js +308 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +1 -1
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js +136 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js +137 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +12 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js +376 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js +253 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js +278 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js +126 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js +244 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js +29 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js +138 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js +128 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js +561 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js +149 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js +136 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js +145 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js +113 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js +139 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js +342 -0
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js +325 -0
- package/src/viewer/scene/webgl/Renderer.js +20 -19
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/VBOSceneModelTriangleBatchingEdgesRenderer.js +0 -12
- package/src/viewer/scene/model/vbo/instancing/triangles/renderers/VBOSceneModelTriangleInstancingEdgesRenderer.js +0 -12
|
@@ -0,0 +1,505 @@
|
|
|
1
|
+
import {Plugin} from "../../viewer/Plugin.js";
|
|
2
|
+
import {DistanceMeasurement} from "./DistanceMeasurement.js";
|
|
3
|
+
import {DistanceMeasurementsMouseControl} from "./DistanceMeasurementsMouseControl.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* {@link Viewer} plugin for measuring point-to-point distances.
|
|
7
|
+
*
|
|
8
|
+
* [<img src="https://user-images.githubusercontent.com/83100/63047331-867a0a80-bed4-11e9-892f-398740013c5f.gif">](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)
|
|
9
|
+
*
|
|
10
|
+
* * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]
|
|
11
|
+
* * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]
|
|
12
|
+
* * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)
|
|
13
|
+
*
|
|
14
|
+
* ## Overview
|
|
15
|
+
*
|
|
16
|
+
* * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.
|
|
17
|
+
* * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,
|
|
18
|
+
* and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.
|
|
19
|
+
* * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.
|
|
20
|
+
* * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.
|
|
21
|
+
* * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.
|
|
22
|
+
* * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.
|
|
23
|
+
* * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.
|
|
24
|
+
*
|
|
25
|
+
* ## Example 1: Creating DistanceMeasurements Programmatically
|
|
26
|
+
*
|
|
27
|
+
* In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.
|
|
28
|
+
*
|
|
29
|
+
* Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space
|
|
30
|
+
* position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.
|
|
31
|
+
*
|
|
32
|
+
* [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]
|
|
33
|
+
*
|
|
34
|
+
* ````JavaScript
|
|
35
|
+
* import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from "xeokit-sdk.es.js";
|
|
36
|
+
*
|
|
37
|
+
* const viewer = new Viewer({
|
|
38
|
+
* canvasId: "myCanvas",
|
|
39
|
+
* transparent: true
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* viewer.scene.camera.eye = [-2.37, 18.97, -26.12];
|
|
43
|
+
* viewer.scene.camera.look = [10.97, 5.82, -11.22];
|
|
44
|
+
* viewer.scene.camera.up = [0.36, 0.83, 0.40];
|
|
45
|
+
*
|
|
46
|
+
* const xktLoader = new XKTLoaderPlugin(viewer);
|
|
47
|
+
*
|
|
48
|
+
* const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);
|
|
49
|
+
*
|
|
50
|
+
* const model = xktLoader.load({
|
|
51
|
+
* src: "./models/xkt/duplex/duplex.xkt"
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* model.on("loaded", () => {
|
|
55
|
+
*
|
|
56
|
+
* const myMeasurement1 = distanceMeasurements.createMeasurement({
|
|
57
|
+
* id: "distanceMeasurement1",
|
|
58
|
+
* origin: {
|
|
59
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FLOH"],
|
|
60
|
+
* worldPos: [0.044, 5.998, 17.767]
|
|
61
|
+
* },
|
|
62
|
+
* target: {
|
|
63
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FLOH"],
|
|
64
|
+
* worldPos: [4.738, 3.172, 17.768]
|
|
65
|
+
* },
|
|
66
|
+
* visible: true,
|
|
67
|
+
* wireVisible: true
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* const myMeasurement2 = distanceMeasurements.createMeasurement({
|
|
71
|
+
* id: "distanceMeasurement2",
|
|
72
|
+
* origin: {
|
|
73
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FNr2"],
|
|
74
|
+
* worldPos: [0.457, 2.532, 17.766]
|
|
75
|
+
* },
|
|
76
|
+
* target: {
|
|
77
|
+
* entity: viewer.scene.objects["1CZILmCaHETO8tf3SgGEXu"],
|
|
78
|
+
* worldPos: [0.436, 0.001, 22.135]
|
|
79
|
+
* },
|
|
80
|
+
* visible: true,
|
|
81
|
+
* wireVisible: true
|
|
82
|
+
* });
|
|
83
|
+
* });
|
|
84
|
+
* ````
|
|
85
|
+
*
|
|
86
|
+
* ## Example 2: Creating DistanceMeasurements with Mouse Input
|
|
87
|
+
*
|
|
88
|
+
* In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a
|
|
89
|
+
* {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.
|
|
90
|
+
*
|
|
91
|
+
* After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its
|
|
92
|
+
* origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.
|
|
93
|
+
*
|
|
94
|
+
* The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing
|
|
95
|
+
* another DistanceMeasurement, and so on, until deactivated again.
|
|
96
|
+
*
|
|
97
|
+
* [[Run example](/examples/measurement/#distance_createWithMouse)]
|
|
98
|
+
*
|
|
99
|
+
* ````JavaScript
|
|
100
|
+
* import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from "xeokit-sdk.es.js";
|
|
101
|
+
*
|
|
102
|
+
* const viewer = new Viewer({
|
|
103
|
+
* canvasId: "myCanvas",
|
|
104
|
+
* transparent: true
|
|
105
|
+
* });
|
|
106
|
+
*
|
|
107
|
+
* viewer.scene.camera.eye = [-2.37, 18.97, -26.12];
|
|
108
|
+
* viewer.scene.camera.look = [10.97, 5.82, -11.22];
|
|
109
|
+
* viewer.scene.camera.up = [0.36, 0.83, 0.40];
|
|
110
|
+
*
|
|
111
|
+
* const xktLoader = new XKTLoaderPlugin(viewer);
|
|
112
|
+
*
|
|
113
|
+
* const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);
|
|
114
|
+
*
|
|
115
|
+
* const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {
|
|
116
|
+
* pointerLens : new PointerLens(viewer)
|
|
117
|
+
* })
|
|
118
|
+
*
|
|
119
|
+
* distanceMeasurementsControl.snapToVertex = true;
|
|
120
|
+
* distanceMeasurementsControl.snapToEdge = true;
|
|
121
|
+
*
|
|
122
|
+
* distanceMeasurementsControl.activate();
|
|
123
|
+
*
|
|
124
|
+
* const model = xktLoader.load({
|
|
125
|
+
* src: "./models/xkt/duplex/duplex.xkt"
|
|
126
|
+
* });
|
|
127
|
+
* ````
|
|
128
|
+
*
|
|
129
|
+
* ## Example 3: Configuring Measurement Units and Scale
|
|
130
|
+
*
|
|
131
|
+
* In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````"meters"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.
|
|
132
|
+
*
|
|
133
|
+
* The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.
|
|
134
|
+
*
|
|
135
|
+
* * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]
|
|
136
|
+
*
|
|
137
|
+
* ````JavaScript
|
|
138
|
+
* const metrics = viewer.scene.metrics;
|
|
139
|
+
|
|
140
|
+
* metrics.units = "meters";
|
|
141
|
+
* metrics.scale = 10.0;
|
|
142
|
+
* ````
|
|
143
|
+
*
|
|
144
|
+
* ## Example 4: Attaching Mouse Handlers
|
|
145
|
+
*
|
|
146
|
+
* In our fourth example, we'll attach event handlers to our plugin, to catch when the user
|
|
147
|
+
* hovers or right-clicks over our measurements.
|
|
148
|
+
*
|
|
149
|
+
* [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]
|
|
150
|
+
*
|
|
151
|
+
* ````javascript
|
|
152
|
+
* import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from "xeokit-sdk.es.js";
|
|
153
|
+
*
|
|
154
|
+
* const viewer = new Viewer({
|
|
155
|
+
* canvasId: "myCanvas",
|
|
156
|
+
* transparent: true
|
|
157
|
+
* });
|
|
158
|
+
*
|
|
159
|
+
* viewer.scene.camera.eye = [-2.37, 18.97, -26.12];
|
|
160
|
+
* viewer.scene.camera.look = [10.97, 5.82, -11.22];
|
|
161
|
+
* viewer.scene.camera.up = [0.36, 0.83, 0.40];
|
|
162
|
+
*
|
|
163
|
+
* const xktLoader = new XKTLoaderPlugin(viewer);
|
|
164
|
+
*
|
|
165
|
+
* const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);
|
|
166
|
+
*
|
|
167
|
+
* const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {
|
|
168
|
+
* pointerLens : new PointerLens(viewer)
|
|
169
|
+
* })
|
|
170
|
+
*
|
|
171
|
+
* distanceMeasurementsControl.snapToVertex = true;
|
|
172
|
+
* distanceMeasurementsControl.snapToEdge = true;
|
|
173
|
+
*
|
|
174
|
+
* distanceMeasurementsControl.activate();
|
|
175
|
+
*
|
|
176
|
+
* distanceMeasurements.on("mouseOver", (e) => {
|
|
177
|
+
* e.measurement.setHighlighted(true);
|
|
178
|
+
* });
|
|
179
|
+
*
|
|
180
|
+
* distanceMeasurements.on("mouseLeave", (e) => {
|
|
181
|
+
* e.measurement.setHighlighted(false);
|
|
182
|
+
* });
|
|
183
|
+
*
|
|
184
|
+
* distanceMeasurements.on("contextMenu", (e) => {
|
|
185
|
+
* // Show context menu
|
|
186
|
+
* e.event.preventDefault();
|
|
187
|
+
* });
|
|
188
|
+
*
|
|
189
|
+
* const model = xktLoader.load({
|
|
190
|
+
* src: "Duplex.xkt"
|
|
191
|
+
* });
|
|
192
|
+
*
|
|
193
|
+
* model.on("loaded", () => {
|
|
194
|
+
*
|
|
195
|
+
* const myMeasurement1 = distanceMeasurements.createMeasurement({
|
|
196
|
+
* id: "distanceMeasurement1",
|
|
197
|
+
* origin: {
|
|
198
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FLOH"],
|
|
199
|
+
* worldPos: [0.044, 5.998, 17.767]
|
|
200
|
+
* },
|
|
201
|
+
* target: {
|
|
202
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FLOH"],
|
|
203
|
+
* worldPos: [4.738, 3.172, 17.768]
|
|
204
|
+
* },
|
|
205
|
+
* visible: true,
|
|
206
|
+
* wireVisible: true
|
|
207
|
+
* });
|
|
208
|
+
*
|
|
209
|
+
* const myMeasurement2 = distanceMeasurements.createMeasurement({
|
|
210
|
+
* id: "distanceMeasurement2",
|
|
211
|
+
* origin: {
|
|
212
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FNr2"],
|
|
213
|
+
* worldPos: [0.457, 2.532, 17.766]
|
|
214
|
+
* },
|
|
215
|
+
* target: {
|
|
216
|
+
* entity: viewer.scene.objects["1CZILmCaHETO8tf3SgGEXu"],
|
|
217
|
+
* worldPos: [0.436, 0.001, 22.135]
|
|
218
|
+
* },
|
|
219
|
+
* visible: true,
|
|
220
|
+
* wireVisible: true
|
|
221
|
+
* });
|
|
222
|
+
* });
|
|
223
|
+
* ````
|
|
224
|
+
*/
|
|
225
|
+
class DistanceMeasurementsPlugin extends Plugin {
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* @constructor
|
|
229
|
+
* @param {Viewer} viewer The Viewer.
|
|
230
|
+
* @param {Object} [cfg] Plugin configuration.
|
|
231
|
+
* @param {String} [cfg.id="DistanceMeasurements"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.
|
|
232
|
+
* @param {Number} [cfg.labelMinAxisLength=25] The minimum length, in pixels, of an axis wire beyond which its label is shown.
|
|
233
|
+
* @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.
|
|
234
|
+
* @param {boolean} [cfg.defaultVisible=true] The default value of the DistanceMeasurements `visible` property.
|
|
235
|
+
* @param {boolean} [cfg.defaultOriginVisible=true] The default value of the DistanceMeasurements `originVisible` property.
|
|
236
|
+
* @param {boolean} [cfg.defaultTargetVisible=true] The default value of the DistanceMeasurements `targetVisible` property.
|
|
237
|
+
* @param {boolean} [cfg.defaultWireVisible=true] The default value of the DistanceMeasurements `wireVisible` property.
|
|
238
|
+
* @param {boolean} [cfg.defaultLabelsVisible=true] The default value of the DistanceMeasurements `labelsVisible` property.
|
|
239
|
+
* @param {boolean} [cfg.defaultAxisVisible=true] The default value of the DistanceMeasurements `axisVisible` property.
|
|
240
|
+
* @param {boolean} [cfg.defaultXAxisVisible=true] The default value of the DistanceMeasurements `xAxisVisible` property.
|
|
241
|
+
* @param {boolean} [cfg.defaultYAxisVisible=true] The default value of the DistanceMeasurements `yAxisVisible` property.
|
|
242
|
+
* @param {boolean} [cfg.defaultZAxisVisible=true] The default value of the DistanceMeasurements `zAxisVisible` property.
|
|
243
|
+
* @param {string} [cfg.defaultColor=#00BBFF] The default color of the length dots, wire and label.
|
|
244
|
+
* @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).
|
|
245
|
+
* @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.
|
|
246
|
+
*/
|
|
247
|
+
constructor(viewer, cfg = {}) {
|
|
248
|
+
|
|
249
|
+
super("DistanceMeasurements", viewer);
|
|
250
|
+
|
|
251
|
+
this._pointerLens = cfg.pointerLens;
|
|
252
|
+
|
|
253
|
+
this._container = cfg.container || document.body;
|
|
254
|
+
|
|
255
|
+
this._defaultControl = null;
|
|
256
|
+
|
|
257
|
+
this._measurements = {};
|
|
258
|
+
|
|
259
|
+
this.labelMinAxisLength = cfg.labelMinAxisLength;
|
|
260
|
+
|
|
261
|
+
this.defaultVisible = cfg.defaultVisible !== false;
|
|
262
|
+
this.defaultOriginVisible = cfg.defaultOriginVisible !== false;
|
|
263
|
+
this.defaultTargetVisible = cfg.defaultTargetVisible !== false;
|
|
264
|
+
this.defaultWireVisible = cfg.defaultWireVisible !== false;
|
|
265
|
+
this.defaultLabelsVisible = cfg.defaultLabelsVisible !== false;
|
|
266
|
+
this.defaultAxisVisible = cfg.defaultAxisVisible !== false;
|
|
267
|
+
this.defaultXAxisVisible = cfg.defaultXAxisVisible !== false;
|
|
268
|
+
this.defaultYAxisVisible = cfg.defaultYAxisVisible !== false;
|
|
269
|
+
this.defaultZAxisVisible = cfg.defaultZAxisVisible !== false;
|
|
270
|
+
this.defaultColor = cfg.defaultColor !== undefined ? cfg.defaultColor : "#00BBFF";
|
|
271
|
+
this.zIndex = cfg.zIndex || 10000;
|
|
272
|
+
|
|
273
|
+
this._onMouseOver = (event, measurement) => {
|
|
274
|
+
this.fire("mouseOver", {
|
|
275
|
+
plugin: this,
|
|
276
|
+
distanceMeasurement: measurement,
|
|
277
|
+
measurement,
|
|
278
|
+
event
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
this._onMouseLeave = (event, measurement) => {
|
|
283
|
+
this.fire("mouseLeave", {
|
|
284
|
+
plugin: this,
|
|
285
|
+
distanceMeasurement: measurement,
|
|
286
|
+
measurement,
|
|
287
|
+
event
|
|
288
|
+
});
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
this._onContextMenu = (event, measurement) => {
|
|
292
|
+
this.fire("contextMenu", {
|
|
293
|
+
plugin: this,
|
|
294
|
+
distanceMeasurement: measurement,
|
|
295
|
+
measurement,
|
|
296
|
+
event
|
|
297
|
+
});
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Gets the plugin's HTML container element, if any.
|
|
303
|
+
* @returns {*|HTMLElement|HTMLElement}
|
|
304
|
+
*/
|
|
305
|
+
getContainerElement() {
|
|
306
|
+
return this._container;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* @private
|
|
311
|
+
*/
|
|
312
|
+
send(name, value) {
|
|
313
|
+
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Gets the PointerLens attached to this DistanceMeasurementsPlugin.
|
|
318
|
+
* @returns {PointerCircle}
|
|
319
|
+
*/
|
|
320
|
+
get pointerLens() {
|
|
321
|
+
return this._pointerLens;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Gets the default {@link DistanceMeasurementsControl}.
|
|
326
|
+
*
|
|
327
|
+
* @type {DistanceMeasurementsControl}
|
|
328
|
+
* @deprecated
|
|
329
|
+
*/
|
|
330
|
+
get control() {
|
|
331
|
+
if (!this._defaultControl) {
|
|
332
|
+
this._defaultControl = new DistanceMeasurementsMouseControl(this, {});
|
|
333
|
+
}
|
|
334
|
+
return this._defaultControl;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Gets the existing {@link DistanceMeasurement}s, each mapped to its {@link DistanceMeasurement#id}.
|
|
339
|
+
*
|
|
340
|
+
* @type {{String:DistanceMeasurement}}
|
|
341
|
+
*/
|
|
342
|
+
get measurements() {
|
|
343
|
+
return this._measurements;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Sets the minimum length, in pixels, of an axis wire beyond which its label is shown.
|
|
348
|
+
*
|
|
349
|
+
* The axis wire's label is not shown when its length is less than this value.
|
|
350
|
+
*
|
|
351
|
+
* This is ````25```` pixels by default.
|
|
352
|
+
*
|
|
353
|
+
* Must not be less than ````1````.
|
|
354
|
+
*
|
|
355
|
+
* @type {number}
|
|
356
|
+
*/
|
|
357
|
+
set labelMinAxisLength(labelMinAxisLength) {
|
|
358
|
+
if (labelMinAxisLength < 1) {
|
|
359
|
+
this.error("labelMinAxisLength must be >= 1; defaulting to 25");
|
|
360
|
+
labelMinAxisLength = 25;
|
|
361
|
+
}
|
|
362
|
+
this._labelMinAxisLength = labelMinAxisLength || 25;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Gets the minimum length, in pixels, of an axis wire beyond which its label is shown.
|
|
367
|
+
* @returns {number}
|
|
368
|
+
*/
|
|
369
|
+
get labelMinAxisLength() {
|
|
370
|
+
return this._labelMinAxisLength;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Creates a {@link DistanceMeasurement}.
|
|
375
|
+
*
|
|
376
|
+
* The DistanceMeasurement is then registered by {@link DistanceMeasurement#id} in {@link DistanceMeasurementsPlugin#measurements}.
|
|
377
|
+
*
|
|
378
|
+
* @param {Object} params {@link DistanceMeasurement} configuration.
|
|
379
|
+
* @param {String} params.id Unique ID to assign to {@link DistanceMeasurement#id}. The DistanceMeasurement will be registered by this in {@link DistanceMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.
|
|
380
|
+
* @param {Number[]} params.origin.worldPos Origin World-space 3D position.
|
|
381
|
+
* @param {Entity} params.origin.entity Origin Entity.
|
|
382
|
+
* @param {Number[]} params.target.worldPos Target World-space 3D position.
|
|
383
|
+
* @param {Entity} params.target.entity Target Entity.
|
|
384
|
+
* @param {Boolean} [params.visible=true] Whether to initially show the {@link DistanceMeasurement}.
|
|
385
|
+
* @param {Boolean} [params.originVisible=true] Whether to initially show the {@link DistanceMeasurement} origin.
|
|
386
|
+
* @param {Boolean} [params.targetVisible=true] Whether to initially show the {@link DistanceMeasurement} target.
|
|
387
|
+
* @param {Boolean} [params.wireVisible=true] Whether to initially show the direct point-to-point wire between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.
|
|
388
|
+
* @param {Boolean} [params.axisVisible=true] Whether to initially show the axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.
|
|
389
|
+
* @param {Boolean} [params.xAxisVisible=true] Whether to initially show the X-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.
|
|
390
|
+
* @param {Boolean} [params.yAxisVisible=true] Whether to initially show the Y-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.
|
|
391
|
+
* @param {Boolean} [params.zAxisVisible=true] Whether to initially show the Z-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.
|
|
392
|
+
* @param {Boolean} [params.labelsVisible=true] Whether to initially show the labels.
|
|
393
|
+
* @param {string} [params.color] The color of the length dot, wire and label.
|
|
394
|
+
* @returns {DistanceMeasurement} The new {@link DistanceMeasurement}.
|
|
395
|
+
*/
|
|
396
|
+
createMeasurement(params = {}) {
|
|
397
|
+
if (this.viewer.scene.components[params.id]) {
|
|
398
|
+
this.error("Viewer scene component with this ID already exists: " + params.id);
|
|
399
|
+
delete params.id;
|
|
400
|
+
}
|
|
401
|
+
const origin = params.origin;
|
|
402
|
+
const target = params.target;
|
|
403
|
+
const measurement = new DistanceMeasurement(this, {
|
|
404
|
+
id: params.id,
|
|
405
|
+
plugin: this,
|
|
406
|
+
container: this._container,
|
|
407
|
+
origin: {
|
|
408
|
+
entity: origin.entity,
|
|
409
|
+
worldPos: origin.worldPos
|
|
410
|
+
},
|
|
411
|
+
target: {
|
|
412
|
+
entity: target.entity,
|
|
413
|
+
worldPos: target.worldPos
|
|
414
|
+
},
|
|
415
|
+
visible: params.visible,
|
|
416
|
+
wireVisible: params.wireVisible,
|
|
417
|
+
axisVisible: params.axisVisible !== false && this.defaultAxisVisible !== false,
|
|
418
|
+
xAxisVisible: params.xAxisVisible !== false && this.defaultXAxisVisible !== false,
|
|
419
|
+
yAxisVisible: params.yAxisVisible !== false && this.defaultYAxisVisible !== false,
|
|
420
|
+
zAxisVisible: params.zAxisVisible !== false && this.defaultZAxisVisible !== false,
|
|
421
|
+
labelsVisible: params.labelsVisible !== false && this.defaultLabelsVisible !== false,
|
|
422
|
+
originVisible: params.originVisible,
|
|
423
|
+
targetVisible: params.targetVisible,
|
|
424
|
+
color: params.color,
|
|
425
|
+
onMouseOver: this._onMouseOver,
|
|
426
|
+
onMouseLeave: this._onMouseLeave,
|
|
427
|
+
onContextMenu: this._onContextMenu
|
|
428
|
+
});
|
|
429
|
+
this._measurements[measurement.id] = measurement;
|
|
430
|
+
measurement.on("destroyed", () => {
|
|
431
|
+
delete this._measurements[measurement.id];
|
|
432
|
+
});
|
|
433
|
+
this.fire("measurementCreated", measurement);
|
|
434
|
+
return measurement;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Destroys a {@link DistanceMeasurement}.
|
|
439
|
+
*
|
|
440
|
+
* @param {String} id ID of DistanceMeasurement to destroy.
|
|
441
|
+
*/
|
|
442
|
+
destroyMeasurement(id) {
|
|
443
|
+
const measurement = this._measurements[id];
|
|
444
|
+
if (!measurement) {
|
|
445
|
+
this.log("DistanceMeasurement not found: " + id);
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
measurement.destroy();
|
|
449
|
+
this.fire("measurementDestroyed", measurement);
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
/**
|
|
453
|
+
* Shows all or hides the angle label of each {@link DistanceMeasurement}.
|
|
454
|
+
*
|
|
455
|
+
* @param {Boolean} labelsShown Whether or not to show the labels.
|
|
456
|
+
*/
|
|
457
|
+
setLabelsShown(labelsShown) {
|
|
458
|
+
for (const [key, measurement] of Object.entries(this.measurements)) {
|
|
459
|
+
measurement.labelShown = labelsShown;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/**
|
|
464
|
+
* Shows all or hides the axis wires of each {@link DistanceMeasurement}.
|
|
465
|
+
*
|
|
466
|
+
* @param {Boolean} labelsShown Whether or not to show the axis wires.
|
|
467
|
+
*/
|
|
468
|
+
setAxisVisible(axisVisible) {
|
|
469
|
+
for (const [key, measurement] of Object.entries(this.measurements)) {
|
|
470
|
+
measurement.axisVisible = axisVisible;
|
|
471
|
+
}
|
|
472
|
+
this.defaultAxisVisible = axisVisible;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Gets if the axis wires of each {@link DistanceMeasurement} are visible.
|
|
477
|
+
*
|
|
478
|
+
* @returns {Boolean} Whether or not the axis wires are visible.
|
|
479
|
+
*/
|
|
480
|
+
getAxisVisible() {
|
|
481
|
+
return this.defaultAxisVisible;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
/**
|
|
485
|
+
* Destroys all {@link DistanceMeasurement}s.
|
|
486
|
+
*/
|
|
487
|
+
clear() {
|
|
488
|
+
const ids = Object.keys(this._measurements);
|
|
489
|
+
for (var i = 0, len = ids.length; i < len; i++) {
|
|
490
|
+
this.destroyMeasurement(ids[i]);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
/**
|
|
495
|
+
* Destroys this DistanceMeasurementsPlugin.
|
|
496
|
+
*
|
|
497
|
+
* Destroys all {@link DistanceMeasurement}s first.
|
|
498
|
+
*/
|
|
499
|
+
destroy() {
|
|
500
|
+
this.clear();
|
|
501
|
+
super.destroy();
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
export {DistanceMeasurementsPlugin}
|