csyjk 1.1.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (323) hide show
  1. package/.babelrc +7 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/xx.iml +12 -0
  4. package/dist/app.js +43 -0
  5. package/{index.html → dist/index.html} +0 -0
  6. package/{style.css → dist/style.css} +1 -1
  7. package/package.json +40 -5
  8. package/public/gltf.js +2241 -0
  9. package/public/index.html +10 -0
  10. package/src/index.js +3 -0
  11. package/src/lib/gltf/assets/check.jpg +0 -0
  12. package/src/lib/gltf/assets/iconfont/iconfont.css +358 -0
  13. package/src/lib/gltf/assets/iconfont/iconfont.eot +0 -0
  14. package/src/lib/gltf/assets/iconfont/iconfont.js +1 -0
  15. package/src/lib/gltf/assets/iconfont/iconfont.json +604 -0
  16. package/src/lib/gltf/assets/iconfont/iconfont.svg +189 -0
  17. package/src/lib/gltf/assets/iconfont/iconfont.ttf +0 -0
  18. package/src/lib/gltf/assets/iconfont/iconfont.woff +0 -0
  19. package/src/lib/gltf/assets/iconfont/iconfont.woff2 +0 -0
  20. package/src/lib/gltf/assets/yjkkit-sdk/index.js +0 -0
  21. package/src/lib/gltf/assets/yjkkit-sdk/package.json +15 -0
  22. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/ContextMenu.js +863 -0
  23. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/index.js +1 -0
  24. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/index.js +1 -0
  25. package/src/lib/gltf/assets/yjkkit-sdk/src/index.js +3 -0
  26. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +462 -0
  27. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +279 -0
  28. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +262 -0
  29. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/index.js +1 -0
  30. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/Annotation.js +362 -0
  31. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +575 -0
  32. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/index.js +1 -0
  33. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
  34. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/index.js +1 -0
  35. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +777 -0
  36. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/index.js +1 -0
  37. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +525 -0
  38. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +242 -0
  39. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +297 -0
  40. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/index.js +1 -0
  41. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/FastNavPlugin.js +345 -0
  42. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/index.js +1 -0
  43. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +122 -0
  44. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +462 -0
  45. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFPerformanceModelLoader.js +508 -0
  46. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFSceneGraphLoader.js +922 -0
  47. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/index.js +2 -0
  48. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/CubeTextureCanvas.js +273 -0
  49. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/NavCubePlugin.js +687 -0
  50. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/index.js +1 -0
  51. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
  52. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
  53. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/index.js +1 -0
  54. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
  55. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +273 -0
  56. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
  57. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/index.js +2 -0
  58. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
  59. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
  60. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
  61. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +403 -0
  62. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/index.js +1 -0
  63. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
  64. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/index.js +1 -0
  65. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/IFCStoreyPlanObjectStates.js +77 -0
  66. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/Storey.js +61 -0
  67. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
  68. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +822 -0
  69. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/index.js +1 -0
  70. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/ModelTreeView.js +888 -0
  71. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewNode.js +88 -0
  72. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewPlugin.js +624 -0
  73. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/index.js +1 -0
  74. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/modelValidation.js +87 -0
  75. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
  76. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/index.js +1 -0
  77. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +78 -0
  78. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +847 -0
  79. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/index.js +2 -0
  80. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +167 -0
  81. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +228 -0
  82. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +220 -0
  83. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +279 -0
  84. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +244 -0
  85. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
  86. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +426 -0
  87. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +479 -0
  88. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +6818 -0
  89. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
  90. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
  91. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/index.js +1 -0
  92. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
  93. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
  94. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
  95. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
  96. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
  97. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
  98. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
  99. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
  100. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
  101. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
  102. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/index.js +17 -0
  103. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/culling/ObjectCullStates.js +205 -0
  104. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Dot.js +78 -0
  105. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Label.js +97 -0
  106. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Wire.js +95 -0
  107. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Plugin.js +112 -0
  108. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Viewer.js +372 -0
  109. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/index.js +3 -0
  110. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaultColors.js +162 -0
  111. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaults.js +39 -0
  112. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaModel.js +145 -0
  113. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaObject.js +215 -0
  114. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaScene.js +311 -0
  115. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/CameraControl.js +1669 -0
  116. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/cc.js +0 -0
  117. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
  118. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
  119. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PickController.js +193 -0
  120. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +289 -0
  121. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/cu.js +0 -0
  122. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
  123. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +186 -0
  124. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
  125. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +439 -0
  126. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +361 -0
  127. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +258 -0
  128. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +197 -0
  129. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/mouspan.js +498 -0
  130. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Component.js +908 -0
  131. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Entity.js +475 -0
  132. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
  133. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/index.js +1 -0
  134. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/PerformanceModel.js +2623 -0
  135. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/index.js +1 -0
  136. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ENTITY_FLAGS.js +21 -0
  137. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceMesh.js +262 -0
  138. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceNode.js +697 -0
  139. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/RENDER_PASSES.js +34 -0
  140. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ScratchMemory.js +63 -0
  141. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/compression.js +183 -0
  142. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingBuffer.js +33 -0
  143. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingLayer.js +736 -0
  144. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingRenderers.js +68 -0
  145. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingColorRenderer.js +295 -0
  146. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js +327 -0
  147. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingLayer.js +698 -0
  148. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingRenderers.js +68 -0
  149. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingColorRenderer.js +364 -0
  150. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js +356 -0
  151. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingBuffer.js +33 -0
  152. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingLayer.js +776 -0
  153. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingRenderers.js +113 -0
  154. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingColorRenderer.js +340 -0
  155. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js +312 -0
  156. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js +343 -0
  157. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js +331 -0
  158. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingShadowRenderer.js +242 -0
  159. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js +348 -0
  160. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingLayer.js +737 -0
  161. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingRenderers.js +143 -0
  162. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingColorRenderer.js +373 -0
  163. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingDepthRenderer.js +366 -0
  164. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingOcclusionRenderer.js +370 -0
  165. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickDepthRenderer.js +386 -0
  166. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickMeshRenderer.js +376 -0
  167. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingShadowRenderer.js +293 -0
  168. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingSilhouetteRenderer.js +382 -0
  169. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingBuffer.js +37 -0
  170. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingLayer.js +1017 -0
  171. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingRenderers.js +246 -0
  172. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorQualityRenderer.js +809 -0
  173. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorRenderer.js +504 -0
  174. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingDepthRenderer.js +297 -0
  175. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesColorRenderer.js +300 -0
  176. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesRenderer.js +322 -0
  177. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingNormalsRenderer.js +311 -0
  178. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingOcclusionRenderer.js +291 -0
  179. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickDepthRenderer.js +319 -0
  180. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickMeshRenderer.js +305 -0
  181. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickNormalsRenderer.js +300 -0
  182. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingShadowRenderer.js +242 -0
  183. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingSilhouetteRenderer.js +323 -0
  184. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingLayer.js +969 -0
  185. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingRenderers.js +246 -0
  186. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorQualityRenderer.js +859 -0
  187. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorRenderer.js +557 -0
  188. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingDepthRenderer.js +341 -0
  189. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesColorRenderer.js +338 -0
  190. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesRenderer.js +356 -0
  191. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingNormalsRenderer.js +354 -0
  192. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingOcclusionRenderer.js +329 -0
  193. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickDepthRenderer.js +358 -0
  194. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickMeshRenderer.js +349 -0
  195. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickNormalsRenderer.js +363 -0
  196. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingShadowRenderer.js +284 -0
  197. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingSilhouetteRenderer.js +354 -0
  198. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Camera.js +880 -0
  199. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
  200. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPath.js +194 -0
  201. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
  202. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CustomProjection.js +149 -0
  203. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Frustum.js +316 -0
  204. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Ortho.js +286 -0
  205. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Perspective.js +302 -0
  206. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/index.js +2 -0
  207. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Canvas.js +464 -0
  208. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Spinner.js +323 -0
  209. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/core.js +234 -0
  210. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/Geometry.js +33 -0
  211. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/ReadableGeometry.js +689 -0
  212. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/VBOGeometry.js +327 -0
  213. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
  214. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
  215. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
  216. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
  217. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
  218. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
  219. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
  220. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
  221. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/index.js +8 -0
  222. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/index.js +4 -0
  223. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/index.js +2 -0
  224. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
  225. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
  226. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/index.js +18 -0
  227. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/input/Input.js +1475 -0
  228. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/canvas2image.js +218 -0
  229. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/k3d.js +1032 -0
  230. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/AmbientLight.js +175 -0
  231. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/CubeTexture.js +156 -0
  232. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/DirLight.js +314 -0
  233. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Light.js +29 -0
  234. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/LightMap.js +77 -0
  235. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/PointLight.js +395 -0
  236. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/ReflectionMap.js +79 -0
  237. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Shadow.js +138 -0
  238. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/index.js +5 -0
  239. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/Marker.js +382 -0
  240. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/index.js +1 -0
  241. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EdgeMaterial.js +359 -0
  242. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EmphasisMaterial.js +577 -0
  243. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Fresnel.js +222 -0
  244. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LambertMaterial.js +378 -0
  245. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LinesMaterial.js +169 -0
  246. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Material.js +39 -0
  247. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/MetallicMaterial.js +820 -0
  248. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PhongMaterial.js +860 -0
  249. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PointsMaterial.js +320 -0
  250. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/SpecularMaterial.js +807 -0
  251. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Texture.js +522 -0
  252. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/index.js +8 -0
  253. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/Frustum.js +118 -0
  254. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/buildEdgeIndices.js +162 -0
  255. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/geometryCompressionUtils.js +353 -0
  256. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/index.js +1 -0
  257. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/math.js +5302 -0
  258. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/rtcCoords.js +132 -0
  259. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/CameraMemento.js +200 -0
  260. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ModelMemento.js +272 -0
  261. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
  262. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/index.js +3 -0
  263. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/Mesh.js +2165 -0
  264. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawRenderer.js +978 -0
  265. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawShaderSource.js +1566 -0
  266. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +249 -0
  267. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +163 -0
  268. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +276 -0
  269. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +269 -0
  270. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/index.js +1 -0
  271. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +207 -0
  272. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +156 -0
  273. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshRenderer.js +210 -0
  274. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +146 -0
  275. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +186 -0
  276. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +120 -0
  277. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
  278. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +96 -0
  279. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/metriqs/Metriqs.js +259 -0
  280. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/Node.js +1356 -0
  281. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/index.js +1 -0
  282. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
  283. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Curve.js +183 -0
  284. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Path.js +239 -0
  285. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
  286. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/SplineCurve.js +133 -0
  287. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/index.js +5 -0
  288. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/postfx/SAO.js +547 -0
  289. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/scene/Scene.js +2481 -0
  290. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/SectionPlane.js +194 -0
  291. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/index.js +1 -0
  292. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/Skybox.js +119 -0
  293. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/index.js +1 -0
  294. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/stats.js +45 -0
  295. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Map.js +45 -0
  296. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Queue.js +56 -0
  297. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/index.js +2 -0
  298. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils.js +452 -0
  299. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/viewport/Viewport.js +212 -0
  300. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/ArrayBuf.js +121 -0
  301. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Attribute.js +23 -0
  302. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Drawable.js +270 -0
  303. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/FrameContext.js +259 -0
  304. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/PickResult.js +317 -0
  305. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Pickable.js +69 -0
  306. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Program.js +179 -0
  307. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderBuffer.js +315 -0
  308. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderFlags.js +203 -0
  309. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderState.js +40 -0
  310. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Renderer.js +1300 -0
  311. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Sampler.js +18 -0
  312. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Shader.js +49 -0
  313. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Texture2D.js +217 -0
  314. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
  315. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionTester.js +432 -0
  316. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +326 -0
  317. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +375 -0
  318. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/webglEnums.js +61 -0
  319. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webglInfo.js +48 -0
  320. package/src/lib/gltf/gltf.css +392 -0
  321. package/src/lib/gltf/gltf.js +2241 -0
  322. package/webpack.config.js +70 -0
  323. package/app.js +0 -43
