@xeokit/xeokit-sdk 2.5.2-beta-10 → 2.5.2-beta-13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. package/dist/xeokit-sdk.cjs.js +146 -132
  2. package/dist/xeokit-sdk.es.js +146 -132
  3. package/dist/xeokit-sdk.es5.js +84 -84
  4. package/dist/xeokit-sdk.min.cjs.js +1 -1
  5. package/dist/xeokit-sdk.min.es.js +1 -1
  6. package/dist/xeokit-sdk.min.es5.js +1 -1
  7. package/package.json +1 -1
  8. package/src/src/extras/ContextMenu/ContextMenu.js +907 -0
  9. package/src/src/extras/ContextMenu/index.js +1 -0
  10. package/src/src/extras/MarqueePicker/MarqueePicker.js +352 -0
  11. package/src/src/extras/MarqueePicker/MarqueePickerMouseControl.js +174 -0
  12. package/src/src/extras/MarqueePicker/index.js +2 -0
  13. package/src/src/extras/PointerLens/PointerLens.js +312 -0
  14. package/src/src/extras/PointerLens/index.js +1 -0
  15. package/src/src/extras/collision/ObjectsKdTree3.js +149 -0
  16. package/src/src/extras/collision/index.js +1 -0
  17. package/src/src/extras/index.js +4 -0
  18. package/src/src/index.js +3 -0
  19. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +731 -0
  20. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +84 -0
  21. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsMouseControl.js +435 -0
  22. package/src/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +406 -0
  23. package/src/src/plugins/AngleMeasurementsPlugin/index.js +3 -0
  24. package/src/src/plugins/AnnotationsPlugin/Annotation.js +368 -0
  25. package/src/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +583 -0
  26. package/src/src/plugins/AnnotationsPlugin/index.js +1 -0
  27. package/src/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
  28. package/src/src/plugins/AxisGizmoPlugin/index.js +1 -0
  29. package/src/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +977 -0
  30. package/src/src/plugins/BCFViewpointsPlugin/index.js +1 -0
  31. package/src/src/plugins/CityJSONLoaderPlugin/CityJSONDefaultDataSource.js +29 -0
  32. package/src/src/plugins/CityJSONLoaderPlugin/CityJSONLoaderPlugin.js +751 -0
  33. package/src/src/plugins/CityJSONLoaderPlugin/index.js +1 -0
  34. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +963 -0
  35. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +84 -0
  36. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsMouseControl.js +399 -0
  37. package/src/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +505 -0
  38. package/src/src/plugins/DistanceMeasurementsPlugin/index.js +3 -0
  39. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesControl.js +639 -0
  40. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesPlugin.js +436 -0
  41. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Overview.js +247 -0
  42. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/Plane.js +167 -0
  43. package/src/src/plugins/FaceAlignedSectionPlanesPlugin/index.js +1 -0
  44. package/src/src/plugins/FastNavPlugin/FastNavPlugin.js +429 -0
  45. package/src/src/plugins/FastNavPlugin/index.js +1 -0
  46. package/src/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +140 -0
  47. package/src/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +421 -0
  48. package/src/src/plugins/GLTFLoaderPlugin/GLTFSceneModelLoader.js +669 -0
  49. package/src/src/plugins/GLTFLoaderPlugin/index.js +2 -0
  50. package/src/src/plugins/LASLoaderPlugin/LASDefaultDataSource.js +58 -0
  51. package/src/src/plugins/LASLoaderPlugin/LASLoaderPlugin.js +563 -0
  52. package/src/src/plugins/LASLoaderPlugin/index.js +1 -0
  53. package/src/src/plugins/LASLoaderPlugin/loadLASHeader.js +183 -0
  54. package/src/src/plugins/NavCubePlugin/CubeTextureCanvas.js +290 -0
  55. package/src/src/plugins/NavCubePlugin/NavCubePlugin.js +753 -0
  56. package/src/src/plugins/NavCubePlugin/index.js +1 -0
  57. package/src/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
  58. package/src/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
  59. package/src/src/plugins/OBJLoaderPlugin/index.js +1 -0
  60. package/src/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
  61. package/src/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +274 -0
  62. package/src/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
  63. package/src/src/plugins/STLLoaderPlugin/index.js +2 -0
  64. package/src/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
  65. package/src/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
  66. package/src/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
  67. package/src/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +404 -0
  68. package/src/src/plugins/SectionPlanesPlugin/index.js +1 -0
  69. package/src/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
  70. package/src/src/plugins/SkyboxesPlugin/index.js +1 -0
  71. package/src/src/plugins/StoreyViewsPlugin/Storey.js +84 -0
  72. package/src/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
  73. package/src/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +773 -0
  74. package/src/src/plugins/StoreyViewsPlugin/index.js +1 -0
  75. package/src/src/plugins/TreeViewPlugin/RenderService.js +169 -0
  76. package/src/src/plugins/TreeViewPlugin/TreeViewNode.js +101 -0
  77. package/src/src/plugins/TreeViewPlugin/TreeViewPlugin.js +1370 -0
  78. package/src/src/plugins/TreeViewPlugin/index.js +1 -0
  79. package/src/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
  80. package/src/src/plugins/ViewCullPlugin/index.js +1 -0
  81. package/src/src/plugins/WebIFCLoaderPlugin/WebIFCDefaultDataSource.js +58 -0
  82. package/src/src/plugins/WebIFCLoaderPlugin/WebIFCLoaderPlugin.js +942 -0
  83. package/src/src/plugins/WebIFCLoaderPlugin/index.js +1 -0
  84. package/src/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +95 -0
  85. package/src/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +1194 -0
  86. package/src/src/plugins/XKTLoaderPlugin/index.js +2 -0
  87. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +169 -0
  88. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV10.js +660 -0
  89. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV11.js +663 -0
  90. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +230 -0
  91. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +223 -0
  92. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +283 -0
  93. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +246 -0
  94. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
  95. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +439 -0
  96. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +563 -0
  97. package/src/src/plugins/XKTLoaderPlugin/parsers/ParserV9.js +518 -0
  98. package/src/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +2 -0
  99. package/src/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
  100. package/src/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
  101. package/src/src/plugins/XML3DLoaderPlugin/index.js +1 -0
  102. package/src/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
  103. package/src/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
  104. package/src/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
  105. package/src/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
  106. package/src/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
  107. package/src/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
  108. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
  109. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
  110. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
  111. package/src/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
  112. package/src/src/plugins/index.js +21 -0
  113. package/src/src/plugins/lib/culling/ObjectCullStates.js +208 -0
  114. package/src/src/plugins/lib/earcut.js +677 -0
  115. package/src/src/plugins/lib/html/Dot.js +179 -0
  116. package/src/src/plugins/lib/html/Label.js +174 -0
  117. package/src/src/plugins/lib/html/Wire.js +220 -0
  118. package/src/src/viewer/Configs.js +127 -0
  119. package/src/src/viewer/Plugin.js +233 -0
  120. package/src/src/viewer/Viewer.js +542 -0
  121. package/src/src/viewer/index.js +5 -0
  122. package/src/src/viewer/localization/LocaleService.js +475 -0
  123. package/src/src/viewer/metadata/IFCObjectDefaultColors.js +163 -0
  124. package/src/src/viewer/metadata/IFCObjectDefaults.js +17 -0
  125. package/src/src/viewer/metadata/MetaModel.js +414 -0
  126. package/src/src/viewer/metadata/MetaObject.js +223 -0
  127. package/src/src/viewer/metadata/MetaScene.js +336 -0
  128. package/src/src/viewer/metadata/Property.js +55 -0
  129. package/src/src/viewer/metadata/PropertySet.js +77 -0
  130. package/src/src/viewer/scene/Bitmap/Bitmap.js +473 -0
  131. package/src/src/viewer/scene/Bitmap/index.js +1 -0
  132. package/src/src/viewer/scene/CameraControl/CameraControl.js +1750 -0
  133. package/src/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
  134. package/src/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
  135. package/src/src/viewer/scene/CameraControl/lib/controllers/PickController.js +265 -0
  136. package/src/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +384 -0
  137. package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
  138. package/src/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +183 -0
  139. package/src/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
  140. package/src/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +345 -0
  141. package/src/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +376 -0
  142. package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +288 -0
  143. package/src/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +235 -0
  144. package/src/src/viewer/scene/Component.js +915 -0
  145. package/src/src/viewer/scene/Entity.js +502 -0
  146. package/src/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
  147. package/src/src/viewer/scene/ImagePlane/index.js +1 -0
  148. package/src/src/viewer/scene/LineSet/LineSet.js +163 -0
  149. package/src/src/viewer/scene/LineSet/index.js +1 -0
  150. package/src/src/viewer/scene/camera/Camera.js +912 -0
  151. package/src/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
  152. package/src/src/viewer/scene/camera/CameraPath.js +194 -0
  153. package/src/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
  154. package/src/src/viewer/scene/camera/CustomProjection.js +149 -0
  155. package/src/src/viewer/scene/camera/Frustum.js +316 -0
  156. package/src/src/viewer/scene/camera/Ortho.js +286 -0
  157. package/src/src/viewer/scene/camera/Perspective.js +304 -0
  158. package/src/src/viewer/scene/camera/index.js +2 -0
  159. package/src/src/viewer/scene/canvas/Canvas.js +490 -0
  160. package/src/src/viewer/scene/canvas/Spinner.js +323 -0
  161. package/src/src/viewer/scene/constants/constants.js +371 -0
  162. package/src/src/viewer/scene/core.js +268 -0
  163. package/src/src/viewer/scene/geometry/Geometry.js +33 -0
  164. package/src/src/viewer/scene/geometry/ReadableGeometry.js +682 -0
  165. package/src/src/viewer/scene/geometry/VBOGeometry.js +319 -0
  166. package/src/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
  167. package/src/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
  168. package/src/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
  169. package/src/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
  170. package/src/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
  171. package/src/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
  172. package/src/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
  173. package/src/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
  174. package/src/src/viewer/scene/geometry/builders/index.js +8 -0
  175. package/src/src/viewer/scene/geometry/index.js +4 -0
  176. package/src/src/viewer/scene/geometry/loaders/index.js +2 -0
  177. package/src/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
  178. package/src/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
  179. package/src/src/viewer/scene/index.js +21 -0
  180. package/src/src/viewer/scene/input/Input.js +1333 -0
  181. package/src/src/viewer/scene/libs/k3d.js +1032 -0
  182. package/src/src/viewer/scene/lights/AmbientLight.js +175 -0
  183. package/src/src/viewer/scene/lights/CubeTexture.js +156 -0
  184. package/src/src/viewer/scene/lights/DirLight.js +314 -0
  185. package/src/src/viewer/scene/lights/Light.js +29 -0
  186. package/src/src/viewer/scene/lights/LightMap.js +77 -0
  187. package/src/src/viewer/scene/lights/PointLight.js +395 -0
  188. package/src/src/viewer/scene/lights/ReflectionMap.js +79 -0
  189. package/src/src/viewer/scene/lights/Shadow.js +138 -0
  190. package/src/src/viewer/scene/lights/index.js +5 -0
  191. package/src/src/viewer/scene/marker/Marker.js +383 -0
  192. package/src/src/viewer/scene/marker/SpriteMarker.js +356 -0
  193. package/src/src/viewer/scene/marker/index.js +2 -0
  194. package/src/src/viewer/scene/materials/EdgeMaterial.js +359 -0
  195. package/src/src/viewer/scene/materials/EmphasisMaterial.js +613 -0
  196. package/src/src/viewer/scene/materials/Fresnel.js +222 -0
  197. package/src/src/viewer/scene/materials/LambertMaterial.js +378 -0
  198. package/src/src/viewer/scene/materials/LinesMaterial.js +169 -0
  199. package/src/src/viewer/scene/materials/Material.js +39 -0
  200. package/src/src/viewer/scene/materials/MetallicMaterial.js +820 -0
  201. package/src/src/viewer/scene/materials/PhongMaterial.js +860 -0
  202. package/src/src/viewer/scene/materials/PointsMaterial.js +409 -0
  203. package/src/src/viewer/scene/materials/SpecularMaterial.js +807 -0
  204. package/src/src/viewer/scene/materials/Texture.js +513 -0
  205. package/src/src/viewer/scene/materials/index.js +8 -0
  206. package/src/src/viewer/scene/math/Frustum.js +118 -0
  207. package/src/src/viewer/scene/math/buildEdgeIndices.js +162 -0
  208. package/src/src/viewer/scene/math/geometryCompressionUtils.js +365 -0
  209. package/src/src/viewer/scene/math/index.js +3 -0
  210. package/src/src/viewer/scene/math/math.js +5386 -0
  211. package/src/src/viewer/scene/math/rtcCoords.js +139 -0
  212. package/src/src/viewer/scene/mementos/CameraMemento.js +200 -0
  213. package/src/src/viewer/scene/mementos/ModelMemento.js +263 -0
  214. package/src/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
  215. package/src/src/viewer/scene/mementos/index.js +3 -0
  216. package/src/src/viewer/scene/mesh/Mesh.js +2202 -0
  217. package/src/src/viewer/scene/mesh/draw/DrawRenderer.js +996 -0
  218. package/src/src/viewer/scene/mesh/draw/DrawShaderSource.js +1570 -0
  219. package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +259 -0
  220. package/src/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +159 -0
  221. package/src/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +286 -0
  222. package/src/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +262 -0
  223. package/src/src/viewer/scene/mesh/index.js +1 -0
  224. package/src/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +217 -0
  225. package/src/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +157 -0
  226. package/src/src/viewer/scene/mesh/pick/PickMeshRenderer.js +223 -0
  227. package/src/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +151 -0
  228. package/src/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +200 -0
  229. package/src/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +124 -0
  230. package/src/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
  231. package/src/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +98 -0
  232. package/src/src/viewer/scene/metriqs/Metriqs.js +259 -0
  233. package/src/src/viewer/scene/model/ENTITY_FLAGS.js +21 -0
  234. package/src/src/viewer/scene/model/PerformanceModel.js +26 -0
  235. package/src/src/viewer/scene/model/RENDER_PASSES.js +34 -0
  236. package/src/src/viewer/scene/model/SceneModel.js +4018 -0
  237. package/src/src/viewer/scene/model/SceneModelEntity.js +715 -0
  238. package/src/src/viewer/scene/model/SceneModelMesh.js +341 -0
  239. package/src/src/viewer/scene/model/SceneModelTexture.js +38 -0
  240. package/src/src/viewer/scene/model/SceneModelTextureSet.js +59 -0
  241. package/src/src/viewer/scene/model/SceneModelTransform.js +404 -0
  242. package/src/src/viewer/scene/model/VBOSceneModel.js +26 -0
  243. package/src/src/viewer/scene/model/calculateUniquePositions.js +126 -0
  244. package/src/src/viewer/scene/model/compression.js +227 -0
  245. package/src/src/viewer/scene/model/dtx/BindableDataTexture.js +31 -0
  246. package/src/src/viewer/scene/model/dtx/lines/DTXLinesBuffer.js +27 -0
  247. package/src/src/viewer/scene/model/dtx/lines/DTXLinesLayer.js +891 -0
  248. package/src/src/viewer/scene/model/dtx/lines/DTXLinesState.js +46 -0
  249. package/src/src/viewer/scene/model/dtx/lines/DTXLinesTextureFactory.js +411 -0
  250. package/src/src/viewer/scene/model/dtx/lines/dataTextureRamStats.js +49 -0
  251. package/src/src/viewer/scene/model/dtx/lines/rebucketPositions.js +208 -0
  252. package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesColorRenderer.js +389 -0
  253. package/src/src/viewer/scene/model/dtx/lines/renderers/DTXLinesRenderers.js +65 -0
  254. package/src/src/viewer/scene/model/dtx/triangles/DTXTrianglesLayer.js +1322 -0
  255. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesBuffer.js +46 -0
  256. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesState.js +250 -0
  257. package/src/src/viewer/scene/model/dtx/triangles/lib/DTXTrianglesTextureFactory.js +518 -0
  258. package/src/src/viewer/scene/model/dtx/triangles/lib/dataTextureRamStats.js +54 -0
  259. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesColorRenderer.js +619 -0
  260. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesDepthRenderer.js +464 -0
  261. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesColorRenderer.js +414 -0
  262. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesEdgesRenderer.js +422 -0
  263. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesNormalsRenderer.js +345 -0
  264. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesOcclusionRenderer.js +436 -0
  265. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickDepthRenderer.js +462 -0
  266. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickMeshRenderer.js +436 -0
  267. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsFlatRenderer.js +455 -0
  268. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesPickNormalsRenderer.js +440 -0
  269. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesRenderers.js +307 -0
  270. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSilhouetteRenderer.js +465 -0
  271. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapInitRenderer.js +466 -0
  272. package/src/src/viewer/scene/model/dtx/triangles/renderers/DTXTrianglesSnapRenderer.js +427 -0
  273. package/src/src/viewer/scene/model/index.js +5 -0
  274. package/src/src/viewer/scene/model/rebucketPositions.js +354 -0
  275. package/src/src/viewer/scene/model/vbo/ScratchMemory.js +63 -0
  276. package/src/src/viewer/scene/model/vbo/VBORenderer.js +646 -0
  277. package/src/src/viewer/scene/model/vbo/batching/lines/VBOBatchingLinesLayer.js +699 -0
  278. package/src/src/viewer/scene/model/vbo/batching/lines/lib/VBOBatchingLinesBuffer.js +19 -0
  279. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLineSnapInitRenderer.js +316 -0
  280. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesColorRenderer.js +114 -0
  281. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesRenderers.js +99 -0
  282. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSilhouetteRenderer.js +124 -0
  283. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapInitRenderer.js +311 -0
  284. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOBatchingLinesSnapRenderer.js +309 -0
  285. package/src/src/viewer/scene/model/vbo/batching/lines/renderers/VBOSceneModelLineBatchingRenderer.js +24 -0
  286. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsBuffer.js +20 -0
  287. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsLayer.js +718 -0
  288. package/src/src/viewer/scene/model/vbo/batching/points/VBOBatchingPointsRenderer.js +24 -0
  289. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsColorRenderer.js +168 -0
  290. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsOcclusionRenderer.js +136 -0
  291. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickDepthRenderer.js +156 -0
  292. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsPickMeshRenderer.js +148 -0
  293. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsRenderers.js +144 -0
  294. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsShadowRenderer.js +107 -0
  295. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSilhouetteRenderer.js +146 -0
  296. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapInitRenderer.js +309 -0
  297. package/src/src/viewer/scene/model/vbo/batching/points/renderers/VBOBatchingPointsSnapRenderer.js +303 -0
  298. package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesBuffer.js +24 -0
  299. package/src/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +1257 -0
  300. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesEdgesColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js} +6 -2
  301. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesEdgesRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js} +6 -4
  302. package/src/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +12 -0
  303. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesRenderers.js → src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js} +45 -45
  304. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js} +4 -3
  305. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js} +2 -2
  306. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesColorTextureRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js} +2 -2
  307. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesDepthRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js} +2 -2
  308. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesFlatColorRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js} +2 -2
  309. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesNormalsRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js} +2 -2
  310. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesOcclusionRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js} +2 -2
  311. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPBRRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js} +2 -2
  312. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickDepthRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js} +2 -2
  313. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickMeshRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js} +2 -2
  314. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickNormalsFlatRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js} +2 -2
  315. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesPickNormalsRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js} +2 -2
  316. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesShadowRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js} +2 -2
  317. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSilhouetteRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js} +3 -3
  318. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSnapInitRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js} +1 -1
  319. package/src/{viewer/scene/model/vbo/batching/triangles/renderers/VBOBatchingTrianglesSnapRenderer.js → src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js} +1 -1
  320. package/src/src/viewer/scene/model/vbo/float16.js +760 -0
  321. package/src/src/viewer/scene/model/vbo/instancing/lines/VBOInstancingLinesLayer.js +704 -0
  322. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesColorRenderer.js +148 -0
  323. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderer.js +26 -0
  324. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesRenderers.js +139 -0
  325. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSilhouetteRenderer.js +127 -0
  326. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapInitRenderer.js +331 -0
  327. package/src/src/viewer/scene/model/vbo/instancing/lines/renderers/VBOInstancingLinesSnapRenderer.js +316 -0
  328. package/src/src/viewer/scene/model/vbo/instancing/points/VBOInstancingPointsLayer.js +728 -0
  329. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsColorRenderer.js +174 -0
  330. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsDepthRenderer.js +156 -0
  331. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsOcclusionRenderer.js +149 -0
  332. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickDepthRenderer.js +170 -0
  333. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsPickMeshRenderer.js +152 -0
  334. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderer.js +26 -0
  335. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsRenderers.js +174 -0
  336. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsShadowRenderer.js +119 -0
  337. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSilhouetteRenderer.js +154 -0
  338. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapInitRenderer.js +330 -0
  339. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingPointsSnapRenderer.js +311 -0
  340. package/src/src/viewer/scene/model/vbo/instancing/points/renderers/VBOInstancingTrianglesRenderer.js +150 -0
  341. package/src/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +1190 -0
  342. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesEdgesColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js} +8 -4
  343. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesEdgesRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js} +8 -5
  344. package/src/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +12 -0
  345. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesRenderers.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js} +45 -45
  346. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js} +3 -3
  347. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesColorTextureRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js} +2 -2
  348. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesDepthRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js} +2 -2
  349. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesFlatColorRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js} +2 -2
  350. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesFlatNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js} +2 -2
  351. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOSceneModelTriangleInstancingRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js} +1 -1
  352. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js} +2 -2
  353. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesOcclusionRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js} +2 -2
  354. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPBRRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js} +2 -2
  355. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickDepthRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js} +2 -2
  356. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickMeshRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js} +2 -2
  357. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickNormalsFlatRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js} +2 -2
  358. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesPickNormalsRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js} +2 -2
  359. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesShadowRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js} +2 -2
  360. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSilhouetteRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js} +2 -2
  361. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSnapInitRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js} +1 -1
  362. package/src/{viewer/scene/model/vbo/instancing/triangles/renderers/VBOInstancingTrianglesSnapRenderer.js → src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js} +1 -1
  363. package/src/src/viewer/scene/nodes/Node.js +1383 -0
  364. package/src/src/viewer/scene/nodes/index.js +1 -0
  365. package/src/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
  366. package/src/src/viewer/scene/paths/Curve.js +183 -0
  367. package/src/src/viewer/scene/paths/Path.js +239 -0
  368. package/src/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
  369. package/src/src/viewer/scene/paths/SplineCurve.js +133 -0
  370. package/src/src/viewer/scene/paths/index.js +5 -0
  371. package/src/src/viewer/scene/postfx/SAO.js +543 -0
  372. package/src/src/viewer/scene/scene/Scene.js +2802 -0
  373. package/src/src/viewer/scene/sectionPlane/SectionPlane.js +198 -0
  374. package/src/src/viewer/scene/sectionPlane/SectionPlaneCache.js +101 -0
  375. package/src/src/viewer/scene/sectionPlane/index.js +1 -0
  376. package/src/src/viewer/scene/skybox/Skybox.js +123 -0
  377. package/src/src/viewer/scene/skybox/index.js +1 -0
  378. package/src/src/viewer/scene/stats.js +44 -0
  379. package/src/src/viewer/scene/utils/Cache.js +29 -0
  380. package/src/src/viewer/scene/utils/FileLoader.js +161 -0
  381. package/src/src/viewer/scene/utils/Loader.js +55 -0
  382. package/src/src/viewer/scene/utils/LoadingManager.js +86 -0
  383. package/src/src/viewer/scene/utils/Map.js +45 -0
  384. package/src/src/viewer/scene/utils/Queue.js +56 -0
  385. package/src/src/viewer/scene/utils/WorkerPool.js +73 -0
  386. package/src/src/viewer/scene/utils/index.js +6 -0
  387. package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/KTX2TextureTranscoder.js +650 -0
  388. package/src/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/index.js +1 -0
  389. package/src/src/viewer/scene/utils/textureTranscoders/TextureTranscoder.js +31 -0
  390. package/src/src/viewer/scene/utils/textureTranscoders/index.js +2 -0
  391. package/src/src/viewer/scene/utils.js +453 -0
  392. package/src/src/viewer/scene/viewport/Viewport.js +212 -0
  393. package/src/src/viewer/scene/webgl/ArrayBuf.js +121 -0
  394. package/src/src/viewer/scene/webgl/Attribute.js +23 -0
  395. package/src/src/viewer/scene/webgl/Drawable.js +270 -0
  396. package/src/src/viewer/scene/webgl/FrameContext.js +313 -0
  397. package/src/src/viewer/scene/webgl/PickResult.js +364 -0
  398. package/src/src/viewer/scene/webgl/Pickable.js +69 -0
  399. package/src/src/viewer/scene/webgl/Program.js +181 -0
  400. package/src/src/viewer/scene/webgl/RenderBuffer.js +378 -0
  401. package/src/src/viewer/scene/webgl/RenderBufferManager.js +34 -0
  402. package/src/src/viewer/scene/webgl/RenderFlags.js +203 -0
  403. package/src/src/viewer/scene/webgl/RenderState.js +40 -0
  404. package/src/src/viewer/scene/webgl/Renderer.js +1781 -0
  405. package/src/src/viewer/scene/webgl/Sampler.js +18 -0
  406. package/src/src/viewer/scene/webgl/Shader.js +49 -0
  407. package/src/src/viewer/scene/webgl/Texture2D.js +442 -0
  408. package/src/src/viewer/scene/webgl/convertConstant.js +244 -0
  409. package/src/src/viewer/scene/webgl/getExtension.js +32 -0
  410. package/src/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
  411. package/src/src/viewer/scene/webgl/occlusion/OcclusionTester.js +426 -0
  412. package/src/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +324 -0
  413. package/src/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +376 -0
  414. package/src/src/viewer/scene/webgl/webglEnums.js +61 -0
  415. package/src/src/viewer/scene/webglInfo.js +47 -0
  416. package/src/viewer/scene/model/SceneModel.js +1 -1
  417. package/src/viewer/scene/model/vbo/batching/triangles/VBOBatchingTrianglesLayer.js +1 -1
  418. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesColorRenderer.js +131 -0
  419. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js +135 -0
  420. package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesRenderer.js +12 -0
  421. package/src/viewer/scene/model/vbo/batching/triangles/renderers/Renderers.js +375 -0
  422. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesBatchingRenderer.js +34 -0
  423. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorRenderer.js +238 -0
  424. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesColorTextureRenderer.js +270 -0
  425. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesDepthRenderer.js +126 -0
  426. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesFlatColorRenderer.js +235 -0
  427. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesNormalsRenderer.js +139 -0
  428. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesOcclusionRenderer.js +125 -0
  429. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPBRRenderer.js +561 -0
  430. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickDepthRenderer.js +144 -0
  431. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickMeshRenderer.js +130 -0
  432. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +121 -0
  433. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesPickNormalsRenderer.js +131 -0
  434. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesShadowRenderer.js +107 -0
  435. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSilhouetteRenderer.js +136 -0
  436. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapInitRenderer.js +311 -0
  437. package/src/viewer/scene/model/vbo/batching/triangles/renderers/TrianglesSnapRenderer.js +308 -0
  438. package/src/viewer/scene/model/vbo/instancing/triangles/VBOInstancingTrianglesLayer.js +1 -1
  439. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesColorRenderer.js +136 -0
  440. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesEmphasisRenderer.js +137 -0
  441. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/EdgesRenderer.js +12 -0
  442. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/Renderers.js +376 -0
  443. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorRenderer.js +253 -0
  444. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesColorTextureRenderer.js +278 -0
  445. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesDepthRenderer.js +126 -0
  446. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatColorRenderer.js +244 -0
  447. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesFlatNormalsRenderer.js +130 -0
  448. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesInstancingRenderer.js +29 -0
  449. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesNormalsRenderer.js +138 -0
  450. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesOcclusionRenderer.js +128 -0
  451. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPBRRenderer.js +561 -0
  452. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickDepthRenderer.js +149 -0
  453. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickMeshRenderer.js +136 -0
  454. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsFlatRenderer.js +130 -0
  455. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesPickNormalsRenderer.js +145 -0
  456. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesShadowRenderer.js +113 -0
  457. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSilhouetteRenderer.js +139 -0
  458. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapInitRenderer.js +342 -0
  459. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/TrianglesSnapRenderer.js +325 -0
  460. package/src/viewer/scene/webgl/Renderer.js +20 -19
  461. package/src/viewer/scene/model/vbo/batching/triangles/renderers/VBOSceneModelTriangleBatchingEdgesRenderer.js +0 -12
  462. package/src/viewer/scene/model/vbo/instancing/triangles/renderers/VBOSceneModelTriangleInstancingEdgesRenderer.js +0 -12
