@xeokit/xeokit-sdk 2.4.0-alpha-81 → 2.4.0-alpha-82
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/package.json +2 -1
- package/src/extras/ContextMenu/ContextMenu.js +907 -0
- package/src/extras/ContextMenu/index.js +1 -0
- package/src/extras/index.js +1 -0
- package/src/index.js +3 -0
- package/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +658 -0
- package/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +418 -0
- package/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +400 -0
- package/src/plugins/AngleMeasurementsPlugin/index.js +1 -0
- package/src/plugins/AnnotationsPlugin/Annotation.js +368 -0
- package/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +583 -0
- package/src/plugins/AnnotationsPlugin/index.js +1 -0
- package/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
- package/src/plugins/AxisGizmoPlugin/index.js +1 -0
- package/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +955 -0
- package/src/plugins/BCFViewpointsPlugin/index.js +1 -0
- package/src/plugins/CityJSONLoaderPlugin/CityJSONDefaultDataSource.js +29 -0
- package/src/plugins/CityJSONLoaderPlugin/CityJSONLoaderPlugin.js +751 -0
- package/src/plugins/CityJSONLoaderPlugin/index.js +1 -0
- package/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +870 -0
- package/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +376 -0
- package/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +454 -0
- package/src/plugins/DistanceMeasurementsPlugin/index.js +1 -0
- package/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesControl.js +639 -0
- package/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesPlugin.js +436 -0
- package/src/plugins/FaceAlignedSectionPlanesPlugin/Overview.js +247 -0
- package/src/plugins/FaceAlignedSectionPlanesPlugin/Plane.js +167 -0
- package/src/plugins/FaceAlignedSectionPlanesPlugin/index.js +1 -0
- package/src/plugins/FastNavPlugin/FastNavPlugin.js +429 -0
- package/src/plugins/FastNavPlugin/index.js +1 -0
- package/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +139 -0
- package/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +421 -0
- package/src/plugins/GLTFLoaderPlugin/GLTFSceneModelLoader.js +669 -0
- package/src/plugins/GLTFLoaderPlugin/index.js +2 -0
- package/src/plugins/LASLoaderPlugin/LASDefaultDataSource.js +58 -0
- package/src/plugins/LASLoaderPlugin/LASLoaderPlugin.js +518 -0
- package/src/plugins/LASLoaderPlugin/index.js +1 -0
- package/src/plugins/LASLoaderPlugin/loadLASHeader.js +183 -0
- package/src/plugins/NavCubePlugin/CubeTextureCanvas.js +289 -0
- package/src/plugins/NavCubePlugin/NavCubePlugin.js +752 -0
- package/src/plugins/NavCubePlugin/index.js +1 -0
- package/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
- package/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
- package/src/plugins/OBJLoaderPlugin/index.js +1 -0
- package/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
- package/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +274 -0
- package/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
- package/src/plugins/STLLoaderPlugin/index.js +2 -0
- package/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
- package/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
- package/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
- package/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +404 -0
- package/src/plugins/SectionPlanesPlugin/index.js +1 -0
- package/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
- package/src/plugins/SkyboxesPlugin/index.js +1 -0
- package/src/plugins/StoreyViewsPlugin/IFCStoreyPlanObjectStates.js +77 -0
- package/src/plugins/StoreyViewsPlugin/Storey.js +61 -0
- package/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
- package/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +825 -0
- package/src/plugins/StoreyViewsPlugin/index.js +1 -0
- package/src/plugins/TreeViewPlugin/TreeViewNode.js +97 -0
- package/src/plugins/TreeViewPlugin/TreeViewPlugin.js +1424 -0
- package/src/plugins/TreeViewPlugin/index.js +1 -0
- package/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
- package/src/plugins/ViewCullPlugin/index.js +1 -0
- package/src/plugins/WebIFCLoaderPlugin/WebIFCDefaultDataSource.js +58 -0
- package/src/plugins/WebIFCLoaderPlugin/WebIFCLoaderPlugin.js +942 -0
- package/src/plugins/WebIFCLoaderPlugin/index.js +1 -0
- package/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +95 -0
- package/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +1107 -0
- package/src/plugins/XKTLoaderPlugin/index.js +2 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +169 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV10.js +656 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +230 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +223 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +283 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +246 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +439 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +563 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV9.js +514 -0
- package/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +2 -0
- package/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
- package/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
- package/src/plugins/XML3DLoaderPlugin/index.js +1 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
- package/src/plugins/index.js +21 -0
- package/src/plugins/lib/culling/ObjectCullStates.js +208 -0
- package/src/plugins/lib/earcut.js +677 -0
- package/src/plugins/lib/html/Dot.js +145 -0
- package/src/plugins/lib/html/Label.js +156 -0
- package/src/plugins/lib/html/Wire.js +191 -0
- package/src/viewer/Configs.js +79 -0
- package/src/viewer/Plugin.js +224 -0
- package/src/viewer/Viewer.js +535 -0
- package/src/viewer/index.js +5 -0
- package/src/viewer/localization/LocaleService.js +475 -0
- package/src/viewer/metadata/IFCObjectDefaultColors.js +162 -0
- package/src/viewer/metadata/IFCObjectDefaults.js +17 -0
- package/src/viewer/metadata/MetaModel.js +389 -0
- package/src/viewer/metadata/MetaObject.js +218 -0
- package/src/viewer/metadata/MetaScene.js +336 -0
- package/src/viewer/metadata/Property.js +55 -0
- package/src/viewer/metadata/PropertySet.js +77 -0
- package/src/viewer/scene/Bitmap/Bitmap.js +470 -0
- package/src/viewer/scene/Bitmap/index.js +1 -0
- package/src/viewer/scene/CameraControl/CameraControl.js +1737 -0
- package/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
- package/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
- package/src/viewer/scene/CameraControl/lib/controllers/PickController.js +264 -0
- package/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +384 -0
- package/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
- package/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +183 -0
- package/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
- package/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +345 -0
- package/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +372 -0
- package/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +269 -0
- package/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +235 -0
- package/src/viewer/scene/Component.js +907 -0
- package/src/viewer/scene/Entity.js +502 -0
- package/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
- package/src/viewer/scene/ImagePlane/index.js +1 -0
- package/src/viewer/scene/LineSet/LineSet.js +164 -0
- package/src/viewer/scene/LineSet/index.js +1 -0
- package/src/viewer/scene/camera/Camera.js +912 -0
- package/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
- package/src/viewer/scene/camera/CameraPath.js +194 -0
- package/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
- package/src/viewer/scene/camera/CustomProjection.js +149 -0
- package/src/viewer/scene/camera/Frustum.js +316 -0
- package/src/viewer/scene/camera/Ortho.js +286 -0
- package/src/viewer/scene/camera/Perspective.js +304 -0
- package/src/viewer/scene/camera/index.js +2 -0
- package/src/viewer/scene/canvas/Canvas.js +492 -0
- package/src/viewer/scene/canvas/Spinner.js +323 -0
- package/src/viewer/scene/constants/constants.js +371 -0
- package/src/viewer/scene/core.js +233 -0
- package/src/viewer/scene/geometry/Geometry.js +33 -0
- package/src/viewer/scene/geometry/ReadableGeometry.js +682 -0
- package/src/viewer/scene/geometry/VBOGeometry.js +319 -0
- package/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
- package/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
- package/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
- package/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
- package/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
- package/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
- package/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
- package/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
- package/src/viewer/scene/geometry/builders/index.js +8 -0
- package/src/viewer/scene/geometry/index.js +4 -0
- package/src/viewer/scene/geometry/loaders/index.js +2 -0
- package/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
- package/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
- package/src/viewer/scene/index.js +23 -0
- package/src/viewer/scene/input/Input.js +1325 -0
- package/src/viewer/scene/libs/k3d.js +1032 -0
- package/src/viewer/scene/lights/AmbientLight.js +175 -0
- package/src/viewer/scene/lights/CubeTexture.js +156 -0
- package/src/viewer/scene/lights/DirLight.js +314 -0
- package/src/viewer/scene/lights/Light.js +29 -0
- package/src/viewer/scene/lights/LightMap.js +77 -0
- package/src/viewer/scene/lights/PointLight.js +395 -0
- package/src/viewer/scene/lights/ReflectionMap.js +79 -0
- package/src/viewer/scene/lights/Shadow.js +138 -0
- package/src/viewer/scene/lights/index.js +5 -0
- package/src/viewer/scene/lod/LOD.js +162 -0
- package/src/viewer/scene/lod/LODCullingManager.js +83 -0
- package/src/viewer/scene/lod/LODState.js +125 -0
- package/src/viewer/scene/lod/index.js +1 -0
- package/src/viewer/scene/marker/Marker.js +383 -0
- package/src/viewer/scene/marker/SpriteMarker.js +356 -0
- package/src/viewer/scene/marker/index.js +2 -0
- package/src/viewer/scene/materials/EdgeMaterial.js +359 -0
- package/src/viewer/scene/materials/EmphasisMaterial.js +613 -0
- package/src/viewer/scene/materials/Fresnel.js +222 -0
- package/src/viewer/scene/materials/LambertMaterial.js +378 -0
- package/src/viewer/scene/materials/LinesMaterial.js +169 -0
- package/src/viewer/scene/materials/Material.js +39 -0
- package/src/viewer/scene/materials/MetallicMaterial.js +820 -0
- package/src/viewer/scene/materials/PhongMaterial.js +860 -0
- package/src/viewer/scene/materials/PointsMaterial.js +409 -0
- package/src/viewer/scene/materials/SpecularMaterial.js +807 -0
- package/src/viewer/scene/materials/Texture.js +513 -0
- package/src/viewer/scene/materials/index.js +8 -0
- package/src/viewer/scene/math/Frustum.js +118 -0
- package/src/viewer/scene/math/buildEdgeIndices.js +162 -0
- package/src/viewer/scene/math/geometryCompressionUtils.js +365 -0
- package/src/viewer/scene/math/index.js +3 -0
- package/src/viewer/scene/math/math.js +5363 -0
- package/src/viewer/scene/math/rtcCoords.js +139 -0
- package/src/viewer/scene/mementos/CameraMemento.js +200 -0
- package/src/viewer/scene/mementos/ModelMemento.js +263 -0
- package/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
- package/src/viewer/scene/mementos/index.js +3 -0
- package/src/viewer/scene/mesh/Mesh.js +2202 -0
- package/src/viewer/scene/mesh/draw/DrawRenderer.js +986 -0
- package/src/viewer/scene/mesh/draw/DrawShaderSource.js +1570 -0
- package/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +249 -0
- package/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +158 -0
- package/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +276 -0
- package/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +261 -0
- package/src/viewer/scene/mesh/index.js +1 -0
- package/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +207 -0
- package/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +156 -0
- package/src/viewer/scene/mesh/pick/PickMeshRenderer.js +210 -0
- package/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +142 -0
- package/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +186 -0
- package/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +116 -0
- package/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
- package/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +98 -0
- package/src/viewer/scene/metriqs/Metriqs.js +259 -0
- package/src/viewer/scene/model/ENTITY_FLAGS.js +21 -0
- package/src/viewer/scene/model/PerformanceModel.js +26 -0
- package/src/viewer/scene/model/RENDER_PASSES.js +34 -0
- package/src/viewer/scene/model/SceneModel.js +3817 -0
- package/src/viewer/scene/model/SceneModelEntity.js +478 -0
- package/src/viewer/scene/model/SceneModelMesh.js +160 -0
- package/src/viewer/scene/model/SceneModelTexture.js +17 -0
- package/src/viewer/scene/model/SceneModelTextureSet.js +17 -0
- package/src/viewer/scene/model/VBOSceneModel.js +26 -0
- package/src/viewer/scene/model/compression.js +227 -0
- package/src/viewer/scene/model/dtx/triangles/BindableDataTexture.js +31 -0
- package/src/viewer/scene/model/dtx/triangles/DataTextureGenerator.js +631 -0
- package/src/viewer/scene/model/dtx/triangles/DataTextureState.js +288 -0
- package/src/viewer/scene/model/dtx/triangles/TrianglesDataTextureBuffer.js +31 -0
- package/src/viewer/scene/model/dtx/triangles/TrianglesDataTextureLayer.js +1329 -0
- package/src/viewer/scene/model/dtx/triangles/TrianglesDataTextureRenderers.js +278 -0
- package/src/viewer/scene/model/dtx/triangles/calculateUniquePositions.js +126 -0
- package/src/viewer/scene/model/dtx/triangles/dataTextureRamStats.js +54 -0
- package/src/viewer/scene/model/dtx/triangles/rebucketPositions.js +347 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureColorRenderer.js +633 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureDepthRenderer.js +475 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureEdgesColorRenderer.js +426 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureEdgesRenderer.js +430 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureNormalsRenderer.js +341 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureOcclusionRenderer.js +442 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickDepthRenderer.js +451 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickMeshRenderer.js +436 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickNormalsFlatRenderer.js +502 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickNormalsRenderer.js +430 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSilhouetteRenderer.js +469 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthBufInitRenderer.js +451 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthRenderer.js +424 -0
- package/src/viewer/scene/model/index.js +3 -0
- package/src/viewer/scene/model/vbo/ScratchMemory.js +63 -0
- package/src/viewer/scene/model/vbo/VBOSceneModelRenderers.js +805 -0
- package/src/viewer/scene/model/vbo/float16.js +760 -0
- package/src/viewer/scene/model/vbo/linesBatching/LinesBatchingBuffer.js +21 -0
- package/src/viewer/scene/model/vbo/linesBatching/LinesBatchingLayer.js +744 -0
- package/src/viewer/scene/model/vbo/linesBatching/LinesBatchingRenderers.js +71 -0
- package/src/viewer/scene/model/vbo/linesBatching/renderers/LinesBatchingColorRenderer.js +116 -0
- package/src/viewer/scene/model/vbo/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js +126 -0
- package/src/viewer/scene/model/vbo/linesInstancing/LinesInstancingLayer.js +653 -0
- package/src/viewer/scene/model/vbo/linesInstancing/LinesInstancingRenderers.js +71 -0
- package/src/viewer/scene/model/vbo/linesInstancing/renderers/LinesInstancingColorRenderer.js +150 -0
- package/src/viewer/scene/model/vbo/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js +128 -0
- package/src/viewer/scene/model/vbo/pointsBatching/PointsBatchingBuffer.js +22 -0
- package/src/viewer/scene/model/vbo/pointsBatching/PointsBatchingLayer.js +753 -0
- package/src/viewer/scene/model/vbo/pointsBatching/PointsBatchingRenderers.js +116 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingColorRenderer.js +167 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js +135 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js +154 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js +146 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingShadowRenderer.js +108 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js +147 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/PointsInstancingLayer.js +684 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/PointsInstancingRenderers.js +146 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingColorRenderer.js +174 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingDepthRenderer.js +156 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingOcclusionRenderer.js +151 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingPickDepthRenderer.js +167 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingPickMeshRenderer.js +151 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingShadowRenderer.js +121 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingSilhouetteRenderer.js +156 -0
- package/src/viewer/scene/model/vbo/snapBatching/SnapBatchingDepthBufInitRenderer.js +351 -0
- package/src/viewer/scene/model/vbo/snapBatching/SnapBatchingDepthRenderer.js +365 -0
- package/src/viewer/scene/model/vbo/snapBatching/SnapBatchingRenderers.js +71 -0
- package/src/viewer/scene/model/vbo/snapInstancing/SnapInstancingDepthBufInitRenderer.js +381 -0
- package/src/viewer/scene/model/vbo/snapInstancing/SnapInstancingDepthRenderer.js +374 -0
- package/src/viewer/scene/model/vbo/snapInstancing/SnapInstancingRenderers.js +71 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/TrianglesBatchingBuffer.js +26 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/TrianglesBatchingLayer.js +1322 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/TrianglesBatchingRenderers.js +322 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingColorRenderer.js +240 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingColorTextureRenderer.js +271 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingDepthRenderer.js +127 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingEdgesColorRenderer.js +129 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingEdgesRenderer.js +134 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingFlatColorRenderer.js +237 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingNormalsRenderer.js +139 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingOcclusionRenderer.js +127 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPBRRenderer.js +563 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickDepthRenderer.js +143 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickMeshRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickNormalsFlatRenderer.js +119 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickNormalsRenderer.js +129 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingShadowRenderer.js +108 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingSilhouetteRenderer.js +137 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/TrianglesInstancingLayer.js +1167 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/TrianglesInstancingRenderers.js +322 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingColorRenderer.js +253 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingColorTextureRenderer.js +278 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingDepthRenderer.js +125 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingEdgesColorRenderer.js +131 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingEdgesRenderer.js +134 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingFlatColorRenderer.js +244 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingFlatNormalsRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingNormalsRenderer.js +140 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingOcclusionRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPBRRenderer.js +563 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickDepthRenderer.js +148 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickMeshRenderer.js +135 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickNormalsFlatRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickNormalsRenderer.js +144 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingShadowRenderer.js +113 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingSilhouetteRenderer.js +141 -0
- package/src/viewer/scene/nodes/Node.js +1383 -0
- package/src/viewer/scene/nodes/index.js +1 -0
- package/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
- package/src/viewer/scene/paths/Curve.js +183 -0
- package/src/viewer/scene/paths/Path.js +239 -0
- package/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
- package/src/viewer/scene/paths/SplineCurve.js +133 -0
- package/src/viewer/scene/paths/index.js +5 -0
- package/src/viewer/scene/postfx/SAO.js +543 -0
- package/src/viewer/scene/scene/Scene.js +2627 -0
- package/src/viewer/scene/sectionPlane/SectionPlane.js +194 -0
- package/src/viewer/scene/sectionPlane/index.js +1 -0
- package/src/viewer/scene/skybox/Skybox.js +123 -0
- package/src/viewer/scene/skybox/index.js +1 -0
- package/src/viewer/scene/stats.js +44 -0
- package/src/viewer/scene/utils/Cache.js +29 -0
- package/src/viewer/scene/utils/FileLoader.js +160 -0
- package/src/viewer/scene/utils/Loader.js +55 -0
- package/src/viewer/scene/utils/LoadingManager.js +86 -0
- package/src/viewer/scene/utils/Map.js +45 -0
- package/src/viewer/scene/utils/Queue.js +56 -0
- package/src/viewer/scene/utils/WorkerPool.js +73 -0
- package/src/viewer/scene/utils/index.js +6 -0
- package/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/KTX2TextureTranscoder.js +650 -0
- package/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/index.js +1 -0
- package/src/viewer/scene/utils/textureTranscoders/TextureTranscoder.js +31 -0
- package/src/viewer/scene/utils/textureTranscoders/index.js +2 -0
- package/src/viewer/scene/utils.js +452 -0
- package/src/viewer/scene/vfc/VFC.js +82 -0
- package/src/viewer/scene/vfc/VFCManager.js +54 -0
- package/src/viewer/scene/vfc/VFCState.js +391 -0
- package/src/viewer/scene/vfc/cluster-helper.js +134 -0
- package/src/viewer/scene/vfc/index.js +1 -0
- package/src/viewer/scene/vfc/rbush3d.js +848 -0
- package/src/viewer/scene/vfc/xeokit-cluster.js +418 -0
- package/src/viewer/scene/viewport/Viewport.js +212 -0
- package/src/viewer/scene/webgl/ArrayBuf.js +121 -0
- package/src/viewer/scene/webgl/Attribute.js +23 -0
- package/src/viewer/scene/webgl/Drawable.js +270 -0
- package/src/viewer/scene/webgl/FrameContext.js +313 -0
- package/src/viewer/scene/webgl/PickResult.js +339 -0
- package/src/viewer/scene/webgl/Pickable.js +69 -0
- package/src/viewer/scene/webgl/Program.js +181 -0
- package/src/viewer/scene/webgl/RenderBuffer.js +350 -0
- package/src/viewer/scene/webgl/RenderBufferManager.js +34 -0
- package/src/viewer/scene/webgl/RenderFlags.js +203 -0
- package/src/viewer/scene/webgl/RenderState.js +40 -0
- package/src/viewer/scene/webgl/Renderer.js +1654 -0
- package/src/viewer/scene/webgl/Sampler.js +18 -0
- package/src/viewer/scene/webgl/Shader.js +49 -0
- package/src/viewer/scene/webgl/Texture2D.js +442 -0
- package/src/viewer/scene/webgl/convertConstant.js +244 -0
- package/src/viewer/scene/webgl/getExtension.js +32 -0
- package/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
- package/src/viewer/scene/webgl/occlusion/OcclusionTester.js +426 -0
- package/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +324 -0
- package/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +376 -0
- package/src/viewer/scene/webgl/webglEnums.js +61 -0
- package/src/viewer/scene/webglInfo.js +47 -0
|
@@ -0,0 +1,613 @@
|
|
|
1
|
+
import {Material} from './Material.js';
|
|
2
|
+
import {RenderState} from '../webgl/RenderState.js';
|
|
3
|
+
|
|
4
|
+
const PRESETS = {
|
|
5
|
+
"default": {
|
|
6
|
+
fill: true,
|
|
7
|
+
fillColor: [0.4, 0.4, 0.4],
|
|
8
|
+
fillAlpha: 0.2,
|
|
9
|
+
edges: true,
|
|
10
|
+
edgeColor: [0.2, 0.2, 0.2],
|
|
11
|
+
edgeAlpha: 0.5,
|
|
12
|
+
edgeWidth: 1
|
|
13
|
+
},
|
|
14
|
+
"defaultWhiteBG": {
|
|
15
|
+
fill: true,
|
|
16
|
+
fillColor: [1, 1, 1],
|
|
17
|
+
fillAlpha: 0.6,
|
|
18
|
+
edgeColor: [0.2, 0.2, 0.2],
|
|
19
|
+
edgeAlpha: 1.0,
|
|
20
|
+
edgeWidth: 1
|
|
21
|
+
},
|
|
22
|
+
"defaultLightBG": {
|
|
23
|
+
fill: true,
|
|
24
|
+
fillColor: [0.4, 0.4, 0.4],
|
|
25
|
+
fillAlpha: 0.2,
|
|
26
|
+
edges: true,
|
|
27
|
+
edgeColor: [0.2, 0.2, 0.2],
|
|
28
|
+
edgeAlpha: 0.5,
|
|
29
|
+
edgeWidth: 1
|
|
30
|
+
},
|
|
31
|
+
"defaultDarkBG": {
|
|
32
|
+
fill: true,
|
|
33
|
+
fillColor: [0.4, 0.4, 0.4],
|
|
34
|
+
fillAlpha: 0.2,
|
|
35
|
+
edges: true,
|
|
36
|
+
edgeColor: [0.5, 0.5, 0.5],
|
|
37
|
+
edgeAlpha: 0.5,
|
|
38
|
+
edgeWidth: 1
|
|
39
|
+
},
|
|
40
|
+
"phosphorous": {
|
|
41
|
+
fill: true,
|
|
42
|
+
fillColor: [0.0, 0.0, 0.0],
|
|
43
|
+
fillAlpha: 0.4,
|
|
44
|
+
edges: true,
|
|
45
|
+
edgeColor: [0.9, 0.9, 0.9],
|
|
46
|
+
edgeAlpha: 0.5,
|
|
47
|
+
edgeWidth: 2
|
|
48
|
+
},
|
|
49
|
+
"sunset": {
|
|
50
|
+
fill: true,
|
|
51
|
+
fillColor: [0.9, 0.9, 0.6],
|
|
52
|
+
fillAlpha: 0.2,
|
|
53
|
+
edges: true,
|
|
54
|
+
edgeColor: [0.9, 0.9, 0.9],
|
|
55
|
+
edgeAlpha: 0.5,
|
|
56
|
+
edgeWidth: 1
|
|
57
|
+
},
|
|
58
|
+
"vectorscope": {
|
|
59
|
+
fill: true,
|
|
60
|
+
fillColor: [0.0, 0.0, 0.0],
|
|
61
|
+
fillAlpha: 0.7,
|
|
62
|
+
edges: true,
|
|
63
|
+
edgeColor: [0.2, 1.0, 0.2],
|
|
64
|
+
edgeAlpha: 1,
|
|
65
|
+
edgeWidth: 2
|
|
66
|
+
},
|
|
67
|
+
"battlezone": {
|
|
68
|
+
fill: true,
|
|
69
|
+
fillColor: [0.0, 0.0, 0.0],
|
|
70
|
+
fillAlpha: 1.0,
|
|
71
|
+
edges: true,
|
|
72
|
+
edgeColor: [0.2, 1.0, 0.2],
|
|
73
|
+
edgeAlpha: 1,
|
|
74
|
+
edgeWidth: 3
|
|
75
|
+
},
|
|
76
|
+
"sepia": {
|
|
77
|
+
fill: true,
|
|
78
|
+
fillColor: [0.970588207244873, 0.7965892553329468, 0.6660899519920349],
|
|
79
|
+
fillAlpha: 0.4,
|
|
80
|
+
edges: true,
|
|
81
|
+
edgeColor: [0.529411792755127, 0.4577854573726654, 0.4100345969200134],
|
|
82
|
+
edgeAlpha: 1.0,
|
|
83
|
+
edgeWidth: 1
|
|
84
|
+
},
|
|
85
|
+
"yellowHighlight": {
|
|
86
|
+
fill: true,
|
|
87
|
+
fillColor: [1.0, 1.0, 0.0],
|
|
88
|
+
fillAlpha: 0.5,
|
|
89
|
+
edges: true,
|
|
90
|
+
edgeColor: [0.529411792755127, 0.4577854573726654, 0.4100345969200134],
|
|
91
|
+
edgeAlpha: 1.0,
|
|
92
|
+
edgeWidth: 1
|
|
93
|
+
},
|
|
94
|
+
"greenSelected": {
|
|
95
|
+
fill: true,
|
|
96
|
+
fillColor: [0.0, 1.0, 0.0],
|
|
97
|
+
fillAlpha: 0.5,
|
|
98
|
+
edges: true,
|
|
99
|
+
edgeColor: [0.4577854573726654, 0.529411792755127, 0.4100345969200134],
|
|
100
|
+
edgeAlpha: 1.0,
|
|
101
|
+
edgeWidth: 1
|
|
102
|
+
},
|
|
103
|
+
"gamegrid": {
|
|
104
|
+
fill: true,
|
|
105
|
+
fillColor: [0.2, 0.2, 0.7],
|
|
106
|
+
fillAlpha: 0.9,
|
|
107
|
+
edges: true,
|
|
108
|
+
edgeColor: [0.4, 0.4, 1.6],
|
|
109
|
+
edgeAlpha: 0.8,
|
|
110
|
+
edgeWidth: 3
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Configures the appearance of {@link Entity}s when they are xrayed, highlighted or selected.
|
|
116
|
+
*
|
|
117
|
+
* * XRay an {@link Entity} by setting {@link Entity#xrayed} ````true````.
|
|
118
|
+
* * Highlight an {@link Entity} by setting {@link Entity#highlighted} ````true````.
|
|
119
|
+
* * Select an {@link Entity} by setting {@link Entity#selected} ````true````.
|
|
120
|
+
* * When {@link Entity}s are within the subtree of a root {@link Entity}, then setting {@link Entity#xrayed}, {@link Entity#highlighted} or {@link Entity#selected}
|
|
121
|
+
* on the root will collectively set those properties on all sub-{@link Entity}s.
|
|
122
|
+
* * EmphasisMaterial provides several presets. Select a preset by setting {@link EmphasisMaterial#preset} to the ID of a preset in {@link EmphasisMaterial#presets}.
|
|
123
|
+
* * By default, a {@link Mesh} uses the default EmphasisMaterials in {@link Scene#xrayMaterial}, {@link Scene#highlightMaterial} and {@link Scene#selectedMaterial}
|
|
124
|
+
* but you can assign each {@link Mesh#xrayMaterial}, {@link Mesh#highlightMaterial} or {@link Mesh#selectedMaterial} to a custom EmphasisMaterial, if required.
|
|
125
|
+
*
|
|
126
|
+
* ## Usage
|
|
127
|
+
*
|
|
128
|
+
* In the example below, we'll create a {@link Mesh} with its own XRayMaterial and set {@link Mesh#xrayed} ````true```` to xray it.
|
|
129
|
+
*
|
|
130
|
+
* Recall that {@link Mesh} is a concrete subtype of the abstract {@link Entity} base class.
|
|
131
|
+
*
|
|
132
|
+
* ````javascript
|
|
133
|
+
* new Mesh(viewer.scene, {
|
|
134
|
+
* geometry: new BoxGeometry(viewer.scene, {
|
|
135
|
+
* edgeThreshold: 1
|
|
136
|
+
* }),
|
|
137
|
+
* material: new PhongMaterial(viewer.scene, {
|
|
138
|
+
* diffuse: [0.2, 0.2, 1.0]
|
|
139
|
+
* }),
|
|
140
|
+
* xrayMaterial: new EmphasisMaterial(viewer.scene, {
|
|
141
|
+
* fill: true,
|
|
142
|
+
* fillColor: [0, 0, 0],
|
|
143
|
+
* fillAlpha: 0.7,
|
|
144
|
+
* edges: true,
|
|
145
|
+
* edgeColor: [0.2, 1.0, 0.2],
|
|
146
|
+
* edgeAlpha: 1.0,
|
|
147
|
+
* edgeWidth: 2
|
|
148
|
+
* }),
|
|
149
|
+
* xrayed: true
|
|
150
|
+
* });
|
|
151
|
+
* ````
|
|
152
|
+
*
|
|
153
|
+
* Note the ````edgeThreshold```` configuration for the {@link ReadableGeometry} on our {@link Mesh}. EmphasisMaterial configures
|
|
154
|
+
* a wireframe representation of the {@link ReadableGeometry} for the selected emphasis mode, which will have inner edges (those edges between
|
|
155
|
+
* adjacent co-planar triangles) removed for visual clarity. The ````edgeThreshold```` indicates that, for
|
|
156
|
+
* this particular {@link ReadableGeometry}, an inner edge is one where the angle between the surface normals of adjacent triangles
|
|
157
|
+
* is not greater than ````5```` degrees. That's set to ````2```` by default, but we can override it to tweak the effect
|
|
158
|
+
* as needed for particular Geometries.
|
|
159
|
+
*
|
|
160
|
+
* Here's the example again, this time implicitly defaulting to the {@link Scene#edgeMaterial}. We'll also modify that EdgeMaterial
|
|
161
|
+
* to customize the effect.
|
|
162
|
+
*
|
|
163
|
+
* ````javascript
|
|
164
|
+
* new Mesh({
|
|
165
|
+
* geometry: new TeapotGeometry(viewer.scene, {
|
|
166
|
+
* edgeThreshold: 5
|
|
167
|
+
* }),
|
|
168
|
+
* material: new PhongMaterial(viewer.scene, {
|
|
169
|
+
* diffuse: [0.2, 0.2, 1.0]
|
|
170
|
+
* }),
|
|
171
|
+
* xrayed: true
|
|
172
|
+
* });
|
|
173
|
+
*
|
|
174
|
+
* var xrayMaterial = viewer.scene.xrayMaterial;
|
|
175
|
+
*
|
|
176
|
+
* xrayMaterial.fillColor = [0.2, 1.0, 0.2];
|
|
177
|
+
* xrayMaterial.fillAlpha = 1.0;
|
|
178
|
+
* ````
|
|
179
|
+
*
|
|
180
|
+
* ## Presets
|
|
181
|
+
*
|
|
182
|
+
* Let's switch the {@link Scene#xrayMaterial} to one of the presets in {@link EmphasisMaterial#presets}:
|
|
183
|
+
*
|
|
184
|
+
* ````javascript
|
|
185
|
+
* viewer.xrayMaterial.preset = EmphasisMaterial.presets["sepia"];
|
|
186
|
+
* ````
|
|
187
|
+
*
|
|
188
|
+
* We can also create an EmphasisMaterial from a preset, while overriding properties of the preset as required:
|
|
189
|
+
*
|
|
190
|
+
* ````javascript
|
|
191
|
+
* var myEmphasisMaterial = new EMphasisMaterial(viewer.scene, {
|
|
192
|
+
* preset: "sepia",
|
|
193
|
+
* fillColor = [1.0, 0.5, 0.5]
|
|
194
|
+
* });
|
|
195
|
+
* ````
|
|
196
|
+
*/
|
|
197
|
+
class EmphasisMaterial extends Material {
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
@private
|
|
201
|
+
*/
|
|
202
|
+
get type() {
|
|
203
|
+
return "EmphasisMaterial";
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Gets available EmphasisMaterial presets.
|
|
208
|
+
*
|
|
209
|
+
* @type {Object}
|
|
210
|
+
*/
|
|
211
|
+
get presets() {
|
|
212
|
+
return PRESETS;
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* @constructor
|
|
217
|
+
* @param {Component} owner Owner component. When destroyed, the owner will destroy this component as well.
|
|
218
|
+
* @param {*} [cfg] The EmphasisMaterial configuration
|
|
219
|
+
* @param {String} [cfg.id] Optional ID, unique among all components in the parent {@link Scene}, generated automatically when omitted.
|
|
220
|
+
* @param {Boolean} [cfg.fill=true] Indicates if xray surfaces are filled with color.
|
|
221
|
+
* @param {Number[]} [cfg.fillColor=[0.4,0.4,0.4]] EmphasisMaterial fill color.
|
|
222
|
+
* @param {Number} [cfg.fillAlpha=0.2] Transparency of filled xray faces. A value of ````0.0```` indicates fully transparent, ````1.0```` is fully opaque.
|
|
223
|
+
* @param {Boolean} [cfg.edges=true] Indicates if xray edges are visible.
|
|
224
|
+
* @param {Number[]} [cfg.edgeColor=[0.2,0.2,0.2]] RGB color of xray edges.
|
|
225
|
+
* @param {Number} [cfg.edgeAlpha=0.5] Transparency of xray edges. A value of ````0.0```` indicates fully transparent, ````1.0```` is fully opaque.
|
|
226
|
+
* @param {Number} [cfg.edgeWidth=1] Width of xray edges, in pixels.
|
|
227
|
+
* @param {String} [cfg.preset] Selects a preset EmphasisMaterial configuration - see {@link EmphasisMaterial#presets}.
|
|
228
|
+
* @param {Boolean} [cfg.backfaces=false] Whether to render geometry backfaces when emphasising.
|
|
229
|
+
* @param {Boolean} [cfg.glowThrough=true] Whether to make the emphasized object appear to float on top of other objects, as if it were "glowing through" them.
|
|
230
|
+
*/
|
|
231
|
+
constructor(owner, cfg = {}) {
|
|
232
|
+
|
|
233
|
+
super(owner, cfg);
|
|
234
|
+
|
|
235
|
+
this._state = new RenderState({
|
|
236
|
+
type: "EmphasisMaterial",
|
|
237
|
+
fill: null,
|
|
238
|
+
fillColor: null,
|
|
239
|
+
fillAlpha: null,
|
|
240
|
+
edges: null,
|
|
241
|
+
edgeColor: null,
|
|
242
|
+
edgeAlpha: null,
|
|
243
|
+
edgeWidth: null,
|
|
244
|
+
backfaces: true,
|
|
245
|
+
glowThrough: true
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
this._preset = "default";
|
|
249
|
+
|
|
250
|
+
if (cfg.preset) { // Apply preset then override with configs where provided
|
|
251
|
+
this.preset = cfg.preset;
|
|
252
|
+
if (cfg.fill !== undefined) {
|
|
253
|
+
this.fill = cfg.fill;
|
|
254
|
+
}
|
|
255
|
+
if (cfg.fillColor) {
|
|
256
|
+
this.fillColor = cfg.fillColor;
|
|
257
|
+
}
|
|
258
|
+
if (cfg.fillAlpha !== undefined) {
|
|
259
|
+
this.fillAlpha = cfg.fillAlpha;
|
|
260
|
+
}
|
|
261
|
+
if (cfg.edges !== undefined) {
|
|
262
|
+
this.edges = cfg.edges;
|
|
263
|
+
}
|
|
264
|
+
if (cfg.edgeColor) {
|
|
265
|
+
this.edgeColor = cfg.edgeColor;
|
|
266
|
+
}
|
|
267
|
+
if (cfg.edgeAlpha !== undefined) {
|
|
268
|
+
this.edgeAlpha = cfg.edgeAlpha;
|
|
269
|
+
}
|
|
270
|
+
if (cfg.edgeWidth !== undefined) {
|
|
271
|
+
this.edgeWidth = cfg.edgeWidth;
|
|
272
|
+
}
|
|
273
|
+
if (cfg.backfaces !== undefined) {
|
|
274
|
+
this.backfaces = cfg.backfaces;
|
|
275
|
+
}
|
|
276
|
+
if (cfg.glowThrough !== undefined) {
|
|
277
|
+
this.glowThrough = cfg.glowThrough;
|
|
278
|
+
}
|
|
279
|
+
} else {
|
|
280
|
+
this.fill = cfg.fill;
|
|
281
|
+
this.fillColor = cfg.fillColor;
|
|
282
|
+
this.fillAlpha = cfg.fillAlpha;
|
|
283
|
+
this.edges = cfg.edges;
|
|
284
|
+
this.edgeColor = cfg.edgeColor;
|
|
285
|
+
this.edgeAlpha = cfg.edgeAlpha;
|
|
286
|
+
this.edgeWidth = cfg.edgeWidth;
|
|
287
|
+
this.backfaces = cfg.backfaces;
|
|
288
|
+
this.glowThrough = cfg.glowThrough;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Sets if surfaces are filled with color.
|
|
294
|
+
*
|
|
295
|
+
* Default is ````true````.
|
|
296
|
+
*
|
|
297
|
+
* @type {Boolean}
|
|
298
|
+
*/
|
|
299
|
+
set fill(value) {
|
|
300
|
+
value = value !== false;
|
|
301
|
+
if (this._state.fill === value) {
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
this._state.fill = value;
|
|
305
|
+
this.glRedraw();
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Gets if surfaces are filled with color.
|
|
310
|
+
*
|
|
311
|
+
* Default is ````true````.
|
|
312
|
+
*
|
|
313
|
+
* @type {Boolean}
|
|
314
|
+
*/
|
|
315
|
+
get fill() {
|
|
316
|
+
return this._state.fill;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Sets the RGB color of filled faces.
|
|
321
|
+
*
|
|
322
|
+
* Default is ````[0.4, 0.4, 0.4]````.
|
|
323
|
+
*
|
|
324
|
+
* @type {Number[]}
|
|
325
|
+
*/
|
|
326
|
+
set fillColor(value) {
|
|
327
|
+
let fillColor = this._state.fillColor;
|
|
328
|
+
if (!fillColor) {
|
|
329
|
+
fillColor = this._state.fillColor = new Float32Array(3);
|
|
330
|
+
} else if (value && fillColor[0] === value[0] && fillColor[1] === value[1] && fillColor[2] === value[2]) {
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
if (value) {
|
|
334
|
+
fillColor[0] = value[0];
|
|
335
|
+
fillColor[1] = value[1];
|
|
336
|
+
fillColor[2] = value[2];
|
|
337
|
+
} else {
|
|
338
|
+
fillColor[0] = 0.4;
|
|
339
|
+
fillColor[1] = 0.4;
|
|
340
|
+
fillColor[2] = 0.4;
|
|
341
|
+
}
|
|
342
|
+
this.glRedraw();
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Gets the RGB color of filled faces.
|
|
347
|
+
*
|
|
348
|
+
* Default is ````[0.4, 0.4, 0.4]````.
|
|
349
|
+
*
|
|
350
|
+
* @type {Number[]}
|
|
351
|
+
*/
|
|
352
|
+
get fillColor() {
|
|
353
|
+
return this._state.fillColor;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Sets the transparency of filled faces.
|
|
358
|
+
*
|
|
359
|
+
* A value of ````0.0```` indicates fully transparent, ````1.0```` is fully opaque.
|
|
360
|
+
*
|
|
361
|
+
* Default is ````0.2````.
|
|
362
|
+
*
|
|
363
|
+
* @type {Number}
|
|
364
|
+
*/
|
|
365
|
+
set fillAlpha(value) {
|
|
366
|
+
value = (value !== undefined && value !== null) ? value : 0.2;
|
|
367
|
+
if (this._state.fillAlpha === value) {
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
370
|
+
this._state.fillAlpha = value;
|
|
371
|
+
this.glRedraw();
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* Gets the transparency of filled faces.
|
|
376
|
+
*
|
|
377
|
+
* A value of ````0.0```` indicates fully transparent, ````1.0```` is fully opaque.
|
|
378
|
+
*
|
|
379
|
+
* Default is ````0.2````.
|
|
380
|
+
*
|
|
381
|
+
* @type {Number}
|
|
382
|
+
*/
|
|
383
|
+
get fillAlpha() {
|
|
384
|
+
return this._state.fillAlpha;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* Sets if edges are visible.
|
|
389
|
+
*
|
|
390
|
+
* Default is ````true````.
|
|
391
|
+
*
|
|
392
|
+
* @type {Boolean}
|
|
393
|
+
*/
|
|
394
|
+
set edges(value) {
|
|
395
|
+
value = value !== false;
|
|
396
|
+
if (this._state.edges === value) {
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
this._state.edges = value;
|
|
400
|
+
this.glRedraw();
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* Gets if edges are visible.
|
|
405
|
+
*
|
|
406
|
+
* Default is ````true````.
|
|
407
|
+
*
|
|
408
|
+
* @type {Boolean}
|
|
409
|
+
*/
|
|
410
|
+
get edges() {
|
|
411
|
+
return this._state.edges;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Sets the RGB color of edges.
|
|
416
|
+
*
|
|
417
|
+
* Default is ```` [0.2, 0.2, 0.2]````.
|
|
418
|
+
*
|
|
419
|
+
* @type {Number[]}
|
|
420
|
+
*/
|
|
421
|
+
set edgeColor(value) {
|
|
422
|
+
let edgeColor = this._state.edgeColor;
|
|
423
|
+
if (!edgeColor) {
|
|
424
|
+
edgeColor = this._state.edgeColor = new Float32Array(3);
|
|
425
|
+
} else if (value && edgeColor[0] === value[0] && edgeColor[1] === value[1] && edgeColor[2] === value[2]) {
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
if (value) {
|
|
429
|
+
edgeColor[0] = value[0];
|
|
430
|
+
edgeColor[1] = value[1];
|
|
431
|
+
edgeColor[2] = value[2];
|
|
432
|
+
} else {
|
|
433
|
+
edgeColor[0] = 0.2;
|
|
434
|
+
edgeColor[1] = 0.2;
|
|
435
|
+
edgeColor[2] = 0.2;
|
|
436
|
+
}
|
|
437
|
+
this.glRedraw();
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Gets the RGB color of edges.
|
|
442
|
+
*
|
|
443
|
+
* Default is ```` [0.2, 0.2, 0.2]````.
|
|
444
|
+
*
|
|
445
|
+
* @type {Number[]}
|
|
446
|
+
*/
|
|
447
|
+
get edgeColor() {
|
|
448
|
+
return this._state.edgeColor;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Sets the transparency of edges.
|
|
453
|
+
*
|
|
454
|
+
* A value of ````0.0```` indicates fully transparent, ````1.0```` is fully opaque.
|
|
455
|
+
*
|
|
456
|
+
* Default is ````0.2````.
|
|
457
|
+
*
|
|
458
|
+
* @type {Number}
|
|
459
|
+
*/
|
|
460
|
+
set edgeAlpha(value) {
|
|
461
|
+
value = (value !== undefined && value !== null) ? value : 0.5;
|
|
462
|
+
if (this._state.edgeAlpha === value) {
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
this._state.edgeAlpha = value;
|
|
466
|
+
this.glRedraw();
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* Gets the transparency of edges.
|
|
471
|
+
*
|
|
472
|
+
* A value of ````0.0```` indicates fully transparent, ````1.0```` is fully opaque.
|
|
473
|
+
*
|
|
474
|
+
* Default is ````0.2````.
|
|
475
|
+
*
|
|
476
|
+
* @type {Number}
|
|
477
|
+
*/
|
|
478
|
+
get edgeAlpha() {
|
|
479
|
+
return this._state.edgeAlpha;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* Sets edge width.
|
|
484
|
+
*
|
|
485
|
+
* This is not supported by WebGL implementations based on DirectX [2019].
|
|
486
|
+
*
|
|
487
|
+
* Default value is ````1.0```` pixels.
|
|
488
|
+
*
|
|
489
|
+
* @type {Number}
|
|
490
|
+
*/
|
|
491
|
+
set edgeWidth(value) {
|
|
492
|
+
this._state.edgeWidth = value || 1.0;
|
|
493
|
+
this.glRedraw();
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* Gets edge width.
|
|
498
|
+
*
|
|
499
|
+
* This is not supported by WebGL implementations based on DirectX [2019].
|
|
500
|
+
*
|
|
501
|
+
* Default value is ````1.0```` pixels.
|
|
502
|
+
*
|
|
503
|
+
* @type {Number}
|
|
504
|
+
*/
|
|
505
|
+
get edgeWidth() {
|
|
506
|
+
return this._state.edgeWidth;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Sets whether to render backfaces when {@link EmphasisMaterial#fill} is ````true````.
|
|
511
|
+
*
|
|
512
|
+
* Default is ````false````.
|
|
513
|
+
*
|
|
514
|
+
* @type {Boolean}
|
|
515
|
+
*/
|
|
516
|
+
set backfaces(value) {
|
|
517
|
+
value = !!value;
|
|
518
|
+
if (this._state.backfaces === value) {
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
this._state.backfaces = value;
|
|
522
|
+
this.glRedraw();
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
/**
|
|
526
|
+
* Gets whether to render backfaces when {@link EmphasisMaterial#fill} is ````true````.
|
|
527
|
+
*
|
|
528
|
+
* Default is ````true````.
|
|
529
|
+
*
|
|
530
|
+
* @type {Boolean}
|
|
531
|
+
*/
|
|
532
|
+
get backfaces() {
|
|
533
|
+
return this._state.backfaces;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* Sets whether to render emphasized objects over the top of other objects, as if they were "glowing through".
|
|
538
|
+
*
|
|
539
|
+
* Default is ````true````.
|
|
540
|
+
*
|
|
541
|
+
* Note: updating this property will not affect the appearance of objects that are already emphasized.
|
|
542
|
+
*
|
|
543
|
+
* @type {Boolean}
|
|
544
|
+
*/
|
|
545
|
+
set glowThrough(value) {
|
|
546
|
+
value = (value !== false);
|
|
547
|
+
if (this._state.glowThrough === value) {
|
|
548
|
+
return;
|
|
549
|
+
}
|
|
550
|
+
this._state.glowThrough = value;
|
|
551
|
+
this.glRedraw();
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* Sets whether to render emphasized objects over the top of other objects, as if they were "glowing through".
|
|
556
|
+
*
|
|
557
|
+
* Default is ````true````.
|
|
558
|
+
*
|
|
559
|
+
* @type {Boolean}
|
|
560
|
+
*/
|
|
561
|
+
get glowThrough() {
|
|
562
|
+
return this._state.glowThrough;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
/**
|
|
566
|
+
* Selects a preset EmphasisMaterial configuration.
|
|
567
|
+
*
|
|
568
|
+
* Default value is "default".
|
|
569
|
+
*
|
|
570
|
+
* @type {String}
|
|
571
|
+
*/
|
|
572
|
+
set preset(value) {
|
|
573
|
+
value = value || "default";
|
|
574
|
+
if (this._preset === value) {
|
|
575
|
+
return;
|
|
576
|
+
}
|
|
577
|
+
const preset = PRESETS[value];
|
|
578
|
+
if (!preset) {
|
|
579
|
+
this.error("unsupported preset: '" + value + "' - supported values are " + Object.keys(PRESETS).join(", "));
|
|
580
|
+
return;
|
|
581
|
+
}
|
|
582
|
+
this.fill = preset.fill;
|
|
583
|
+
this.fillColor = preset.fillColor;
|
|
584
|
+
this.fillAlpha = preset.fillAlpha;
|
|
585
|
+
this.edges = preset.edges;
|
|
586
|
+
this.edgeColor = preset.edgeColor;
|
|
587
|
+
this.edgeAlpha = preset.edgeAlpha;
|
|
588
|
+
this.edgeWidth = preset.edgeWidth;
|
|
589
|
+
this.glowThrough = preset.glowThrough;
|
|
590
|
+
this._preset = value;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
/**
|
|
594
|
+
* Gets the current preset EmphasisMaterial configuration.
|
|
595
|
+
*
|
|
596
|
+
* Default value is "default".
|
|
597
|
+
*
|
|
598
|
+
* @type {String}
|
|
599
|
+
*/
|
|
600
|
+
get preset() {
|
|
601
|
+
return this._preset;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
/**
|
|
605
|
+
* Destroys this EmphasisMaterial.
|
|
606
|
+
*/
|
|
607
|
+
destroy() {
|
|
608
|
+
super.destroy();
|
|
609
|
+
this._state.destroy();
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
export {EmphasisMaterial};
|