package/public/gltf.js ADDED
@@ -0,0 +1,2241 @@
1
+ import './gltf.css'
2
+ import Draggable from 'react-draggable'; //拖拽
3
+ import "./assets/iconfont/iconfont.css"
4
+ import React, { useState } from 'react';
5
+ import { Button, Tooltip, Radio, Table } from 'element-react';
6
+ import { Viewer } from "./assets/yjkkit-sdk/src/viewer/Viewer.js";
7
+ import { GLTFLoaderPlugin } from "./assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js";
8
+ import { TreeViewPlugin } from "./assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewPlugin.js";
9
+ import { AmbientLight } from "./assets/yjkkit-sdk/src/viewer/scene/lights/AmbientLight.js";
10
+ import { AnnotationsPlugin } from "./assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js";
11
+ import { NavCubePlugin } from "./assets/yjkkit-sdk/src/plugins/NavCubePlugin/NavCubePlugin.js";
12
+ import { DistanceMeasurementsPlugin } from "./assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js";
13
+ import { math } from "./assets/yjkkit-sdk/src/viewer/scene/math/math.js";
14
+ import { ContextMenu } from "./assets/yjkkit-sdk/src/extras/ContextMenu/ContextMenu.js";
15
+ import { DirLight } from "./assets/yjkkit-sdk/src/viewer/scene/lights/DirLight.js";
16
+ import { XML3DLoaderPlugin } from "./assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js";
17
+ import { OBJLoaderPlugin } from "./assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js";
18
+ import { STLLoaderPlugin } from "./assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js";
19
+ import { XKTLoaderPlugin } from "./assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js";
20
+ import { load3DSGeometry } from "./assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/load3DSGeometry.js";
21
+ import { ReadableGeometry } from "./assets/yjkkit-sdk/src/viewer/scene/geometry/ReadableGeometry.js";
22
+ import { FastNavPlugin } from "./assets/yjkkit-sdk/src/plugins/FastNavPlugin/FastNavPlugin.js";
23
+ import { Mesh } from "./assets/yjkkit-sdk/src/viewer/scene/mesh";
24
+ import { PhongMaterial } from "./assets/yjkkit-sdk/src/viewer/scene/materials";
25
+ import { Texture } from "./assets/yjkkit-sdk/src/viewer/scene/materials";
26
+ // import { ReflectionMap } from "./assets/yjkkit-sdk/src/viewer/scene/lights/ReflectionMap.js";
27
+ // import { ThreeDMode } from "./assets/yjkkit-bim-viewer/src/toolbar/ThreeDMode.js";
28
+ // import { AxisGizmoPlugin } from "./assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js";
29
+ // import { CameraMemento } from "./assets/yjkkit-sdk/src/viewer/scene/mementos";
30
+ // import { StoreyViewsPlugin } from "./assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin";
31
+ // import {PhongMaterial} from "./assets/yjkkit-sdk/src/scene/materials/PhongMaterial.js";
32
+ // import {Texture} from "./assets/yjkkit-sdk/src/scene/materials/Texture.js";
33
+ // import { GLTFDefaultDataSource } from "./assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js";
34
+ // import { utils } from "./assets/yjkkit-sdk/src/viewer/scene/utils.js";
35
+
36
+ class Gltf extends React.Component {
37
+
38
+ constructor(props) {
39
+ console.log(props)
40
+ super(props);// 作用 使子类可以获取到 父类中的this,子类没有自己的this
41
+ this.state = {
42
+ nummodel: null,
43
+ nownummodel: null,
44
+ loadtime: null,
45
+ numobj: null,
46
+ nummesh: null,
47
+ sumnummesh: null,
48
+ visible: 'block',
49
+ view: 'block',
50
+ projectInfo: 'none',
51
+ active: -1,
52
+ active2: 1,
53
+ navList: [
54
+ { content: '主视图【按键1-6快速选择】', icon: 'yjk-yingjianke_zhushitu' },
55
+ { content: '透视视图', icon: 'yjk-yingjianke_toushishitu' },
56
+ { content: '正交视图', icon: 'yjk-yingjianke_zhengmianshitu' },
57
+ { content: '适配尺寸', icon: 'yjk-yingjianke_shipeichicun' },
58
+ { content: '测距', icon: 'yjk-yingjianke_ceju', style: 'block', },
59
+ { content: '取消测距', icon: 'yjk-yingjianke_ceju', style: 'none', },
60
+ { content: '全屏', icon: 'yjk-yingjianke_quanping', style: 'block', },
61
+ { content: '取消全屏', icon: 'yjk-yingjianke-tongyonggongnengtubiao_quxiaoquanping', style: 'none', },
62
+ { content: '项目信息', icon: 'yjk-yingjianke-qinglianghuagongju_moxingjiegouheleixingchuangkou' },
63
+ { content: '左键旋转右键平移', icon: 'yjk-yingjianke_youjian', style: 'block', },
64
+ { content: '左键平移右键旋转', icon: 'yjk-yingjianke_zuojian', style: 'none', },
65
+ ],
66
+
67
+ tabList: [
68
+ { name: '模型', id: 'treeflExplorer' },
69
+ { name: '楼层', id: 'treelouExplorer' },
70
+ { name: '构件', id: 'treeExplorer' },
71
+ ],
72
+ showTab: 0,
73
+ columns: [
74
+ {
75
+ label: "属性",
76
+ prop: "displayName",
77
+ width: 108
78
+ },
79
+ {
80
+ label: "值",
81
+ prop: "displayValue",
82
+ width: 108
83
+ },
84
+
85
+ ],
86
+ attributeData: [] ,//属性值;
87
+ elelist:[],
88
+ ele_color:[],
89
+
90
+ };
91
+ }
92
+
93
+ viewSwitch(type) {
94
+ if (type == 1) {
95
+ if (this.state.view == 'block') {
96
+ this.setState({ view: 'none' })
97
+ } else {
98
+ this.setState({ view: 'block' })
99
+ }
100
+
101
+ } else {
102
+ if (this.state.visible == 'block') {
103
+ this.setState({ visible: 'none' })
104
+ } else {
105
+ this.setState({ visible: 'block' })
106
+ }
107
+ }
108
+ }
109
+ tabClick = (e, index) => {
110
+ this.setState({ showTab: index })
111
+ }
112
+ // 定义handleClick事件
113
+ handleClick = (e, index) => {
114
+
115
+ this.setState({ active: index })
116
+ if (index == 0) {
117
+ this.reset()
118
+ }
119
+ if (index == 1) {
120
+ this.perFit()
121
+ this.setState({ active2: 1 })
122
+ }
123
+ if (index == 2) {
124
+ this.setOrtho()
125
+ this.setState({ active2: 2 })
126
+ }
127
+ if (index == 3) {
128
+ this.viewFit()
129
+ }
130
+ if (index == 4) {
131
+ this.state.navList[5].style = 'block';
132
+ this.state.navList[4].style = 'none';
133
+ this.setState({ active: 5 })
134
+ this.measure()
135
+ }
136
+ if (index == 5) {
137
+ this.state.navList[5].style = 'none';
138
+ this.state.navList[4].style = 'block';
139
+ this.setState({ active: 4 })
140
+ this.unMeasure()
141
+ }
142
+ if (index == 6) {
143
+ this.state.navList[7].style = 'block';
144
+ this.state.navList[6].style = 'none';
145
+ this.setState({ active: 7 })
146
+ this.fullScreen()
147
+ }
148
+ if (index == 7) {
149
+ this.state.navList[7].style = 'none';
150
+ this.state.navList[6].style = 'block';
151
+ this.setState({ active: 6 })
152
+ this.outFullScreen()
153
+ }
154
+ if (index == 8) {
155
+ this.slabUnVisible()
156
+ }
157
+ if (index == 9) {
158
+ this.state.navList[9].style = 'none';
159
+ this.state.navList[10].style = 'block';
160
+ this.setState({ active: 10 })
161
+ this.changeright()
162
+ }
163
+ if (index == 10) {
164
+ this.state.navList[10].style = 'none';
165
+ this.state.navList[9].style = 'block';
166
+ this.setState({ active: 9 })
167
+ this.changeleft()
168
+ }
169
+ }
170
+
171
+
172
+ closeModel(e, type) {
173
+
174
+ if (type == 1) {//视图关闭
175
+ this.setState({ view: 'none' })
176
+ // this.$emit("updateOneChecked", false);
177
+ } else if (type == 2) { // 标注关闭
178
+
179
+ this.setState({ visible: 'none' })
180
+ // this.$emit("updateTwoChecked", false);
181
+ } else {
182
+ this.setState({ projectInfo: 'none' })
183
+ }
184
+
185
+ }
186
+
187
+
188
+ commentShow(data) {
189
+ this.$emit("updateCommentVisible", true, data);
190
+ }
191
+ //判断浏览器是否处于全屏状态 (需要考虑兼容问题)
192
+ //火狐浏览器
193
+ checkFull() {
194
+ var isFull =
195
+ document.mozFullScreen ||
196
+ document.fullScreen ||
197
+ //谷歌浏览器及Webkit内核浏览器
198
+ document.webkitIsFullScreen ||
199
+ document.webkitRequestFullScreen ||
200
+ document.mozRequestFullScreen ||
201
+ document.msFullscreenEnabled;
202
+ if (isFull === undefined) {
203
+ isFull = false;
204
+ }
205
+ return isFull;
206
+ }
207
+
208
+ reset() {
209
+ let viewer = this.bv;
210
+ this.viewMethod = 0;
211
+ // 进入视图后面向前
212
+
213
+ // 设置正交相机
214
+ viewer.scene.camera.projection = "ortho";
215
+ viewer.scene.camera.eye = [0, 0, 100];
216
+ viewer.scene.camera.look = [0, 0, 0];
217
+ viewer.scene.camera.up = [0, 1, 0];
218
+ let sceneCurrent = viewer.scene.getAABB(viewer.scene.visibleObjectIds);
219
+ viewer.cameraFlight.flyTo(
220
+ {
221
+ aabb: sceneCurrent,
222
+ duration: 0.5,
223
+ fitFOV: 50,
224
+ },
225
+ () => { }
226
+ );
227
+ var posifly = [
228
+ math.getAABB3Center(sceneCurrent)[0],
229
+ math.getAABB3Center(sceneCurrent)[1],
230
+ math.getAABB3Center(sceneCurrent)[2],
231
+ ];
232
+ viewer.cameraControl.pivotPos = posifly;
233
+ if ("ortho" == viewer.scene.camera.projection) {
234
+ // viewer.scene.camera.ortho.scale = 0.5;
235
+ viewer.cameraControl.mouseWheelDollyRate = 250;
236
+ } else {
237
+ viewer.cameraControl.mouseWheelDollyRate = 150;
238
+ }
239
+ }
240
+ // 根据UUID查询并高亮显示该构件
241
+ hight_ele(elelist,ele_color) {
242
+ let viewer = this.bv;
243
+ viewer.scene.setObjectsHighlighted(viewer.scene.highlightedObjectIds, false);//先取消高亮
244
+ viewer.scene.setObjectsXRayed(viewer.scene.visibleObjectIds, false);
245
+ viewer.scene.setObjectsSelected(
246
+ viewer.scene.selectedObjectIds,
247
+ false
248
+ );
249
+ if (elelist.length == 0) {
250
+ return;
251
+ }
252
+ var fitFOV = 30; // 默认视角:构件视角
253
+
254
+ viewer.scene.setObjectsXRayed(viewer.scene.visibleObjectIds, true);
255
+ viewer.scene.setObjectsSelected(
256
+ elelist,
257
+ true
258
+ );
259
+ viewer.scene.setObjectsHighlighted(elelist, true);
260
+ // console.log("viewer.scene.setObjectsSelected.entity.colorize",viewer.scene.setObjectsSelected)
261
+ viewer.scene.setObjectsSelected.entity.colorize = ele_color;
262
+
263
+ // viewer.scene.objects[elelist].colorize = [0, 1, 0];
264
+ // for (var i = 0 ; i < elelist.length; i++){
265
+ // viewer.scene._objectColorizeUpdated(elelist[i], [0, 1, 0])
266
+ // viewer.scene.objects[elelist[i]].colorize = [0, 1, 0];
267
+ // console.log(viewer.scene.objects[elelist[i]])
268
+ // }
269
+ viewer.scene.setObjectsPickable(elelist, true);
270
+ viewer.cameraFlight.flyTo(
271
+ {
272
+ aabb: viewer.scene.objects[elelist].aabb,
273
+ duration: 0.8,
274
+ fitFOV: fitFOV,
275
+ },
276
+ () => {
277
+ setTimeout(function () {
278
+ viewer.scene.setObjectsHighlighted(
279
+ viewer.scene.highlightedObjectIds,
280
+ true
281
+ );
282
+ }, 500);
283
+ }
284
+ );
285
+ };
286
+
287
+ viewFit() {
288
+ const viewer = this.bv;
289
+ let sceneCurrent = viewer.scene.getAABB(viewer.scene.visibleObjectIds);
290
+ viewer.cameraFlight.flyTo(
291
+ {
292
+ aabb: sceneCurrent,
293
+ duration: 0.5,
294
+ fitFOV: 50,
295
+ },
296
+ () => { }
297
+ );
298
+ var posifly = [
299
+ math.getAABB3Center(sceneCurrent)[0],
300
+ math.getAABB3Center(sceneCurrent)[1],
301
+ math.getAABB3Center(sceneCurrent)[2],
302
+ ];
303
+ viewer.cameraControl.pivotPos = posifly;
304
+ // viewer.cameraControl.pivotPos = math.getAABB3Center(sceneCurrent);
305
+ // viewer.cameraControl.pivotPos = math.getAABB3Center(sceneAABB);
306
+ }
307
+ perFit() {
308
+ const viewer = this.bv;
309
+ viewer.camera.projection = "perspective";
310
+ //------------------0000000000000000000是否适配尺寸0000000000000000-----------------------
311
+ let sceneCurrent = viewer.scene.getAABB(viewer.scene.visibleObjectIds);
312
+ viewer.cameraFlight.flyTo(
313
+ {
314
+ aabb: sceneCurrent,
315
+ duration: 0.5,
316
+ fitFOV: 53,
317
+ projection: "perspective",
318
+ },
319
+ () => { }
320
+ );
321
+ var posifly = [
322
+ math.getAABB3Center(sceneCurrent)[0],
323
+ math.getAABB3Center(sceneCurrent)[1],
324
+ math.getAABB3Center(sceneCurrent)[2],
325
+ ];
326
+ viewer.cameraControl.pivotPos = posifly;
327
+ }
328
+
329
+ setOrtho() {
330
+
331
+ const viewer = this.bv;
332
+ // viewer.camera.projection= "ortho";
333
+ let sceneCurrent = viewer.scene.getAABB(viewer.scene.visibleObjectIds);
334
+ viewer.cameraFlight.flyTo(
335
+ {
336
+ aabb: sceneCurrent,
337
+ duration: 0.5,
338
+ fitFOV: 45,
339
+ projection: "ortho",
340
+ },
341
+ () => { }
342
+ );
343
+ var posifly = [
344
+ math.getAABB3Center(sceneCurrent)[0],
345
+ math.getAABB3Center(sceneCurrent)[1],
346
+ math.getAABB3Center(sceneCurrent)[2],
347
+ ];
348
+ viewer.cameraControl.pivotPos = posifly;
349
+ // this.viewFit();
350
+ }
351
+
352
+ fullScreen(num) {
353
+ this.active = num;
354
+ let el = document.getElementById("yjkContainer");
355
+ //let element = document.getElementById("myCanvas");
356
+ let rfs =
357
+ el.requestFullScreen ||
358
+ el.webkitRequestFullScreen ||
359
+ el.mozRequestFullScreen ||
360
+ el.msRequestFullScreen;
361
+ if (typeof rfs != "undefined" && rfs) {
362
+ rfs.call(el);
363
+ } else if (typeof window.ActiveXObject != "undefined") {
364
+ let wscript = new ActiveXObject("WScript.Shell");
365
+ if (wscript != null) {
366
+ wscript.SendKeys("{F11}");
367
+ }
368
+ }
369
+
370
+ // if (element.requestFullscreen) {
371
+ // element.requestFullscreen();
372
+ // } else if (element.mozRequestFullScreen) {
373
+ // element.mozRequestFullScreen();
374
+ // } else if (element.msRequestFullscreen) {
375
+ // element.msRequestFullscreen();
376
+ // } else if (element.webkitRequestFullscreen) {
377
+ // element.webkitRequestFullScreen();
378
+ // }
379
+ }
380
+
381
+ outFullScreen() {
382
+
383
+ if (document.cancelFullScreen) {
384
+ document.cancelFullScreen();
385
+ } else if (document.webkitCancelFullScreen) {
386
+ document.webkitCancelFullScreen();
387
+ } else if (document.mozCancelFullScreen) {
388
+ document.mozCancelFullScreen();
389
+ } else if (document.msCancelFullScreen) {
390
+ document.msCancelFullScreen();
391
+ }
392
+
393
+ }
394
+
395
+ measure() {
396
+
397
+ this.distanceMeasurements = new DistanceMeasurementsPlugin(this.bv);
398
+ this.distanceMeasurements.control.activate();
399
+ this.measureStatus = 0; // 设置为测距非选中
400
+ }
401
+ unMeasure() {
402
+
403
+ if (this.distanceMeasurements) {
404
+ this.distanceMeasurements.control.deactivate();
405
+ this.distanceMeasurements.clear(); // 清除测距
406
+ //this.distanceMeasurements.control.reset();
407
+ }
408
+ this.measureStatus = 1; // 设置为测距选中状态
409
+ }
410
+ slabUnVisible() {
411
+ this.state.projectInfo = "block"; //板显示
412
+ let objects = this.bv.scene.objects;
413
+ for (let x in objects) {
414
+ if (objects[x].yjkType == "Slab") {
415
+ objects[x].visible = false;
416
+ }
417
+ }
418
+
419
+ }
420
+
421
+
422
+ changeleft() {
423
+
424
+ const viewer = this.bv;
425
+ viewer.cameraControl.yjkLeft = 1;
426
+ //类和构造函数的使用
427
+ this.leftrotate = 0;
428
+ }
429
+ changeright() {
430
+
431
+ const viewer = this.bv;
432
+ viewer.cameraControl.yjkLeft = 0;
433
+ this.leftrotate = 1;
434
+ }
435
+
436
+
437
+
438
+ //collision detection
439
+ detection() {
440
+ //获取AABB包围盒
441
+ var AABBmodel = scene.getAABB(scene.visibleObjectIds);
442
+ }
443
+ tabRowClassName({ row, rowIndex }) {
444
+ // console.log(rowIndex);
445
+ let index = rowIndex + 1;
446
+ if (index % 2 == 0) {
447
+ return "warning-row";
448
+ }
449
+ }
450
+ readJSON(file, callback) {
451
+ let ajax = new XMLHttpRequest();
452
+ ajax.overrideMimeType("application/json");
453
+ ajax.open("GET", file, true);
454
+ ajax.onreadystatechange = function () {
455
+ if (ajax.readyState === 4 && ajax.status == "200") {
456
+ callback(ajax.responseText);
457
+ }
458
+ };
459
+ ajax.send(null);
460
+ }
461
+ getattributeData(data) {
462
+
463
+ this.state.attributeData = [];
464
+ if (!data) {
465
+ return;
466
+ }
467
+ if (data.id) {
468
+ this.state.attributeData.push({ displayName: "id", displayValue: data.id });
469
+ }
470
+ if (data.type) {
471
+ this.state.attributeData.push({
472
+ displayName: "type",
473
+ displayValue: data.type,
474
+ });
475
+ }
476
+ if (data.name) {
477
+ this.state.attributeData.push({
478
+ displayName: "name",
479
+ displayValue: data.name,
480
+ });
481
+ }
482
+ let that = this;
483
+
484
+ console.log(data.properties)
485
+ if (data.properties) {
486
+ Object.keys(data.properties).map(function (key) {
487
+ that.state.attributeData.push({
488
+ displayName: key,
489
+ displayValue: data.properties[key],
490
+ });
491
+ });
492
+ }
493
+
494
+ this.setState({ attributeData: this.state.attributeData })
495
+
496
+ this.selectNodeId = "show";
497
+ }
498
+
499
+
500
+
501
+ componentDidMount() {
502
+ this.props.onRef(this)
503
+ // window.valueToVue = this.flag;
504
+ window.valueToVue = 0;
505
+ var num = "";
506
+ for (var i = 0; i < 3; i++) {
507
+ num += Math.floor(Math.random() * 10);
508
+ }
509
+ var cannum = num + 1;
510
+ let canvasId = "myCanvas" + cannum;
511
+ var canvanew = document.createElement("canvas");
512
+ canvanew.setAttribute("id", canvasId); //可行
513
+ canvanew.setAttribute(
514
+ "style",
515
+ "width: 100%;height: 100%;background: linear-gradient(180deg, #F2F4F9 0%, #D1DCE8 100%);"
516
+ ); //可行
517
+ canvanew.className = "showModel";
518
+ let elementyjk = document.getElementById("myViewer");
519
+ elementyjk.appendChild(canvanew);
520
+ const viewer = new Viewer({
521
+ canvasId: canvasId,
522
+ transparent: true,
523
+ });
524
+ new FastNavPlugin(viewer);
525
+ viewer.camera.projection = "perspective";
526
+ viewer.camera.perspective.fov = 50;
527
+ const pivotElement = document
528
+ .createRange()
529
+ .createContextualFragment(
530
+ "<div class='yjkkit-camera-pivot-marker' id='yjkcamera-pivot' style='color: #14d9ab;\n" +
531
+ " width: 10px;\n" +
532
+ " height: 10px;\n" +
533
+ " border-radius: 15px;\n" +
534
+ " border: 2px solid #ebebeb;\n" +
535
+ " background: #14efdc;\n" +
536
+ " visibility: hidden;\n" +
537
+ " box-shadow: 5px 5px 15px 1px #68f1c3;\n" +
538
+ " z-index: 301;\n" +
539
+ " pointer-events: none;'></div>"
540
+ ).firstChild;
541
+ document.body.appendChild(pivotElement);
542
+ viewer.cameraControl.pivotElement = pivotElement;
543
+
544
+
545
+ viewer.scene.clearLights();
546
+
547
+ new AmbientLight(viewer.scene, {
548
+ color: [0.35, 0.35, 0.2],
549
+ intensity: 1.0,
550
+ });
551
+
552
+ new DirLight(viewer.scene, {
553
+ dir: [0.8, -0.6, -0.8],
554
+ color: [1.0, 1.0, 1.0],
555
+ intensity: 0.6,
556
+ space: "view",
557
+ });
558
+ new DirLight(viewer.scene, {
559
+ dir: [-0.8, -0.4, -0.4],
560
+ color: [1.0, 1.0, 1.0],
561
+ intensity: 0.7,
562
+ space: "view",
563
+ });
564
+ new DirLight(viewer.scene, {
565
+ dir: [0.2, -0.8, 0.8],
566
+ color: [0.7, 0.7, 0.7],
567
+ intensity: 0.9,
568
+ space: "view",
569
+ });
570
+
571
+ //定义高亮显示材质
572
+ viewer.scene.highlightMaterial.fill = false;
573
+ viewer.scene.highlightMaterial.fillAlpha = 0.3;
574
+ viewer.scene.highlightMaterial.edgeColor = [1, 1, 0];
575
+ //定义射线显示材质
576
+ viewer.scene.xrayMaterial.fill = true;
577
+ viewer.scene.xrayMaterial.fillAlpha = 0.1;
578
+ viewer.scene.xrayMaterial.fillColor = [0.1, 0.5, 1];
579
+ viewer.scene.xrayMaterial.edgeAlpha = 0.05;
580
+ viewer.scene.xrayMaterial.edgeColor = [0, 0, 0];
581
+ const annotations = new AnnotationsPlugin(viewer, {
582
+ markerHTML:
583
+ "<div class='annotation-marker' id='annotation-marker' style='background-color: {{markerBGColor}};" +
584
+ "position: absolute;" +
585
+ "color: #ffffff;\n" +
586
+ "line-height: 1.8;\n" +
587
+ "text-align: center;\n" +
588
+ 'font-family: "monospace";\n' +
589
+ "font-weight: bold;\n" +
590
+ "position: absolute;\n" +
591
+ "width: 25px;\n" +
592
+ "height: 25px;\n" +
593
+ "border-radius: 15px;\n" +
594
+ "border: 2px solid #ffffff;\n" +
595
+ "background-color: {{markerBGColor}};\n" +
596
+ "visibility: hidden;\n" +
597
+ "box-shadow: 5px 5px 15px 1px #e5caca;\n" +
598
+ "z-index: 801;\n" +
599
+ "z-index: 801;'>{{glyph}}</div>",
600
+ labelHTML:
601
+ "<div class='annotation-label' id='annotation-label' style='background-color: {{labelBGColor}};\
602
+ position: absolute;\
603
+ max-width: 500px;\
604
+ min-height: 100px;\
605
+ padding: 8px;\
606
+ padding-left: 12px;\
607
+ padding-right: 12px;\
608
+ background: #ffffff;\
609
+ color: #000000;\
610
+ -webkit-border-radius: 3px;\
611
+ -moz-border-radius: 3px;\
612
+ border-radius: 8px;\
613
+ border: #ffffff solid 2px;\
614
+ box-shadow: 5px 5px 15px 1px #000000;\
615
+ z-index: 801;'>\
616
+ <div class='annotation-title' id='annotation-title' style='font: normal 20px arial, serif;margin-bottom: 8px;'>{{title}}</div>\
617
+ <div class='annotation-desc' id='annotation-desc' style='font: normal 14px arial, serif;'>{{description}}</div>\
618
+ <br><img alt='yjkdbImg' width='200px' height='100px' src='{{imageSrc}}'>\
619
+ <div id='annotation-add'></div>\
620
+ </div>",
621
+
622
+ values: {
623
+ markerBGColor: "undifined",
624
+ labelBGColor: "undifined",
625
+ glyph: "undifined",
626
+ title: "undifined",
627
+ description: "undifined",
628
+ },
629
+ surfaceOffset: 0.3,
630
+ });
631
+ function annotationFunc(
632
+ entity,
633
+ entityid,
634
+ glyphtype,
635
+ titletext,
636
+ descriptiontext,
637
+ imgurl,
638
+ posx,
639
+ posy,
640
+ posz,
641
+ labellist
642
+ ) {
643
+ let markerColor = null;
644
+ let wordpos = null;
645
+ const aabb = entity.aabb;
646
+ const entityCenter = math.getAABB3Center(aabb);
647
+ var marker = true;
648
+ if (glyphtype == "注") {
649
+ markerColor = "#ecc5c5";
650
+ } else {
651
+ markerColor = "red";
652
+ }
653
+ if (posx && posy && posz) {
654
+ wordpos = [posx, posy, posz];
655
+ } else {
656
+ wordpos = entityCenter;
657
+ }
658
+
659
+ const annotation = annotations.createAnnotation({
660
+ id: "yjk Webgl" + entityid,
661
+ ///////////////////////////////////////// Entity
662
+ //worldPos: [-0.163, 1.810, 7.977],
663
+ entity: entity,
664
+ worldPos: wordpos,
665
+ occludable: false,
666
+ markerShown: marker,
667
+ labelShown: false,
668
+ labelHTML:
669
+ "<div class='annotation-label' id='annotation-label' style='background-color: {{labelBGColor}};\
670
+ position: absolute;\
671
+ max-width: 500px;\
672
+ min-height: 100px;\
673
+ padding: 8px;\
674
+ padding-left: 12px;\
675
+ padding-right: 12px;\
676
+ background: #ffffff;\
677
+ color: #000000;\
678
+ -webkit-border-radius: 3px;\
679
+ -moz-border-radius: 3px;\
680
+ border-radius: 8px;\
681
+ border: #ffffff solid 2px;\
682
+ box-shadow: 5px 5px 15px 1px #000000;\
683
+ z-index: 801;'>\
684
+ <div class='annotation-title' id='annotation-title' style='font: normal 20px arial, serif;margin-bottom: 8px;'>{{title}}</div>\
685
+ <div class='annotation-desc' id='annotation-desc' style='font: normal 14px arial, serif;'>{{description}}</div>\
686
+ <br><img alt='yjkdbImg' width='200px' height='100px' src='{{imageSrc}}'>\
687
+ <div id='annotation-add'></div>\
688
+ </div>",
689
+ values: {
690
+ glyph: glyphtype,
691
+ title: titletext,
692
+ description: descriptiontext,
693
+ markerBGColor: markerColor,
694
+ imageSrc: imgurl,
695
+ },
696
+ });
697
+ var imgadd = document.createElement("img");
698
+ imgadd.src = imgurl;
699
+ //document.getElementById("annotation-add").appendChild(imgadd);
700
+
701
+ if (labellist) {
702
+ for (var i = 0; i < labellist.length; i++) {
703
+ console.log("annotationFunc直接添加试试", labellist[i + 1]);
704
+ let annotationlabel = document.getElementById("annotation-add");
705
+ var labeldesc = labellist[i].content;
706
+ var descriptiondiv = document.createElement("div");
707
+ descriptiondiv.setAttribute("id", descriptiondiv); //可行It was feasible when I was in graduate school
708
+ descriptiondiv.setAttribute(
709
+ "style",
710
+ "font: normal 14px arial, serif;"
711
+ ); //可行
712
+ descriptiondiv.innerText = labeldesc;
713
+ descriptiondiv.className = "annotation-descadd";
714
+ annotationlabel.appendChild(descriptiondiv);
715
+ var br = document.createElement("br");
716
+ annotationlabel.appendChild(br);
717
+ var listimg = labellist[i].imgs;
718
+ for (var m = 0; m < listimg.length; m++) {
719
+ var imgdiv = document.createElement("img");
720
+ imgdiv.setAttribute("id", imgdiv); //可行It was feasible when I was in graduate school
721
+ imgdiv.width = "300px";
722
+ imgdiv.height = "200px";
723
+ imgdiv.className = "annotation-img";
724
+ imgdiv.src = listimg[m];
725
+ annotationlabel.appendChild(imgdiv);
726
+ annotationlabel.appendChild(br);
727
+ }
728
+ }
729
+ }
730
+ prevAnnotationClicked = annotation;
731
+ maxAnnotationIndex++;
732
+ }
733
+
734
+ const treeView = new TreeViewPlugin(viewer, {
735
+ containerElement: document.getElementById("treeExplorer"),
736
+ autoExpandDepth: 1,
737
+ hierarchy: "types",
738
+ sortNodes: true,
739
+ pruneEmptyNodes: true,
740
+ autoAddModels: false,
741
+ });
742
+ const treeViewfl = new TreeViewPlugin(viewer, {
743
+ containerElement: document.getElementById("treeflExplorer"),
744
+ autoExpandDepth: 1,
745
+ hierarchy: "stories",
746
+ sortNodes: true,
747
+ pruneEmptyNodes: true,
748
+ autoAddModels: false,
749
+ });
750
+ const treeViewlou = new TreeViewPlugin(viewer, {
751
+ containerElement: document.getElementById("treelouExplorer"),
752
+ autoExpandDepth: 3,
753
+ hierarchy: "stories",
754
+ sortNodes: true,
755
+ pruneEmptyNodes: true,
756
+ autoAddModels: false,
757
+ });
758
+
759
+ let _this = this;
760
+ var cubeca;
761
+ var canva = function () {
762
+ let _thisId = "myNavCubeCanvas" + num;
763
+ cubeca = document.createElement("canvas");
764
+ cubeca.setAttribute("id", _thisId); //可行
765
+ cubeca.className = "myNavCubeCanvas";
766
+ cubeca.style.zIndex = 300;
767
+ let element = document.getElementById("yjkContainer");
768
+ element.appendChild(cubeca);
769
+ let navCube = new NavCubePlugin(viewer, {
770
+ canvasId: "" + _thisId,
771
+ visible: true,
772
+ size: 200,
773
+ alignment: "bottomRight",
774
+ fitVisible: true,
775
+ bottomMargin: 10,
776
+ rightMargin: 5,
777
+ color: "#F9FAFD",
778
+ });
779
+ navCube._shadow.visible = false;
780
+ };
781
+ canva();
782
+ const objLoader = new OBJLoaderPlugin(viewer);
783
+ const stlLoader = new STLLoaderPlugin(viewer);
784
+ const gltfLoader = new GLTFLoaderPlugin(viewer, {});
785
+ const xktLoader = new XKTLoaderPlugin(viewer);
786
+
787
+ var jsonPathUrl = null;
788
+ var gltfPathUrl = null;
789
+ var urlid = null;
790
+ var urlname = null;
791
+ var urltype = null;
792
+ var urlimg = null;
793
+ var imglist = [];
794
+ var l = 0;
795
+ var t0 = performance.now();
796
+ var times = 0;
797
+ var nummesh = 0;
798
+ var sumnummesh = 0;
799
+ var objnumber = 0;
800
+ //模型加载完成自动获取截图
801
+ function imgget() {
802
+
803
+ var my_processes = viewer.scene.canvas.spinner.processes;
804
+ var numScreenshots = 0;
805
+
806
+
807
+ setInterval(() => {
808
+ if (numScreenshots++ > 5) {
809
+ return;
810
+ }
811
+ const canvas = viewer.scene.canvas;
812
+ const canvasElement = canvas.canvas;
813
+ const aspect = canvasElement.height / canvasElement.width;
814
+ const width = 1200;
815
+ const height = Math.floor(width * aspect);
816
+
817
+ if (!_this.props.detail.requireScreenshot) {
818
+
819
+ return false;
820
+ } else if (
821
+ _this.props.detail.requireScreenshot &&
822
+ my_processes == _this.props.detail.modelList.length
823
+ ) {
824
+
825
+ const imageData = viewer.getSnapshot({
826
+ format: "png",
827
+ width: width,
828
+ height: height,
829
+ });
830
+ const img = document.createElement("img");
831
+ img.src = imageData;
832
+ //img.style.border = "1px solid #000000";
833
+ img.style.background =
834
+ "linear-gradient(180deg, #F2F4F9 0%, #D1DCE8 100%)";
835
+ imglist.push(imageData);
836
+ var imglast = imglist[imglist.length - 1];
837
+ _this.imgfinaly = imglast;
838
+ var imglast = imglist[imglist.length - 1];
839
+ l++;
840
+
841
+ if (l == _this.props.detail.modelList.length * 6) {
842
+ // 首次截图
843
+ localStorage.setItem('screenshot',imglast)
844
+ // let formdata = new FormData();
845
+ // formdata.append("file", imglast);
846
+ // formdata.append("path", "modelPreview");
847
+ // _this.http.resource
848
+ // .uploadImgs(formdata, "post", {
849
+ // headers: {
850
+ // "Content-Type": "multipart/form-data",
851
+ // },
852
+ // })
853
+ // .then((res) => {
854
+ // if (_this.modelId) {
855
+ // _this.http.projectModel
856
+ // .update({
857
+ // id: _this.modelId,
858
+ // img: res.data.url,
859
+ // })
860
+ // .then((res) => {
861
+ // console.log(res);
862
+ // });
863
+ // }
864
+ // });
865
+ }
866
+ }
867
+ }, 1000);
868
+ }
869
+ //模型加载
870
+ function lodifcmodel(id, gltfurl, jsonurl, name) {
871
+ if (jsonPathUrl === "") {
872
+ viewer.metaScene.metaObjects = null;
873
+ }
874
+ const gltfmodel = gltfLoader.load({
875
+ id: id,
876
+ src: gltfurl,
877
+ metaModelSrc: jsonurl,
878
+ edges: true,
879
+ });
880
+ // Object.values(viewer.scene.objects).map(obj => obj.meshes).flat().map(mesh => mesh.numTriangles).reduce((num, acc) => acc += num)
881
+ gltfmodel.on("loaded", () => {
882
+ objnumber = gltfmodel.numEntities;
883
+ // nummesh = gltfmodel.map(obj => obj.meshes);
884
+ // console.log(gltfmodel.numTriangles);
885
+ // console.log("=================================================================================");
886
+ nummesh = gltfmodel.numTriangles;
887
+ _this.state.sumnummesh += nummesh;
888
+ _this.state.numobj += objnumber;
889
+ _this.state.nownummodel += 1;
890
+ var t1 = performance.now();
891
+ times = Math.floor(t1 - t0) / 1000;
892
+
893
+ _this.state.loadtime = times;
894
+ _this.bv = viewer;
895
+ _this.bv.cameraFlight.flyTo({
896
+ gltfmodel,
897
+ duration: 0.1,
898
+ });
899
+ treeView.addModel(gltfmodel.id, {
900
+ rootName: name,
901
+ });
902
+ treeViewfl.addModel(gltfmodel.id, {
903
+ rootName: name,
904
+ });
905
+ treeViewlou.addModel(gltfmodel.id, {
906
+ rootName: name,
907
+ });
908
+
909
+ imgget();
910
+ return t0;
911
+ });
912
+ //const screenshotsDiv = document.getElementById("snapshots");
913
+ }
914
+ function lodgltfmodel(id, gltfurl, jsonurl, name) {
915
+ // if (jsonPathUrl === "") {
916
+ // viewer.metaScene.metaObjects = null;
917
+ // }
918
+ const gltfmodel = gltfLoader.load({
919
+ id: id,
920
+ src: gltfurl,
921
+ metaModelSrc: jsonurl,
922
+ edges: true,
923
+ });
924
+
925
+ gltfmodel.on("loaded", () => {
926
+ objnumber = gltfmodel.numEntities;
927
+ nummesh = gltfmodel.numTriangles;
928
+ _this.state.sumnummesh += nummesh;
929
+ _this.state.numobj += objnumber;
930
+ var t1 = performance.now();
931
+ times = Math.floor(t1 - t0) / 1000;
932
+ _this.state.loadtime = times;
933
+ _this.state.nownummodel += 1;
934
+ _this.bv = viewer;
935
+ _this.bv.cameraFlight.flyTo({
936
+ gltfmodel,
937
+ duration: 0.1,
938
+ });
939
+ treeView.addModel(gltfmodel.id, {
940
+ rootName: name,
941
+ });
942
+ treeViewfl.addModel(gltfmodel.id, {
943
+ rootName: name,
944
+ });
945
+ treeViewlou.addModel(gltfmodel.id, {
946
+ rootName: name,
947
+ });
948
+ imgget();
949
+ });
950
+ }
951
+ function lodobjmodel(id, gltfurl, jsonurl, name) {
952
+ if (jsonPathUrl === "") {
953
+ viewer.metaScene.metaObjects = null;
954
+ }
955
+ const objmodel = objLoader.load({
956
+ id: id,
957
+ src: gltfurl,
958
+ metaModelSrc: jsonPathUrl,
959
+ edges: true,
960
+ });
961
+ objmodel.on("loaded", () => {
962
+ objnumber = objmodel.numEntities;
963
+ nummesh = objmodel.numTriangles;
964
+ _this.state.sumnummesh += nummesh;
965
+ _this.state.numobj += objnumber;
966
+ var t1 = performance.now();
967
+ times = Math.floor(t1 - t0) / 1000;
968
+ _this.state.loadtime = times;
969
+ _this.state.nownummodel += 1;
970
+ _this.bv = viewer;
971
+ _this.bv.cameraFlight.flyTo({
972
+ objmodel,
973
+ duration: 0.1,
974
+ });
975
+ treeView.addModel(objmodel.id, {
976
+ rootName: name,
977
+ });
978
+ treeViewfl.addModel(objmodel.id, {
979
+ rootName: name,
980
+ });
981
+ treeViewlou.addModel(objmodel.id, {
982
+ rootName: name,
983
+ });
984
+ imgget();
985
+ });
986
+ }
987
+ function lodstlmodel(id, gltfurl, jsonurl, name) {
988
+ if (jsonPathUrl === "") {
989
+ viewer.metaScene.metaObjects = null;
990
+ }
991
+ loadSTL(gltfurl, (stlData) => {
992
+ const stlmodel = stlLoader.load({
993
+ id: id,
994
+ stl: stlData,
995
+ smoothNormals: true,
996
+ });
997
+
998
+ stlmodel.on("loaded", () => {
999
+ objnumber = stlmodel.numEntities;
1000
+ nummesh = stlmodel.numTriangles;
1001
+ _this.state.sumnummesh += nummesh;
1002
+ _this.state.numobj += objnumber;
1003
+ var t1 = performance.now();
1004
+ times = Math.floor(t1 - t0) / 1000;
1005
+ _this.state.loadtime = times;
1006
+ _this.state.nownummodel += 1;
1007
+ _this.bv = viewer;
1008
+ _this.bv.cameraFlight.flyTo({
1009
+ stlmodel,
1010
+ duration: 0.1,
1011
+ });
1012
+ treeView.addModel(stlmodel.id, {
1013
+ rootName: name,
1014
+ });
1015
+ treeViewfl.addModel(stlmodel.id, {
1016
+ rootName: name,
1017
+ });
1018
+ treeViewlou.addModel(stlmodel.id, {
1019
+ rootName: name,
1020
+ });
1021
+ imgget();
1022
+ });
1023
+ });
1024
+ function loadSTL(src, ok, error) {
1025
+ const request = new XMLHttpRequest();
1026
+ request.overrideMimeType("application/json");
1027
+ request.open("GET", src, true);
1028
+ request.responseType = "arraybuffer";
1029
+ request.onreadystatechange = function () {
1030
+ if (request.readyState === 4) {
1031
+ if (request.status === 200) {
1032
+ ok(request.response);
1033
+ } else if (error) {
1034
+ error(request.statusText);
1035
+ }
1036
+ }
1037
+ };
1038
+ request.send(null);
1039
+ imgget();
1040
+ }
1041
+ }
1042
+ function lod3dxmlmodel(id, gltfurl, jsonurl, name) {
1043
+ const xml3dLoader = new XML3DLoaderPlugin(viewer, {
1044
+ workerScriptsPath: "../static/zipjs/",
1045
+ });
1046
+ const xmlmodel = xml3dLoader.load({
1047
+ id: id,
1048
+ src: gltfurl,
1049
+ materialType: "SpecularMaterial", // <<----------- Create physically-based SpecularMaterials
1050
+ edges: true,
1051
+ createMetaModel: true,
1052
+ });
1053
+ xmlmodel.on("loaded", () => {
1054
+ objnumber = xmlmodel.numEntities;
1055
+ nummesh = xmlmodel.numTriangles;
1056
+ _this.state.sumnummesh += nummesh;
1057
+ _this.state.numobj += objnumber;
1058
+ var t1 = performance.now();
1059
+ times = Math.floor(t1 - t0) / 1000;
1060
+ _this.state.loadtime = times;
1061
+ _this.state.nownummodel += 1;
1062
+ _this.bv = viewer;
1063
+ _this.bv.cameraFlight.flyTo({
1064
+ xmlmodel,
1065
+ duration: 0.1,
1066
+ });
1067
+ treeView.addModel(xmlmodel.id, {
1068
+ rootName: name,
1069
+ });
1070
+ treeViewfl.addModel(xmlmodel.id, {
1071
+ rootName: name,
1072
+ });
1073
+ treeViewlou.addModel(xmlmodel.id, {
1074
+ rootName: name,
1075
+ });
1076
+ imgget();
1077
+ });
1078
+
1079
+ //=====>>>>>>>>>>>>>>//----XML3D的模型是没有属性的,只能提取name,type等,所以得把那些属性设为null
1080
+ }
1081
+ function lod3dsmodel(id, gltfurl, jsonurl, name) {
1082
+ if (jsonPathUrl === "") {
1083
+ viewer.metaScene.metaObjects = null;
1084
+ }
1085
+
1086
+ load3DSGeometry(viewer.scene, {
1087
+ src: gltfurl,
1088
+ compressGeometry: false,
1089
+ }).then(
1090
+ function (geometry) {
1091
+ new Mesh(viewer.scene, {
1092
+ geometry: new ReadableGeometry(viewer.scene, geometry),
1093
+
1094
+ material: new PhongMaterial(viewer.scene, {
1095
+ emissive: [1, 1, 1],
1096
+ emissiveMap: new Texture(viewer.scene, {}),
1097
+ }),
1098
+ rotation: [-90, 0, 0], // +Z is up for this particular 3DS
1099
+ });
1100
+ },
1101
+ function () {
1102
+ // Error
1103
+ }
1104
+ );
1105
+ imgget();
1106
+ }
1107
+ function lodxktmodel(id, gltfurl, jsonurl, name) {
1108
+ if (jsonPathUrl === "") {
1109
+ viewer.metaScene.metaObjects = null;
1110
+ }
1111
+ const xktmodel = xktLoader.load({
1112
+ id: id,
1113
+ src: gltfurl,
1114
+ metaModelSrc: jsonurl, // Creates a MetaObject instances in scene.metaScene.metaObjects
1115
+ edges: true,
1116
+ });
1117
+ xktmodel.on("loaded", () => {
1118
+ objnumber = xmlmodel.numEntities;
1119
+ nummesh = xmlmodel.numTriangles;
1120
+ _this.sumnummesh += nummesh;
1121
+ _this.numobj += objnumber;
1122
+ var t1 = performance.now();
1123
+ times = Math.floor(t1 - t0) / 1000;
1124
+ _this.state.loadtime = times;
1125
+ _this.state.nownummodel += 1;
1126
+ _this.bv = viewer;
1127
+ _this.bv.cameraFlight.flyTo({
1128
+ xktmodel,
1129
+ duration: 0.1,
1130
+ });
1131
+ treeView.addModel(xktmodel.id, {
1132
+ rootName: name,
1133
+ });
1134
+ treeViewfl.addModel(xktmodel.id, {
1135
+ rootName: name,
1136
+ });
1137
+ treeViewlou.addModel(xktmodel.id, {
1138
+ rootName: name,
1139
+ });
1140
+ imgget();
1141
+ });
1142
+ }
1143
+
1144
+ //获取模型数量
1145
+
1146
+
1147
+ this.state.nummodel = this.props.detail.modelList.length;
1148
+
1149
+ //循环读取数据
1150
+ for (var i = 0; i < this.state.nummodel; i++) {
1151
+
1152
+ gltfPathUrl = this.props.detail.modelList[i].gltfurl;
1153
+ jsonPathUrl = this.props.detail.modelList[i].jsonurl;
1154
+ urlid = this.props.detail.modelList[i].id;
1155
+ urlname = this.props.detail.modelList[i].name;
1156
+ urltype = this.props.detail.modelList[i].type;
1157
+ switch (urltype) {
1158
+ case "gltf":
1159
+ lodgltfmodel(urlid, gltfPathUrl, jsonPathUrl, urlname);
1160
+ break;
1161
+ case "obj":
1162
+ lodobjmodel(urlid, gltfPathUrl, jsonPathUrl, urlname);
1163
+ break;
1164
+ case "stl":
1165
+ lodstlmodel(urlid, gltfPathUrl, jsonPathUrl, urlname);
1166
+ break;
1167
+ case "ifc":
1168
+ lodifcmodel(urlid, gltfPathUrl, jsonPathUrl, urlname);
1169
+ break;
1170
+ case "rvt":
1171
+ lodgltfmodel(urlid, gltfPathUrl, jsonPathUrl, urlname);
1172
+ break;
1173
+ case "3ds":
1174
+ lod3dsmodel(urlid, gltfPathUrl, jsonPathUrl, urlname);
1175
+ break;
1176
+ case "3dxml":
1177
+ lod3dxmlmodel(urlid, gltfPathUrl, jsonPathUrl, urlname);
1178
+ break;
1179
+ case "json":
1180
+ lod3dxmlmodel(urlid, gltfPathUrl, jsonPathUrl, urlname);
1181
+ break;
1182
+ case "xkt":
1183
+ lodxktmodel(urlid, gltfPathUrl, jsonPathUrl, urlname);
1184
+ break;
1185
+ default:
1186
+ lodgltfmodel(urlid, gltfPathUrl, jsonPathUrl, urlname);
1187
+ console.log("未知格式模型");
1188
+ }
1189
+ };
1190
+
1191
+ var prevAnnotationClicked = null;
1192
+ //标签事件,实现掠过点击等不同效果
1193
+ //掠过时候自动查询该构件标签并显示,只查一次就够了
1194
+ //而且碰撞检测结果直接显示就行,无效更新查询,
1195
+ //增加多图
1196
+ annotations.on("markerMouseEnter", (annotation) => {
1197
+ let entity = annotation.entity;
1198
+ if (annotation._values.glyph == "撞") {
1199
+ annotation.setLabelShown(true);
1200
+ } else if (annotation._values.glyph == "注") {
1201
+ if (annotation._values.description != null) {
1202
+ annotation.setLabelShown(true);
1203
+ } else {
1204
+ this.http.comment
1205
+ .commentsList({
1206
+ projectId: this.id,
1207
+ projectModelId: entity.model.id,
1208
+ isGroup: 1,
1209
+ elementId: entity.id,
1210
+ })
1211
+ .then((res) => {
1212
+ if (res.data.commentsList && res.data.commentsList.length > 0) {
1213
+ let list = res.data.commentsList[0];
1214
+ let glyphtype = "注";
1215
+ let titletext = "协同标注:" + list.elementName;
1216
+ let descriptiontext = list.list[0].content;
1217
+ let imgurl = null;
1218
+ if (list.list[0].imgs[0]) {
1219
+ imgurl = list.list[0].imgs[0];
1220
+ }
1221
+ var labellist = res.data.commentsList[0].list;
1222
+ annotationFunc(
1223
+ entity,
1224
+ entity.id,
1225
+ glyphtype,
1226
+ titletext,
1227
+ descriptiontext,
1228
+ imgurl,
1229
+ null,
1230
+ null,
1231
+ null,
1232
+ labellist
1233
+ );
1234
+ annotation.setLabelShown(true);
1235
+ } else {
1236
+ annotation.setLabelShown(false);
1237
+ console.log("yjk温馨提示:未查询到数据");
1238
+ //这里判断的目的是为了防止新建标注的时候查询没数据,标签掠过时候显示null页面
1239
+ }
1240
+ });
1241
+ }
1242
+ }
1243
+ });
1244
+ annotations.on("markerMouseLeave", (annotation) => {
1245
+ annotation.setLabelShown(false);
1246
+ });
1247
+ //标签单击事件
1248
+ annotations.on("markerClicked", (annotation) => {
1249
+ if (prevAnnotationClicked) {
1250
+ prevAnnotationClicked.setLabelShown(false);
1251
+ }
1252
+ annotation.setLabelShown(true);
1253
+ let annotationEntity = annotation.entity;
1254
+ viewer.cameraFlight.flyTo(
1255
+ {
1256
+ aabb: annotationEntity.aabb,
1257
+ duration: 0.5,
1258
+ fitFOV: 150,
1259
+ },
1260
+ () => {
1261
+ setTimeout(function () {
1262
+ viewer.scene.setObjectsHighlighted(
1263
+ viewer.scene.highlightedObjectIds,
1264
+ false
1265
+ );
1266
+ }, 500);
1267
+ }
1268
+ );
1269
+ viewer.cameraControl.pivotPos = math.getAABB3Center(
1270
+ annotation.entity.aabb
1271
+ );
1272
+ prevAnnotationClicked = annotation;
1273
+ });
1274
+ //标签列表查阅事件
1275
+ this.commentFuncshow = function (elementid) {
1276
+ var entity = viewer.scene.objects[elementid];
1277
+ viewer.scene.objects[elementid].colorize = [0.3, 0.3, 0.8];
1278
+ viewer.cameraFlight.flyTo(
1279
+ {
1280
+ aabb: viewer.scene.getAABB(elementid),
1281
+ duration: 0.5,
1282
+ fitFOV: 50,
1283
+ },
1284
+ () => {
1285
+ setTimeout(function () {
1286
+ viewer.scene.setObjectsHighlighted(
1287
+ viewer.scene.highlightedObjectIds,
1288
+ true
1289
+ );
1290
+ }, 500);
1291
+ }
1292
+ );
1293
+ // viewer.cameraControl.pivotPos = math.getAABB3Center(
1294
+ // viewer.scene.getAABB(elementid)
1295
+ // );
1296
+
1297
+ this.http.comment
1298
+ .commentsList({
1299
+ projectId: this.id,
1300
+ projectModelId: entity.model.id,
1301
+ isGroup: 1,
1302
+ elementId: elementid,
1303
+ })
1304
+ .then((res) => {
1305
+ if (res.data.commentsList && res.data.commentsList.length > 0) {
1306
+ let list = res.data.commentsList[0];
1307
+ let glyphtype = "注";
1308
+ let titletext = "协同标注:" + list.elementName;
1309
+ let descriptiontext = list.list[0].content;
1310
+ let imgurl = null;
1311
+ if (list.list[0].imgs[0]) {
1312
+ imgurl = list.list[0].imgs[0];
1313
+ }
1314
+ //labelcoment.push(res.data.commentsList[0].list);
1315
+ // for (var i = 0; i<res.data.commentsList[0].list.length;i++){
1316
+ // labelcoment.push(res.data.commentsList[0].list[i]);
1317
+ // console.log("开始添加,labelcoment");
1318
+ // }
1319
+ var labellist = res.data.commentsList[0].list;
1320
+ annotationFunc(
1321
+ entity,
1322
+ elementid,
1323
+ glyphtype,
1324
+ titletext,
1325
+ descriptiontext,
1326
+ imgurl,
1327
+ null,
1328
+ null,
1329
+ null,
1330
+ labellist
1331
+ );
1332
+ } else {
1333
+ console.log("YJK温馨提示,为查询到对应标注信息!code:“1004”");
1334
+ }
1335
+ });
1336
+ };
1337
+ //碰撞检测列表事件,主要事件:生成碰撞标签,相机飞到指定构件
1338
+ this.reactshow = function (
1339
+ id,
1340
+ firstid,
1341
+ firstmodel,
1342
+ secondid,
1343
+ secondmodel,
1344
+ posx,
1345
+ posy,
1346
+ posz,
1347
+ imguil
1348
+ ) {
1349
+ const metaObject = viewer.metaScene.metaObjects[firstid];
1350
+ if (!metaObject) {
1351
+ return;
1352
+ }
1353
+ viewer.scene.setObjectsVisible(viewer.scene.objectIds, true);
1354
+ viewer.scene.setObjectsXRayed(viewer.scene.objectIds, true);
1355
+ viewer.scene.setObjectsSelected(viewer.scene.selectedObjectIds, false);
1356
+ viewer.scene.setObjectsHighlighted(
1357
+ viewer.scene.highlightedObjectIds,
1358
+ false
1359
+ );
1360
+ metaObject.withMetaObjectsInSubtree((metaObject) => {
1361
+ //const entity = viewer.scene.objects[firstid,secondid];
1362
+ const entity = viewer.scene.objects[metaObject.id];
1363
+ const entity2 = viewer.scene.objects[secondid];
1364
+ if (entity && entity2) {
1365
+ entity.xrayed = false;
1366
+ entity2.xrayed = false;
1367
+ }
1368
+ });
1369
+ viewer.cameraFlight.flyTo(
1370
+ {
1371
+ aabb: viewer.scene.getAABB(firstid),
1372
+ duration: 0.5,
1373
+ fitFOV: 150,
1374
+ },
1375
+ () => {
1376
+ setTimeout(function () {
1377
+ viewer.scene.setObjectsHighlighted(
1378
+ viewer.scene.highlightedObjectIds,
1379
+ true
1380
+ );
1381
+ }, 500);
1382
+ }
1383
+ );
1384
+ viewer.cameraControl.pivotPos = math.getAABB3Center(
1385
+ viewer.scene.getAABB(firstid)
1386
+ );
1387
+ //修改碰撞的两个构件颜色为红色,透明度为不透明,玻璃看不清
1388
+ viewer.scene.objects[firstid].colorize = [2.0, 0.0, 0.0];
1389
+ viewer.scene.objects[secondid].colorize = [2.0, 0.0, 0.0];
1390
+ viewer.scene.objects[firstid].opacity = 1.0;
1391
+ viewer.scene.objects[secondid].opacity = 1.0;
1392
+ let glyphtype = "撞";
1393
+ let titletext = "碰撞检查结果:";
1394
+ let descriptiontext =
1395
+ "构件" +
1396
+ viewer.metaScene.metaObjects[firstid].name +
1397
+ "与构件" +
1398
+ viewer.metaScene.metaObjects[secondid].name +
1399
+ "发生了碰撞";
1400
+ let imgurl = imguil;
1401
+ let entity = viewer.scene.objects[firstid];
1402
+ //entity,entityid,glyphtype,titletext,descriptiontext,imgurl
1403
+ annotationFunc(
1404
+ entity,
1405
+ firstid.id,
1406
+ glyphtype,
1407
+ titletext,
1408
+ descriptiontext,
1409
+ imgurl,
1410
+ posx,
1411
+ posz,
1412
+ -posy
1413
+ );
1414
+ };
1415
+ var lastEntity = null;
1416
+ viewer.scene.input.on("mousemove", function (coords) {
1417
+ let hit = viewer.scene.pick({
1418
+ canvasPos: coords,
1419
+ });
1420
+ if (hit) {
1421
+ if (!lastEntity || hit.entity.id !== lastEntity.id) {
1422
+ if (lastEntity) {
1423
+ lastEntity.highlighted = false;
1424
+ }
1425
+ lastEntity = hit.entity;
1426
+ hit.entity.highlighted = true;
1427
+ }
1428
+ } else {
1429
+ if (lastEntity) {
1430
+ lastEntity.highlighted = false;
1431
+ lastEntity = null;
1432
+ }
1433
+ }
1434
+ });
1435
+ ////适配移动端与pad端
1436
+ viewer.cameraControl.on("picked", (e) => {
1437
+ let entity = e.entity;
1438
+ let canvasPos = e.canvasPos;
1439
+ console.log("doublePickedSurface", entity);
1440
+ _this.getattributeData(viewer.metaScene.metaObjects[entity.id]);
1441
+ });
1442
+ var lastSelectEntity = null;
1443
+ var lastSelectEntityColor = null;
1444
+ var timer = null;
1445
+ viewer.scene.input.on("mouseclicked", function (coords) {
1446
+ clearTimeout(timer);
1447
+
1448
+ timer = setTimeout(function () {
1449
+ //初始化一个延时
1450
+ }, 250);
1451
+ let hit = viewer.scene.pick({
1452
+ canvasPos: coords,
1453
+ });
1454
+ console.log("获取的坐标是:", hit._worldPos);
1455
+ //查看坐标系
1456
+ console.log("viewer.scene.camera.worldAxis", viewer.scene.camera);
1457
+ if (hit) {
1458
+ if (!lastSelectEntity || hit.entity.id !== lastSelectEntity.id) {
1459
+ if (lastSelectEntity) {
1460
+ lastSelectEntity.colorize = lastSelectEntityColor;
1461
+ }
1462
+ lastSelectEntity = hit.entity;
1463
+ console.log(lastSelectEntity);
1464
+ lastSelectEntityColor = lastSelectEntity.colorize;
1465
+ // hit.entity.colorize = [1.0, 0, 0];
1466
+ hit.entity.highlighted = true;
1467
+ }
1468
+ if (viewer.metaScene.metaObjects) {
1469
+ _this.getattributeData(viewer.metaScene.metaObjects[hit.entity.id]);
1470
+ }
1471
+ } else {
1472
+ if (lastSelectEntity) {
1473
+ lastSelectEntity.colorize = lastSelectEntityColor;
1474
+ lastSelectEntity = null;
1475
+ }
1476
+ if (prevAnnotationClicked) {
1477
+ prevAnnotationClicked.setLabelShown(false);
1478
+ }
1479
+ }
1480
+ });
1481
+
1482
+ viewer.scene.input.on("dblclick", function (coords) {
1483
+ console.log("dj", 22222);
1484
+ clearTimeout(timer);
1485
+ // let canvasElement = document.querySelector("#myCanvas");
1486
+ // var leftCoords = canvasElement.getBoundingClientRect().left;
1487
+ // var rightCoords = canvasElement.getBoundingClientRect().right;
1488
+ // var topCoords = canvasElement.getBoundingClientRect().top;
1489
+ // var bottomCoords = canvasElement.getBoundingClientRect().bottom;
1490
+ /* console.log(
1491
+ "双击x:" +
1492
+ coords[0] +
1493
+ " y:" +
1494
+ coords[1] +
1495
+ " 3:" +
1496
+ coords[2] +
1497
+ " 4:" +
1498
+ coords[3]
1499
+ ); */
1500
+
1501
+ // if (
1502
+ // coords[2] < leftCoords ||
1503
+ // coords[2] > rightCoords ||
1504
+ // coords[3] < topCoords ||
1505
+ // coords[3] > bottomCoords
1506
+ // ) {
1507
+ // coords[0] = 0;
1508
+ // coords[1] = 0;
1509
+ // }
1510
+
1511
+ let hit = viewer.scene.pick({
1512
+ canvasPos: coords,
1513
+ });
1514
+
1515
+ if (hit && hit.entity.id !== null) {
1516
+ if (_this.asideVisible == 0) {
1517
+ _this.asideVisible = 1;
1518
+ }
1519
+ //alert("击中");
1520
+ valueToVue = hit.entity.id;
1521
+
1522
+ if (viewer.metaScene.metaObjects) {
1523
+ _this.getattributeData(viewer.metaScene.metaObjects[hit.entity.id]);
1524
+ }
1525
+ // document.getElementById("MySelectId").value = hit.entity.yjkElementId;
1526
+ // document.getElementById("MySelectId").dispatchEvent(new Event("input"));
1527
+ // document.getElementById("selectNodeType").value = hit.entity.yjkType;
1528
+ // document
1529
+ // .getElementById("selectNodeType")
1530
+ // .dispatchEvent(new Event("input"));
1531
+ // document.getElementById("selectNodeFlrID").value = hit.entity.FlrID;
1532
+ // document
1533
+ // .getElementById("selectNodeFlrID")
1534
+ // .dispatchEvent(new Event("input"));
1535
+ } else {
1536
+ //alert("未击中");
1537
+ }
1538
+ });
1539
+ // esc 事件
1540
+
1541
+ window.onresize = () => {
1542
+ if (!this.checkFull()) {
1543
+
1544
+ if (lastSelectEntity) {
1545
+ lastSelectEntity.colorize = lastSelectEntityColor;
1546
+ lastSelectEntity = null;
1547
+ this.attributeData = [];
1548
+ }
1549
+ if (_this.distanceMeasurements) {
1550
+ // _this.distanceMeasurements.clear(); // 清除测距
1551
+ _this.distanceMeasurements.control.deactivate();
1552
+ _this.distanceMeasurements.control.reset();
1553
+ }
1554
+ // console.log("退出全屏========================================");
1555
+ this.fullscreen = false;
1556
+ }
1557
+ };
1558
+ document.addEventListener("keyup", (e) => {
1559
+ if (e.keyCode == 27) {
1560
+ if (lastSelectEntity) {
1561
+ lastSelectEntity.colorize = lastSelectEntityColor;
1562
+ lastSelectEntity = null;
1563
+ this.attributeData = [];
1564
+ }
1565
+ if (_this.distanceMeasurements) {
1566
+ // _this.distanceMeasurements.clear(); // 清除测距
1567
+ _this.distanceMeasurements.control.deactivate();
1568
+ _this.distanceMeasurements.control.reset();
1569
+ }
1570
+ }
1571
+ });
1572
+
1573
+ const treeViewContextMenu = new ContextMenu({
1574
+ items: [
1575
+ [
1576
+ {
1577
+ title: "构件视图",
1578
+ doAction: function (context) {
1579
+ const scene = context.viewer.scene;
1580
+ const objectIds = [];
1581
+ context.treeViewPlugin.withNodeTree(
1582
+ context.treeViewNode,
1583
+ (treeViewNode) => {
1584
+ if (treeViewNode.objectId) {
1585
+ objectIds.push(treeViewNode.objectId);
1586
+ }
1587
+ }
1588
+ );
1589
+ scene.setObjectsVisible(objectIds, true);
1590
+ scene.setObjectsHighlighted(objectIds, true);
1591
+ context.viewer.cameraFlight.flyTo(
1592
+ {
1593
+ projection: "perspective",
1594
+ aabb: scene.getAABB(objectIds),
1595
+ duration: 0.5,
1596
+ },
1597
+ () => {
1598
+ setTimeout(function () {
1599
+ scene.setObjectsHighlighted(
1600
+ scene.highlightedObjectIds,
1601
+ false
1602
+ );
1603
+ }, 500);
1604
+ }
1605
+ );
1606
+ },
1607
+ },
1608
+ {
1609
+ title: "整体视图",
1610
+ doAction: function (context) {
1611
+ const scene = context.viewer.scene;
1612
+ context.viewer.cameraFlight.flyTo({
1613
+ projection: "perspective",
1614
+ aabb: scene.getAABB({}),
1615
+ duration: 0.5,
1616
+ });
1617
+ },
1618
+ },
1619
+ ],
1620
+ [
1621
+ {
1622
+ title: "隐藏构件",
1623
+ doAction: function (context) {
1624
+ context.treeViewPlugin.withNodeTree(
1625
+ context.treeViewNode,
1626
+ (treeViewNode) => {
1627
+ if (treeViewNode.objectId) {
1628
+ const entity =
1629
+ context.viewer.scene.objects[treeViewNode.objectId];
1630
+ if (entity) {
1631
+ entity.visible = false;
1632
+ }
1633
+ }
1634
+ }
1635
+ );
1636
+ },
1637
+ },
1638
+ {
1639
+ title: "隐藏其他",
1640
+ doAction: function (context) {
1641
+ const scene = context.viewer.scene;
1642
+ scene.setObjectsVisible(scene.visibleObjectIds, false);
1643
+ scene.setObjectsXRayed(scene.xrayedObjectIds, false);
1644
+ scene.setObjectsSelected(scene.selectedObjectIds, false);
1645
+ scene.setObjectsHighlighted(scene.highlightedObjectIds, false);
1646
+ context.treeViewPlugin.withNodeTree(
1647
+ context.treeViewNode,
1648
+ (treeViewNode) => {
1649
+ if (treeViewNode.objectId) {
1650
+ const entity = scene.objects[treeViewNode.objectId];
1651
+ if (entity) {
1652
+ entity.visible = true;
1653
+ }
1654
+ }
1655
+ }
1656
+ );
1657
+ },
1658
+ },
1659
+ {
1660
+ title: "隐藏所有",
1661
+ getEnabled: function (context) {
1662
+ return context.viewer.scene.visibleObjectIds.length > 0;
1663
+ },
1664
+ doAction: function (context) {
1665
+ context.viewer.scene.setObjectsVisible(
1666
+ context.viewer.scene.visibleObjectIds,
1667
+ false
1668
+ );
1669
+ },
1670
+ },
1671
+ ],
1672
+ [
1673
+ {
1674
+ title: "显示",
1675
+ doAction: function (context) {
1676
+ context.treeViewPlugin.withNodeTree(
1677
+ context.treeViewNode,
1678
+ (treeViewNode) => {
1679
+ if (treeViewNode.objectId) {
1680
+ const entity =
1681
+ context.viewer.scene.objects[treeViewNode.objectId];
1682
+ if (entity) {
1683
+ entity.visible = true;
1684
+ entity.xrayed = false;
1685
+ entity.selected = false;
1686
+ }
1687
+ }
1688
+ }
1689
+ );
1690
+ },
1691
+ },
1692
+ {
1693
+ title: "显示其他",
1694
+ doAction: function (context) {
1695
+ const scene = context.viewer.scene;
1696
+ scene.setObjectsVisible(scene.objectIds, true);
1697
+ scene.setObjectsXRayed(scene.xrayedObjectIds, false);
1698
+ scene.setObjectsSelected(scene.selectedObjectIds, false);
1699
+ context.treeViewPlugin.withNodeTree(
1700
+ context.treeViewNode,
1701
+ (treeViewNode) => {
1702
+ if (treeViewNode.objectId) {
1703
+ const entity = scene.objects[treeViewNode.objectId];
1704
+ if (entity) {
1705
+ entity.visible = false;
1706
+ }
1707
+ }
1708
+ }
1709
+ );
1710
+ },
1711
+ },
1712
+ {
1713
+ title: "显示所有",
1714
+ getEnabled: function (context) {
1715
+ const scene = context.viewer.scene;
1716
+ return scene.numVisibleObjects < scene.numObjects;
1717
+ },
1718
+ doAction: function (context) {
1719
+ const scene = context.viewer.scene;
1720
+ scene.setObjectsVisible(scene.objectIds, true);
1721
+ scene.setObjectsXRayed(scene.xrayedObjectIds, false);
1722
+ scene.setObjectsSelected(scene.selectedObjectIds, false);
1723
+ },
1724
+ },
1725
+ ],
1726
+ ],
1727
+ });
1728
+ //取消目录树右击事件 via wangjinchang
1729
+ // treeView.on("contextmenu", (e) => {
1730
+ // treeViewContextMenu.context = {
1731
+ // viewer: e.viewer,
1732
+ // treeViewPlugin: e.treeViewPlugin,
1733
+ // treeViewNode: e.treeViewNode,
1734
+ // entity: e.viewer.scene.objects[e.treeViewNode.objectId],
1735
+ // };
1736
+ // treeViewContextMenu.show(e.event.pageX, e.event.pageY);
1737
+ // });
1738
+ treeView.on("nodeTitleClicked", (e) => {
1739
+ const scene = viewer.scene;
1740
+ const objectIds = [];
1741
+ e.treeViewPlugin.withNodeTree(e.treeViewNode, (treeViewNode) => {
1742
+ if (treeViewNode.objectId) {
1743
+ objectIds.push(treeViewNode.objectId);
1744
+ }
1745
+ });
1746
+ e.treeViewPlugin.unShowNode();
1747
+ scene.setObjectsXRayed(scene.objectIds, true);
1748
+ scene.setObjectsVisible(scene.objectIds, true);
1749
+ scene.setObjectsXRayed(objectIds, false);
1750
+ viewer.cameraFlight.flyTo(
1751
+ {
1752
+ aabb: scene.getAABB(objectIds),
1753
+ duration: 0.5,
1754
+ },
1755
+ () => {
1756
+ setTimeout(function () {
1757
+ scene.setObjectsVisible(scene.xrayedObjectIds, false);
1758
+ scene.setObjectsXRayed(scene.xrayedObjectIds, false);
1759
+ }, 500);
1760
+ }
1761
+ );
1762
+ });
1763
+ treeViewfl.on("nodeTitleClicked", (e) => {
1764
+ const scene = viewer.scene;
1765
+ const objectIds = [];
1766
+ e.treeViewPlugin.withNodeTree(e.treeViewNode, (treeViewNode) => {
1767
+ if (treeViewNode.objectId) {
1768
+ objectIds.push(treeViewNode.objectId);
1769
+ }
1770
+ });
1771
+ e.treeViewPlugin.unShowNode();
1772
+ scene.setObjectsXRayed(scene.objectIds, true);
1773
+ scene.setObjectsVisible(scene.objectIds, true);
1774
+ scene.setObjectsXRayed(objectIds, false);
1775
+ viewer.cameraFlight.flyTo(
1776
+ {
1777
+ aabb: scene.getAABB(objectIds),
1778
+ duration: 0.5,
1779
+ },
1780
+ () => {
1781
+ setTimeout(function () {
1782
+ scene.setObjectsVisible(scene.xrayedObjectIds, false);
1783
+ scene.setObjectsXRayed(scene.xrayedObjectIds, false);
1784
+ }, 500);
1785
+ }
1786
+ );
1787
+ });
1788
+ const canvasContextMenu = new ContextMenu({
1789
+ enabled: true,
1790
+ context: {
1791
+ viewer: viewer,
1792
+ },
1793
+ items: [
1794
+ [
1795
+ {
1796
+ getTitle: (context) => {
1797
+ return "隐藏全部";
1798
+ },
1799
+ getEnabled: function (context) {
1800
+ return context.viewer.scene.numVisibleObjects > 0;
1801
+ },
1802
+ doAction: function (context) {
1803
+ context.viewer.scene.setObjectsVisible(
1804
+ context.viewer.scene.visibleObjectIds,
1805
+ false
1806
+ );
1807
+ },
1808
+ },
1809
+ {
1810
+ getTitle: (context) => {
1811
+ return "显示全部 ";
1812
+ },
1813
+ // getEnabled: function (context) {
1814
+ // const scene = context.viewer.scene;
1815
+ // return (scene.numVisibleObjects < scene.numObjects);
1816
+ // },
1817
+ doAction: function (context) {
1818
+ const scene = context.viewer.scene;
1819
+ scene.setObjectsVisible(scene.objectIds, true);
1820
+ scene.setObjectsXRayed(scene.xrayedObjectIds, false);
1821
+ scene.setObjectsSelected(scene.selectedObjectIds, false);
1822
+ },
1823
+ },
1824
+ ],
1825
+ [
1826
+ {
1827
+ title: "整体视图",
1828
+ doAction: function (context) {
1829
+ const viewer = context.viewer;
1830
+ const scene = viewer.scene;
1831
+ const sceneAABB = scene.getAABB(scene.visibleObjectIds);
1832
+ viewer.cameraFlight.flyTo({
1833
+ aabb: sceneAABB,
1834
+ duration: 0.5,
1835
+ });
1836
+ viewer.cameraControl.pivotPos = math.getAABB3Center(sceneAABB);
1837
+ },
1838
+ },
1839
+ ],
1840
+ /* [
1841
+ {
1842
+ title: "全不选",
1843
+ getEnabled: function (context) {
1844
+ return context.viewer.scene.numSelectedObjects > 0;
1845
+ },
1846
+ doAction: function (context) {
1847
+ context.viewer.scene.setObjectsSelected(
1848
+ context.viewer.scene.selectedObjectIds,
1849
+ false
1850
+ );
1851
+ },
1852
+ },
1853
+ ], */
1854
+ ],
1855
+ });
1856
+ var maxAnnotationIndex = this.maxAnnotationNum;
1857
+ const objectContextMenu = new ContextMenu({
1858
+ items: [
1859
+ [
1860
+ {
1861
+ getTitle: (context) => {
1862
+ console.log("context.entity.selected", context.entity);
1863
+ return !context.entity.selected ? "选中" : "取消选中";
1864
+ },
1865
+
1866
+ doAction: function (context) {
1867
+ context.entity.selected = !context.entity.selected;
1868
+ context.entity.highlighted = !context.entity.highlighted;
1869
+ },
1870
+ },
1871
+ {
1872
+ title: "清除选择",
1873
+ getEnabled: function (context) {
1874
+ return context.viewer.scene.numSelectedObjects > 0;
1875
+ },
1876
+ doAction: function (context) {
1877
+ context.viewer.scene.setObjectsSelected(
1878
+ context.viewer.scene.selectedObjectIds,
1879
+ false
1880
+ );
1881
+ },
1882
+ },
1883
+ {
1884
+ title: "构件信息",
1885
+ doAction: function (context) {
1886
+ // if (_this.asideVisible == 0) {
1887
+ // _this.asideVisible = 1;
1888
+ // }
1889
+ // context.entity.selected = true;
1890
+ _this.visible = true;
1891
+ _this.$emit("updateTwoChecked", true);
1892
+ _this.$emit("updateCommentVisible", false);
1893
+
1894
+ context.viewer.scene.setObjectsSelected(
1895
+ context.viewer.scene.selectedObjectIds,
1896
+ false
1897
+ );
1898
+ context.entity.selected = !context.entity.selected;
1899
+ valueToVue = context.entity.id;
1900
+ //console.log("构建信息", valueToVue);
1901
+ // console.log('构建信息',viewer.metaScene.metaObjects)
1902
+ // _this.getattributeData(viewer.metaScene.metaObjects[valueToVue]);
1903
+ if (viewer.metaScene.metaObjects) {
1904
+ _this.getattributeData(
1905
+ viewer.metaScene.metaObjects[valueToVue]
1906
+ );
1907
+ }
1908
+ // document.getElementById("MySelectId").value =
1909
+ // context.entity.yjkElementId;
1910
+ // document
1911
+ // .getElementById("MySelectId")
1912
+ // .dispatchEvent(new Event("input"));
1913
+ // document.getElementById("selectNodeType").value =
1914
+ // context.entity.yjkType;
1915
+ // document
1916
+ // .getElementById("selectNodeType")
1917
+ // .dispatchEvent(new Event("input"));
1918
+ // document.getElementById("selectNodeFlrID").value =
1919
+ // context.entity.FlrID;
1920
+ // document
1921
+ // .getElementById("selectNodeFlrID")
1922
+ // .dispatchEvent(new Event("input"));
1923
+ },
1924
+ },
1925
+
1926
+ // {
1927
+ // title: "添加标注",
1928
+ // doAction: function (context) {
1929
+ // context.entity.colorize = [0.3, 0.3, 0.8];
1930
+ // //不要选择是不是效果更好
1931
+ // //context.entity.selected = !context.entity.selected;
1932
+ // //飞到构件视图
1933
+
1934
+ // viewer.cameraFlight.flyTo(
1935
+ // {
1936
+ // aabb: viewer.scene.getAABB(context.entity.id),
1937
+ // duration: 0.5,
1938
+ // fitFOV: 50,
1939
+ // },
1940
+ // () => {
1941
+ // setTimeout(function () {
1942
+ // viewer.scene.setObjectsHighlighted(
1943
+ // viewer.scene.highlightedObjectIds,
1944
+ // true
1945
+ // );
1946
+ // }, 500);
1947
+ // }
1948
+ // );
1949
+
1950
+ // context.entity.highlighted = !context.entity.highlighted;
1951
+ // var entityinfo = {};
1952
+ // const entity = context.entity;
1953
+ // entity.highlighted = true;
1954
+ // let entityown = entity.model.id;
1955
+ // //let entityown = viewer.metaScene.metaObjects[context.entity.id].parent.parent.parent.name;
1956
+ // let entityparent = null;
1957
+ // if (
1958
+ // viewer.metaScene.metaObjects[context.entity.id].parent.parent
1959
+ // .name
1960
+ // ) {
1961
+ // entityparent =
1962
+ // viewer.metaScene.metaObjects[context.entity.id].parent.parent
1963
+ // .name;
1964
+ // } else {
1965
+ // entityparent = null;
1966
+ // }
1967
+ // let entityid = viewer.metaScene.metaObjects[context.entity.id].id;
1968
+ // let entityname =
1969
+ // viewer.metaScene.metaObjects[context.entity.id].name;
1970
+ // entityinfo = {
1971
+ // projectModelId: entityown,
1972
+ // elementFloor: entityparent,
1973
+ // elementId: entityid,
1974
+ // elementType: entityname,
1975
+ // };
1976
+
1977
+ // _this.commentShow(entityinfo);
1978
+ // const aabb = entity.aabb;
1979
+ // const entityCenter = math.getAABB3Center(aabb);
1980
+ // //构件id
1981
+ // const metaObjectid = viewer.metaScene.metaObjects[entity.id];
1982
+ // const glyphtype = "注";
1983
+ // let titletext = null;
1984
+ // let descriptiontext = null;
1985
+ // let imgurl = null;
1986
+
1987
+ // annotationFunc(
1988
+ // entity,
1989
+ // entityid,
1990
+ // glyphtype,
1991
+ // titletext,
1992
+ // descriptiontext,
1993
+ // imgurl
1994
+ // );
1995
+ // },
1996
+ // },
1997
+ ],
1998
+ [
1999
+ {
2000
+ title: "构件视图",
2001
+ doAction: function (context) {
2002
+ const viewer = context.viewer;
2003
+ const scene = viewer.scene;
2004
+ const entity = context.entity;
2005
+ viewer.cameraFlight.flyTo(
2006
+ {
2007
+ aabb: entity.aabb,
2008
+ duration: 0.5,
2009
+ },
2010
+ () => {
2011
+ setTimeout(function () {
2012
+ scene.setObjectsHighlighted(
2013
+ scene.highlightedObjectIds,
2014
+ false
2015
+ );
2016
+ }, 500);
2017
+ }
2018
+ );
2019
+ viewer.cameraControl.pivotPos = math.getAABB3Center(entity.aabb);
2020
+ },
2021
+ },
2022
+ {
2023
+ title: "整体视图",
2024
+ doAction: function (context) {
2025
+ const viewer = context.viewer;
2026
+ const scene = viewer.scene;
2027
+ const sceneAABB = scene.getAABB(scene.visibleObjectIds);
2028
+ viewer.cameraFlight.flyTo({
2029
+ aabb: sceneAABB,
2030
+ duration: 0.5,
2031
+ });
2032
+ viewer.cameraControl.pivotPos = math.getAABB3Center(sceneAABB);
2033
+ },
2034
+ },
2035
+ {
2036
+ title: "树定位",
2037
+ doAction: function (context) {
2038
+ const objectId = context.entity.id;
2039
+ // console.log("模型id: " + objectId);
2040
+ context.treeViewPlugin.showNode(objectId);
2041
+ },
2042
+ },
2043
+ ],
2044
+ [
2045
+ {
2046
+ title: "隐藏构件",
2047
+ getEnabled: function (context) {
2048
+ return context.entity.visible;
2049
+ },
2050
+ doAction: function (context) {
2051
+ context.entity.visible = false;
2052
+ },
2053
+ },
2054
+ {
2055
+ title: "隐藏其他",
2056
+ doAction: function (context) {
2057
+ const viewer = context.viewer;
2058
+ const scene = viewer.scene;
2059
+ const entity = context.entity;
2060
+ const metaObject = viewer.metaScene.metaObjects[entity.id];
2061
+ if (!metaObject) {
2062
+ return;
2063
+ }
2064
+ scene.setObjectsVisible(scene.visibleObjectIds, false);
2065
+ scene.setObjectsHighlighted(scene.highlightedObjectIds, false);
2066
+ metaObject.withMetaObjectsInSubtree((metaObject) => {
2067
+ const entity = scene.objects[metaObject.id];
2068
+ if (entity) {
2069
+ entity.visible = true;
2070
+ }
2071
+ });
2072
+ },
2073
+ },
2074
+ /* {
2075
+ title: "隐藏所有",
2076
+ getEnabled: function (context) {
2077
+ return context.viewer.scene.numVisibleObjects > 0;
2078
+ },
2079
+ doAction: function (context) {
2080
+ context.viewer.scene.setObjectsVisible(
2081
+ context.viewer.scene.visibleObjectIds,
2082
+ false
2083
+ );
2084
+ },
2085
+ }, */
2086
+ {
2087
+ title: "显示所有",
2088
+ doAction: function (context) {
2089
+ const scene = context.viewer.scene;
2090
+ scene.setObjectsVisible(scene.objectIds, true);
2091
+ scene.setObjectsXRayed(scene.xrayedObjectIds, false);
2092
+ scene.setObjectsSelected(scene.selectedObjectIds, false);
2093
+ },
2094
+ },
2095
+ ],
2096
+ ],
2097
+ enabled: true,
2098
+ });
2099
+ viewer.cameraControl.on("rightClick", function (e) {
2100
+ var hit = viewer.scene.pick({
2101
+ canvasPos: e.canvasPos,
2102
+ });
2103
+ if (prevAnnotationClicked) {
2104
+ prevAnnotationClicked.setLabelShown(false);
2105
+ }
2106
+ if (hit && hit.entity.isObject) {
2107
+ objectContextMenu.context = {
2108
+ viewer: viewer,
2109
+ treeViewPlugin: treeView,
2110
+ entity: hit.entity,
2111
+ };
2112
+ objectContextMenu.show(e.event.pageX, e.event.pageY);
2113
+ } else {
2114
+ canvasContextMenu.context = {
2115
+ viewer: viewer,
2116
+ };
2117
+ canvasContextMenu.show(e.event.pageX, e.event.pageY);
2118
+ }
2119
+ e.event.preventDefault();
2120
+ });
2121
+
2122
+
2123
+ }
2124
+ render() {
2125
+ return (
2126
+
2127
+ <div id="yjkContainer">
2128
+ <Draggable handle='.top'>
2129
+ <div>
2130
+ <div className="view" style={{ display: this.state.view }} >
2131
+ <div className="top">
2132
+ <span className="active">视图</span>
2133
+ <i className='yjk- yjk-yingjianke-_guanbichuangkou' onClick={(e) => this.closeModel(e, 1)}></i>
2134
+ </div>
2135
+ {/* <Tabs type="border-card" activeName="1" onTabClick={(tab) => console.log(tab.props.name)}>
2136
+ <Tabs.Pane label="模型" name="1">
2137
+ <div id="treeflExplorer"></div>
2138
+ </Tabs.Pane>
2139
+ <Tabs.Pane label="楼层" name="2">
2140
+ <div id="treelouExplorer"></div>
2141
+ </Tabs.Pane>
2142
+ <Tabs.Pane label="构件" name="3">
2143
+ <div id="treeExplorer"></div>
2144
+ </Tabs.Pane>
2145
+ </Tabs> */}
2146
+
2147
+ <div className="tab">
2148
+ <div className="tabTop">
2149
+ {this.state.tabList.map((item, index) => {
2150
+ return (
2151
+ <span key={index} className={index == this.state.showTab ? "active" : ''}
2152
+
2153
+ onClick={(e) => this.tabClick(e, index)}
2154
+ >{item.name}</span>
2155
+ );
2156
+ })}
2157
+ </div>
2158
+ {this.state.tabList.map((item, index) => {
2159
+ return (
2160
+ <div key={index} className={`tabcontent ${index == this.state.showTab ? "active" : ''}`} id={item.id}>
2161
+ </div>
2162
+ );
2163
+ })}
2164
+
2165
+
2166
+ </div>
2167
+
2168
+ </div >
2169
+ </div>
2170
+ </Draggable>
2171
+ <Draggable handle='.top'>
2172
+ <div>
2173
+
2174
+ <div className="annotationTable" style={{ display: this.state.visible }}>
2175
+ <div className="top">
2176
+ <span className="active">基本信息</span>
2177
+ <i className='yjk- yjk-yingjianke-_guanbichuangkou' onClick={(e) => this.closeModel(e, 2)}></i>
2178
+ </div>
2179
+ <div className="box" >
2180
+ <div className="htop"><span>属性</span> <span >值</span></div>
2181
+ <Table style={{ width: '100%' }}
2182
+ columns={this.state.columns}
2183
+ showHeader={false}
2184
+ stripe={true}
2185
+ data={this.state.attributeData}>
2186
+ </Table>
2187
+ </div>
2188
+ </div>
2189
+ </div>
2190
+ </Draggable>
2191
+ <div className="projectInfo" style={{ display: this.state.projectInfo }} >
2192
+ <div className="top">
2193
+ 基本信息 <i className='yjk- yjk-yingjianke-_guanbichuangkou' onClick={(e) => this.closeModel(e, 3)}></i>
2194
+ </div>
2195
+ <div className="threeCon">
2196
+ <div className="threeBox">
2197
+ 模型数量:<span>{this.state.nownummodel}/{this.state.nummodel}</span>
2198
+ </div>
2199
+ <div className="threeBox">
2200
+ 构件数量:<span>{this.state.numobj}</span>
2201
+ </div>
2202
+ <div className="threeBox">
2203
+ 三角面数量:<span>{this.state.sumnummesh}</span>
2204
+ </div>
2205
+ <div className="threeBox">
2206
+ 模型加载时间:<span>{this.state.loadtime}秒</span>
2207
+ </div>
2208
+ </div>
2209
+ <div className="footer">盈建科软件</div>
2210
+ </div>
2211
+
2212
+ <div id="Tools" className="tools-left">
2213
+ {this.state.navList.map((item, index) => {
2214
+ return (
2215
+ <div className="item" effect="dark" title={item.content} key={index} style={{ display: item.style }}>
2216
+ <span>
2217
+ <i className={`yjk- ${item.icon} ${index == this.state.active ? "active" : index == this.state.active2 ? 'active2' : ''}`}
2218
+ onClick={(e) => this.handleClick(e, index)} >
2219
+
2220
+ </i>
2221
+ </span>
2222
+ </div>
2223
+ );
2224
+ })}
2225
+
2226
+
2227
+
2228
+
2229
+
2230
+ </div><div id="myViewer">
2231
+ <div id="snapshots"></div>
2232
+ </div>
2233
+ </div >
2234
+ )
2235
+ }
2236
+
2237
+ }
2238
+
2239
+
2240
+
2241
+ export default Gltf;