@@ -0,0 +1,1032 @@
1
+ /**
2
+ * @private
3
+ */
4
+ var K3D = {};
5
+
6
+ K3D.load = function(path, resp)
7
+ {
8
+ var request = new XMLHttpRequest();
9
+ request.open("GET", path, true);
10
+ request.responseType = "arraybuffer";
11
+ request.onload = function(e){resp(e.target.response);};
12
+ request.send();
13
+ }
14
+
15
+ K3D.save = function(buff, path)
16
+ {
17
+ var dataURI = "data:application/octet-stream;base64," + btoa(K3D.parse._buffToStr(buff));
18
+ window.location.href = dataURI;
19
+ }
20
+
21
+ K3D.clone = function(o)
22
+ {
23
+ return JSON.parse(JSON.stringify(o));
24
+ }
25
+
26
+
27
+
28
+ K3D.bin = {};
29
+
30
+ K3D.bin.f = new Float32Array(1);
31
+ K3D.bin.fb = new Uint8Array(K3D.bin.f.buffer);
32
+
33
+ K3D.bin.rf = function(buff, off) { var f = K3D.bin.f, fb = K3D.bin.fb; for(var i=0; i<4; i++) fb[i] = buff[off+i]; return f[0]; }
34
+ K3D.bin.rsl = function(buff, off) { return buff[off] | buff[off+1]<<8; }
35
+ K3D.bin.ril = function(buff, off) { return buff[off] | buff[off+1]<<8 | buff[off+2]<<16 | buff[off+3]<<24; }
36
+ K3D.bin.rASCII0 = function(buff, off) { var s = ""; while(buff[off]!=0) s += String.fromCharCode(buff[off++]); return s; }
37
+
38
+
39
+ K3D.bin.wf = function(buff, off, v) { var f=new Float32Array(buff.buffer, off, 1); f[0]=v; }
40
+ K3D.bin.wsl = function(buff, off, v) { buff[off]=v; buff[off+1]=v>>8; }
41
+ K3D.bin.wil = function(buff, off, v) { buff[off]=v; buff[off+1]=v>>8; buff[off+2]=v>>16; buff[off+3]>>24; }
42
+ K3D.parse = {};
43
+
44
+ K3D.parse._buffToStr = function(buff)
45
+ {
46
+ var a = new Uint8Array(buff);
47
+ var s = "";
48
+ for(var i=0; i<a.length; i++) s = s.concat(String.fromCharCode(a[i]));
49
+ return s;
50
+ }
51
+
52
+ K3D.parse._strToBuff = function(str)
53
+ {
54
+ var buf = new ArrayBuffer(str.length);
55
+ var bufView = new Uint8Array(buf);
56
+ for (var i=0; i<str.length; i++) bufView[i] = str.charCodeAt(i);
57
+ return buf;
58
+ }
59
+
60
+ K3D.parse._readLine = function(a, off) // Uint8Array, offset
61
+ {
62
+ var s = "";
63
+ while(a[off] != 10) s += String.fromCharCode(a[off++]);
64
+ return s;
65
+ }
66
+ K3D.parse.fromJSON = function(buff)
67
+ {
68
+ var json = JSON.parse(K3D.parse._buffToStr(buff));
69
+ return json;
70
+ }
71
+
72
+ K3D.parse.toJSON = function(object)
73
+ {
74
+ var str = JSON.stringify(object);
75
+ return K3D.parse._strToBuff(str);
76
+ }
77
+
78
+ K3D.parse.fromOBJ = function(buff)
79
+ {
80
+ var res = {};
81
+ res.groups = {};
82
+
83
+ res.c_verts = [];
84
+ res.c_uvt = [];
85
+ res.c_norms = [];
86
+
87
+ res.i_verts = [];
88
+ res.i_uvt = [];
89
+ res.i_norms = [];
90
+
91
+ var cg = {from: 0, to:0}; // current group
92
+ var off = 0;
93
+ var a = new Uint8Array(buff);
94
+
95
+ while(off < a.length)
96
+ {
97
+ var line = K3D.parse._readLine(a, off);
98
+ off += line.length + 1;
99
+ line = line.replace(/ +(?= )/g,'');
100
+ line = line.replace(/(^\s+|\s+$)/g, '');
101
+ var cds = line.split(" ");
102
+ if(cds[0] == "g")
103
+ {
104
+ cg.to = res.i_verts.length;
105
+ if(res.groups[cds[1]] == null) res.groups[cds[1]] = {from:res.i_verts.length, to:0};
106
+ cg = res.groups[cds[1]];
107
+ }
108
+ if(cds[0] == "v")
109
+ {
110
+ var x = parseFloat(cds[1]);
111
+ var y = parseFloat(cds[2]);
112
+ var z = parseFloat(cds[3]);
113
+ res.c_verts.push(x,y,z);
114
+ }
115
+ if(cds[0] == "vt")
116
+ {
117
+ var x = parseFloat(cds[1]);
118
+ var y = 1-parseFloat(cds[2]);
119
+ res.c_uvt.push(x,y);
120
+ }
121
+ if(cds[0] == "vn")
122
+ {
123
+ var x = parseFloat(cds[1]);
124
+ var y = parseFloat(cds[2]);
125
+ var z = parseFloat(cds[3]);
126
+ res.c_norms.push(x,y,z);
127
+ }
128
+ if(cds[0] == "f")
129
+ {
130
+ var v0a = cds[1].split("/"), v1a = cds[2].split("/"), v2a = cds[3].split("/");
131
+ var vi0 = parseInt(v0a[0])-1, vi1 = parseInt(v1a[0])-1, vi2 = parseInt(v2a[0])-1;
132
+ var ui0 = parseInt(v0a[1])-1, ui1 = parseInt(v1a[1])-1, ui2 = parseInt(v2a[1])-1;
133
+ var ni0 = parseInt(v0a[2])-1, ni1 = parseInt(v1a[2])-1, ni2 = parseInt(v2a[2])-1;
134
+
135
+ var vlen = res.c_verts.length/3, ulen = res.c_uvt.length/2, nlen = res.c_norms.length/3;
136
+ if(vi0<0) vi0 = vlen + vi0+1; if(vi1<0) vi1 = vlen + vi1+1; if(vi2<0) vi2 = vlen + vi2+1;
137
+ if(ui0<0) ui0 = ulen + ui0+1; if(ui1<0) ui1 = ulen + ui1+1; if(ui2<0) ui2 = ulen + ui2+1;
138
+ if(ni0<0) ni0 = nlen + ni0+1; if(ni1<0) ni1 = nlen + ni1+1; if(ni2<0) ni2 = nlen + ni2+1;
139
+
140
+ res.i_verts.push(vi0, vi1, vi2); //cg.i_verts.push(vi0, vi1, vi2)
141
+ res.i_uvt .push(ui0, ui1, ui2); //cg.i_uvt .push(ui0, ui1, ui2);
142
+ res.i_norms.push(ni0, ni1, ni2); //cg.i_norms.push(ni0, ni1, ni2);
143
+ if(cds.length == 5)
144
+ {
145
+ var v3a = cds[4].split("/");
146
+ var vi3 = parseInt(v3a[0])-1, ui3 = parseInt(v3a[1])-1, ni3 = parseInt(v3a[2])-1;
147
+ if(vi3<0) vi3 = vlen + vi3+1;
148
+ if(ui3<0) ui3 = ulen + ui3+1;
149
+ if(ni3<0) ni3 = nlen + ni3+1;
150
+ res.i_verts.push(vi0, vi2, vi3); //cg.i_verts.push(vi0, vi2, vi3);
151
+ res.i_uvt .push(ui0, ui2, ui3); //cg.i_uvt .push(ui0, ui2, ui3);
152
+ res.i_norms.push(ni0, ni2, ni3); //cg.i_norms.push(ni0, ni2, ni3);
153
+ }
154
+ }
155
+ }
156
+ cg.to = res.i_verts.length;
157
+
158
+ return res;
159
+ }
160
+
161
+
162
+ K3D.parse.fromMD2 = function(buff)
163
+ {
164
+ buff = new Uint8Array(buff);
165
+ var res = {};
166
+ var head = {};
167
+ //res.head = head;
168
+ head.ident = K3D.bin.ril(buff, 0); /* magic number: "IDP2" */
169
+ head.version = K3D.bin.ril(buff, 4); /* version: must be 8 */
170
+
171
+ head.skinwidth = K3D.bin.ril(buff, 8); /* texture width */
172
+ head.skinheight = K3D.bin.ril(buff, 12); /* texture height */
173
+
174
+ head.framesize = K3D.bin.ril(buff, 16); /* size in bytes of a frame */
175
+
176
+ head.num_skins = K3D.bin.ril(buff, 20); /* number of skins */
177
+ head.num_vertices = K3D.bin.ril(buff, 24); /* number of vertices per frame */
178
+ head.num_st = K3D.bin.ril(buff, 28); /* number of texture coordinates */
179
+ head.num_tris = K3D.bin.ril(buff, 32); /* number of triangles */
180
+ head.num_glcmds = K3D.bin.ril(buff, 36); /* number of opengl commands */
181
+ head.num_frames = K3D.bin.ril(buff, 40); /* number of frames */
182
+
183
+ head.offset_skins = K3D.bin.ril(buff, 44); /* offset skin data */
184
+ head.offset_st = K3D.bin.ril(buff, 48); /* offset texture coordinate data */
185
+ head.offset_tris = K3D.bin.ril(buff, 52); /* offset triangle data */
186
+ head.offset_frames = K3D.bin.ril(buff, 56); /* offset frame data */
187
+ head.offset_glcmds = K3D.bin.ril(buff, 60); /* offset OpenGL command data */
188
+ head.offset_end = K3D.bin.ril(buff, 64); /* offset end of file */
189
+
190
+ var off = head.offset_st;
191
+ res.c_uvt = [];
192
+ for(var i=0; i<head.num_st; i++)
193
+ {
194
+ var x = K3D.bin.rsl(buff, off )/head.skinwidth;
195
+ var y = K3D.bin.rsl(buff, off+2)/head.skinheight;
196
+ res.c_uvt.push(x,y); off += 4;
197
+ }
198
+
199
+ var off = head.offset_tris;
200
+ var vi = [], ti = [];
201
+ res.i_verts = vi;
202
+ res.i_uvt = ti;
203
+ //res.tris = {i_verts : vi, i_uvt : ti};
204
+ for(var i=0; i<head.num_tris; i++)
205
+ {
206
+ vi.push(K3D.bin.rsl(buff, off ), K3D.bin.rsl(buff, off+2), K3D.bin.rsl(buff, off+4 ));
207
+ ti.push(K3D.bin.rsl(buff, off+6), K3D.bin.rsl(buff, off+8), K3D.bin.rsl(buff, off+10));
208
+ off += 12;
209
+ }
210
+
211
+ var off = head.offset_skins;
212
+ res.skins = [];
213
+ for(var i=0; i<head.num_skins; i++)
214
+ {
215
+ res.skins.push(K3D.bin.rASCII0(buff, off));
216
+ off += 64;
217
+ }
218
+
219
+ var off = head.offset_frames;
220
+ res.frames = [];
221
+ var nms = K3D.parse.fromMD2._normals;
222
+ for(var i=0; i<head.num_frames; i++)
223
+ {
224
+ var fr = {};
225
+ var sx = K3D.bin.rf(buff, off), sy = K3D.bin.rf(buff, off+4), sz = K3D.bin.rf(buff, off+8); off += 12;
226
+ var tx = K3D.bin.rf(buff, off), ty = K3D.bin.rf(buff, off+4), tz = K3D.bin.rf(buff, off+8); off += 12;
227
+ fr.name = K3D.bin.rASCII0(buff, off); off += 16;
228
+ fr.verts = [];
229
+ fr.norms = [];
230
+
231
+ for(var j=0; j<head.num_vertices; j++)
232
+ {
233
+ fr.verts.push(buff[off]*sx+tx, buff[off+1]*sy+ty, buff[off+2]*sz+tz);
234
+ fr.norms.push(nms[3*buff[off+3]], nms[3*buff[off+3]+1], nms[3*buff[off+3]+2]);
235
+ off += 4;
236
+ }
237
+ res.frames.push(fr);
238
+ }
239
+ return res;
240
+ }
241
+
242
+
243
+
244
+ /*
245
+ static MD2 normals
246
+ */
247
+
248
+ K3D.parse.fromMD2._normals =
249
+ [
250
+ -0.525731, 0.000000, 0.850651,
251
+ -0.442863, 0.238856, 0.864188,
252
+ -0.295242, 0.000000, 0.955423,
253
+ -0.309017, 0.500000, 0.809017,
254
+ -0.162460, 0.262866, 0.951056,
255
+ 0.000000, 0.000000, 1.000000,
256
+ 0.000000, 0.850651, 0.525731,
257
+ -0.147621, 0.716567, 0.681718,
258
+ 0.147621, 0.716567, 0.681718,
259
+ 0.000000, 0.525731, 0.850651,
260
+ 0.309017, 0.500000, 0.809017,
261
+ 0.525731, 0.000000, 0.850651,
262
+ 0.295242, 0.000000, 0.955423,
263
+ 0.442863, 0.238856, 0.864188,
264
+ 0.162460, 0.262866, 0.951056,
265
+ -0.681718, 0.147621, 0.716567,
266
+ -0.809017, 0.309017, 0.500000,
267
+ -0.587785, 0.425325, 0.688191,
268
+ -0.850651, 0.525731, 0.000000,
269
+ -0.864188, 0.442863, 0.238856,
270
+ -0.716567, 0.681718, 0.147621,
271
+ -0.688191, 0.587785, 0.425325,
272
+ -0.500000, 0.809017, 0.309017,
273
+ -0.238856, 0.864188, 0.442863,
274
+ -0.425325, 0.688191, 0.587785,
275
+ -0.716567, 0.681718, -0.147621,
276
+ -0.500000, 0.809017, -0.309017,
277
+ -0.525731, 0.850651, 0.000000,
278
+ 0.000000, 0.850651, -0.525731,
279
+ -0.238856, 0.864188, -0.442863,
280
+ 0.000000, 0.955423, -0.295242,
281
+ -0.262866, 0.951056, -0.162460,
282
+ 0.000000, 1.000000, 0.000000,
283
+ 0.000000, 0.955423, 0.295242,
284
+ -0.262866, 0.951056, 0.162460,
285
+ 0.238856, 0.864188, 0.442863,
286
+ 0.262866, 0.951056, 0.162460,
287
+ 0.500000, 0.809017, 0.309017,
288
+ 0.238856, 0.864188, -0.442863,
289
+ 0.262866, 0.951056, -0.162460,
290
+ 0.500000, 0.809017, -0.309017,
291
+ 0.850651, 0.525731, 0.000000,
292
+ 0.716567, 0.681718, 0.147621,
293
+ 0.716567, 0.681718, -0.147621,
294
+ 0.525731, 0.850651, 0.000000,
295
+ 0.425325, 0.688191, 0.587785,
296
+ 0.864188, 0.442863, 0.238856,
297
+ 0.688191, 0.587785, 0.425325,
298
+ 0.809017, 0.309017, 0.500000,
299
+ 0.681718, 0.147621, 0.716567,
300
+ 0.587785, 0.425325, 0.688191,
301
+ 0.955423, 0.295242, 0.000000,
302
+ 1.000000, 0.000000, 0.000000,
303
+ 0.951056, 0.162460, 0.262866,
304
+ 0.850651, -0.525731, 0.000000,
305
+ 0.955423, -0.295242, 0.000000,
306
+ 0.864188, -0.442863, 0.238856,
307
+ 0.951056, -0.162460, 0.262866,
308
+ 0.809017, -0.309017, 0.500000,
309
+ 0.681718, -0.147621, 0.716567,
310
+ 0.850651, 0.000000, 0.525731,
311
+ 0.864188, 0.442863, -0.238856,
312
+ 0.809017, 0.309017, -0.500000,
313
+ 0.951056, 0.162460, -0.262866,
314
+ 0.525731, 0.000000, -0.850651,
315
+ 0.681718, 0.147621, -0.716567,
316
+ 0.681718, -0.147621, -0.716567,
317
+ 0.850651, 0.000000, -0.525731,
318
+ 0.809017, -0.309017, -0.500000,
319
+ 0.864188, -0.442863, -0.238856,
320
+ 0.951056, -0.162460, -0.262866,
321
+ 0.147621, 0.716567, -0.681718,
322
+ 0.309017, 0.500000, -0.809017,
323
+ 0.425325, 0.688191, -0.587785,
324
+ 0.442863, 0.238856, -0.864188,
325
+ 0.587785, 0.425325, -0.688191,
326
+ 0.688191, 0.587785, -0.425325,
327
+ -0.147621, 0.716567, -0.681718,
328
+ -0.309017, 0.500000, -0.809017,
329
+ 0.000000, 0.525731, -0.850651,
330
+ -0.525731, 0.000000, -0.850651,
331
+ -0.442863, 0.238856, -0.864188,
332
+ -0.295242, 0.000000, -0.955423,
333
+ -0.162460, 0.262866, -0.951056,
334
+ 0.000000, 0.000000, -1.000000,
335
+ 0.295242, 0.000000, -0.955423,
336
+ 0.162460, 0.262866, -0.951056,
337
+ -0.442863, -0.238856, -0.864188,
338
+ -0.309017, -0.500000, -0.809017,
339
+ -0.162460, -0.262866, -0.951056,
340
+ 0.000000, -0.850651, -0.525731,
341
+ -0.147621, -0.716567, -0.681718,
342
+ 0.147621, -0.716567, -0.681718,
343
+ 0.000000, -0.525731, -0.850651,
344
+ 0.309017, -0.500000, -0.809017,
345
+ 0.442863, -0.238856, -0.864188,
346
+ 0.162460, -0.262866, -0.951056,
347
+ 0.238856, -0.864188, -0.442863,
348
+ 0.500000, -0.809017, -0.309017,
349
+ 0.425325, -0.688191, -0.587785,
350
+ 0.716567, -0.681718, -0.147621,
351
+ 0.688191, -0.587785, -0.425325,
352
+ 0.587785, -0.425325, -0.688191,
353
+ 0.000000, -0.955423, -0.295242,
354
+ 0.000000, -1.000000, 0.000000,
355
+ 0.262866, -0.951056, -0.162460,
356
+ 0.000000, -0.850651, 0.525731,
357
+ 0.000000, -0.955423, 0.295242,
358
+ 0.238856, -0.864188, 0.442863,
359
+ 0.262866, -0.951056, 0.162460,
360
+ 0.500000, -0.809017, 0.309017,
361
+ 0.716567, -0.681718, 0.147621,
362
+ 0.525731, -0.850651, 0.000000,
363
+ -0.238856, -0.864188, -0.442863,
364
+ -0.500000, -0.809017, -0.309017,
365
+ -0.262866, -0.951056, -0.162460,
366
+ -0.850651, -0.525731, 0.000000,
367
+ -0.716567, -0.681718, -0.147621,
368
+ -0.716567, -0.681718, 0.147621,
369
+ -0.525731, -0.850651, 0.000000,
370
+ -0.500000, -0.809017, 0.309017,
371
+ -0.238856, -0.864188, 0.442863,
372
+ -0.262866, -0.951056, 0.162460,
373
+ -0.864188, -0.442863, 0.238856,
374
+ -0.809017, -0.309017, 0.500000,
375
+ -0.688191, -0.587785, 0.425325,
376
+ -0.681718, -0.147621, 0.716567,
377
+ -0.442863, -0.238856, 0.864188,
378
+ -0.587785, -0.425325, 0.688191,
379
+ -0.309017, -0.500000, 0.809017,
380
+ -0.147621, -0.716567, 0.681718,
381
+ -0.425325, -0.688191, 0.587785,
382
+ -0.162460, -0.262866, 0.951056,
383
+ 0.442863, -0.238856, 0.864188,
384
+ 0.162460, -0.262866, 0.951056,
385
+ 0.309017, -0.500000, 0.809017,
386
+ 0.147621, -0.716567, 0.681718,
387
+ 0.000000, -0.525731, 0.850651,
388
+ 0.425325, -0.688191, 0.587785,
389
+ 0.587785, -0.425325, 0.688191,
390
+ 0.688191, -0.587785, 0.425325,
391
+ -0.955423, 0.295242, 0.000000,
392
+ -0.951056, 0.162460, 0.262866,
393
+ -1.000000, 0.000000, 0.000000,
394
+ -0.850651, 0.000000, 0.525731,
395
+ -0.955423, -0.295242, 0.000000,
396
+ -0.951056, -0.162460, 0.262866,
397
+ -0.864188, 0.442863, -0.238856,
398
+ -0.951056, 0.162460, -0.262866,
399
+ -0.809017, 0.309017, -0.500000,
400
+ -0.864188, -0.442863, -0.238856,
401
+ -0.951056, -0.162460, -0.262866,
402
+ -0.809017, -0.309017, -0.500000,
403
+ -0.681718, 0.147621, -0.716567,
404
+ -0.681718, -0.147621, -0.716567,
405
+ -0.850651, 0.000000, -0.525731,
406
+ -0.688191, 0.587785, -0.425325,
407
+ -0.587785, 0.425325, -0.688191,
408
+ -0.425325, 0.688191, -0.587785,
409
+ -0.425325, -0.688191, -0.587785,
410
+ -0.587785, -0.425325, -0.688191,
411
+ -0.688191, -0.587785, -0.425325
412
+ ];
413
+
414
+ K3D.parse.fromCollada = function(buff)
415
+ {
416
+ var str = K3D.parse._buffToStr(buff);
417
+ var xml = new DOMParser().parseFromString(str,"text/xml");
418
+ xml = xml.childNodes[0];
419
+ var resp = {};
420
+
421
+ //console.log(xml);
422
+
423
+ var ass = xml.getElementsByTagName("asset" )[0];
424
+ var geo = xml.getElementsByTagName("library_geometries")[0];
425
+ var ima = xml.getElementsByTagName("library_images" )[0];
426
+ var mat = xml.getElementsByTagName("library_materials" )[0];
427
+ var eff = xml.getElementsByTagName("library_effects" )[0];
428
+
429
+ //console.log(xml);
430
+ if(ass) resp.asset = K3D.parse.fromCollada._asset (ass);
431
+ if(geo) resp.geometries = K3D.parse.fromCollada._libGeometries(geo);
432
+ if(ima) resp.images = K3D.parse.fromCollada._libImages (ima);
433
+ if(mat) resp.materials = K3D.parse.fromCollada._libMaterials (mat);
434
+ if(eff) resp.effects = K3D.parse.fromCollada._libEffects (eff);
435
+ return resp;
436
+ }
437
+
438
+ K3D.parse.fromCollada._asset = function(xml)
439
+ {
440
+ //console.log(xml);
441
+ return {
442
+ created : xml.getElementsByTagName("created" )[0].textContent,
443
+ modified: xml.getElementsByTagName("modified")[0].textContent,
444
+ up_axis : xml.getElementsByTagName("up_axis" )[0].textContent
445
+ };
446
+ }
447
+
448
+ K3D.parse.fromCollada._libGeometries = function(xml)
449
+ {
450
+ xml = xml.getElementsByTagName("geometry");
451
+ var res = [];
452
+ for(var i=0; i<xml.length; i++)
453
+ {
454
+ var g = xml[i];
455
+ var o = K3D.parse.fromCollada._getMesh(g.getElementsByTagName("mesh")[0]);
456
+ res.push(o);
457
+ }
458
+ return res;
459
+ }
460
+
461
+ K3D.parse.fromCollada._getMesh = function(mesh)
462
+ {
463
+ //console.log(mesh);
464
+ var res = {};
465
+ var ss = mesh.getElementsByTagName("source");
466
+ var sources = res.sources = {};
467
+ for(var i=0; i<ss.length; i++)
468
+ {
469
+ var farr = ss[i].getElementsByTagName("float_array")[0].textContent.split(" ");
470
+ var fl = farr.length - (farr[farr.length-1] == "" ? 1 : 0);
471
+ var arr = new Array(fl);
472
+ for(var j=0; j<fl; j++) arr[j] = parseFloat(farr[j]);
473
+ sources[ss[i].getAttribute("id")] = arr;
474
+ }
475
+
476
+ res.triangles = [];
477
+ var tgs = mesh.getElementsByTagName("triangles");
478
+ if(tgs == null) return res;
479
+ for(var i=0; i<tgs.length; i++)
480
+ {
481
+ var t = {};
482
+ var tnode = tgs[i];
483
+ t.material = tnode.getAttribute("material");
484
+ var inputs = tnode.getElementsByTagName("input");
485
+ var inds = [];
486
+ for(var j=0; j<inputs.length; j++)
487
+ {
488
+ var inp = inputs[j], arr = [];
489
+ inds[parseInt(inp.getAttribute("offset"))] = arr;
490
+ var par = inp.getAttribute("semantic");
491
+ t["s_"+par] = (par == "VERTEX") ?
492
+ mesh.getElementsByTagName("vertices")[0].getElementsByTagName("input")[0].getAttribute("source").substring(1)
493
+ : inp.getAttribute("source").substring(1);
494
+
495
+ t["i_"+par] = arr;
496
+ var psrc = sources[t["s_"+par]];
497
+ }
498
+ var indices = tnode.getElementsByTagName("p")[0].textContent.split(" ");
499
+ var inum = 3*Math.floor(indices.length/3);
500
+ for(var j=0; j<inum; j++) inds[j%inputs.length].push(parseInt(indices[j]));
501
+
502
+ /*
503
+ if(t.s_VERTEX ) t.u_VERTEX = K3D.edit.unwrap(t.i_VERTEX , sources[t.s_VERTEX ], 3);
504
+ if(t.s_TEXCOORD) t.u_TEXCOORD = K3D.edit.unwrap(t.i_TEXCOORD, sources[t.s_TEXCOORD], 2);
505
+ if(t.s_NORMAL ) t.u_NORMAL = K3D.edit.unwrap(t.i_NORMAL , sources[t.s_NORMAL ], 3);
506
+ //*/
507
+ //if(t.s_TEXCOORD) for(var j=1; j<t.u_TEXCOORD.length; j+=2) t.u_TEXCOORD[j] = 1 - t.u_TEXCOORD[j];
508
+
509
+ /*
510
+ t.u_INDEX = new Array(t.i_VERTEX.length);
511
+ for(var j=0; j<t.i_VERTEX.length; j++) t.u_INDEX[j] = j;
512
+ */
513
+
514
+ res.triangles.push(t);
515
+ }
516
+ return res;
517
+ }
518
+
519
+ K3D.parse.fromCollada._libImages = function(xml)
520
+ {
521
+ xml = xml.getElementsByTagName("image");
522
+ var res = {};
523
+ for(var i=0; i<xml.length; i++)
524
+ {
525
+ res[xml[i].getAttribute("id")] = xml[i].getElementsByTagName("init_from")[0].textContent;
526
+ }
527
+ return res;
528
+ }
529
+
530
+ K3D.parse.fromCollada._libMaterials = function(xml)
531
+ {
532
+ xml = xml.getElementsByTagName("material");
533
+ var res = {};
534
+ for(var i=0; i<xml.length; i++)
535
+ {
536
+ res[xml[i].getAttribute("name")] = xml[i].getElementsByTagName("instance_effect")[0].getAttribute("url").substring(1);
537
+ }
538
+ return res;
539
+ }
540
+
541
+ K3D.parse.fromCollada._libEffects = function(xml)
542
+ {
543
+ xml = xml.getElementsByTagName("effect");
544
+ var res = {};
545
+ for(var i=0; i<xml.length; i++)
546
+ {
547
+ var eff = {};
548
+ var params = xml[i].getElementsByTagName("newparam");
549
+ for(var j=0; j<params.length; j++)
550
+ {
551
+ var srf = params[j].getElementsByTagName("surface")[0];
552
+ if(srf) eff.surface = srf.getElementsByTagName("init_from")[0].textContent;
553
+ }
554
+ res[xml[i].getAttribute("id")] = eff;
555
+ }
556
+ return res;
557
+ }
558
+
559
+
560
+
561
+
562
+
563
+ K3D.parse.from3DS = function(buff)
564
+ {
565
+ buff = new Uint8Array(buff);
566
+ var res = {};
567
+ if(K3D.bin.rsl(buff, 0) != 0x4d4d) return null;
568
+ var lim = K3D.bin.ril(buff, 2);
569
+
570
+ var off = 6;
571
+ while(off < lim)
572
+ {
573
+ var cid = K3D.bin.rsl(buff, off);
574
+ var lng = K3D.bin.ril(buff, off+2);
575
+ //console.log(cid.toString(16), lng);
576
+
577
+ if(cid == 0x3d3d) res.edit = K3D.parse.from3DS._edit3ds(buff, off, lng);
578
+ if(cid == 0xb000) res.keyf = K3D.parse.from3DS._keyf3ds(buff, off, lng);
579
+
580
+ off += lng;
581
+ }
582
+ return res;
583
+ }
584
+
585
+ K3D.parse.from3DS._edit3ds = function(buff, coff, clng) // buffer, chunk offset, length
586
+ {
587
+ var res = {};
588
+ var off = coff+6;
589
+ while(off < coff+clng)
590
+ {
591
+ var cid = K3D.bin.rsl(buff, off);
592
+ var lng = K3D.bin.ril(buff, off+2);
593
+ //console.log("\t", cid.toString(16), lng);
594
+
595
+ if(cid == 0x4000) { if(res.objects==null) res.objects = []; res.objects.push(K3D.parse.from3DS._edit_object(buff, off, lng)); }
596
+ //if(cid == 0xb000) res.KEYF3DS = K3D.parse.from3DS._keyf3ds(buff, off, lng);
597
+
598
+ off += lng;
599
+ }
600
+ return res;
601
+ }
602
+
603
+ K3D.parse.from3DS._keyf3ds = function(buff, coff, clng)
604
+ {
605
+ var res = {};
606
+ var off = coff+6;
607
+ while(off < coff+clng)
608
+ {
609
+ var cid = K3D.bin.rsl(buff, off);
610
+ var lng = K3D.bin.ril(buff, off+2);
611
+ //console.log("\t\t", cid.toString(16), lng);
612
+
613
+ //if(cid == 0x4000) { res.objects.push(K3D.parse.from3DS._edit_object(buff, off, lng)); }
614
+ if(cid == 0xb002) { if(res.desc==null) res.desc = []; res.desc.push(K3D.parse.from3DS._keyf_objdes(buff, off, lng)); }
615
+
616
+ off += lng;
617
+ }
618
+ return res;
619
+ }
620
+
621
+ K3D.parse.from3DS._keyf_objdes = function(buff, coff, clng)
622
+ {
623
+ var res = {};
624
+ var off = coff+6;
625
+ while(off < coff+clng)
626
+ {
627
+ var cid = K3D.bin.rsl(buff, off);
628
+ var lng = K3D.bin.ril(buff, off+2);
629
+ //console.log("\t\t\t", cid.toString(16), lng);
630
+
631
+ if(cid == 0xb010) res.hierarchy = K3D.parse.from3DS._keyf_objhierarch(buff, off, lng);
632
+ if(cid == 0xb011) res.dummy_name = K3D.bin.rASCII0(buff, off+6);
633
+ off += lng;
634
+ }
635
+ return res;
636
+ }
637
+
638
+ K3D.parse.from3DS._keyf_objhierarch = function(buff, coff, clng)
639
+ {
640
+ var res = {};
641
+ var off = coff+6;
642
+ res.name = K3D.bin.rASCII0(buff, off); off += res.name.length+1;
643
+ res.hierarchy = K3D.bin.rsl(buff, off+4);
644
+ return res;
645
+ }
646
+
647
+ K3D.parse.from3DS._edit_object = function(buff, coff, clng) // buffer, chunk offset, length
648
+ {
649
+ var res = {};
650
+ var off = coff+6;
651
+ res.name = K3D.bin.rASCII0(buff, off); off += res.name.length+1;
652
+ //console.log(res.name);
653
+ while(off < coff+clng)
654
+ {
655
+ var cid = K3D.bin.rsl(buff, off);
656
+ var lng = K3D.bin.ril(buff, off+2);
657
+ //console.log("\t\t", cid.toString(16), lng);
658
+
659
+ if(cid == 0x4100) res.mesh = K3D.parse.from3DS._obj_trimesh(buff, off, lng);
660
+ //if(cid == 0xb000) res.KEYF3DS = K3D.parse.from3DS._keyf3ds(buff, off, lng);
661
+
662
+ off += lng;
663
+ }
664
+ return res;
665
+ }
666
+
667
+ K3D.parse.from3DS._obj_trimesh = function(buff, coff, clng) // buffer, chunk offset, length
668
+ {
669
+ var res = {};
670
+ var off = coff+6;
671
+
672
+ while(off < coff+clng)
673
+ {
674
+ var cid = K3D.bin.rsl(buff, off);
675
+ var lng = K3D.bin.ril(buff, off+2);
676
+ //console.log("\t\t\t", cid.toString(16), lng);
677
+
678
+ if(cid == 0x4110) res.vertices = K3D.parse.from3DS._tri_vertexl (buff, off, lng);
679
+ if(cid == 0x4120) res.indices = K3D.parse.from3DS._tri_facel1 (buff, off, lng);
680
+ if(cid == 0x4140) res.uvt = K3D.parse.from3DS._tri_mappingcoors(buff, off, lng);
681
+ if(cid == 0x4160) res.local = K3D.parse.from3DS._tri_local (buff, off, lng);
682
+ off += lng;
683
+ }
684
+ return res;
685
+ }
686
+
687
+ K3D.parse.from3DS._tri_vertexl = function(buff, coff, clng) // buffer, chunk offset, length
688
+ {
689
+ var res = [];
690
+ var off = coff+6;
691
+ var n = K3D.bin.rsl(buff, off); off += 2;
692
+ for(var i=0; i<n; i++)
693
+ {
694
+ res.push(K3D.bin.rf(buff, off )); res.push(K3D.bin.rf(buff, off+4)); res.push(K3D.bin.rf(buff, off+8));
695
+ off += 12;
696
+ }
697
+ return res;
698
+ }
699
+
700
+ K3D.parse.from3DS._tri_facel1 = function(buff, coff, clng) // buffer, chunk offset, length
701
+ {
702
+ var res = [];
703
+ var off = coff+6;
704
+ var n = K3D.bin.rsl(buff, off); off += 2;
705
+ for(var i=0; i<n; i++)
706
+ {
707
+ res.push(K3D.bin.rsl(buff, off ));
708
+ res.push(K3D.bin.rsl(buff, off+2));
709
+ res.push(K3D.bin.rsl(buff, off+4));
710
+ off += 8;
711
+ }
712
+ return res;
713
+ }
714
+
715
+ K3D.parse.from3DS._tri_mappingcoors = function(buff, coff, clng) // buffer, chunk offset, length
716
+ {
717
+ var res = [];
718
+ var off = coff+6;
719
+ var n = K3D.bin.rsl(buff, off); off += 2;
720
+ for(var i=0; i<n; i++)
721
+ {
722
+ res.push( K3D.bin.rf(buff, off ));
723
+ res.push(1-K3D.bin.rf(buff, off+4));
724
+ off += 8;
725
+ }
726
+ return res;
727
+ }
728
+
729
+ K3D.parse.from3DS._tri_local = function(buff, coff, clng) // buffer, chunk offset, length
730
+ {
731
+ var res = {};
732
+ var off = coff+6;
733
+ res.X = [K3D.bin.rf(buff, off), K3D.bin.rf(buff, off+4), K3D.bin.rf(buff, off+8)]; off += 12;
734
+ res.Y = [K3D.bin.rf(buff, off), K3D.bin.rf(buff, off+4), K3D.bin.rf(buff, off+8)]; off += 12;
735
+ res.Z = [K3D.bin.rf(buff, off), K3D.bin.rf(buff, off+4), K3D.bin.rf(buff, off+8)]; off += 12;
736
+ res.C = [K3D.bin.rf(buff, off), K3D.bin.rf(buff, off+4), K3D.bin.rf(buff, off+8)]; off += 12;
737
+ return res;
738
+ }
739
+
740
+ K3D.parse.fromBIV = function(buff)
741
+ {
742
+ buff = new Uint8Array(buff);
743
+ var res = {};
744
+
745
+ var head = {};
746
+
747
+ head.id = K3D.bin.ril(buff, 0);
748
+
749
+ head.verS = K3D.bin.ril(buff, 4);
750
+ head.texS = K3D.bin.ril(buff, 8);
751
+ head.indS = K3D.bin.ril(buff, 12);
752
+
753
+ head.verO = K3D.bin.ril(buff, 16);
754
+ head.verL = K3D.bin.ril(buff, 20);
755
+ head.texO = K3D.bin.ril(buff, 24);
756
+ head.texL = K3D.bin.ril(buff, 28);
757
+ head.indO = K3D.bin.ril(buff, 32);
758
+ head.indL = K3D.bin.ril(buff, 36);
759
+
760
+ if(head.verO != 0) res.vertices = K3D.parse.fromBIV._readFloats(buff, head.verO, head.verL);
761
+ if(head.texO != 0) res.uvt = K3D.parse.fromBIV._readFloats(buff, head.texO, head.texL);
762
+ if(head.indO != 0) res.indices = K3D.parse.fromBIV._readInts (buff, head.indO, head.indL, head.indS);
763
+
764
+ return res;
765
+ }
766
+
767
+ K3D.parse.toBIV = function(obj)
768
+ {
769
+ var maxi = 0;
770
+ for(var i=0; i<obj.indices.length; i++) maxi = Math.max(maxi, obj.indices[i]);
771
+
772
+ var indS = 32;
773
+ if(maxi<=0xffff) indS = 16;
774
+
775
+ var len = 40;
776
+ if(obj.vertices) len+=obj.vertices.length*4;
777
+ if(obj.uvt ) len+=obj.uvt .length*4;
778
+ if(obj.indices ) len+=obj.indices .length*indS/8;
779
+
780
+
781
+ var buff = new Uint8Array(len);
782
+
783
+ K3D.bin.wil(buff, 0, 0x6976616e);
784
+
785
+ K3D.bin.wil(buff, 4, 32);
786
+ K3D.bin.wil(buff, 8, 32);
787
+ K3D.bin.wil(buff, 12, indS);
788
+
789
+ var off = 40;
790
+ if(obj.vertices)
791
+ {
792
+ K3D.bin.wil(buff, 16, off);
793
+ K3D.bin.wil(buff, 20, 4*obj.vertices.length);
794
+ K3D.parse.fromBIV._writeFloats(buff, off, obj.vertices);
795
+ off += 4*obj.vertices.length;
796
+ }
797
+ if(obj.uvt)
798
+ {
799
+ K3D.bin.wil(buff, 24, off);
800
+ K3D.bin.wil(buff, 28, 4*obj.uvt.length);
801
+ K3D.parse.fromBIV._writeFloats(buff, off, obj.uvt);
802
+ off += 4*obj.uvt.length;
803
+ }
804
+ if(obj.indices)
805
+ {
806
+ K3D.bin.wil(buff, 32, off);
807
+ K3D.bin.wil(buff, 36, 4*obj.indices.length);
808
+ K3D.parse.fromBIV._writeInts (buff, off, obj.indices, indS);
809
+ }
810
+ return buff.buffer;
811
+ }
812
+
813
+ K3D.parse.fromBIV._readFloats = function(buff, off, len)
814
+ {
815
+ var arr = [];
816
+ for(var i=0; i<len/4; i++) arr.push( K3D.bin.rf(buff, off+4*i));
817
+ return arr;
818
+ }
819
+
820
+ K3D.parse.fromBIV._writeFloats = function(buff, off, arr)
821
+ {
822
+ for(var i=0; i<arr.length; i++) K3D.bin.wf(buff, off+4*i, arr[i]);
823
+ }
824
+
825
+ K3D.parse.fromBIV._readInts = function(buff, off, len, cs)
826
+ {
827
+ var arr = [];
828
+ for(var i=0; i<len/4; i++)
829
+ {
830
+ if(cs==16) arr.push( K3D.bin.rsl(buff, off+2*i));
831
+ if(cs==32) arr.push( K3D.bin.ril(buff, off+4*i));
832
+ }
833
+ return arr;
834
+ }
835
+
836
+ K3D.parse.fromBIV._writeInts = function(buff, off, arr, cs)
837
+ {
838
+ for(var i=0; i<arr.length; i++)
839
+ {
840
+ if(cs==16) K3D.bin.wsl(buff, off+2*i, arr[i]);
841
+ if(cs==32) K3D.bin.wil(buff, off+4*i, arr[i]);
842
+ }
843
+ }
844
+ K3D.gen = {};
845
+
846
+ K3D.gen.Plane = function(sw, sh, tsw, tsh)
847
+ {
848
+ if(!tsw) tsw = 1;
849
+ if(!tsh) tsh = 1;
850
+ var r = {verts:[], inds:[], uvt:[]};
851
+ var ssw = sw+1, ssh = sh+1
852
+ for(var i=0; i<ssh; i++)
853
+ {
854
+ for(var j=0; j<ssw; j++)
855
+ {
856
+ var x = -1 + j*(2/sw);
857
+ var y = -1 + i*(2/sh);
858
+ r.verts.push(x, y, 0);
859
+ r.uvt.push(tsw*j/sw, tsh*i/sh);
860
+ if(i<sh && j<sw)
861
+ r.inds.push(i*ssw+j, i*ssw+j+1, (i+1)*ssw+j, i*ssw+j+1, (i+1)*ssw+j, (i+1)*ssw+j+1);
862
+ }
863
+ }
864
+ return r;
865
+ }
866
+ K3D.gen.Cube = function()
867
+ {
868
+ var r = {
869
+ verts:[ -1, 1,-1, 1, 1,-1, -1,-1,-1, 1,-1,-1, // front
870
+ -1, 1, 1, 1, 1, 1, -1,-1, 1, 1,-1, 1, // back
871
+
872
+ -1, 1, 1, -1, 1,-1, -1,-1, 1, -1,-1,-1, // left
873
+ 1, 1, 1, 1, 1,-1, 1,-1, 1, 1,-1,-1, // right
874
+
875
+ -1, 1,-1, 1, 1,-1, -1, 1, 1, 1, 1, 1, // top
876
+ -1,-1,-1, 1,-1,-1, -1,-1, 1, 1,-1, 1 // bottom
877
+ ],
878
+ inds:[ 0,1,2, 1,2,3, 4,5,6, 5,6,7,
879
+ 8,9,10, 9,10,11, 12,13,14, 13,14,15,
880
+ 16,17,18, 17,18,19, 20,21,22, 21,22,23
881
+ ],
882
+ uvt:[
883
+ 1/4,1/4, 2/4,1/4, 1/4,2/4, 2/4,2/4, // front
884
+ 4/4,1/4, 3/4,1/4, 4/4,2/4, 3/4,2/4, // back
885
+
886
+ 0/4,1/4, 1/4,1/4, 0/4,2/4, 1/4,2/4, // left
887
+ 3/4,1/4, 2/4,1/4, 3/4,2/4, 2/4,2/4, // right
888
+
889
+ 1/4,1/4, 2/4,1/4, 1/4,0/4, 2/4,0/4, // top
890
+ 1/4,2/4, 2/4,2/4, 1/4,3/4, 2/4,3/4, // bottom
891
+ ]
892
+ };
893
+ return r;
894
+ };
895
+
896
+ K3D.gen.Sphere = function(sx, sy){
897
+ var r = {verts:[], inds:[], uvt:[]};
898
+
899
+ var dx = 2*Math.PI/sx;
900
+ var dy = Math.PI/sy;
901
+ var nx = sx+1, ny = sy+1;
902
+ for(var i=0; i<ny; i++) // rows
903
+ {
904
+ for(var j=0; j<nx; j++) // cols
905
+ {
906
+ var lat = -Math.PI/2 + i*Math.PI/sy;
907
+ var lon = j*2*Math.PI/sx;
908
+ var x = Math.cos(lat) * Math.cos(lon);
909
+ var y = Math.sin(lat);
910
+ var z = Math.cos(lat) * Math.sin(lon);
911
+
912
+ r.verts.push(x,y,z);
913
+ r.uvt.push(j/sx, i/sy);
914
+ if(i<sy && j<sx) // 6 indices for 2 triangles
915
+ r.inds.push(nx*i+j, nx*i+j+1, nx*(i+1)+j, nx*i+j+1, nx*(i+1)+j, nx*(i+1)+j+1);
916
+ }
917
+ }
918
+ return r;
919
+ };
920
+
921
+ K3D.mat = {};
922
+
923
+ K3D.mat.scale = function(x,y,z){
924
+ return [
925
+ x,0,0,0,
926
+ 0,y,0,0,
927
+ 0,0,z,0,
928
+ 0,0,0,1
929
+ ];
930
+ };
931
+
932
+ K3D.mat.translate = function(x,y,z){
933
+ return [
934
+ 1,0,0,0,
935
+ 0,1,0,0,
936
+ 0,0,1,0,
937
+ x,y,z,1
938
+ ];
939
+ };
940
+
941
+ K3D.mat.rotateDeg = function(x,y,z){
942
+ var r = Math.PI/180;
943
+ return K3D.mat.rotate(x*r, y*r, z*r);
944
+ };
945
+
946
+ K3D.mat.rotate = function(x,y,z){
947
+ var m = [
948
+ 1,0,0,0,
949
+ 0,1,0,0,
950
+ 0,0,1,0,
951
+ 0,0,0,1
952
+ ];
953
+ var a = x; // alpha
954
+ var b = y; // beta
955
+ var g = z; // gama
956
+
957
+ var ca = Math.cos(a), cb = Math.cos(b), cg = Math.cos(g);
958
+ var sa = Math.sin(a), sb = Math.sin(b), sg = Math.sin(g);
959
+
960
+ m[0] = cb*cg; m[1] = -cb*sg; m[2 ] = sb;
961
+ m[4] = (ca*sg+sa*sb*cg); m[5] = (ca*cg-sa*sb*sg); m[6 ] = -sa*cb;
962
+ m[8] = (sa*sg-ca*sb*cg); m[9] = (sa*cg+ca*sb*sg); m[10] = ca*cb;
963
+
964
+ return m;
965
+ };
966
+
967
+
968
+ K3D.edit = {};
969
+
970
+ K3D.edit.interpolate = function(a, b, d, t){
971
+ for(var i=0; i<a.length; i++) d[i] = a[i] + t*(b[i] - a[i]);
972
+ };
973
+
974
+
975
+ K3D.edit.transform = function(a, m){
976
+ for(var i=0; i<a.length; i+=3) {
977
+ var x = a[i], y = a[i+1], z = a[i+2];
978
+ a[i+0] = m[0]*x + m[4]*y + m[8 ]*z + m[12];
979
+ a[i+1] = m[1]*x + m[5]*y + m[9 ]*z + m[13];
980
+ a[i+2] = m[2]*x + m[6]*y + m[10]*z + m[14];
981
+ }
982
+ };
983
+
984
+ // starting indices, starting coordinates, coordinates per index
985
+
986
+ K3D.edit.unwrap = function(ind, crd, cpi){
987
+ var ncrd = new Array(Math.floor(ind.length/3)*cpi);
988
+ for(var i=0; i<ind.length; i++)
989
+ {
990
+ for(var j=0; j<cpi; j++)
991
+ {
992
+ ncrd[i*cpi+j] = crd[ind[i]*cpi+j];
993
+ }
994
+ }
995
+ return ncrd;
996
+ };
997
+
998
+ // current indices, new indices, current array, coordinates per vertex
999
+
1000
+ K3D.edit.remap = function(ind, nind, arr, cpi){
1001
+ var ncrd = new Array(arr.length);
1002
+ for(var i=0; i<ind.length; i++)
1003
+ {
1004
+ for(var j=0; j<cpi; j++)
1005
+ {
1006
+ ncrd[nind[i]*cpi+j] = arr[ind[i]*cpi+j];
1007
+ }
1008
+ }
1009
+ return ncrd;
1010
+ };
1011
+
1012
+ K3D.utils = {};
1013
+
1014
+ K3D.utils.getAABB = function(vts)
1015
+ {
1016
+ var minx, miny, minz, maxx, maxy, maxz;
1017
+ minx = miny = minz = 999999999;
1018
+ maxx = maxy = maxz = -minx;
1019
+
1020
+ for(var i=0; i<vts.length; i+=3)
1021
+ {
1022
+ var vx = vts[i+0];
1023
+ var vy = vts[i+1];
1024
+ var vz = vts[i+2];
1025
+ if(vx<minx) minx = vx; if(vx>maxx) maxx = vx;
1026
+ if(vy<miny) miny = vy; if(vy>maxy) maxy = vy;
1027
+ if(vz<minz) minz = vz; if(vy>maxz) maxz = vz;
1028
+ }
1029
+ return {min:{x:minx, y:miny, z:minz}, max:{x:maxx, y:maxy, z:maxz}};
1030
+ };
1031
+
1032
+ export {K3D};