opal-js_wrap-three 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (503) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/Gemfile.lock +4 -4
  4. data/lib/opal/js_wrap/three/version.rb +1 -1
  5. data/lib-opal/js_wrap/three/WebGL.js +102 -0
  6. data/lib-opal/js_wrap/three/animation/AnimationClipCreator.js +116 -0
  7. data/lib-opal/js_wrap/three/animation/CCDIKSolver.js +436 -0
  8. data/lib-opal/js_wrap/three/animation/MMDAnimationHelper.js +941 -0
  9. data/lib-opal/js_wrap/three/animation/MMDPhysics.js +1183 -0
  10. data/lib-opal/js_wrap/three/cameras/CinematicCamera.js +204 -0
  11. data/lib-opal/js_wrap/three/controls/ArcballControls.js +2649 -0
  12. data/lib-opal/js_wrap/three/controls/DragControls.js +234 -0
  13. data/lib-opal/js_wrap/three/controls/FirstPersonControls.js +301 -0
  14. data/lib-opal/js_wrap/three/controls/FlyControls.js +357 -0
  15. data/lib-opal/js_wrap/three/controls/OrbitControls.js +908 -0
  16. data/lib-opal/js_wrap/three/controls/PointerLockControls.js +173 -0
  17. data/lib-opal/js_wrap/three/controls/TrackballControls.js +666 -0
  18. data/lib-opal/js_wrap/three/controls/TransformControls.js +1210 -0
  19. data/lib-opal/js_wrap/three/controls/experimental/CameraControls.js +860 -0
  20. data/lib-opal/js_wrap/three/csm/CSM.js +346 -0
  21. data/lib-opal/js_wrap/three/csm/CSMFrustum.js +123 -0
  22. data/lib-opal/js_wrap/three/csm/CSMHelper.js +197 -0
  23. data/lib-opal/js_wrap/three/csm/CSMShader.js +29 -0
  24. data/lib-opal/js_wrap/three/curves/CurveExtras.js +544 -0
  25. data/lib-opal/js_wrap/three/curves/NURBSCurve.js +122 -0
  26. data/lib-opal/js_wrap/three/curves/NURBSSurface.js +78 -0
  27. data/lib-opal/js_wrap/three/curves/NURBSUtils.js +413 -0
  28. data/lib-opal/js_wrap/three/deprecated/Geometry.js +1373 -0
  29. data/lib-opal/js_wrap/three/effects/AnaglyphEffect.js +113 -0
  30. data/lib-opal/js_wrap/three/effects/AsciiEffect.js +267 -0
  31. data/lib-opal/js_wrap/three/effects/OutlineEffect.js +400 -0
  32. data/lib-opal/js_wrap/three/effects/ParallaxBarrierEffect.js +90 -0
  33. data/lib-opal/js_wrap/three/effects/PeppersGhostEffect.js +160 -0
  34. data/lib-opal/js_wrap/three/effects/StereoEffect.js +63 -0
  35. data/lib-opal/js_wrap/three/environments/DebugEnvironment.js +107 -0
  36. data/lib-opal/js_wrap/three/environments/RoomEnvironment.js +166 -0
  37. data/lib-opal/js_wrap/three/exporters/ColladaExporter.js +442 -0
  38. data/lib-opal/js_wrap/three/exporters/DRACOExporter.js +205 -0
  39. data/lib-opal/js_wrap/three/exporters/GLTFExporter.js +2042 -0
  40. data/lib-opal/js_wrap/three/exporters/MMDExporter.js +189 -0
  41. data/lib-opal/js_wrap/three/exporters/OBJExporter.js +241 -0
  42. data/lib-opal/js_wrap/three/exporters/PLYExporter.js +370 -0
  43. data/lib-opal/js_wrap/three/exporters/STLExporter.js +186 -0
  44. data/lib-opal/js_wrap/three/exporters/USDZExporter.js +402 -0
  45. data/lib-opal/js_wrap/three/geometries/BoxLineGeometry.js +106 -0
  46. data/lib-opal/js_wrap/three/geometries/ConvexGeometry.js +88 -0
  47. data/lib-opal/js_wrap/three/geometries/DecalGeometry.js +302 -0
  48. data/lib-opal/js_wrap/three/geometries/LightningStrike.js +817 -0
  49. data/lib-opal/js_wrap/three/geometries/ParametricGeometries.js +280 -0
  50. data/lib-opal/js_wrap/three/geometries/ParametricGeometry.js +146 -0
  51. data/lib-opal/js_wrap/three/geometries/RoundedBoxGeometry.js +183 -0
  52. data/lib-opal/js_wrap/three/geometries/TeapotGeometry.js +352 -0
  53. data/lib-opal/js_wrap/three/geometries/TextGeometry.js +76 -0
  54. data/lib-opal/js_wrap/three/helpers/LightProbeHelper.js +95 -0
  55. data/lib-opal/js_wrap/three/helpers/PositionalAudioHelper.js +138 -0
  56. data/lib-opal/js_wrap/three/helpers/RectAreaLightHelper.js +115 -0
  57. data/lib-opal/js_wrap/three/helpers/VertexNormalsHelper.js +131 -0
  58. data/lib-opal/js_wrap/three/helpers/VertexTangentsHelper.js +118 -0
  59. data/lib-opal/js_wrap/three/interactive/HTMLMesh.js +307 -0
  60. data/lib-opal/js_wrap/three/interactive/InteractiveGroup.js +138 -0
  61. data/lib-opal/js_wrap/three/interactive/SelectionBox.js +264 -0
  62. data/lib-opal/js_wrap/three/interactive/SelectionHelper.js +88 -0
  63. data/lib-opal/js_wrap/three/libs/OimoPhysics/OimoPhysics.js +46059 -0
  64. data/lib-opal/js_wrap/three/libs/OimoPhysics/index.js +92 -0
  65. data/lib-opal/js_wrap/three/libs/chevrotain.module.min.js +6947 -0
  66. data/lib-opal/js_wrap/three/libs/ecsy.module.js +1999 -0
  67. data/lib-opal/js_wrap/three/libs/fflate.module.js +3002 -0
  68. data/lib-opal/js_wrap/three/libs/flow.module.js +3033 -0
  69. data/lib-opal/js_wrap/three/libs/ktx-parse.module.js +392 -0
  70. data/lib-opal/js_wrap/three/libs/lil-gui.module.min.js +821 -0
  71. data/lib-opal/js_wrap/three/libs/meshopt_decoder.module.js +136 -0
  72. data/lib-opal/js_wrap/three/libs/mmdparser.module.js +11022 -0
  73. data/lib-opal/js_wrap/three/libs/motion-controllers.module.js +589 -0
  74. data/lib-opal/js_wrap/three/libs/opentype.module.min.js +6132 -0
  75. data/lib-opal/js_wrap/three/libs/potpack.module.js +171 -0
  76. data/lib-opal/js_wrap/three/libs/rhino3dm/rhino3dm.js +6781 -0
  77. data/lib-opal/js_wrap/three/libs/rhino3dm/rhino3dm.module.js +6783 -0
  78. data/lib-opal/js_wrap/three/libs/stats.module.js +139 -0
  79. data/lib-opal/js_wrap/three/libs/tween.module.min.js +349 -0
  80. data/lib-opal/js_wrap/three/lights/LightProbeGenerator.js +233 -0
  81. data/lib-opal/js_wrap/three/lights/RectAreaLightUniformsLib.js +75 -0
  82. data/lib-opal/js_wrap/three/lines/Line2.js +66 -0
  83. data/lib-opal/js_wrap/three/lines/LineGeometry.js +122 -0
  84. data/lib-opal/js_wrap/three/lines/LineMaterial.js +227 -0
  85. data/lib-opal/js_wrap/three/lines/LineSegments2.js +312 -0
  86. data/lib-opal/js_wrap/three/lines/LineSegmentsGeometry.js +238 -0
  87. data/lib-opal/js_wrap/three/lines/Wireframe.js +98 -0
  88. data/lib-opal/js_wrap/three/lines/WireframeGeometry2.js +65 -0
  89. data/lib-opal/js_wrap/three/loaders/3DMLoader.js +1230 -0
  90. data/lib-opal/js_wrap/three/loaders/3MFLoader.js +1123 -0
  91. data/lib-opal/js_wrap/three/loaders/AMFLoader.js +445 -0
  92. data/lib-opal/js_wrap/three/loaders/BVHLoader.js +365 -0
  93. data/lib-opal/js_wrap/three/loaders/BasisTextureLoader.js +692 -0
  94. data/lib-opal/js_wrap/three/loaders/ColladaLoader.js +3046 -0
  95. data/lib-opal/js_wrap/three/loaders/DDSLoader.js +264 -0
  96. data/lib-opal/js_wrap/three/loaders/DRACOLoader.js +531 -0
  97. data/lib-opal/js_wrap/three/loaders/EXRLoader.js +1834 -0
  98. data/lib-opal/js_wrap/three/loaders/FBXLoader.js +3125 -0
  99. data/lib-opal/js_wrap/three/loaders/FontLoader.js +201 -0
  100. data/lib-opal/js_wrap/three/loaders/GCodeLoader.js +248 -0
  101. data/lib-opal/js_wrap/three/loaders/GLTFLoader.js +3334 -0
  102. data/lib-opal/js_wrap/three/loaders/HDRCubeTextureLoader.js +144 -0
  103. data/lib-opal/js_wrap/three/loaders/IFCLoader.js +2395 -0
  104. data/lib-opal/js_wrap/three/loaders/KMZLoader.js +142 -0
  105. data/lib-opal/js_wrap/three/loaders/KTX2Loader.js +535 -0
  106. data/lib-opal/js_wrap/three/loaders/KTXLoader.js +202 -0
  107. data/lib-opal/js_wrap/three/loaders/LDrawLoader.js +1737 -0
  108. data/lib-opal/js_wrap/three/loaders/LUT3dlLoader.js +163 -0
  109. data/lib-opal/js_wrap/three/loaders/LUTCubeLoader.js +171 -0
  110. data/lib-opal/js_wrap/three/loaders/LWOLoader.js +831 -0
  111. data/lib-opal/js_wrap/three/loaders/LogLuvLoader.js +713 -0
  112. data/lib-opal/js_wrap/three/loaders/LottieLoader.js +103 -0
  113. data/lib-opal/js_wrap/three/loaders/MD2Loader.js +258 -0
  114. data/lib-opal/js_wrap/three/loaders/MDDLoader.js +116 -0
  115. data/lib-opal/js_wrap/three/loaders/MMDLoader.js +1687 -0
  116. data/lib-opal/js_wrap/three/loaders/MTLLoader.js +465 -0
  117. data/lib-opal/js_wrap/three/loaders/NRRDLoader.js +554 -0
  118. data/lib-opal/js_wrap/three/loaders/NodeMaterialLoader.js +248 -0
  119. data/lib-opal/js_wrap/three/loaders/OBJLoader.js +673 -0
  120. data/lib-opal/js_wrap/three/loaders/PCDLoader.js +322 -0
  121. data/lib-opal/js_wrap/three/loaders/PDBLoader.js +318 -0
  122. data/lib-opal/js_wrap/three/loaders/PLYLoader.js +489 -0
  123. data/lib-opal/js_wrap/three/loaders/PRWMLoader.js +247 -0
  124. data/lib-opal/js_wrap/three/loaders/PVRLoader.js +240 -0
  125. data/lib-opal/js_wrap/three/loaders/RGBELoader.js +462 -0
  126. data/lib-opal/js_wrap/three/loaders/RGBMLoader.js +1169 -0
  127. data/lib-opal/js_wrap/three/loaders/STLLoader.js +345 -0
  128. data/lib-opal/js_wrap/three/loaders/SVGLoader.js +2162 -0
  129. data/lib-opal/js_wrap/three/loaders/TDSLoader.js +982 -0
  130. data/lib-opal/js_wrap/three/loaders/TGALoader.js +444 -0
  131. data/lib-opal/js_wrap/three/loaders/TTFLoader.js +210 -0
  132. data/lib-opal/js_wrap/three/loaders/TiltLoader.js +391 -0
  133. data/lib-opal/js_wrap/three/loaders/VOXLoader.js +272 -0
  134. data/lib-opal/js_wrap/three/loaders/VRMLLoader.js +2685 -0
  135. data/lib-opal/js_wrap/three/loaders/VRMLoader.js +103 -0
  136. data/lib-opal/js_wrap/three/loaders/VTKLoader.js +894 -0
  137. data/lib-opal/js_wrap/three/loaders/XYZLoader.js +136 -0
  138. data/lib-opal/js_wrap/three/loaders/ifc/web-ifc-api.js +60504 -0
  139. data/lib-opal/js_wrap/three/loaders/lwo/IFFParser.js +931 -0
  140. data/lib-opal/js_wrap/three/loaders/lwo/LWO2Parser.js +450 -0
  141. data/lib-opal/js_wrap/three/loaders/lwo/LWO3Parser.js +406 -0
  142. data/lib-opal/js_wrap/three/math/Capsule.js +133 -0
  143. data/lib-opal/js_wrap/three/math/ColorConverter.js +104 -0
  144. data/lib-opal/js_wrap/three/math/ConvexHull.js +924 -0
  145. data/lib-opal/js_wrap/three/math/ImprovedNoise.js +86 -0
  146. data/lib-opal/js_wrap/three/math/Lut.js +170 -0
  147. data/lib-opal/js_wrap/three/math/MeshSurfaceSampler.js +187 -0
  148. data/lib-opal/js_wrap/three/math/OBB.js +345 -0
  149. data/lib-opal/js_wrap/three/math/Octree.js +409 -0
  150. data/lib-opal/js_wrap/three/math/SimplexNoise.js +425 -0
  151. data/lib-opal/js_wrap/three/misc/ConvexObjectBreaker.js +447 -0
  152. data/lib-opal/js_wrap/three/misc/GPUComputationRenderer.js +322 -0
  153. data/lib-opal/js_wrap/three/misc/Gyroscope.js +94 -0
  154. data/lib-opal/js_wrap/three/misc/MD2Character.js +225 -0
  155. data/lib-opal/js_wrap/three/misc/MD2CharacterComplex.js +424 -0
  156. data/lib-opal/js_wrap/three/misc/MorphAnimMesh.js +109 -0
  157. data/lib-opal/js_wrap/three/misc/MorphBlendMesh.js +283 -0
  158. data/lib-opal/js_wrap/three/misc/ProgressiveLightMap.js +324 -0
  159. data/lib-opal/js_wrap/three/misc/RollerCoaster.js +489 -0
  160. data/lib-opal/js_wrap/three/misc/TubePainter.js +158 -0
  161. data/lib-opal/js_wrap/three/misc/Volume.js +427 -0
  162. data/lib-opal/js_wrap/three/misc/VolumeSlice.js +210 -0
  163. data/lib-opal/js_wrap/three/modifiers/CurveModifier.js +291 -0
  164. data/lib-opal/js_wrap/three/modifiers/EdgeSplitModifier.js +308 -0
  165. data/lib-opal/js_wrap/three/modifiers/SimplifyModifier.js +435 -0
  166. data/lib-opal/js_wrap/three/modifiers/TessellateModifier.js +264 -0
  167. data/lib-opal/js_wrap/three/node-editor/NodeEditor.js +402 -0
  168. data/lib-opal/js_wrap/three/node-editor/accessors/NormalEditor.js +80 -0
  169. data/lib-opal/js_wrap/three/node-editor/accessors/PositionEditor.js +80 -0
  170. data/lib-opal/js_wrap/three/node-editor/accessors/UVEditor.js +71 -0
  171. data/lib-opal/js_wrap/three/node-editor/display/BlendEditor.js +78 -0
  172. data/lib-opal/js_wrap/three/node-editor/inputs/ColorEditor.js +111 -0
  173. data/lib-opal/js_wrap/three/node-editor/inputs/FloatEditor.js +69 -0
  174. data/lib-opal/js_wrap/three/node-editor/inputs/SliderEditor.js +97 -0
  175. data/lib-opal/js_wrap/three/node-editor/inputs/Vector2Editor.js +73 -0
  176. data/lib-opal/js_wrap/three/node-editor/inputs/Vector3Editor.js +75 -0
  177. data/lib-opal/js_wrap/three/node-editor/inputs/Vector4Editor.js +77 -0
  178. data/lib-opal/js_wrap/three/node-editor/materials/StandardMaterialEditor.js +121 -0
  179. data/lib-opal/js_wrap/three/node-editor/math/DotEditor.js +76 -0
  180. data/lib-opal/js_wrap/three/node-editor/math/InvertEditor.js +80 -0
  181. data/lib-opal/js_wrap/three/node-editor/math/LimiterEditor.js +85 -0
  182. data/lib-opal/js_wrap/three/node-editor/math/NormalizeEditor.js +69 -0
  183. data/lib-opal/js_wrap/three/node-editor/math/OperatorEditor.js +91 -0
  184. data/lib-opal/js_wrap/three/node-editor/math/PowerEditor.js +73 -0
  185. data/lib-opal/js_wrap/three/node-editor/math/TrigonometryEditor.js +83 -0
  186. data/lib-opal/js_wrap/three/node-editor/procedural/CheckerEditor.js +69 -0
  187. data/lib-opal/js_wrap/three/node-editor/utils/OscillatorEditor.js +87 -0
  188. data/lib-opal/js_wrap/three/node-editor/utils/TimerEditor.js +89 -0
  189. data/lib-opal/js_wrap/three/nodes/Nodes.js +481 -0
  190. data/lib-opal/js_wrap/three/nodes/accessors/CameraNode.js +222 -0
  191. data/lib-opal/js_wrap/three/nodes/accessors/ColorsNode.js +99 -0
  192. data/lib-opal/js_wrap/three/nodes/accessors/LightNode.js +100 -0
  193. data/lib-opal/js_wrap/three/nodes/accessors/NormalNode.js +152 -0
  194. data/lib-opal/js_wrap/three/nodes/accessors/PositionNode.js +163 -0
  195. data/lib-opal/js_wrap/three/nodes/accessors/ReflectNode.js +161 -0
  196. data/lib-opal/js_wrap/three/nodes/accessors/ResolutionNode.js +99 -0
  197. data/lib-opal/js_wrap/three/nodes/accessors/ScreenUVNode.js +101 -0
  198. data/lib-opal/js_wrap/three/nodes/accessors/UVNode.js +105 -0
  199. data/lib-opal/js_wrap/three/nodes/core/AttributeNode.js +106 -0
  200. data/lib-opal/js_wrap/three/nodes/core/ConstNode.js +149 -0
  201. data/lib-opal/js_wrap/three/nodes/core/ExpressionNode.js +57 -0
  202. data/lib-opal/js_wrap/three/nodes/core/FunctionCallNode.js +138 -0
  203. data/lib-opal/js_wrap/three/nodes/core/FunctionNode.js +259 -0
  204. data/lib-opal/js_wrap/three/nodes/core/InputNode.js +124 -0
  205. data/lib-opal/js_wrap/three/nodes/core/Node.js +193 -0
  206. data/lib-opal/js_wrap/three/nodes/core/NodeBuilder.js +782 -0
  207. data/lib-opal/js_wrap/three/nodes/core/NodeFrame.js +69 -0
  208. data/lib-opal/js_wrap/three/nodes/core/NodeLib.js +56 -0
  209. data/lib-opal/js_wrap/three/nodes/core/NodeUniform.js +53 -0
  210. data/lib-opal/js_wrap/three/nodes/core/NodeUtils.js +60 -0
  211. data/lib-opal/js_wrap/three/nodes/core/StructNode.js +131 -0
  212. data/lib-opal/js_wrap/three/nodes/core/TempNode.js +160 -0
  213. data/lib-opal/js_wrap/three/nodes/core/VarNode.js +105 -0
  214. data/lib-opal/js_wrap/three/nodes/effects/BlurNode.js +160 -0
  215. data/lib-opal/js_wrap/three/nodes/effects/ColorAdjustmentNode.js +139 -0
  216. data/lib-opal/js_wrap/three/nodes/effects/LuminanceNode.js +106 -0
  217. data/lib-opal/js_wrap/three/nodes/inputs/BoolNode.js +95 -0
  218. data/lib-opal/js_wrap/three/nodes/inputs/ColorNode.js +99 -0
  219. data/lib-opal/js_wrap/three/nodes/inputs/CubeTextureNode.js +136 -0
  220. data/lib-opal/js_wrap/three/nodes/inputs/FloatNode.js +95 -0
  221. data/lib-opal/js_wrap/three/nodes/inputs/IntNode.js +95 -0
  222. data/lib-opal/js_wrap/three/nodes/inputs/Matrix3Node.js +102 -0
  223. data/lib-opal/js_wrap/three/nodes/inputs/Matrix4Node.js +102 -0
  224. data/lib-opal/js_wrap/three/nodes/inputs/PropertyNode.js +85 -0
  225. data/lib-opal/js_wrap/three/nodes/inputs/RTTNode.js +164 -0
  226. data/lib-opal/js_wrap/three/nodes/inputs/ReflectorNode.js +111 -0
  227. data/lib-opal/js_wrap/three/nodes/inputs/ScreenNode.js +69 -0
  228. data/lib-opal/js_wrap/three/nodes/inputs/TextureNode.js +140 -0
  229. data/lib-opal/js_wrap/three/nodes/inputs/Vector2Node.js +98 -0
  230. data/lib-opal/js_wrap/three/nodes/inputs/Vector3Node.js +99 -0
  231. data/lib-opal/js_wrap/three/nodes/inputs/Vector4Node.js +100 -0
  232. data/lib-opal/js_wrap/three/nodes/materials/BasicNodeMaterial.js +63 -0
  233. data/lib-opal/js_wrap/three/nodes/materials/MeshStandardNodeMaterial.js +63 -0
  234. data/lib-opal/js_wrap/three/nodes/materials/NodeMaterial.js +202 -0
  235. data/lib-opal/js_wrap/three/nodes/materials/PhongNodeMaterial.js +63 -0
  236. data/lib-opal/js_wrap/three/nodes/materials/SpriteNodeMaterial.js +63 -0
  237. data/lib-opal/js_wrap/three/nodes/materials/StandardNodeMaterial.js +63 -0
  238. data/lib-opal/js_wrap/three/nodes/materials/nodes/BasicNode.js +146 -0
  239. data/lib-opal/js_wrap/three/nodes/materials/nodes/MeshStandardNode.js +133 -0
  240. data/lib-opal/js_wrap/three/nodes/materials/nodes/PhongNode.js +273 -0
  241. data/lib-opal/js_wrap/three/nodes/materials/nodes/RawNode.js +101 -0
  242. data/lib-opal/js_wrap/three/nodes/materials/nodes/SpriteNode.js +176 -0
  243. data/lib-opal/js_wrap/three/nodes/materials/nodes/StandardNode.js +397 -0
  244. data/lib-opal/js_wrap/three/nodes/math/CondNode.js +151 -0
  245. data/lib-opal/js_wrap/three/nodes/math/MathNode.js +266 -0
  246. data/lib-opal/js_wrap/three/nodes/math/OperatorNode.js +120 -0
  247. data/lib-opal/js_wrap/three/nodes/misc/BumpMapNode.js +139 -0
  248. data/lib-opal/js_wrap/three/nodes/misc/NormalMapNode.js +122 -0
  249. data/lib-opal/js_wrap/three/nodes/misc/TextureCubeNode.js +107 -0
  250. data/lib-opal/js_wrap/three/nodes/misc/TextureCubeUVNode.js +191 -0
  251. data/lib-opal/js_wrap/three/nodes/postprocessing/NodePass.js +117 -0
  252. data/lib-opal/js_wrap/three/nodes/postprocessing/NodePostProcessing.js +128 -0
  253. data/lib-opal/js_wrap/three/nodes/procedural/CheckerNode.js +104 -0
  254. data/lib-opal/js_wrap/three/nodes/procedural/Fractal3DNode.js +121 -0
  255. data/lib-opal/js_wrap/three/nodes/procedural/Noise2DNode.js +115 -0
  256. data/lib-opal/js_wrap/three/nodes/procedural/Noise3DNode.js +112 -0
  257. data/lib-opal/js_wrap/three/nodes/utils/BypassNode.js +115 -0
  258. data/lib-opal/js_wrap/three/nodes/utils/ColorSpaceNode.js +214 -0
  259. data/lib-opal/js_wrap/three/nodes/utils/JoinNode.js +138 -0
  260. data/lib-opal/js_wrap/three/nodes/utils/MaxMIPLevelNode.js +88 -0
  261. data/lib-opal/js_wrap/three/nodes/utils/RemapNode.js +117 -0
  262. data/lib-opal/js_wrap/three/nodes/utils/SpecularMIPLevelNode.js +121 -0
  263. data/lib-opal/js_wrap/three/nodes/utils/SubSlotNode.js +112 -0
  264. data/lib-opal/js_wrap/three/nodes/utils/SwitchNode.js +129 -0
  265. data/lib-opal/js_wrap/three/nodes/utils/TimerNode.js +126 -0
  266. data/lib-opal/js_wrap/three/nodes/utils/UVTransformNode.js +104 -0
  267. data/lib-opal/js_wrap/three/nodes/utils/VelocityNode.js +181 -0
  268. data/lib-opal/js_wrap/three/objects/Lensflare.js +285 -0
  269. data/lib-opal/js_wrap/three/objects/LightningStorm.js +238 -0
  270. data/lib-opal/js_wrap/three/objects/MarchingCubes.js +667 -0
  271. data/lib-opal/js_wrap/three/objects/Reflector.js +205 -0
  272. data/lib-opal/js_wrap/three/objects/ReflectorForSSRPass.js +288 -0
  273. data/lib-opal/js_wrap/three/objects/ReflectorRTT.js +63 -0
  274. data/lib-opal/js_wrap/three/objects/Refractor.js +243 -0
  275. data/lib-opal/js_wrap/three/objects/ShadowMesh.js +100 -0
  276. data/lib-opal/js_wrap/three/objects/Sky.js +107 -0
  277. data/lib-opal/js_wrap/three/objects/Water.js +246 -0
  278. data/lib-opal/js_wrap/three/objects/Water2.js +238 -0
  279. data/lib-opal/js_wrap/three/offscreen/jank.js +51 -0
  280. data/lib-opal/js_wrap/three/offscreen/offscreen.js +24 -0
  281. data/lib-opal/js_wrap/three/offscreen/scene.js +99 -0
  282. data/lib-opal/js_wrap/three/physics/AmmoPhysics.js +266 -0
  283. data/lib-opal/js_wrap/three/physics/OimoPhysics.js +214 -0
  284. data/lib-opal/js_wrap/three/postprocessing/AdaptiveToneMappingPass.js +307 -0
  285. data/lib-opal/js_wrap/three/postprocessing/AfterimagePass.js +116 -0
  286. data/lib-opal/js_wrap/three/postprocessing/BloomPass.js +132 -0
  287. data/lib-opal/js_wrap/three/postprocessing/BokehPass.js +143 -0
  288. data/lib-opal/js_wrap/three/postprocessing/ClearPass.js +85 -0
  289. data/lib-opal/js_wrap/three/postprocessing/CubeTexturePass.js +104 -0
  290. data/lib-opal/js_wrap/three/postprocessing/DotScreenPass.js +90 -0
  291. data/lib-opal/js_wrap/three/postprocessing/EffectComposer.js +272 -0
  292. data/lib-opal/js_wrap/three/postprocessing/FilmPass.js +91 -0
  293. data/lib-opal/js_wrap/three/postprocessing/GlitchPass.js +140 -0
  294. data/lib-opal/js_wrap/three/postprocessing/HalftonePass.js +108 -0
  295. data/lib-opal/js_wrap/three/postprocessing/LUTPass.js +132 -0
  296. data/lib-opal/js_wrap/three/postprocessing/MaskPass.js +142 -0
  297. data/lib-opal/js_wrap/three/postprocessing/OutlinePass.js +480 -0
  298. data/lib-opal/js_wrap/three/postprocessing/Pass.js +101 -0
  299. data/lib-opal/js_wrap/three/postprocessing/RenderPass.js +109 -0
  300. data/lib-opal/js_wrap/three/postprocessing/SAOPass.js +384 -0
  301. data/lib-opal/js_wrap/three/postprocessing/SMAAPass.js +199 -0
  302. data/lib-opal/js_wrap/three/postprocessing/SSAARenderPass.js +186 -0
  303. data/lib-opal/js_wrap/three/postprocessing/SSAOPass.js +388 -0
  304. data/lib-opal/js_wrap/three/postprocessing/SSRPass.js +537 -0
  305. data/lib-opal/js_wrap/three/postprocessing/SSRrPass.js +481 -0
  306. data/lib-opal/js_wrap/three/postprocessing/SavePass.js +96 -0
  307. data/lib-opal/js_wrap/three/postprocessing/ShaderPass.js +98 -0
  308. data/lib-opal/js_wrap/three/postprocessing/TAARenderPass.js +159 -0
  309. data/lib-opal/js_wrap/three/postprocessing/TexturePass.js +91 -0
  310. data/lib-opal/js_wrap/three/postprocessing/UnrealBloomPass.js +335 -0
  311. data/lib-opal/js_wrap/three/renderers/CSS2DRenderer.js +213 -0
  312. data/lib-opal/js_wrap/three/renderers/CSS3DRenderer.js +277 -0
  313. data/lib-opal/js_wrap/three/renderers/Projector.js +733 -0
  314. data/lib-opal/js_wrap/three/renderers/SVGRenderer.js +470 -0
  315. data/lib-opal/js_wrap/three/renderers/nodes/Nodes.js +531 -0
  316. data/lib-opal/js_wrap/three/renderers/nodes/ShaderNode.js +386 -0
  317. data/lib-opal/js_wrap/three/renderers/nodes/accessors/CameraNode.js +114 -0
  318. data/lib-opal/js_wrap/three/renderers/nodes/accessors/MaterialNode.js +140 -0
  319. data/lib-opal/js_wrap/three/renderers/nodes/accessors/MaterialReferenceNode.js +79 -0
  320. data/lib-opal/js_wrap/three/renderers/nodes/accessors/ModelNode.js +62 -0
  321. data/lib-opal/js_wrap/three/renderers/nodes/accessors/ModelViewProjectionNode.js +80 -0
  322. data/lib-opal/js_wrap/three/renderers/nodes/accessors/NormalNode.js +113 -0
  323. data/lib-opal/js_wrap/three/renderers/nodes/accessors/Object3DNode.js +136 -0
  324. data/lib-opal/js_wrap/three/renderers/nodes/accessors/PointUVNode.js +70 -0
  325. data/lib-opal/js_wrap/three/renderers/nodes/accessors/PositionNode.js +117 -0
  326. data/lib-opal/js_wrap/three/renderers/nodes/accessors/ReferenceNode.js +124 -0
  327. data/lib-opal/js_wrap/three/renderers/nodes/accessors/SkinningNode.js +129 -0
  328. data/lib-opal/js_wrap/three/renderers/nodes/accessors/UVNode.js +77 -0
  329. data/lib-opal/js_wrap/three/renderers/nodes/core/ArrayInputNode.js +74 -0
  330. data/lib-opal/js_wrap/three/renderers/nodes/core/AttributeNode.js +97 -0
  331. data/lib-opal/js_wrap/three/renderers/nodes/core/BypassNode.js +84 -0
  332. data/lib-opal/js_wrap/three/renderers/nodes/core/CodeNode.js +131 -0
  333. data/lib-opal/js_wrap/three/renderers/nodes/core/ContextNode.js +84 -0
  334. data/lib-opal/js_wrap/three/renderers/nodes/core/ExpressionNode.js +81 -0
  335. data/lib-opal/js_wrap/three/renderers/nodes/core/FunctionCallNode.js +123 -0
  336. data/lib-opal/js_wrap/three/renderers/nodes/core/FunctionNode.js +126 -0
  337. data/lib-opal/js_wrap/three/renderers/nodes/core/InputNode.js +103 -0
  338. data/lib-opal/js_wrap/three/renderers/nodes/core/Node.js +120 -0
  339. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeAttribute.js +37 -0
  340. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeBuilder.js +650 -0
  341. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeCode.js +42 -0
  342. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeFrame.js +70 -0
  343. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeFunction.js +55 -0
  344. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeFunctionInput.js +44 -0
  345. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeKeywords.js +117 -0
  346. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeParser.js +46 -0
  347. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeUniform.js +55 -0
  348. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeVar.js +37 -0
  349. data/lib-opal/js_wrap/three/renderers/nodes/core/NodeVary.js +37 -0
  350. data/lib-opal/js_wrap/three/renderers/nodes/core/PropertyNode.js +90 -0
  351. data/lib-opal/js_wrap/three/renderers/nodes/core/TempNode.js +89 -0
  352. data/lib-opal/js_wrap/three/renderers/nodes/core/VarNode.js +101 -0
  353. data/lib-opal/js_wrap/three/renderers/nodes/core/VaryNode.js +101 -0
  354. data/lib-opal/js_wrap/three/renderers/nodes/core/constants.js +42 -0
  355. data/lib-opal/js_wrap/three/renderers/nodes/display/ColorSpaceNode.js +165 -0
  356. data/lib-opal/js_wrap/three/renderers/nodes/display/NormalMapNode.js +120 -0
  357. data/lib-opal/js_wrap/three/renderers/nodes/functions/BSDFs.js +133 -0
  358. data/lib-opal/js_wrap/three/renderers/nodes/inputs/BufferNode.js +78 -0
  359. data/lib-opal/js_wrap/three/renderers/nodes/inputs/ColorNode.js +67 -0
  360. data/lib-opal/js_wrap/three/renderers/nodes/inputs/FloatNode.js +67 -0
  361. data/lib-opal/js_wrap/three/renderers/nodes/inputs/IntNode.js +67 -0
  362. data/lib-opal/js_wrap/three/renderers/nodes/inputs/Matrix3Node.js +67 -0
  363. data/lib-opal/js_wrap/three/renderers/nodes/inputs/Matrix4Node.js +67 -0
  364. data/lib-opal/js_wrap/three/renderers/nodes/inputs/TextureNode.js +120 -0
  365. data/lib-opal/js_wrap/three/renderers/nodes/inputs/Vector2Node.js +67 -0
  366. data/lib-opal/js_wrap/three/renderers/nodes/inputs/Vector3Node.js +67 -0
  367. data/lib-opal/js_wrap/three/renderers/nodes/inputs/Vector4Node.js +67 -0
  368. data/lib-opal/js_wrap/three/renderers/nodes/lights/LightContextNode.js +103 -0
  369. data/lib-opal/js_wrap/three/renderers/nodes/lights/LightNode.js +115 -0
  370. data/lib-opal/js_wrap/three/renderers/nodes/lights/LightsNode.js +117 -0
  371. data/lib-opal/js_wrap/three/renderers/nodes/materials/LineBasicNodeMaterial.js +82 -0
  372. data/lib-opal/js_wrap/three/renderers/nodes/materials/Materials.js +49 -0
  373. data/lib-opal/js_wrap/three/renderers/nodes/materials/MeshBasicNodeMaterial.js +82 -0
  374. data/lib-opal/js_wrap/three/renderers/nodes/materials/MeshStandardNodeMaterial.js +96 -0
  375. data/lib-opal/js_wrap/three/renderers/nodes/materials/PointsNodeMaterial.js +84 -0
  376. data/lib-opal/js_wrap/three/renderers/nodes/math/CondNode.js +98 -0
  377. data/lib-opal/js_wrap/three/renderers/nodes/math/MathNode.js +255 -0
  378. data/lib-opal/js_wrap/three/renderers/nodes/math/OperatorNode.js +163 -0
  379. data/lib-opal/js_wrap/three/renderers/nodes/parsers/GLSLNodeFunction.js +158 -0
  380. data/lib-opal/js_wrap/three/renderers/nodes/parsers/GLSLNodeParser.js +68 -0
  381. data/lib-opal/js_wrap/three/renderers/nodes/parsers/WGSLNodeFunction.js +126 -0
  382. data/lib-opal/js_wrap/three/renderers/nodes/parsers/WGSLNodeParser.js +68 -0
  383. data/lib-opal/js_wrap/three/renderers/nodes/procedural/CheckerNode.js +84 -0
  384. data/lib-opal/js_wrap/three/renderers/nodes/utils/ArrayElementNode.js +79 -0
  385. data/lib-opal/js_wrap/three/renderers/nodes/utils/ConvertNode.js +82 -0
  386. data/lib-opal/js_wrap/three/renderers/nodes/utils/JoinNode.js +88 -0
  387. data/lib-opal/js_wrap/three/renderers/nodes/utils/OscNode.js +105 -0
  388. data/lib-opal/js_wrap/three/renderers/nodes/utils/SplitNode.js +96 -0
  389. data/lib-opal/js_wrap/three/renderers/nodes/utils/SpriteSheetUVNode.js +98 -0
  390. data/lib-opal/js_wrap/three/renderers/nodes/utils/TimerNode.js +93 -0
  391. data/lib-opal/js_wrap/three/renderers/webgl/nodes/SlotNode.js +72 -0
  392. data/lib-opal/js_wrap/three/renderers/webgl/nodes/WebGLNodeBuilder.js +463 -0
  393. data/lib-opal/js_wrap/three/renderers/webgl/nodes/WebGLNodes.js +62 -0
  394. data/lib-opal/js_wrap/three/renderers/webgl/nodes/WebGLPhysicalContextNode.js +95 -0
  395. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPU.js +62 -0
  396. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUAttributes.js +118 -0
  397. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUBackground.js +109 -0
  398. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUBinding.js +52 -0
  399. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUBindings.js +254 -0
  400. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUBufferUtils.js +39 -0
  401. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUComputePipelines.js +82 -0
  402. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUGeometries.js +84 -0
  403. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUInfo.js +86 -0
  404. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUObjects.js +64 -0
  405. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUProgrammableStage.js +46 -0
  406. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUProperties.js +63 -0
  407. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPURenderLists.js +180 -0
  408. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPURenderPipeline.js +662 -0
  409. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPURenderPipelines.js +275 -0
  410. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPURenderer.js +883 -0
  411. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUSampledTexture.js +139 -0
  412. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUSampler.js +76 -0
  413. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUStorageBuffer.js +69 -0
  414. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUTextureRenderer.js +64 -0
  415. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUTextureUtils.js +125 -0
  416. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUTextures.js +681 -0
  417. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUUniform.js +237 -0
  418. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUUniformBuffer.js +90 -0
  419. data/lib-opal/js_wrap/three/renderers/webgpu/WebGPUUniformsGroup.js +294 -0
  420. data/lib-opal/js_wrap/three/renderers/webgpu/constants.js +263 -0
  421. data/lib-opal/js_wrap/three/renderers/webgpu/nodes/WebGPUNodeBuilder.js +619 -0
  422. data/lib-opal/js_wrap/three/renderers/webgpu/nodes/WebGPUNodeSampledTexture.js +67 -0
  423. data/lib-opal/js_wrap/three/renderers/webgpu/nodes/WebGPUNodeSampler.js +71 -0
  424. data/lib-opal/js_wrap/three/renderers/webgpu/nodes/WebGPUNodeUniform.js +229 -0
  425. data/lib-opal/js_wrap/three/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +68 -0
  426. data/lib-opal/js_wrap/three/renderers/webgpu/nodes/WebGPUNodes.js +106 -0
  427. data/lib-opal/js_wrap/three/shaders/ACESFilmicToneMappingShader.js +45 -0
  428. data/lib-opal/js_wrap/three/shaders/AfterimageShader.js +46 -0
  429. data/lib-opal/js_wrap/three/shaders/BasicShader.js +34 -0
  430. data/lib-opal/js_wrap/three/shaders/BleachBypassShader.js +43 -0
  431. data/lib-opal/js_wrap/three/shaders/BlendShader.js +47 -0
  432. data/lib-opal/js_wrap/three/shaders/BokehShader.js +65 -0
  433. data/lib-opal/js_wrap/three/shaders/BokehShader2.js +125 -0
  434. data/lib-opal/js_wrap/three/shaders/BrightnessContrastShader.js +47 -0
  435. data/lib-opal/js_wrap/three/shaders/ColorCorrectionShader.js +47 -0
  436. data/lib-opal/js_wrap/three/shaders/ColorifyShader.js +41 -0
  437. data/lib-opal/js_wrap/three/shaders/ConvolutionShader.js +75 -0
  438. data/lib-opal/js_wrap/three/shaders/CopyShader.js +41 -0
  439. data/lib-opal/js_wrap/three/shaders/DOFMipMapShader.js +49 -0
  440. data/lib-opal/js_wrap/three/shaders/DepthLimitedBlurShader.js +95 -0
  441. data/lib-opal/js_wrap/three/shaders/DigitalGlitch.js +79 -0
  442. data/lib-opal/js_wrap/three/shaders/DotScreenShader.js +52 -0
  443. data/lib-opal/js_wrap/three/shaders/FXAAShader.js +78 -0
  444. data/lib-opal/js_wrap/three/shaders/FilmShader.js +69 -0
  445. data/lib-opal/js_wrap/three/shaders/FocusShader.js +52 -0
  446. data/lib-opal/js_wrap/three/shaders/FreiChenShader.js +44 -0
  447. data/lib-opal/js_wrap/three/shaders/GammaCorrectionShader.js +39 -0
  448. data/lib-opal/js_wrap/three/shaders/GodRaysShader.js +140 -0
  449. data/lib-opal/js_wrap/three/shaders/HalftoneShader.js +77 -0
  450. data/lib-opal/js_wrap/three/shaders/HorizontalBlurShader.js +47 -0
  451. data/lib-opal/js_wrap/three/shaders/HorizontalTiltShiftShader.js +49 -0
  452. data/lib-opal/js_wrap/three/shaders/HueSaturationShader.js +47 -0
  453. data/lib-opal/js_wrap/three/shaders/KaleidoShader.js +50 -0
  454. data/lib-opal/js_wrap/three/shaders/LuminosityHighPassShader.js +52 -0
  455. data/lib-opal/js_wrap/three/shaders/LuminosityShader.js +39 -0
  456. data/lib-opal/js_wrap/three/shaders/MMDToonShader.js +48 -0
  457. data/lib-opal/js_wrap/three/shaders/MirrorShader.js +44 -0
  458. data/lib-opal/js_wrap/three/shaders/NormalMapShader.js +48 -0
  459. data/lib-opal/js_wrap/three/shaders/PixelShader.js +44 -0
  460. data/lib-opal/js_wrap/three/shaders/RGBShiftShader.js +50 -0
  461. data/lib-opal/js_wrap/three/shaders/SAOShader.js +85 -0
  462. data/lib-opal/js_wrap/three/shaders/SMAAShader.js +95 -0
  463. data/lib-opal/js_wrap/three/shaders/SSAOShader.js +113 -0
  464. data/lib-opal/js_wrap/three/shaders/SSRShader.js +126 -0
  465. data/lib-opal/js_wrap/three/shaders/SSRrShader.js +106 -0
  466. data/lib-opal/js_wrap/three/shaders/SepiaShader.js +43 -0
  467. data/lib-opal/js_wrap/three/shaders/SobelOperatorShader.js +44 -0
  468. data/lib-opal/js_wrap/three/shaders/SubsurfaceScatteringShader.js +64 -0
  469. data/lib-opal/js_wrap/three/shaders/TechnicolorShader.js +41 -0
  470. data/lib-opal/js_wrap/three/shaders/ToneMapShader.js +53 -0
  471. data/lib-opal/js_wrap/three/shaders/ToonShader.js +148 -0
  472. data/lib-opal/js_wrap/three/shaders/TriangleBlurShader.js +47 -0
  473. data/lib-opal/js_wrap/three/shaders/UnpackDepthRGBAShader.js +42 -0
  474. data/lib-opal/js_wrap/three/shaders/VerticalBlurShader.js +47 -0
  475. data/lib-opal/js_wrap/three/shaders/VerticalTiltShiftShader.js +49 -0
  476. data/lib-opal/js_wrap/three/shaders/VignetteShader.js +46 -0
  477. data/lib-opal/js_wrap/three/shaders/VolumeShader.js +55 -0
  478. data/lib-opal/js_wrap/three/shaders/WaterRefractionShader.js +46 -0
  479. data/lib-opal/js_wrap/three/textures/FlakesTexture.js +61 -0
  480. data/lib-opal/js_wrap/three/utils/BufferGeometryUtils.js +683 -0
  481. data/lib-opal/js_wrap/three/utils/CameraUtils.js +97 -0
  482. data/lib-opal/js_wrap/three/utils/GPUStatsPanel.js +154 -0
  483. data/lib-opal/js_wrap/three/utils/GeometryCompressionUtils.js +468 -0
  484. data/lib-opal/js_wrap/three/utils/GeometryUtils.js +192 -0
  485. data/lib-opal/js_wrap/three/utils/PackedPhongMaterial.js +77 -0
  486. data/lib-opal/js_wrap/three/utils/RoughnessMipmapper.js +169 -0
  487. data/lib-opal/js_wrap/three/utils/SceneUtils.js +62 -0
  488. data/lib-opal/js_wrap/three/utils/ShadowMapViewer.js +182 -0
  489. data/lib-opal/js_wrap/three/utils/SkeletonUtils.js +400 -0
  490. data/lib-opal/js_wrap/three/utils/UVsDebug.js +132 -0
  491. data/lib-opal/js_wrap/three/utils/WorkerPool.js +130 -0
  492. data/lib-opal/js_wrap/three/webxr/ARButton.js +203 -0
  493. data/lib-opal/js_wrap/three/webxr/OculusHandModel.js +131 -0
  494. data/lib-opal/js_wrap/three/webxr/OculusHandPointerModel.js +328 -0
  495. data/lib-opal/js_wrap/three/webxr/Text2D.js +54 -0
  496. data/lib-opal/js_wrap/three/webxr/VRButton.js +181 -0
  497. data/lib-opal/js_wrap/three/webxr/XRControllerModelFactory.js +266 -0
  498. data/lib-opal/js_wrap/three/webxr/XREstimatedLight.js +221 -0
  499. data/lib-opal/js_wrap/three/webxr/XRHandMeshModel.js +93 -0
  500. data/lib-opal/js_wrap/three/webxr/XRHandModelFactory.js +127 -0
  501. data/lib-opal/js_wrap/three/webxr/XRHandPrimitiveModel.js +85 -0
  502. data/opal-js_wrap-three.gemspec +4 -4
  503. metadata +502 -5
@@ -0,0 +1,2395 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["exports", "./ifc/web-ifc-api.js", "three", "../utils/BufferGeometryUtils.js"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(exports, require("./ifc/web-ifc-api.js"), require("three"), require("../utils/BufferGeometryUtils.js"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(mod.exports, global.webIfcApi, global.three, global.BufferGeometryUtils);
11
+ global.IFCLoader = mod.exports;
12
+ }
13
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _webIfcApi, _three, _BufferGeometryUtils) {
14
+ "use strict";
15
+
16
+ Object.defineProperty(_exports, "__esModule", {
17
+ value: true
18
+ });
19
+ _exports.IFCLoader = void 0;
20
+
21
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } Object.defineProperty(subClass, "prototype", { value: Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }), writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
22
+
23
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
24
+
25
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
26
+
27
+ function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
28
+
29
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
30
+
31
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
32
+
33
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
34
+
35
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
36
+
37
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
38
+
39
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
40
+
41
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
42
+
43
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
44
+
45
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
46
+
47
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
48
+
49
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
50
+
51
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
52
+
53
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
54
+
55
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
56
+
57
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
58
+
59
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
60
+
61
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
62
+
63
+ var IdAttrName = 'expressID';
64
+
65
+ var merge = function merge(geoms) {
66
+ var createGroups = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
67
+ return (0, _BufferGeometryUtils.mergeBufferGeometries)(geoms, createGroups);
68
+ };
69
+
70
+ var newFloatAttr = function newFloatAttr(data, size) {
71
+ return new _three.BufferAttribute(new Float32Array(data), size);
72
+ };
73
+
74
+ var newIntAttr = function newIntAttr(data, size) {
75
+ return new _three.BufferAttribute(new Uint32Array(data), size);
76
+ };
77
+
78
+ var DEFAULT = 'default';
79
+ var PropsNames = {
80
+ aggregates: {
81
+ name: _webIfcApi.IFCRELAGGREGATES,
82
+ relating: 'RelatingObject',
83
+ related: 'RelatedObjects',
84
+ key: 'children'
85
+ },
86
+ spatial: {
87
+ name: _webIfcApi.IFCRELCONTAINEDINSPATIALSTRUCTURE,
88
+ relating: 'RelatingStructure',
89
+ related: 'RelatedElements',
90
+ key: 'children'
91
+ },
92
+ psets: {
93
+ name: _webIfcApi.IFCRELDEFINESBYPROPERTIES,
94
+ relating: 'RelatingPropertyDefinition',
95
+ related: 'RelatedObjects',
96
+ key: 'hasPsets'
97
+ },
98
+ materials: {
99
+ name: _webIfcApi.IFCRELASSOCIATESMATERIAL,
100
+ relating: 'RelatingMaterial',
101
+ related: 'RelatedObjects',
102
+ key: 'hasMaterial'
103
+ },
104
+ type: {
105
+ name: _webIfcApi.IFCRELDEFINESBYTYPE,
106
+ relating: 'RelatingType',
107
+ related: 'RelatedObjects',
108
+ key: 'hasType'
109
+ }
110
+ };
111
+
112
+ var IFCParser = /*#__PURE__*/function () {
113
+ function IFCParser(state, BVH) {
114
+ _classCallCheck(this, IFCParser);
115
+
116
+ this.state = state;
117
+ this.BVH = BVH;
118
+ this.loadedModels = 0;
119
+ this.currentWebIfcID = -1;
120
+ this.currentModelID = -1;
121
+ }
122
+
123
+ _createClass(IFCParser, [{
124
+ key: "parse",
125
+ value: function () {
126
+ var _parse = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(buffer) {
127
+ return regeneratorRuntime.wrap(function _callee$(_context) {
128
+ while (1) {
129
+ switch (_context.prev = _context.next) {
130
+ case 0:
131
+ if (!(this.state.api.wasmModule === undefined)) {
132
+ _context.next = 3;
133
+ break;
134
+ }
135
+
136
+ _context.next = 3;
137
+ return this.state.api.Init();
138
+
139
+ case 3:
140
+ this.newIfcModel(buffer);
141
+ this.loadedModels++;
142
+ return _context.abrupt("return", this.loadAllGeometry());
143
+
144
+ case 6:
145
+ case "end":
146
+ return _context.stop();
147
+ }
148
+ }
149
+ }, _callee, this);
150
+ }));
151
+
152
+ function parse(_x) {
153
+ return _parse.apply(this, arguments);
154
+ }
155
+
156
+ return parse;
157
+ }()
158
+ }, {
159
+ key: "newIfcModel",
160
+ value: function newIfcModel(buffer) {
161
+ var data = new Uint8Array(buffer);
162
+ this.currentWebIfcID = this.state.api.OpenModel(data, this.state.webIfcSettings);
163
+ this.currentModelID = this.state.useJSON ? this.loadedModels : this.currentWebIfcID;
164
+ this.state.models[this.currentModelID] = {
165
+ modelID: this.currentModelID,
166
+ mesh: {},
167
+ items: {},
168
+ types: {},
169
+ jsonData: {}
170
+ };
171
+ }
172
+ }, {
173
+ key: "loadAllGeometry",
174
+ value: function loadAllGeometry() {
175
+ this.saveAllPlacedGeometriesByMaterial();
176
+ return this.generateAllGeometriesByMaterial();
177
+ }
178
+ }, {
179
+ key: "generateAllGeometriesByMaterial",
180
+ value: function generateAllGeometriesByMaterial() {
181
+ var _this$getGeometryAndM = this.getGeometryAndMaterials(),
182
+ geometry = _this$getGeometryAndM.geometry,
183
+ materials = _this$getGeometryAndM.materials;
184
+
185
+ this.BVH.applyThreeMeshBVH(geometry);
186
+ var mesh = new _three.Mesh(geometry, materials);
187
+ mesh.modelID = this.currentModelID;
188
+ this.state.models[this.currentModelID].mesh = mesh;
189
+ return mesh;
190
+ }
191
+ }, {
192
+ key: "getGeometryAndMaterials",
193
+ value: function getGeometryAndMaterials() {
194
+ var items = this.state.models[this.currentModelID].items;
195
+ var mergedByMaterial = [];
196
+ var materials = [];
197
+
198
+ for (var materialID in items) {
199
+ materials.push(items[materialID].material);
200
+ var geometries = Object.values(items[materialID].geometries);
201
+ mergedByMaterial.push(merge(geometries));
202
+ }
203
+
204
+ var geometry = merge(mergedByMaterial, true);
205
+ return {
206
+ geometry: geometry,
207
+ materials: materials
208
+ };
209
+ }
210
+ }, {
211
+ key: "saveAllPlacedGeometriesByMaterial",
212
+ value: function saveAllPlacedGeometriesByMaterial() {
213
+ var flatMeshes = this.state.api.LoadAllGeometry(this.currentWebIfcID);
214
+
215
+ for (var i = 0; i < flatMeshes.size(); i++) {
216
+ var flatMesh = flatMeshes.get(i);
217
+ var placedGeom = flatMesh.geometries;
218
+
219
+ for (var j = 0; j < placedGeom.size(); j++) {
220
+ this.savePlacedGeometry(placedGeom.get(j), flatMesh.expressID);
221
+ }
222
+ }
223
+ }
224
+ }, {
225
+ key: "savePlacedGeometry",
226
+ value: function savePlacedGeometry(placedGeometry, id) {
227
+ var geometry = this.getBufferGeometry(placedGeometry);
228
+ geometry.computeVertexNormals();
229
+ var matrix = this.getMeshMatrix(placedGeometry.flatTransformation);
230
+ geometry.applyMatrix4(matrix);
231
+ this.saveGeometryByMaterial(geometry, placedGeometry, id);
232
+ }
233
+ }, {
234
+ key: "getBufferGeometry",
235
+ value: function getBufferGeometry(placed) {
236
+ var geometry = this.state.api.GetGeometry(this.currentWebIfcID, placed.geometryExpressID);
237
+ var vertexData = this.getVertices(geometry);
238
+ var indices = this.getIndices(geometry);
239
+
240
+ var _this$extractVertexDa = this.extractVertexData(vertexData),
241
+ vertices = _this$extractVertexDa.vertices,
242
+ normals = _this$extractVertexDa.normals;
243
+
244
+ return this.ifcGeomToBufferGeom(vertices, normals, indices);
245
+ }
246
+ }, {
247
+ key: "getVertices",
248
+ value: function getVertices(geometry) {
249
+ var vData = geometry.GetVertexData();
250
+ var vDataSize = geometry.GetVertexDataSize();
251
+ return this.state.api.GetVertexArray(vData, vDataSize);
252
+ }
253
+ }, {
254
+ key: "getIndices",
255
+ value: function getIndices(geometry) {
256
+ var iData = geometry.GetIndexData();
257
+ var iDataSize = geometry.GetIndexDataSize();
258
+ return this.state.api.GetIndexArray(iData, iDataSize);
259
+ }
260
+ }, {
261
+ key: "getMeshMatrix",
262
+ value: function getMeshMatrix(matrix) {
263
+ var mat = new _three.Matrix4();
264
+ mat.fromArray(matrix);
265
+ return mat;
266
+ }
267
+ }, {
268
+ key: "ifcGeomToBufferGeom",
269
+ value: function ifcGeomToBufferGeom(vertices, normals, indexData) {
270
+ var geometry = new _three.BufferGeometry();
271
+ geometry.setAttribute('position', newFloatAttr(vertices, 3));
272
+ geometry.setAttribute('normal', newFloatAttr(normals, 3));
273
+ geometry.setIndex(new _three.BufferAttribute(indexData, 1));
274
+ return geometry;
275
+ }
276
+ }, {
277
+ key: "extractVertexData",
278
+ value: function extractVertexData(vertexData) {
279
+ var vertices = [];
280
+ var normals = [];
281
+ var isNormalData = false;
282
+
283
+ for (var i = 0; i < vertexData.length; i++) {
284
+ isNormalData ? normals.push(vertexData[i]) : vertices.push(vertexData[i]);
285
+ if ((i + 1) % 3 == 0) isNormalData = !isNormalData;
286
+ }
287
+
288
+ return {
289
+ vertices: vertices,
290
+ normals: normals
291
+ };
292
+ }
293
+ }, {
294
+ key: "saveGeometryByMaterial",
295
+ value: function saveGeometryByMaterial(geom, placedGeom, id) {
296
+ var color = placedGeom.color;
297
+ var colorID = "".concat(color.x).concat(color.y).concat(color.z).concat(color.w);
298
+ this.storeGeometryAttribute(id, geom);
299
+ this.createMaterial(colorID, color);
300
+ var item = this.state.models[this.currentModelID].items[colorID];
301
+ var currentGeom = item.geometries[id];
302
+ if (!currentGeom) return item.geometries[id] = geom;
303
+ var merged = merge([currentGeom, geom]);
304
+ item.geometries[id] = merged;
305
+ }
306
+ }, {
307
+ key: "storeGeometryAttribute",
308
+ value: function storeGeometryAttribute(id, geometry) {
309
+ var size = geometry.attributes.position.count;
310
+ var idAttribute = new Array(size).fill(id);
311
+ geometry.setAttribute(IdAttrName, newIntAttr(idAttribute, 1));
312
+ }
313
+ }, {
314
+ key: "createMaterial",
315
+ value: function createMaterial(colorID, color) {
316
+ var items = this.state.models[this.currentModelID].items;
317
+ if (items[colorID]) return;
318
+ var col = new _three.Color(color.x, color.y, color.z);
319
+ var newMaterial = new _three.MeshLambertMaterial({
320
+ color: col,
321
+ side: _three.DoubleSide
322
+ });
323
+ newMaterial.transparent = color.w !== 1;
324
+ if (newMaterial.transparent) newMaterial.opacity = color.w;
325
+ items[colorID] = {
326
+ material: newMaterial,
327
+ geometries: {}
328
+ };
329
+ }
330
+ }]);
331
+
332
+ return IFCParser;
333
+ }();
334
+
335
+ var SubsetManager = /*#__PURE__*/function () {
336
+ function SubsetManager(state, BVH) {
337
+ _classCallCheck(this, SubsetManager);
338
+
339
+ this.selected = {};
340
+ this.state = state;
341
+ this.BVH = BVH;
342
+ }
343
+
344
+ _createClass(SubsetManager, [{
345
+ key: "getSubset",
346
+ value: function getSubset(modelID, material) {
347
+ var currentMat = this.matIDNoConfig(modelID, material);
348
+ if (!this.selected[currentMat]) return null;
349
+ return this.selected[currentMat].mesh;
350
+ }
351
+ }, {
352
+ key: "removeSubset",
353
+ value: function removeSubset(modelID, parent, material) {
354
+ var currentMat = this.matIDNoConfig(modelID, material);
355
+ if (!this.selected[currentMat]) return;
356
+ if (parent) parent.remove(this.selected[currentMat].mesh);
357
+ delete this.selected[currentMat];
358
+ }
359
+ }, {
360
+ key: "createSubset",
361
+ value: function createSubset(config) {
362
+ if (!this.isConfigValid(config)) return;
363
+ if (this.isPreviousSelection(config)) return;
364
+ if (this.isEasySelection(config)) return this.addToPreviousSelection(config);
365
+ this.updatePreviousSelection(config.scene, config);
366
+ return this.createSelectionInScene(config);
367
+ }
368
+ }, {
369
+ key: "createSelectionInScene",
370
+ value: function createSelectionInScene(config) {
371
+ var filtered = this.filter(config);
372
+
373
+ var _this$getGeomAndMat = this.getGeomAndMat(filtered),
374
+ geomsByMaterial = _this$getGeomAndMat.geomsByMaterial,
375
+ materials = _this$getGeomAndMat.materials;
376
+
377
+ var isDefMaterial = this.isDefaultMat(config);
378
+ var geometry = this.getMergedGeometry(geomsByMaterial, isDefMaterial);
379
+ var mats = isDefMaterial ? materials : config.material;
380
+ this.BVH.applyThreeMeshBVH(geometry);
381
+ var mesh = new _three.Mesh(geometry, mats);
382
+ this.selected[this.matID(config)].mesh = mesh;
383
+ mesh.modelID = config.modelID;
384
+ config.scene.add(mesh);
385
+ return mesh;
386
+ }
387
+ }, {
388
+ key: "getMergedGeometry",
389
+ value: function getMergedGeometry(geomsByMaterial, hasDefaultMaterial) {
390
+ return geomsByMaterial.length > 0 ? merge(geomsByMaterial, hasDefaultMaterial) : new _three.BufferGeometry();
391
+ }
392
+ }, {
393
+ key: "isConfigValid",
394
+ value: function isConfigValid(config) {
395
+ return this.isValid(config.scene) && this.isValid(config.modelID) && this.isValid(config.ids) && this.isValid(config.removePrevious);
396
+ }
397
+ }, {
398
+ key: "isValid",
399
+ value: function isValid(item) {
400
+ return item != undefined && item != null;
401
+ }
402
+ }, {
403
+ key: "getGeomAndMat",
404
+ value: function getGeomAndMat(filtered) {
405
+ var geomsByMaterial = [];
406
+ var materials = [];
407
+
408
+ for (var matID in filtered) {
409
+ var geoms = Object.values(filtered[matID].geometries);
410
+ if (!geoms.length) continue;
411
+ materials.push(filtered[matID].material);
412
+ if (geoms.length > 1) geomsByMaterial.push(merge(geoms));else geomsByMaterial.push.apply(geomsByMaterial, _toConsumableArray(geoms));
413
+ }
414
+
415
+ return {
416
+ geomsByMaterial: geomsByMaterial,
417
+ materials: materials
418
+ };
419
+ }
420
+ }, {
421
+ key: "updatePreviousSelection",
422
+ value: function updatePreviousSelection(parent, config) {
423
+ var previous = this.selected[this.matID(config)];
424
+ if (!previous) return this.newSelectionGroup(config);
425
+ parent.remove(previous.mesh);
426
+ config.removePrevious ? previous.ids = new Set(config.ids) : config.ids.forEach(function (id) {
427
+ return previous.ids.add(id);
428
+ });
429
+ }
430
+ }, {
431
+ key: "newSelectionGroup",
432
+ value: function newSelectionGroup(config) {
433
+ this.selected[this.matID(config)] = {
434
+ ids: new Set(config.ids),
435
+ mesh: {}
436
+ };
437
+ }
438
+ }, {
439
+ key: "isPreviousSelection",
440
+ value: function isPreviousSelection(config) {
441
+ if (!this.selected[this.matID(config)]) return false;
442
+ if (this.containsIds(config)) return true;
443
+ var previousIds = this.selected[this.matID(config)].ids;
444
+ return JSON.stringify(config.ids) === JSON.stringify(previousIds);
445
+ }
446
+ }, {
447
+ key: "containsIds",
448
+ value: function containsIds(config) {
449
+ var newIds = config.ids;
450
+ var previous = Array.from(this.selected[this.matID(config)].ids);
451
+ return newIds.every(function (i) {
452
+ return function (v) {
453
+ return i = previous.indexOf(v, i) + 1;
454
+ };
455
+ }(0));
456
+ }
457
+ }, {
458
+ key: "addToPreviousSelection",
459
+ value: function addToPreviousSelection(config) {
460
+ var previous = this.selected[this.matID(config)];
461
+ var filtered = this.filter(config);
462
+ var geometries = Object.values(filtered).map(function (i) {
463
+ return Object.values(i.geometries);
464
+ }).flat();
465
+ var previousGeom = previous.mesh.geometry;
466
+ previous.mesh.geometry = merge([previousGeom].concat(_toConsumableArray(geometries)));
467
+ config.ids.forEach(function (id) {
468
+ return previous.ids.add(id);
469
+ });
470
+ }
471
+ }, {
472
+ key: "filter",
473
+ value: function filter(config) {
474
+ var ids = this.selected[this.matID(config)].ids;
475
+ var items = this.state.models[config.modelID].items;
476
+ var filtered = {};
477
+
478
+ for (var matID in items) {
479
+ filtered[matID] = {
480
+ material: items[matID].material,
481
+ geometries: this.filterGeometries(ids, items[matID].geometries)
482
+ };
483
+ }
484
+
485
+ return filtered;
486
+ }
487
+ }, {
488
+ key: "filterGeometries",
489
+ value: function filterGeometries(selectedIDs, geometries) {
490
+ var ids = Array.from(selectedIDs);
491
+ return Object.keys(geometries).filter(function (key) {
492
+ return ids.includes(parseInt(key, 10));
493
+ }).reduce(function (obj, key) {
494
+ return _objectSpread(_objectSpread({}, obj), {}, _defineProperty({}, key, geometries[key]));
495
+ }, {});
496
+ }
497
+ }, {
498
+ key: "isEasySelection",
499
+ value: function isEasySelection(config) {
500
+ var matID = this.matID(config);
501
+ if (!config.removePrevious && !this.isDefaultMat(config) && this.selected[matID]) return true;
502
+ }
503
+ }, {
504
+ key: "isDefaultMat",
505
+ value: function isDefaultMat(config) {
506
+ return this.matIDNoConfig(config.modelID) === this.matID(config);
507
+ }
508
+ }, {
509
+ key: "matID",
510
+ value: function matID(config) {
511
+ var name;
512
+ if (!config.material) name = DEFAULT;else name = config.material.uuid || DEFAULT;
513
+ return name.concat(' - ').concat(config.modelID.toString());
514
+ }
515
+ }, {
516
+ key: "matIDNoConfig",
517
+ value: function matIDNoConfig(modelID, material) {
518
+ var name = DEFAULT;
519
+ if (material) name = material.uuid;
520
+ return name.concat(' - ').concat(modelID.toString());
521
+ }
522
+ }]);
523
+
524
+ return SubsetManager;
525
+ }();
526
+
527
+ var IfcElements = {
528
+ 103090709: 'IFCPROJECT',
529
+ 4097777520: 'IFCSITE',
530
+ 4031249490: 'IFCBUILDING',
531
+ 3124254112: 'IFCBUILDINGSTOREY',
532
+ 3856911033: 'IFCSPACE',
533
+ 1674181508: 'IFCANNOTATION',
534
+ 25142252: 'IFCCONTROLLER',
535
+ 32344328: 'IFCBOILER',
536
+ 76236018: 'IFCLAMP',
537
+ 90941305: 'IFCPUMP',
538
+ 177149247: 'IFCAIRTERMINALBOX',
539
+ 182646315: 'IFCFLOWINSTRUMENT',
540
+ 263784265: 'IFCFURNISHINGELEMENT',
541
+ 264262732: 'IFCELECTRICGENERATOR',
542
+ 277319702: 'IFCAUDIOVISUALAPPLIANCE',
543
+ 310824031: 'IFCPIPEFITTING',
544
+ 331165859: 'IFCSTAIR',
545
+ 342316401: 'IFCDUCTFITTING',
546
+ 377706215: 'IFCMECHANICALFASTENER',
547
+ 395920057: 'IFCDOOR',
548
+ 402227799: 'IFCELECTRICMOTOR',
549
+ 413509423: 'IFCSYSTEMFURNITUREELEMENT',
550
+ 484807127: 'IFCEVAPORATOR',
551
+ 486154966: 'IFCWINDOWSTANDARDCASE',
552
+ 629592764: 'IFCLIGHTFIXTURE',
553
+ 630975310: 'IFCUNITARYCONTROLELEMENT',
554
+ 635142910: 'IFCCABLECARRIERFITTING',
555
+ 639361253: 'IFCCOIL',
556
+ 647756555: 'IFCFASTENER',
557
+ 707683696: 'IFCFLOWSTORAGEDEVICE',
558
+ 738039164: 'IFCPROTECTIVEDEVICE',
559
+ 753842376: 'IFCBEAM',
560
+ 812556717: 'IFCTANK',
561
+ 819412036: 'IFCFILTER',
562
+ 843113511: 'IFCCOLUMN',
563
+ 862014818: 'IFCELECTRICDISTRIBUTIONBOARD',
564
+ 900683007: 'IFCFOOTING',
565
+ 905975707: 'IFCCOLUMNSTANDARDCASE',
566
+ 926996030: 'IFCVOIDINGFEATURE',
567
+ 979691226: 'IFCREINFORCINGBAR',
568
+ 987401354: 'IFCFLOWSEGMENT',
569
+ 1003880860: 'IFCELECTRICTIMECONTROL',
570
+ 1051757585: 'IFCCABLEFITTING',
571
+ 1052013943: 'IFCDISTRIBUTIONCHAMBERELEMENT',
572
+ 1062813311: 'IFCDISTRIBUTIONCONTROLELEMENT',
573
+ 1073191201: 'IFCMEMBER',
574
+ 1095909175: 'IFCBUILDINGELEMENTPROXY',
575
+ 1156407060: 'IFCPLATESTANDARDCASE',
576
+ 1162798199: 'IFCSWITCHINGDEVICE',
577
+ 1329646415: 'IFCSHADINGDEVICE',
578
+ 1335981549: 'IFCDISCRETEACCESSORY',
579
+ 1360408905: 'IFCDUCTSILENCER',
580
+ 1404847402: 'IFCSTACKTERMINAL',
581
+ 1426591983: 'IFCFIRESUPPRESSIONTERMINAL',
582
+ 1437502449: 'IFCMEDICALDEVICE',
583
+ 1509553395: 'IFCFURNITURE',
584
+ 1529196076: 'IFCSLAB',
585
+ 1620046519: 'IFCTRANSPORTELEMENT',
586
+ 1634111441: 'IFCAIRTERMINAL',
587
+ 1658829314: 'IFCENERGYCONVERSIONDEVICE',
588
+ 1677625105: 'IFCCIVILELEMENT',
589
+ 1687234759: 'IFCPILE',
590
+ 1904799276: 'IFCELECTRICAPPLIANCE',
591
+ 1911478936: 'IFCMEMBERSTANDARDCASE',
592
+ 1945004755: 'IFCDISTRIBUTIONELEMENT',
593
+ 1973544240: 'IFCCOVERING',
594
+ 1999602285: 'IFCSPACEHEATER',
595
+ 2016517767: 'IFCROOF',
596
+ 2056796094: 'IFCAIRTOAIRHEATRECOVERY',
597
+ 2058353004: 'IFCFLOWCONTROLLER',
598
+ 2068733104: 'IFCHUMIDIFIER',
599
+ 2176052936: 'IFCJUNCTIONBOX',
600
+ 2188021234: 'IFCFLOWMETER',
601
+ 2223149337: 'IFCFLOWTERMINAL',
602
+ 2262370178: 'IFCRAILING',
603
+ 2272882330: 'IFCCONDENSER',
604
+ 2295281155: 'IFCPROTECTIVEDEVICETRIPPINGUNIT',
605
+ 2320036040: 'IFCREINFORCINGMESH',
606
+ 2347447852: 'IFCTENDONANCHOR',
607
+ 2391383451: 'IFCVIBRATIONISOLATOR',
608
+ 2391406946: 'IFCWALL',
609
+ 2474470126: 'IFCMOTORCONNECTION',
610
+ 2769231204: 'IFCVIRTUALELEMENT',
611
+ 2814081492: 'IFCENGINE',
612
+ 2906023776: 'IFCBEAMSTANDARDCASE',
613
+ 2938176219: 'IFCBURNER',
614
+ 2979338954: 'IFCBUILDINGELEMENTPART',
615
+ 3024970846: 'IFCRAMP',
616
+ 3026737570: 'IFCTUBEBUNDLE',
617
+ 3027962421: 'IFCSLABSTANDARDCASE',
618
+ 3040386961: 'IFCDISTRIBUTIONFLOWELEMENT',
619
+ 3053780830: 'IFCSANITARYTERMINAL',
620
+ 3079942009: 'IFCOPENINGSTANDARDCASE',
621
+ 3087945054: 'IFCALARM',
622
+ 3101698114: 'IFCSURFACEFEATURE',
623
+ 3127900445: 'IFCSLABELEMENTEDCASE',
624
+ 3132237377: 'IFCFLOWMOVINGDEVICE',
625
+ 3171933400: 'IFCPLATE',
626
+ 3221913625: 'IFCCOMMUNICATIONSAPPLIANCE',
627
+ 3242481149: 'IFCDOORSTANDARDCASE',
628
+ 3283111854: 'IFCRAMPFLIGHT',
629
+ 3296154744: 'IFCCHIMNEY',
630
+ 3304561284: 'IFCWINDOW',
631
+ 3310460725: 'IFCELECTRICFLOWSTORAGEDEVICE',
632
+ 3319311131: 'IFCHEATEXCHANGER',
633
+ 3415622556: 'IFCFAN',
634
+ 3420628829: 'IFCSOLARDEVICE',
635
+ 3493046030: 'IFCGEOGRAPHICELEMENT',
636
+ 3495092785: 'IFCCURTAINWALL',
637
+ 3508470533: 'IFCFLOWTREATMENTDEVICE',
638
+ 3512223829: 'IFCWALLSTANDARDCASE',
639
+ 3518393246: 'IFCDUCTSEGMENT',
640
+ 3571504051: 'IFCCOMPRESSOR',
641
+ 3588315303: 'IFCOPENINGELEMENT',
642
+ 3612865200: 'IFCPIPESEGMENT',
643
+ 3640358203: 'IFCCOOLINGTOWER',
644
+ 3651124850: 'IFCPROJECTIONELEMENT',
645
+ 3694346114: 'IFCOUTLET',
646
+ 3747195512: 'IFCEVAPORATIVECOOLER',
647
+ 3758799889: 'IFCCABLECARRIERSEGMENT',
648
+ 3824725483: 'IFCTENDON',
649
+ 3825984169: 'IFCTRANSFORMER',
650
+ 3902619387: 'IFCCHILLER',
651
+ 4074379575: 'IFCDAMPER',
652
+ 4086658281: 'IFCSENSOR',
653
+ 4123344466: 'IFCELEMENTASSEMBLY',
654
+ 4136498852: 'IFCCOOLEDBEAM',
655
+ 4156078855: 'IFCWALLELEMENTEDCASE',
656
+ 4175244083: 'IFCINTERCEPTOR',
657
+ 4207607924: 'IFCVALVE',
658
+ 4217484030: 'IFCCABLESEGMENT',
659
+ 4237592921: 'IFCWASTETERMINAL',
660
+ 4252922144: 'IFCSTAIRFLIGHT',
661
+ 4278956645: 'IFCFLOWFITTING',
662
+ 4288193352: 'IFCACTUATOR',
663
+ 4292641817: 'IFCUNITARYEQUIPMENT',
664
+ 3009204131: 'IFCGRID'
665
+ };
666
+ var IfcTypesMap = {
667
+ 3821786052: 'IFCACTIONREQUEST',
668
+ 2296667514: 'IFCACTOR',
669
+ 3630933823: 'IFCACTORROLE',
670
+ 4288193352: 'IFCACTUATOR',
671
+ 2874132201: 'IFCACTUATORTYPE',
672
+ 618182010: 'IFCADDRESS',
673
+ 1635779807: 'IFCADVANCEDBREP',
674
+ 2603310189: 'IFCADVANCEDBREPWITHVOIDS',
675
+ 3406155212: 'IFCADVANCEDFACE',
676
+ 1634111441: 'IFCAIRTERMINAL',
677
+ 177149247: 'IFCAIRTERMINALBOX',
678
+ 1411407467: 'IFCAIRTERMINALBOXTYPE',
679
+ 3352864051: 'IFCAIRTERMINALTYPE',
680
+ 2056796094: 'IFCAIRTOAIRHEATRECOVERY',
681
+ 1871374353: 'IFCAIRTOAIRHEATRECOVERYTYPE',
682
+ 3087945054: 'IFCALARM',
683
+ 3001207471: 'IFCALARMTYPE',
684
+ 325726236: 'IFCALIGNMENT',
685
+ 749761778: 'IFCALIGNMENT2DHORIZONTAL',
686
+ 3199563722: 'IFCALIGNMENT2DHORIZONTALSEGMENT',
687
+ 2483840362: 'IFCALIGNMENT2DSEGMENT',
688
+ 3379348081: 'IFCALIGNMENT2DVERSEGCIRCULARARC',
689
+ 3239324667: 'IFCALIGNMENT2DVERSEGLINE',
690
+ 4263986512: 'IFCALIGNMENT2DVERSEGPARABOLICARC',
691
+ 53199957: 'IFCALIGNMENT2DVERTICAL',
692
+ 2029264950: 'IFCALIGNMENT2DVERTICALSEGMENT',
693
+ 3512275521: 'IFCALIGNMENTCURVE',
694
+ 1674181508: 'IFCANNOTATION',
695
+ 669184980: 'IFCANNOTATIONFILLAREA',
696
+ 639542469: 'IFCAPPLICATION',
697
+ 411424972: 'IFCAPPLIEDVALUE',
698
+ 130549933: 'IFCAPPROVAL',
699
+ 3869604511: 'IFCAPPROVALRELATIONSHIP',
700
+ 3798115385: 'IFCARBITRARYCLOSEDPROFILEDEF',
701
+ 1310608509: 'IFCARBITRARYOPENPROFILEDEF',
702
+ 2705031697: 'IFCARBITRARYPROFILEDEFWITHVOIDS',
703
+ 3460190687: 'IFCASSET',
704
+ 3207858831: 'IFCASYMMETRICISHAPEPROFILEDEF',
705
+ 277319702: 'IFCAUDIOVISUALAPPLIANCE',
706
+ 1532957894: 'IFCAUDIOVISUALAPPLIANCETYPE',
707
+ 4261334040: 'IFCAXIS1PLACEMENT',
708
+ 3125803723: 'IFCAXIS2PLACEMENT2D',
709
+ 2740243338: 'IFCAXIS2PLACEMENT3D',
710
+ 1967976161: 'IFCBSPLINECURVE',
711
+ 2461110595: 'IFCBSPLINECURVEWITHKNOTS',
712
+ 2887950389: 'IFCBSPLINESURFACE',
713
+ 167062518: 'IFCBSPLINESURFACEWITHKNOTS',
714
+ 753842376: 'IFCBEAM',
715
+ 2906023776: 'IFCBEAMSTANDARDCASE',
716
+ 819618141: 'IFCBEAMTYPE',
717
+ 4196446775: 'IFCBEARING',
718
+ 3649138523: 'IFCBEARINGTYPE',
719
+ 616511568: 'IFCBLOBTEXTURE',
720
+ 1334484129: 'IFCBLOCK',
721
+ 32344328: 'IFCBOILER',
722
+ 231477066: 'IFCBOILERTYPE',
723
+ 3649129432: 'IFCBOOLEANCLIPPINGRESULT',
724
+ 2736907675: 'IFCBOOLEANRESULT',
725
+ 4037036970: 'IFCBOUNDARYCONDITION',
726
+ 1136057603: 'IFCBOUNDARYCURVE',
727
+ 1560379544: 'IFCBOUNDARYEDGECONDITION',
728
+ 3367102660: 'IFCBOUNDARYFACECONDITION',
729
+ 1387855156: 'IFCBOUNDARYNODECONDITION',
730
+ 2069777674: 'IFCBOUNDARYNODECONDITIONWARPING',
731
+ 1260505505: 'IFCBOUNDEDCURVE',
732
+ 4182860854: 'IFCBOUNDEDSURFACE',
733
+ 2581212453: 'IFCBOUNDINGBOX',
734
+ 2713105998: 'IFCBOXEDHALFSPACE',
735
+ 644574406: 'IFCBRIDGE',
736
+ 963979645: 'IFCBRIDGEPART',
737
+ 4031249490: 'IFCBUILDING',
738
+ 3299480353: 'IFCBUILDINGELEMENT',
739
+ 2979338954: 'IFCBUILDINGELEMENTPART',
740
+ 39481116: 'IFCBUILDINGELEMENTPARTTYPE',
741
+ 1095909175: 'IFCBUILDINGELEMENTPROXY',
742
+ 1909888760: 'IFCBUILDINGELEMENTPROXYTYPE',
743
+ 1950629157: 'IFCBUILDINGELEMENTTYPE',
744
+ 3124254112: 'IFCBUILDINGSTOREY',
745
+ 1177604601: 'IFCBUILDINGSYSTEM',
746
+ 2938176219: 'IFCBURNER',
747
+ 2188180465: 'IFCBURNERTYPE',
748
+ 2898889636: 'IFCCSHAPEPROFILEDEF',
749
+ 635142910: 'IFCCABLECARRIERFITTING',
750
+ 395041908: 'IFCCABLECARRIERFITTINGTYPE',
751
+ 3758799889: 'IFCCABLECARRIERSEGMENT',
752
+ 3293546465: 'IFCCABLECARRIERSEGMENTTYPE',
753
+ 1051757585: 'IFCCABLEFITTING',
754
+ 2674252688: 'IFCCABLEFITTINGTYPE',
755
+ 4217484030: 'IFCCABLESEGMENT',
756
+ 1285652485: 'IFCCABLESEGMENTTYPE',
757
+ 3999819293: 'IFCCAISSONFOUNDATION',
758
+ 3203706013: 'IFCCAISSONFOUNDATIONTYPE',
759
+ 1123145078: 'IFCCARTESIANPOINT',
760
+ 574549367: 'IFCCARTESIANPOINTLIST',
761
+ 1675464909: 'IFCCARTESIANPOINTLIST2D',
762
+ 2059837836: 'IFCCARTESIANPOINTLIST3D',
763
+ 59481748: 'IFCCARTESIANTRANSFORMATIONOPERATOR',
764
+ 3749851601: 'IFCCARTESIANTRANSFORMATIONOPERATOR2D',
765
+ 3486308946: 'IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM',
766
+ 3331915920: 'IFCCARTESIANTRANSFORMATIONOPERATOR3D',
767
+ 1416205885: 'IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM',
768
+ 3150382593: 'IFCCENTERLINEPROFILEDEF',
769
+ 3902619387: 'IFCCHILLER',
770
+ 2951183804: 'IFCCHILLERTYPE',
771
+ 3296154744: 'IFCCHIMNEY',
772
+ 2197970202: 'IFCCHIMNEYTYPE',
773
+ 2611217952: 'IFCCIRCLE',
774
+ 2937912522: 'IFCCIRCLEHOLLOWPROFILEDEF',
775
+ 1383045692: 'IFCCIRCLEPROFILEDEF',
776
+ 1062206242: 'IFCCIRCULARARCSEGMENT2D',
777
+ 1677625105: 'IFCCIVILELEMENT',
778
+ 3893394355: 'IFCCIVILELEMENTTYPE',
779
+ 747523909: 'IFCCLASSIFICATION',
780
+ 647927063: 'IFCCLASSIFICATIONREFERENCE',
781
+ 2205249479: 'IFCCLOSEDSHELL',
782
+ 639361253: 'IFCCOIL',
783
+ 2301859152: 'IFCCOILTYPE',
784
+ 776857604: 'IFCCOLOURRGB',
785
+ 3285139300: 'IFCCOLOURRGBLIST',
786
+ 3264961684: 'IFCCOLOURSPECIFICATION',
787
+ 843113511: 'IFCCOLUMN',
788
+ 905975707: 'IFCCOLUMNSTANDARDCASE',
789
+ 300633059: 'IFCCOLUMNTYPE',
790
+ 3221913625: 'IFCCOMMUNICATIONSAPPLIANCE',
791
+ 400855858: 'IFCCOMMUNICATIONSAPPLIANCETYPE',
792
+ 2542286263: 'IFCCOMPLEXPROPERTY',
793
+ 3875453745: 'IFCCOMPLEXPROPERTYTEMPLATE',
794
+ 3732776249: 'IFCCOMPOSITECURVE',
795
+ 15328376: 'IFCCOMPOSITECURVEONSURFACE',
796
+ 2485617015: 'IFCCOMPOSITECURVESEGMENT',
797
+ 1485152156: 'IFCCOMPOSITEPROFILEDEF',
798
+ 3571504051: 'IFCCOMPRESSOR',
799
+ 3850581409: 'IFCCOMPRESSORTYPE',
800
+ 2272882330: 'IFCCONDENSER',
801
+ 2816379211: 'IFCCONDENSERTYPE',
802
+ 2510884976: 'IFCCONIC',
803
+ 370225590: 'IFCCONNECTEDFACESET',
804
+ 1981873012: 'IFCCONNECTIONCURVEGEOMETRY',
805
+ 2859738748: 'IFCCONNECTIONGEOMETRY',
806
+ 45288368: 'IFCCONNECTIONPOINTECCENTRICITY',
807
+ 2614616156: 'IFCCONNECTIONPOINTGEOMETRY',
808
+ 2732653382: 'IFCCONNECTIONSURFACEGEOMETRY',
809
+ 775493141: 'IFCCONNECTIONVOLUMEGEOMETRY',
810
+ 1959218052: 'IFCCONSTRAINT',
811
+ 3898045240: 'IFCCONSTRUCTIONEQUIPMENTRESOURCE',
812
+ 2185764099: 'IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE',
813
+ 1060000209: 'IFCCONSTRUCTIONMATERIALRESOURCE',
814
+ 4105962743: 'IFCCONSTRUCTIONMATERIALRESOURCETYPE',
815
+ 488727124: 'IFCCONSTRUCTIONPRODUCTRESOURCE',
816
+ 1525564444: 'IFCCONSTRUCTIONPRODUCTRESOURCETYPE',
817
+ 2559216714: 'IFCCONSTRUCTIONRESOURCE',
818
+ 2574617495: 'IFCCONSTRUCTIONRESOURCETYPE',
819
+ 3419103109: 'IFCCONTEXT',
820
+ 3050246964: 'IFCCONTEXTDEPENDENTUNIT',
821
+ 3293443760: 'IFCCONTROL',
822
+ 25142252: 'IFCCONTROLLER',
823
+ 578613899: 'IFCCONTROLLERTYPE',
824
+ 2889183280: 'IFCCONVERSIONBASEDUNIT',
825
+ 2713554722: 'IFCCONVERSIONBASEDUNITWITHOFFSET',
826
+ 4136498852: 'IFCCOOLEDBEAM',
827
+ 335055490: 'IFCCOOLEDBEAMTYPE',
828
+ 3640358203: 'IFCCOOLINGTOWER',
829
+ 2954562838: 'IFCCOOLINGTOWERTYPE',
830
+ 1785450214: 'IFCCOORDINATEOPERATION',
831
+ 1466758467: 'IFCCOORDINATEREFERENCESYSTEM',
832
+ 3895139033: 'IFCCOSTITEM',
833
+ 1419761937: 'IFCCOSTSCHEDULE',
834
+ 602808272: 'IFCCOSTVALUE',
835
+ 1973544240: 'IFCCOVERING',
836
+ 1916426348: 'IFCCOVERINGTYPE',
837
+ 3295246426: 'IFCCREWRESOURCE',
838
+ 1815067380: 'IFCCREWRESOURCETYPE',
839
+ 2506170314: 'IFCCSGPRIMITIVE3D',
840
+ 2147822146: 'IFCCSGSOLID',
841
+ 539742890: 'IFCCURRENCYRELATIONSHIP',
842
+ 3495092785: 'IFCCURTAINWALL',
843
+ 1457835157: 'IFCCURTAINWALLTYPE',
844
+ 2601014836: 'IFCCURVE',
845
+ 2827736869: 'IFCCURVEBOUNDEDPLANE',
846
+ 2629017746: 'IFCCURVEBOUNDEDSURFACE',
847
+ 1186437898: 'IFCCURVESEGMENT2D',
848
+ 3800577675: 'IFCCURVESTYLE',
849
+ 1105321065: 'IFCCURVESTYLEFONT',
850
+ 2367409068: 'IFCCURVESTYLEFONTANDSCALING',
851
+ 3510044353: 'IFCCURVESTYLEFONTPATTERN',
852
+ 1213902940: 'IFCCYLINDRICALSURFACE',
853
+ 4074379575: 'IFCDAMPER',
854
+ 3961806047: 'IFCDAMPERTYPE',
855
+ 3426335179: 'IFCDEEPFOUNDATION',
856
+ 1306400036: 'IFCDEEPFOUNDATIONTYPE',
857
+ 3632507154: 'IFCDERIVEDPROFILEDEF',
858
+ 1765591967: 'IFCDERIVEDUNIT',
859
+ 1045800335: 'IFCDERIVEDUNITELEMENT',
860
+ 2949456006: 'IFCDIMENSIONALEXPONENTS',
861
+ 32440307: 'IFCDIRECTION',
862
+ 1335981549: 'IFCDISCRETEACCESSORY',
863
+ 2635815018: 'IFCDISCRETEACCESSORYTYPE',
864
+ 1945343521: 'IFCDISTANCEEXPRESSION',
865
+ 1052013943: 'IFCDISTRIBUTIONCHAMBERELEMENT',
866
+ 1599208980: 'IFCDISTRIBUTIONCHAMBERELEMENTTYPE',
867
+ 562808652: 'IFCDISTRIBUTIONCIRCUIT',
868
+ 1062813311: 'IFCDISTRIBUTIONCONTROLELEMENT',
869
+ 2063403501: 'IFCDISTRIBUTIONCONTROLELEMENTTYPE',
870
+ 1945004755: 'IFCDISTRIBUTIONELEMENT',
871
+ 3256556792: 'IFCDISTRIBUTIONELEMENTTYPE',
872
+ 3040386961: 'IFCDISTRIBUTIONFLOWELEMENT',
873
+ 3849074793: 'IFCDISTRIBUTIONFLOWELEMENTTYPE',
874
+ 3041715199: 'IFCDISTRIBUTIONPORT',
875
+ 3205830791: 'IFCDISTRIBUTIONSYSTEM',
876
+ 1154170062: 'IFCDOCUMENTINFORMATION',
877
+ 770865208: 'IFCDOCUMENTINFORMATIONRELATIONSHIP',
878
+ 3732053477: 'IFCDOCUMENTREFERENCE',
879
+ 395920057: 'IFCDOOR',
880
+ 2963535650: 'IFCDOORLININGPROPERTIES',
881
+ 1714330368: 'IFCDOORPANELPROPERTIES',
882
+ 3242481149: 'IFCDOORSTANDARDCASE',
883
+ 526551008: 'IFCDOORSTYLE',
884
+ 2323601079: 'IFCDOORTYPE',
885
+ 445594917: 'IFCDRAUGHTINGPREDEFINEDCOLOUR',
886
+ 4006246654: 'IFCDRAUGHTINGPREDEFINEDCURVEFONT',
887
+ 342316401: 'IFCDUCTFITTING',
888
+ 869906466: 'IFCDUCTFITTINGTYPE',
889
+ 3518393246: 'IFCDUCTSEGMENT',
890
+ 3760055223: 'IFCDUCTSEGMENTTYPE',
891
+ 1360408905: 'IFCDUCTSILENCER',
892
+ 2030761528: 'IFCDUCTSILENCERTYPE',
893
+ 3900360178: 'IFCEDGE',
894
+ 476780140: 'IFCEDGECURVE',
895
+ 1472233963: 'IFCEDGELOOP',
896
+ 1904799276: 'IFCELECTRICAPPLIANCE',
897
+ 663422040: 'IFCELECTRICAPPLIANCETYPE',
898
+ 862014818: 'IFCELECTRICDISTRIBUTIONBOARD',
899
+ 2417008758: 'IFCELECTRICDISTRIBUTIONBOARDTYPE',
900
+ 3310460725: 'IFCELECTRICFLOWSTORAGEDEVICE',
901
+ 3277789161: 'IFCELECTRICFLOWSTORAGEDEVICETYPE',
902
+ 264262732: 'IFCELECTRICGENERATOR',
903
+ 1534661035: 'IFCELECTRICGENERATORTYPE',
904
+ 402227799: 'IFCELECTRICMOTOR',
905
+ 1217240411: 'IFCELECTRICMOTORTYPE',
906
+ 1003880860: 'IFCELECTRICTIMECONTROL',
907
+ 712377611: 'IFCELECTRICTIMECONTROLTYPE',
908
+ 1758889154: 'IFCELEMENT',
909
+ 4123344466: 'IFCELEMENTASSEMBLY',
910
+ 2397081782: 'IFCELEMENTASSEMBLYTYPE',
911
+ 1623761950: 'IFCELEMENTCOMPONENT',
912
+ 2590856083: 'IFCELEMENTCOMPONENTTYPE',
913
+ 1883228015: 'IFCELEMENTQUANTITY',
914
+ 339256511: 'IFCELEMENTTYPE',
915
+ 2777663545: 'IFCELEMENTARYSURFACE',
916
+ 1704287377: 'IFCELLIPSE',
917
+ 2835456948: 'IFCELLIPSEPROFILEDEF',
918
+ 1658829314: 'IFCENERGYCONVERSIONDEVICE',
919
+ 2107101300: 'IFCENERGYCONVERSIONDEVICETYPE',
920
+ 2814081492: 'IFCENGINE',
921
+ 132023988: 'IFCENGINETYPE',
922
+ 3747195512: 'IFCEVAPORATIVECOOLER',
923
+ 3174744832: 'IFCEVAPORATIVECOOLERTYPE',
924
+ 484807127: 'IFCEVAPORATOR',
925
+ 3390157468: 'IFCEVAPORATORTYPE',
926
+ 4148101412: 'IFCEVENT',
927
+ 211053100: 'IFCEVENTTIME',
928
+ 4024345920: 'IFCEVENTTYPE',
929
+ 297599258: 'IFCEXTENDEDPROPERTIES',
930
+ 4294318154: 'IFCEXTERNALINFORMATION',
931
+ 3200245327: 'IFCEXTERNALREFERENCE',
932
+ 1437805879: 'IFCEXTERNALREFERENCERELATIONSHIP',
933
+ 1209101575: 'IFCEXTERNALSPATIALELEMENT',
934
+ 2853485674: 'IFCEXTERNALSPATIALSTRUCTUREELEMENT',
935
+ 2242383968: 'IFCEXTERNALLYDEFINEDHATCHSTYLE',
936
+ 1040185647: 'IFCEXTERNALLYDEFINEDSURFACESTYLE',
937
+ 3548104201: 'IFCEXTERNALLYDEFINEDTEXTFONT',
938
+ 477187591: 'IFCEXTRUDEDAREASOLID',
939
+ 2804161546: 'IFCEXTRUDEDAREASOLIDTAPERED',
940
+ 2556980723: 'IFCFACE',
941
+ 2047409740: 'IFCFACEBASEDSURFACEMODEL',
942
+ 1809719519: 'IFCFACEBOUND',
943
+ 803316827: 'IFCFACEOUTERBOUND',
944
+ 3008276851: 'IFCFACESURFACE',
945
+ 807026263: 'IFCFACETEDBREP',
946
+ 3737207727: 'IFCFACETEDBREPWITHVOIDS',
947
+ 24185140: 'IFCFACILITY',
948
+ 1310830890: 'IFCFACILITYPART',
949
+ 4219587988: 'IFCFAILURECONNECTIONCONDITION',
950
+ 3415622556: 'IFCFAN',
951
+ 346874300: 'IFCFANTYPE',
952
+ 647756555: 'IFCFASTENER',
953
+ 2489546625: 'IFCFASTENERTYPE',
954
+ 2827207264: 'IFCFEATUREELEMENT',
955
+ 2143335405: 'IFCFEATUREELEMENTADDITION',
956
+ 1287392070: 'IFCFEATUREELEMENTSUBTRACTION',
957
+ 738692330: 'IFCFILLAREASTYLE',
958
+ 374418227: 'IFCFILLAREASTYLEHATCHING',
959
+ 315944413: 'IFCFILLAREASTYLETILES',
960
+ 819412036: 'IFCFILTER',
961
+ 1810631287: 'IFCFILTERTYPE',
962
+ 1426591983: 'IFCFIRESUPPRESSIONTERMINAL',
963
+ 4222183408: 'IFCFIRESUPPRESSIONTERMINALTYPE',
964
+ 2652556860: 'IFCFIXEDREFERENCESWEPTAREASOLID',
965
+ 2058353004: 'IFCFLOWCONTROLLER',
966
+ 3907093117: 'IFCFLOWCONTROLLERTYPE',
967
+ 4278956645: 'IFCFLOWFITTING',
968
+ 3198132628: 'IFCFLOWFITTINGTYPE',
969
+ 182646315: 'IFCFLOWINSTRUMENT',
970
+ 4037862832: 'IFCFLOWINSTRUMENTTYPE',
971
+ 2188021234: 'IFCFLOWMETER',
972
+ 3815607619: 'IFCFLOWMETERTYPE',
973
+ 3132237377: 'IFCFLOWMOVINGDEVICE',
974
+ 1482959167: 'IFCFLOWMOVINGDEVICETYPE',
975
+ 987401354: 'IFCFLOWSEGMENT',
976
+ 1834744321: 'IFCFLOWSEGMENTTYPE',
977
+ 707683696: 'IFCFLOWSTORAGEDEVICE',
978
+ 1339347760: 'IFCFLOWSTORAGEDEVICETYPE',
979
+ 2223149337: 'IFCFLOWTERMINAL',
980
+ 2297155007: 'IFCFLOWTERMINALTYPE',
981
+ 3508470533: 'IFCFLOWTREATMENTDEVICE',
982
+ 3009222698: 'IFCFLOWTREATMENTDEVICETYPE',
983
+ 900683007: 'IFCFOOTING',
984
+ 1893162501: 'IFCFOOTINGTYPE',
985
+ 263784265: 'IFCFURNISHINGELEMENT',
986
+ 4238390223: 'IFCFURNISHINGELEMENTTYPE',
987
+ 1509553395: 'IFCFURNITURE',
988
+ 1268542332: 'IFCFURNITURETYPE',
989
+ 3493046030: 'IFCGEOGRAPHICELEMENT',
990
+ 4095422895: 'IFCGEOGRAPHICELEMENTTYPE',
991
+ 987898635: 'IFCGEOMETRICCURVESET',
992
+ 3448662350: 'IFCGEOMETRICREPRESENTATIONCONTEXT',
993
+ 2453401579: 'IFCGEOMETRICREPRESENTATIONITEM',
994
+ 4142052618: 'IFCGEOMETRICREPRESENTATIONSUBCONTEXT',
995
+ 3590301190: 'IFCGEOMETRICSET',
996
+ 3009204131: 'IFCGRID',
997
+ 852622518: 'IFCGRIDAXIS',
998
+ 178086475: 'IFCGRIDPLACEMENT',
999
+ 2706460486: 'IFCGROUP',
1000
+ 812098782: 'IFCHALFSPACESOLID',
1001
+ 3319311131: 'IFCHEATEXCHANGER',
1002
+ 1251058090: 'IFCHEATEXCHANGERTYPE',
1003
+ 2068733104: 'IFCHUMIDIFIER',
1004
+ 1806887404: 'IFCHUMIDIFIERTYPE',
1005
+ 1484403080: 'IFCISHAPEPROFILEDEF',
1006
+ 3905492369: 'IFCIMAGETEXTURE',
1007
+ 3570813810: 'IFCINDEXEDCOLOURMAP',
1008
+ 2571569899: 'IFCINDEXEDPOLYCURVE',
1009
+ 178912537: 'IFCINDEXEDPOLYGONALFACE',
1010
+ 2294589976: 'IFCINDEXEDPOLYGONALFACEWITHVOIDS',
1011
+ 1437953363: 'IFCINDEXEDTEXTUREMAP',
1012
+ 2133299955: 'IFCINDEXEDTRIANGLETEXTUREMAP',
1013
+ 4175244083: 'IFCINTERCEPTOR',
1014
+ 3946677679: 'IFCINTERCEPTORTYPE',
1015
+ 3113134337: 'IFCINTERSECTIONCURVE',
1016
+ 2391368822: 'IFCINVENTORY',
1017
+ 3741457305: 'IFCIRREGULARTIMESERIES',
1018
+ 3020489413: 'IFCIRREGULARTIMESERIESVALUE',
1019
+ 2176052936: 'IFCJUNCTIONBOX',
1020
+ 4288270099: 'IFCJUNCTIONBOXTYPE',
1021
+ 572779678: 'IFCLSHAPEPROFILEDEF',
1022
+ 3827777499: 'IFCLABORRESOURCE',
1023
+ 428585644: 'IFCLABORRESOURCETYPE',
1024
+ 1585845231: 'IFCLAGTIME',
1025
+ 76236018: 'IFCLAMP',
1026
+ 1051575348: 'IFCLAMPTYPE',
1027
+ 2655187982: 'IFCLIBRARYINFORMATION',
1028
+ 3452421091: 'IFCLIBRARYREFERENCE',
1029
+ 4162380809: 'IFCLIGHTDISTRIBUTIONDATA',
1030
+ 629592764: 'IFCLIGHTFIXTURE',
1031
+ 1161773419: 'IFCLIGHTFIXTURETYPE',
1032
+ 1566485204: 'IFCLIGHTINTENSITYDISTRIBUTION',
1033
+ 1402838566: 'IFCLIGHTSOURCE',
1034
+ 125510826: 'IFCLIGHTSOURCEAMBIENT',
1035
+ 2604431987: 'IFCLIGHTSOURCEDIRECTIONAL',
1036
+ 4266656042: 'IFCLIGHTSOURCEGONIOMETRIC',
1037
+ 1520743889: 'IFCLIGHTSOURCEPOSITIONAL',
1038
+ 3422422726: 'IFCLIGHTSOURCESPOT',
1039
+ 1281925730: 'IFCLINE',
1040
+ 3092502836: 'IFCLINESEGMENT2D',
1041
+ 388784114: 'IFCLINEARPLACEMENT',
1042
+ 1154579445: 'IFCLINEARPOSITIONINGELEMENT',
1043
+ 2624227202: 'IFCLOCALPLACEMENT',
1044
+ 1008929658: 'IFCLOOP',
1045
+ 1425443689: 'IFCMANIFOLDSOLIDBREP',
1046
+ 3057273783: 'IFCMAPCONVERSION',
1047
+ 2347385850: 'IFCMAPPEDITEM',
1048
+ 1838606355: 'IFCMATERIAL',
1049
+ 1847130766: 'IFCMATERIALCLASSIFICATIONRELATIONSHIP',
1050
+ 3708119000: 'IFCMATERIALCONSTITUENT',
1051
+ 2852063980: 'IFCMATERIALCONSTITUENTSET',
1052
+ 760658860: 'IFCMATERIALDEFINITION',
1053
+ 2022407955: 'IFCMATERIALDEFINITIONREPRESENTATION',
1054
+ 248100487: 'IFCMATERIALLAYER',
1055
+ 3303938423: 'IFCMATERIALLAYERSET',
1056
+ 1303795690: 'IFCMATERIALLAYERSETUSAGE',
1057
+ 1847252529: 'IFCMATERIALLAYERWITHOFFSETS',
1058
+ 2199411900: 'IFCMATERIALLIST',
1059
+ 2235152071: 'IFCMATERIALPROFILE',
1060
+ 164193824: 'IFCMATERIALPROFILESET',
1061
+ 3079605661: 'IFCMATERIALPROFILESETUSAGE',
1062
+ 3404854881: 'IFCMATERIALPROFILESETUSAGETAPERING',
1063
+ 552965576: 'IFCMATERIALPROFILEWITHOFFSETS',
1064
+ 3265635763: 'IFCMATERIALPROPERTIES',
1065
+ 853536259: 'IFCMATERIALRELATIONSHIP',
1066
+ 1507914824: 'IFCMATERIALUSAGEDEFINITION',
1067
+ 2597039031: 'IFCMEASUREWITHUNIT',
1068
+ 377706215: 'IFCMECHANICALFASTENER',
1069
+ 2108223431: 'IFCMECHANICALFASTENERTYPE',
1070
+ 1437502449: 'IFCMEDICALDEVICE',
1071
+ 1114901282: 'IFCMEDICALDEVICETYPE',
1072
+ 1073191201: 'IFCMEMBER',
1073
+ 1911478936: 'IFCMEMBERSTANDARDCASE',
1074
+ 3181161470: 'IFCMEMBERTYPE',
1075
+ 3368373690: 'IFCMETRIC',
1076
+ 2998442950: 'IFCMIRROREDPROFILEDEF',
1077
+ 2706619895: 'IFCMONETARYUNIT',
1078
+ 2474470126: 'IFCMOTORCONNECTION',
1079
+ 977012517: 'IFCMOTORCONNECTIONTYPE',
1080
+ 1918398963: 'IFCNAMEDUNIT',
1081
+ 3888040117: 'IFCOBJECT',
1082
+ 219451334: 'IFCOBJECTDEFINITION',
1083
+ 3701648758: 'IFCOBJECTPLACEMENT',
1084
+ 2251480897: 'IFCOBJECTIVE',
1085
+ 4143007308: 'IFCOCCUPANT',
1086
+ 590820931: 'IFCOFFSETCURVE',
1087
+ 3388369263: 'IFCOFFSETCURVE2D',
1088
+ 3505215534: 'IFCOFFSETCURVE3D',
1089
+ 2485787929: 'IFCOFFSETCURVEBYDISTANCES',
1090
+ 2665983363: 'IFCOPENSHELL',
1091
+ 3588315303: 'IFCOPENINGELEMENT',
1092
+ 3079942009: 'IFCOPENINGSTANDARDCASE',
1093
+ 4251960020: 'IFCORGANIZATION',
1094
+ 1411181986: 'IFCORGANIZATIONRELATIONSHIP',
1095
+ 643959842: 'IFCORIENTATIONEXPRESSION',
1096
+ 1029017970: 'IFCORIENTEDEDGE',
1097
+ 144952367: 'IFCOUTERBOUNDARYCURVE',
1098
+ 3694346114: 'IFCOUTLET',
1099
+ 2837617999: 'IFCOUTLETTYPE',
1100
+ 1207048766: 'IFCOWNERHISTORY',
1101
+ 2529465313: 'IFCPARAMETERIZEDPROFILEDEF',
1102
+ 2519244187: 'IFCPATH',
1103
+ 1682466193: 'IFCPCURVE',
1104
+ 2382730787: 'IFCPERFORMANCEHISTORY',
1105
+ 3566463478: 'IFCPERMEABLECOVERINGPROPERTIES',
1106
+ 3327091369: 'IFCPERMIT',
1107
+ 2077209135: 'IFCPERSON',
1108
+ 101040310: 'IFCPERSONANDORGANIZATION',
1109
+ 3021840470: 'IFCPHYSICALCOMPLEXQUANTITY',
1110
+ 2483315170: 'IFCPHYSICALQUANTITY',
1111
+ 2226359599: 'IFCPHYSICALSIMPLEQUANTITY',
1112
+ 1687234759: 'IFCPILE',
1113
+ 1158309216: 'IFCPILETYPE',
1114
+ 310824031: 'IFCPIPEFITTING',
1115
+ 804291784: 'IFCPIPEFITTINGTYPE',
1116
+ 3612865200: 'IFCPIPESEGMENT',
1117
+ 4231323485: 'IFCPIPESEGMENTTYPE',
1118
+ 597895409: 'IFCPIXELTEXTURE',
1119
+ 2004835150: 'IFCPLACEMENT',
1120
+ 603570806: 'IFCPLANARBOX',
1121
+ 1663979128: 'IFCPLANAREXTENT',
1122
+ 220341763: 'IFCPLANE',
1123
+ 3171933400: 'IFCPLATE',
1124
+ 1156407060: 'IFCPLATESTANDARDCASE',
1125
+ 4017108033: 'IFCPLATETYPE',
1126
+ 2067069095: 'IFCPOINT',
1127
+ 4022376103: 'IFCPOINTONCURVE',
1128
+ 1423911732: 'IFCPOINTONSURFACE',
1129
+ 2924175390: 'IFCPOLYLOOP',
1130
+ 2775532180: 'IFCPOLYGONALBOUNDEDHALFSPACE',
1131
+ 2839578677: 'IFCPOLYGONALFACESET',
1132
+ 3724593414: 'IFCPOLYLINE',
1133
+ 3740093272: 'IFCPORT',
1134
+ 1946335990: 'IFCPOSITIONINGELEMENT',
1135
+ 3355820592: 'IFCPOSTALADDRESS',
1136
+ 759155922: 'IFCPREDEFINEDCOLOUR',
1137
+ 2559016684: 'IFCPREDEFINEDCURVEFONT',
1138
+ 3727388367: 'IFCPREDEFINEDITEM',
1139
+ 3778827333: 'IFCPREDEFINEDPROPERTIES',
1140
+ 3967405729: 'IFCPREDEFINEDPROPERTYSET',
1141
+ 1775413392: 'IFCPREDEFINEDTEXTFONT',
1142
+ 677532197: 'IFCPRESENTATIONITEM',
1143
+ 2022622350: 'IFCPRESENTATIONLAYERASSIGNMENT',
1144
+ 1304840413: 'IFCPRESENTATIONLAYERWITHSTYLE',
1145
+ 3119450353: 'IFCPRESENTATIONSTYLE',
1146
+ 2417041796: 'IFCPRESENTATIONSTYLEASSIGNMENT',
1147
+ 2744685151: 'IFCPROCEDURE',
1148
+ 569719735: 'IFCPROCEDURETYPE',
1149
+ 2945172077: 'IFCPROCESS',
1150
+ 4208778838: 'IFCPRODUCT',
1151
+ 673634403: 'IFCPRODUCTDEFINITIONSHAPE',
1152
+ 2095639259: 'IFCPRODUCTREPRESENTATION',
1153
+ 3958567839: 'IFCPROFILEDEF',
1154
+ 2802850158: 'IFCPROFILEPROPERTIES',
1155
+ 103090709: 'IFCPROJECT',
1156
+ 653396225: 'IFCPROJECTLIBRARY',
1157
+ 2904328755: 'IFCPROJECTORDER',
1158
+ 3843373140: 'IFCPROJECTEDCRS',
1159
+ 3651124850: 'IFCPROJECTIONELEMENT',
1160
+ 2598011224: 'IFCPROPERTY',
1161
+ 986844984: 'IFCPROPERTYABSTRACTION',
1162
+ 871118103: 'IFCPROPERTYBOUNDEDVALUE',
1163
+ 1680319473: 'IFCPROPERTYDEFINITION',
1164
+ 148025276: 'IFCPROPERTYDEPENDENCYRELATIONSHIP',
1165
+ 4166981789: 'IFCPROPERTYENUMERATEDVALUE',
1166
+ 3710013099: 'IFCPROPERTYENUMERATION',
1167
+ 2752243245: 'IFCPROPERTYLISTVALUE',
1168
+ 941946838: 'IFCPROPERTYREFERENCEVALUE',
1169
+ 1451395588: 'IFCPROPERTYSET',
1170
+ 3357820518: 'IFCPROPERTYSETDEFINITION',
1171
+ 492091185: 'IFCPROPERTYSETTEMPLATE',
1172
+ 3650150729: 'IFCPROPERTYSINGLEVALUE',
1173
+ 110355661: 'IFCPROPERTYTABLEVALUE',
1174
+ 3521284610: 'IFCPROPERTYTEMPLATE',
1175
+ 1482703590: 'IFCPROPERTYTEMPLATEDEFINITION',
1176
+ 738039164: 'IFCPROTECTIVEDEVICE',
1177
+ 2295281155: 'IFCPROTECTIVEDEVICETRIPPINGUNIT',
1178
+ 655969474: 'IFCPROTECTIVEDEVICETRIPPINGUNITTYPE',
1179
+ 1842657554: 'IFCPROTECTIVEDEVICETYPE',
1180
+ 3219374653: 'IFCPROXY',
1181
+ 90941305: 'IFCPUMP',
1182
+ 2250791053: 'IFCPUMPTYPE',
1183
+ 2044713172: 'IFCQUANTITYAREA',
1184
+ 2093928680: 'IFCQUANTITYCOUNT',
1185
+ 931644368: 'IFCQUANTITYLENGTH',
1186
+ 2090586900: 'IFCQUANTITYSET',
1187
+ 3252649465: 'IFCQUANTITYTIME',
1188
+ 2405470396: 'IFCQUANTITYVOLUME',
1189
+ 825690147: 'IFCQUANTITYWEIGHT',
1190
+ 2262370178: 'IFCRAILING',
1191
+ 2893384427: 'IFCRAILINGTYPE',
1192
+ 3024970846: 'IFCRAMP',
1193
+ 3283111854: 'IFCRAMPFLIGHT',
1194
+ 2324767716: 'IFCRAMPFLIGHTTYPE',
1195
+ 1469900589: 'IFCRAMPTYPE',
1196
+ 1232101972: 'IFCRATIONALBSPLINECURVEWITHKNOTS',
1197
+ 683857671: 'IFCRATIONALBSPLINESURFACEWITHKNOTS',
1198
+ 2770003689: 'IFCRECTANGLEHOLLOWPROFILEDEF',
1199
+ 3615266464: 'IFCRECTANGLEPROFILEDEF',
1200
+ 2798486643: 'IFCRECTANGULARPYRAMID',
1201
+ 3454111270: 'IFCRECTANGULARTRIMMEDSURFACE',
1202
+ 3915482550: 'IFCRECURRENCEPATTERN',
1203
+ 2433181523: 'IFCREFERENCE',
1204
+ 4021432810: 'IFCREFERENT',
1205
+ 3413951693: 'IFCREGULARTIMESERIES',
1206
+ 1580146022: 'IFCREINFORCEMENTBARPROPERTIES',
1207
+ 3765753017: 'IFCREINFORCEMENTDEFINITIONPROPERTIES',
1208
+ 979691226: 'IFCREINFORCINGBAR',
1209
+ 2572171363: 'IFCREINFORCINGBARTYPE',
1210
+ 3027567501: 'IFCREINFORCINGELEMENT',
1211
+ 964333572: 'IFCREINFORCINGELEMENTTYPE',
1212
+ 2320036040: 'IFCREINFORCINGMESH',
1213
+ 2310774935: 'IFCREINFORCINGMESHTYPE',
1214
+ 160246688: 'IFCRELAGGREGATES',
1215
+ 3939117080: 'IFCRELASSIGNS',
1216
+ 1683148259: 'IFCRELASSIGNSTOACTOR',
1217
+ 2495723537: 'IFCRELASSIGNSTOCONTROL',
1218
+ 1307041759: 'IFCRELASSIGNSTOGROUP',
1219
+ 1027710054: 'IFCRELASSIGNSTOGROUPBYFACTOR',
1220
+ 4278684876: 'IFCRELASSIGNSTOPROCESS',
1221
+ 2857406711: 'IFCRELASSIGNSTOPRODUCT',
1222
+ 205026976: 'IFCRELASSIGNSTORESOURCE',
1223
+ 1865459582: 'IFCRELASSOCIATES',
1224
+ 4095574036: 'IFCRELASSOCIATESAPPROVAL',
1225
+ 919958153: 'IFCRELASSOCIATESCLASSIFICATION',
1226
+ 2728634034: 'IFCRELASSOCIATESCONSTRAINT',
1227
+ 982818633: 'IFCRELASSOCIATESDOCUMENT',
1228
+ 3840914261: 'IFCRELASSOCIATESLIBRARY',
1229
+ 2655215786: 'IFCRELASSOCIATESMATERIAL',
1230
+ 826625072: 'IFCRELCONNECTS',
1231
+ 1204542856: 'IFCRELCONNECTSELEMENTS',
1232
+ 3945020480: 'IFCRELCONNECTSPATHELEMENTS',
1233
+ 4201705270: 'IFCRELCONNECTSPORTTOELEMENT',
1234
+ 3190031847: 'IFCRELCONNECTSPORTS',
1235
+ 2127690289: 'IFCRELCONNECTSSTRUCTURALACTIVITY',
1236
+ 1638771189: 'IFCRELCONNECTSSTRUCTURALMEMBER',
1237
+ 504942748: 'IFCRELCONNECTSWITHECCENTRICITY',
1238
+ 3678494232: 'IFCRELCONNECTSWITHREALIZINGELEMENTS',
1239
+ 3242617779: 'IFCRELCONTAINEDINSPATIALSTRUCTURE',
1240
+ 886880790: 'IFCRELCOVERSBLDGELEMENTS',
1241
+ 2802773753: 'IFCRELCOVERSSPACES',
1242
+ 2565941209: 'IFCRELDECLARES',
1243
+ 2551354335: 'IFCRELDECOMPOSES',
1244
+ 693640335: 'IFCRELDEFINES',
1245
+ 1462361463: 'IFCRELDEFINESBYOBJECT',
1246
+ 4186316022: 'IFCRELDEFINESBYPROPERTIES',
1247
+ 307848117: 'IFCRELDEFINESBYTEMPLATE',
1248
+ 781010003: 'IFCRELDEFINESBYTYPE',
1249
+ 3940055652: 'IFCRELFILLSELEMENT',
1250
+ 279856033: 'IFCRELFLOWCONTROLELEMENTS',
1251
+ 427948657: 'IFCRELINTERFERESELEMENTS',
1252
+ 3268803585: 'IFCRELNESTS',
1253
+ 1441486842: 'IFCRELPOSITIONS',
1254
+ 750771296: 'IFCRELPROJECTSELEMENT',
1255
+ 1245217292: 'IFCRELREFERENCEDINSPATIALSTRUCTURE',
1256
+ 4122056220: 'IFCRELSEQUENCE',
1257
+ 366585022: 'IFCRELSERVICESBUILDINGS',
1258
+ 3451746338: 'IFCRELSPACEBOUNDARY',
1259
+ 3523091289: 'IFCRELSPACEBOUNDARY1STLEVEL',
1260
+ 1521410863: 'IFCRELSPACEBOUNDARY2NDLEVEL',
1261
+ 1401173127: 'IFCRELVOIDSELEMENT',
1262
+ 478536968: 'IFCRELATIONSHIP',
1263
+ 816062949: 'IFCREPARAMETRISEDCOMPOSITECURVESEGMENT',
1264
+ 1076942058: 'IFCREPRESENTATION',
1265
+ 3377609919: 'IFCREPRESENTATIONCONTEXT',
1266
+ 3008791417: 'IFCREPRESENTATIONITEM',
1267
+ 1660063152: 'IFCREPRESENTATIONMAP',
1268
+ 2914609552: 'IFCRESOURCE',
1269
+ 2943643501: 'IFCRESOURCEAPPROVALRELATIONSHIP',
1270
+ 1608871552: 'IFCRESOURCECONSTRAINTRELATIONSHIP',
1271
+ 2439245199: 'IFCRESOURCELEVELRELATIONSHIP',
1272
+ 1042787934: 'IFCRESOURCETIME',
1273
+ 1856042241: 'IFCREVOLVEDAREASOLID',
1274
+ 3243963512: 'IFCREVOLVEDAREASOLIDTAPERED',
1275
+ 4158566097: 'IFCRIGHTCIRCULARCONE',
1276
+ 3626867408: 'IFCRIGHTCIRCULARCYLINDER',
1277
+ 2016517767: 'IFCROOF',
1278
+ 2781568857: 'IFCROOFTYPE',
1279
+ 2341007311: 'IFCROOT',
1280
+ 2778083089: 'IFCROUNDEDRECTANGLEPROFILEDEF',
1281
+ 448429030: 'IFCSIUNIT',
1282
+ 3053780830: 'IFCSANITARYTERMINAL',
1283
+ 1768891740: 'IFCSANITARYTERMINALTYPE',
1284
+ 1054537805: 'IFCSCHEDULINGTIME',
1285
+ 2157484638: 'IFCSEAMCURVE',
1286
+ 2042790032: 'IFCSECTIONPROPERTIES',
1287
+ 4165799628: 'IFCSECTIONREINFORCEMENTPROPERTIES',
1288
+ 1862484736: 'IFCSECTIONEDSOLID',
1289
+ 1290935644: 'IFCSECTIONEDSOLIDHORIZONTAL',
1290
+ 1509187699: 'IFCSECTIONEDSPINE',
1291
+ 4086658281: 'IFCSENSOR',
1292
+ 1783015770: 'IFCSENSORTYPE',
1293
+ 1329646415: 'IFCSHADINGDEVICE',
1294
+ 4074543187: 'IFCSHADINGDEVICETYPE',
1295
+ 867548509: 'IFCSHAPEASPECT',
1296
+ 3982875396: 'IFCSHAPEMODEL',
1297
+ 4240577450: 'IFCSHAPEREPRESENTATION',
1298
+ 4124623270: 'IFCSHELLBASEDSURFACEMODEL',
1299
+ 3692461612: 'IFCSIMPLEPROPERTY',
1300
+ 3663146110: 'IFCSIMPLEPROPERTYTEMPLATE',
1301
+ 4097777520: 'IFCSITE',
1302
+ 1529196076: 'IFCSLAB',
1303
+ 3127900445: 'IFCSLABELEMENTEDCASE',
1304
+ 3027962421: 'IFCSLABSTANDARDCASE',
1305
+ 2533589738: 'IFCSLABTYPE',
1306
+ 2609359061: 'IFCSLIPPAGECONNECTIONCONDITION',
1307
+ 3420628829: 'IFCSOLARDEVICE',
1308
+ 1072016465: 'IFCSOLARDEVICETYPE',
1309
+ 723233188: 'IFCSOLIDMODEL',
1310
+ 3856911033: 'IFCSPACE',
1311
+ 1999602285: 'IFCSPACEHEATER',
1312
+ 1305183839: 'IFCSPACEHEATERTYPE',
1313
+ 3812236995: 'IFCSPACETYPE',
1314
+ 1412071761: 'IFCSPATIALELEMENT',
1315
+ 710998568: 'IFCSPATIALELEMENTTYPE',
1316
+ 2706606064: 'IFCSPATIALSTRUCTUREELEMENT',
1317
+ 3893378262: 'IFCSPATIALSTRUCTUREELEMENTTYPE',
1318
+ 463610769: 'IFCSPATIALZONE',
1319
+ 2481509218: 'IFCSPATIALZONETYPE',
1320
+ 451544542: 'IFCSPHERE',
1321
+ 4015995234: 'IFCSPHERICALSURFACE',
1322
+ 1404847402: 'IFCSTACKTERMINAL',
1323
+ 3112655638: 'IFCSTACKTERMINALTYPE',
1324
+ 331165859: 'IFCSTAIR',
1325
+ 4252922144: 'IFCSTAIRFLIGHT',
1326
+ 1039846685: 'IFCSTAIRFLIGHTTYPE',
1327
+ 338393293: 'IFCSTAIRTYPE',
1328
+ 682877961: 'IFCSTRUCTURALACTION',
1329
+ 3544373492: 'IFCSTRUCTURALACTIVITY',
1330
+ 2515109513: 'IFCSTRUCTURALANALYSISMODEL',
1331
+ 1179482911: 'IFCSTRUCTURALCONNECTION',
1332
+ 2273995522: 'IFCSTRUCTURALCONNECTIONCONDITION',
1333
+ 1004757350: 'IFCSTRUCTURALCURVEACTION',
1334
+ 4243806635: 'IFCSTRUCTURALCURVECONNECTION',
1335
+ 214636428: 'IFCSTRUCTURALCURVEMEMBER',
1336
+ 2445595289: 'IFCSTRUCTURALCURVEMEMBERVARYING',
1337
+ 2757150158: 'IFCSTRUCTURALCURVEREACTION',
1338
+ 3136571912: 'IFCSTRUCTURALITEM',
1339
+ 1807405624: 'IFCSTRUCTURALLINEARACTION',
1340
+ 2162789131: 'IFCSTRUCTURALLOAD',
1341
+ 385403989: 'IFCSTRUCTURALLOADCASE',
1342
+ 3478079324: 'IFCSTRUCTURALLOADCONFIGURATION',
1343
+ 1252848954: 'IFCSTRUCTURALLOADGROUP',
1344
+ 1595516126: 'IFCSTRUCTURALLOADLINEARFORCE',
1345
+ 609421318: 'IFCSTRUCTURALLOADORRESULT',
1346
+ 2668620305: 'IFCSTRUCTURALLOADPLANARFORCE',
1347
+ 2473145415: 'IFCSTRUCTURALLOADSINGLEDISPLACEMENT',
1348
+ 1973038258: 'IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION',
1349
+ 1597423693: 'IFCSTRUCTURALLOADSINGLEFORCE',
1350
+ 1190533807: 'IFCSTRUCTURALLOADSINGLEFORCEWARPING',
1351
+ 2525727697: 'IFCSTRUCTURALLOADSTATIC',
1352
+ 3408363356: 'IFCSTRUCTURALLOADTEMPERATURE',
1353
+ 530289379: 'IFCSTRUCTURALMEMBER',
1354
+ 1621171031: 'IFCSTRUCTURALPLANARACTION',
1355
+ 2082059205: 'IFCSTRUCTURALPOINTACTION',
1356
+ 734778138: 'IFCSTRUCTURALPOINTCONNECTION',
1357
+ 1235345126: 'IFCSTRUCTURALPOINTREACTION',
1358
+ 3689010777: 'IFCSTRUCTURALREACTION',
1359
+ 2986769608: 'IFCSTRUCTURALRESULTGROUP',
1360
+ 3657597509: 'IFCSTRUCTURALSURFACEACTION',
1361
+ 1975003073: 'IFCSTRUCTURALSURFACECONNECTION',
1362
+ 3979015343: 'IFCSTRUCTURALSURFACEMEMBER',
1363
+ 2218152070: 'IFCSTRUCTURALSURFACEMEMBERVARYING',
1364
+ 603775116: 'IFCSTRUCTURALSURFACEREACTION',
1365
+ 2830218821: 'IFCSTYLEMODEL',
1366
+ 3958052878: 'IFCSTYLEDITEM',
1367
+ 3049322572: 'IFCSTYLEDREPRESENTATION',
1368
+ 148013059: 'IFCSUBCONTRACTRESOURCE',
1369
+ 4095615324: 'IFCSUBCONTRACTRESOURCETYPE',
1370
+ 2233826070: 'IFCSUBEDGE',
1371
+ 2513912981: 'IFCSURFACE',
1372
+ 699246055: 'IFCSURFACECURVE',
1373
+ 2028607225: 'IFCSURFACECURVESWEPTAREASOLID',
1374
+ 3101698114: 'IFCSURFACEFEATURE',
1375
+ 2809605785: 'IFCSURFACEOFLINEAREXTRUSION',
1376
+ 4124788165: 'IFCSURFACEOFREVOLUTION',
1377
+ 2934153892: 'IFCSURFACEREINFORCEMENTAREA',
1378
+ 1300840506: 'IFCSURFACESTYLE',
1379
+ 3303107099: 'IFCSURFACESTYLELIGHTING',
1380
+ 1607154358: 'IFCSURFACESTYLEREFRACTION',
1381
+ 1878645084: 'IFCSURFACESTYLERENDERING',
1382
+ 846575682: 'IFCSURFACESTYLESHADING',
1383
+ 1351298697: 'IFCSURFACESTYLEWITHTEXTURES',
1384
+ 626085974: 'IFCSURFACETEXTURE',
1385
+ 2247615214: 'IFCSWEPTAREASOLID',
1386
+ 1260650574: 'IFCSWEPTDISKSOLID',
1387
+ 1096409881: 'IFCSWEPTDISKSOLIDPOLYGONAL',
1388
+ 230924584: 'IFCSWEPTSURFACE',
1389
+ 1162798199: 'IFCSWITCHINGDEVICE',
1390
+ 2315554128: 'IFCSWITCHINGDEVICETYPE',
1391
+ 2254336722: 'IFCSYSTEM',
1392
+ 413509423: 'IFCSYSTEMFURNITUREELEMENT',
1393
+ 1580310250: 'IFCSYSTEMFURNITUREELEMENTTYPE',
1394
+ 3071757647: 'IFCTSHAPEPROFILEDEF',
1395
+ 985171141: 'IFCTABLE',
1396
+ 2043862942: 'IFCTABLECOLUMN',
1397
+ 531007025: 'IFCTABLEROW',
1398
+ 812556717: 'IFCTANK',
1399
+ 5716631: 'IFCTANKTYPE',
1400
+ 3473067441: 'IFCTASK',
1401
+ 1549132990: 'IFCTASKTIME',
1402
+ 2771591690: 'IFCTASKTIMERECURRING',
1403
+ 3206491090: 'IFCTASKTYPE',
1404
+ 912023232: 'IFCTELECOMADDRESS',
1405
+ 3824725483: 'IFCTENDON',
1406
+ 2347447852: 'IFCTENDONANCHOR',
1407
+ 3081323446: 'IFCTENDONANCHORTYPE',
1408
+ 3663046924: 'IFCTENDONCONDUIT',
1409
+ 2281632017: 'IFCTENDONCONDUITTYPE',
1410
+ 2415094496: 'IFCTENDONTYPE',
1411
+ 2387106220: 'IFCTESSELLATEDFACESET',
1412
+ 901063453: 'IFCTESSELLATEDITEM',
1413
+ 4282788508: 'IFCTEXTLITERAL',
1414
+ 3124975700: 'IFCTEXTLITERALWITHEXTENT',
1415
+ 1447204868: 'IFCTEXTSTYLE',
1416
+ 1983826977: 'IFCTEXTSTYLEFONTMODEL',
1417
+ 2636378356: 'IFCTEXTSTYLEFORDEFINEDFONT',
1418
+ 1640371178: 'IFCTEXTSTYLETEXTMODEL',
1419
+ 280115917: 'IFCTEXTURECOORDINATE',
1420
+ 1742049831: 'IFCTEXTURECOORDINATEGENERATOR',
1421
+ 2552916305: 'IFCTEXTUREMAP',
1422
+ 1210645708: 'IFCTEXTUREVERTEX',
1423
+ 3611470254: 'IFCTEXTUREVERTEXLIST',
1424
+ 1199560280: 'IFCTIMEPERIOD',
1425
+ 3101149627: 'IFCTIMESERIES',
1426
+ 581633288: 'IFCTIMESERIESVALUE',
1427
+ 1377556343: 'IFCTOPOLOGICALREPRESENTATIONITEM',
1428
+ 1735638870: 'IFCTOPOLOGYREPRESENTATION',
1429
+ 1935646853: 'IFCTOROIDALSURFACE',
1430
+ 3825984169: 'IFCTRANSFORMER',
1431
+ 1692211062: 'IFCTRANSFORMERTYPE',
1432
+ 2595432518: 'IFCTRANSITIONCURVESEGMENT2D',
1433
+ 1620046519: 'IFCTRANSPORTELEMENT',
1434
+ 2097647324: 'IFCTRANSPORTELEMENTTYPE',
1435
+ 2715220739: 'IFCTRAPEZIUMPROFILEDEF',
1436
+ 2916149573: 'IFCTRIANGULATEDFACESET',
1437
+ 1229763772: 'IFCTRIANGULATEDIRREGULARNETWORK',
1438
+ 3593883385: 'IFCTRIMMEDCURVE',
1439
+ 3026737570: 'IFCTUBEBUNDLE',
1440
+ 1600972822: 'IFCTUBEBUNDLETYPE',
1441
+ 1628702193: 'IFCTYPEOBJECT',
1442
+ 3736923433: 'IFCTYPEPROCESS',
1443
+ 2347495698: 'IFCTYPEPRODUCT',
1444
+ 3698973494: 'IFCTYPERESOURCE',
1445
+ 427810014: 'IFCUSHAPEPROFILEDEF',
1446
+ 180925521: 'IFCUNITASSIGNMENT',
1447
+ 630975310: 'IFCUNITARYCONTROLELEMENT',
1448
+ 3179687236: 'IFCUNITARYCONTROLELEMENTTYPE',
1449
+ 4292641817: 'IFCUNITARYEQUIPMENT',
1450
+ 1911125066: 'IFCUNITARYEQUIPMENTTYPE',
1451
+ 4207607924: 'IFCVALVE',
1452
+ 728799441: 'IFCVALVETYPE',
1453
+ 1417489154: 'IFCVECTOR',
1454
+ 2799835756: 'IFCVERTEX',
1455
+ 2759199220: 'IFCVERTEXLOOP',
1456
+ 1907098498: 'IFCVERTEXPOINT',
1457
+ 1530820697: 'IFCVIBRATIONDAMPER',
1458
+ 3956297820: 'IFCVIBRATIONDAMPERTYPE',
1459
+ 2391383451: 'IFCVIBRATIONISOLATOR',
1460
+ 3313531582: 'IFCVIBRATIONISOLATORTYPE',
1461
+ 2769231204: 'IFCVIRTUALELEMENT',
1462
+ 891718957: 'IFCVIRTUALGRIDINTERSECTION',
1463
+ 926996030: 'IFCVOIDINGFEATURE',
1464
+ 2391406946: 'IFCWALL',
1465
+ 4156078855: 'IFCWALLELEMENTEDCASE',
1466
+ 3512223829: 'IFCWALLSTANDARDCASE',
1467
+ 1898987631: 'IFCWALLTYPE',
1468
+ 4237592921: 'IFCWASTETERMINAL',
1469
+ 1133259667: 'IFCWASTETERMINALTYPE',
1470
+ 3304561284: 'IFCWINDOW',
1471
+ 336235671: 'IFCWINDOWLININGPROPERTIES',
1472
+ 512836454: 'IFCWINDOWPANELPROPERTIES',
1473
+ 486154966: 'IFCWINDOWSTANDARDCASE',
1474
+ 1299126871: 'IFCWINDOWSTYLE',
1475
+ 4009809668: 'IFCWINDOWTYPE',
1476
+ 4088093105: 'IFCWORKCALENDAR',
1477
+ 1028945134: 'IFCWORKCONTROL',
1478
+ 4218914973: 'IFCWORKPLAN',
1479
+ 3342526732: 'IFCWORKSCHEDULE',
1480
+ 1236880293: 'IFCWORKTIME',
1481
+ 2543172580: 'IFCZSHAPEPROFILEDEF',
1482
+ 1033361043: 'IFCZONE'
1483
+ };
1484
+
1485
+ var PropertyManager = /*#__PURE__*/function () {
1486
+ function PropertyManager(state) {
1487
+ _classCallCheck(this, PropertyManager);
1488
+
1489
+ this.state = state;
1490
+ }
1491
+
1492
+ _createClass(PropertyManager, [{
1493
+ key: "getExpressId",
1494
+ value: function getExpressId(geometry, faceIndex) {
1495
+ if (!geometry.index) return;
1496
+ var geoIndex = geometry.index.array;
1497
+ return geometry.attributes[IdAttrName].getX(geoIndex[3 * faceIndex]);
1498
+ }
1499
+ }, {
1500
+ key: "getItemProperties",
1501
+ value: function getItemProperties(modelID, id) {
1502
+ var recursive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1503
+ return this.state.useJSON ? _objectSpread({}, this.state.models[modelID].jsonData[id]) : this.state.api.GetLine(modelID, id, recursive);
1504
+ }
1505
+ }, {
1506
+ key: "getAllItemsOfType",
1507
+ value: function getAllItemsOfType(modelID, type, verbose) {
1508
+ return this.state.useJSON ? this.getAllItemsOfTypeJSON(modelID, type, verbose) : this.getAllItemsOfTypeWebIfcAPI(modelID, type, verbose);
1509
+ }
1510
+ }, {
1511
+ key: "getPropertySets",
1512
+ value: function getPropertySets(modelID, elementID) {
1513
+ var recursive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1514
+ return this.state.useJSON ? this.getPropertyJSON(modelID, elementID, recursive, PropsNames.psets) : this.getPropertyWebIfcAPI(modelID, elementID, recursive, PropsNames.psets);
1515
+ }
1516
+ }, {
1517
+ key: "getTypeProperties",
1518
+ value: function getTypeProperties(modelID, elementID) {
1519
+ var recursive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1520
+ return this.state.useJSON ? this.getPropertyJSON(modelID, elementID, recursive, PropsNames.type) : this.getPropertyWebIfcAPI(modelID, elementID, recursive, PropsNames.type);
1521
+ }
1522
+ }, {
1523
+ key: "getMaterialsProperties",
1524
+ value: function getMaterialsProperties(modelID, elementID) {
1525
+ var recursive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1526
+ return this.state.useJSON ? this.getPropertyJSON(modelID, elementID, recursive, PropsNames.materials) : this.getPropertyWebIfcAPI(modelID, elementID, recursive, PropsNames.materials);
1527
+ }
1528
+ }, {
1529
+ key: "getSpatialStructure",
1530
+ value: function getSpatialStructure(modelID) {
1531
+ return this.state.useJSON ? this.getSpatialStructureJSON(modelID) : this.getSpatialStructureWebIfcAPI(modelID);
1532
+ }
1533
+ }, {
1534
+ key: "getSpatialStructureJSON",
1535
+ value: function getSpatialStructureJSON(modelID) {
1536
+ var chunks = this.getSpatialTreeChunks(modelID);
1537
+ var projectID = this.getAllItemsOfTypeJSON(modelID, _webIfcApi.IFCPROJECT, false)[0];
1538
+ var project = this.newIfcProject(projectID);
1539
+ this.getSpatialNode(modelID, project, chunks);
1540
+ return _objectSpread({}, project);
1541
+ }
1542
+ }, {
1543
+ key: "getSpatialStructureWebIfcAPI",
1544
+ value: function getSpatialStructureWebIfcAPI(modelID) {
1545
+ var chunks = this.getSpatialTreeChunks(modelID);
1546
+ var projectID = this.state.api.GetLineIDsWithType(modelID, _webIfcApi.IFCPROJECT).get(0);
1547
+ var project = this.newIfcProject(projectID);
1548
+ this.getSpatialNode(modelID, project, chunks);
1549
+ return project;
1550
+ }
1551
+ }, {
1552
+ key: "getAllItemsOfTypeJSON",
1553
+ value: function getAllItemsOfTypeJSON(modelID, type, verbose) {
1554
+ var data = this.state.models[modelID].jsonData;
1555
+ var typeName = IfcTypesMap[type];
1556
+
1557
+ if (!typeName) {
1558
+ throw new Error("Type not found: ".concat(type));
1559
+ }
1560
+
1561
+ return this.filterJSONItemsByType(data, typeName, verbose);
1562
+ }
1563
+ }, {
1564
+ key: "filterJSONItemsByType",
1565
+ value: function filterJSONItemsByType(data, typeName, verbose) {
1566
+ var result = [];
1567
+ Object.keys(data).forEach(function (key) {
1568
+ var numKey = parseInt(key);
1569
+
1570
+ if (data[numKey].type.toUpperCase() === typeName) {
1571
+ result.push(verbose ? _objectSpread({}, data[numKey]) : numKey);
1572
+ }
1573
+ });
1574
+ return result;
1575
+ }
1576
+ }, {
1577
+ key: "getItemsByIDJSON",
1578
+ value: function getItemsByIDJSON(modelID, ids) {
1579
+ var data = this.state.models[modelID].jsonData;
1580
+ var result = [];
1581
+ ids.forEach(function (id) {
1582
+ return result.push(_objectSpread({}, data[id]));
1583
+ });
1584
+ return result;
1585
+ }
1586
+ }, {
1587
+ key: "getPropertyJSON",
1588
+ value: function getPropertyJSON(modelID, elementID) {
1589
+ var _this = this;
1590
+
1591
+ var recursive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1592
+ var propName = arguments.length > 3 ? arguments[3] : undefined;
1593
+ var resultIDs = this.getAllRelatedItemsOfTypeJSON(modelID, elementID, propName);
1594
+ var result = this.getItemsByIDJSON(modelID, resultIDs);
1595
+
1596
+ if (recursive) {
1597
+ result.forEach(function (result) {
1598
+ return _this.getJSONReferencesRecursively(modelID, result);
1599
+ });
1600
+ }
1601
+
1602
+ return result;
1603
+ }
1604
+ }, {
1605
+ key: "getJSONReferencesRecursively",
1606
+ value: function getJSONReferencesRecursively(modelID, jsonObject) {
1607
+ if (jsonObject == undefined) return;
1608
+ var keys = Object.keys(jsonObject);
1609
+
1610
+ for (var i = 0; i < keys.length; i++) {
1611
+ var key = keys[i];
1612
+ this.getJSONItem(modelID, jsonObject, key);
1613
+ }
1614
+ }
1615
+ }, {
1616
+ key: "getJSONItem",
1617
+ value: function getJSONItem(modelID, jsonObject, key) {
1618
+ if (Array.isArray(jsonObject[key])) {
1619
+ return this.getMultipleJSONItems(modelID, jsonObject, key);
1620
+ }
1621
+
1622
+ if (jsonObject[key] && jsonObject[key].type === 5) {
1623
+ jsonObject[key] = this.getItemsByIDJSON(modelID, [jsonObject[key].value])[0];
1624
+ this.getJSONReferencesRecursively(modelID, jsonObject[key]);
1625
+ }
1626
+ }
1627
+ }, {
1628
+ key: "getMultipleJSONItems",
1629
+ value: function getMultipleJSONItems(modelID, jsonObject, key) {
1630
+ var _this2 = this;
1631
+
1632
+ jsonObject[key] = jsonObject[key].map(function (item) {
1633
+ if (item.type === 5) {
1634
+ item = _this2.getItemsByIDJSON(modelID, [item.value])[0];
1635
+
1636
+ _this2.getJSONReferencesRecursively(modelID, item);
1637
+ }
1638
+
1639
+ return item;
1640
+ });
1641
+ }
1642
+ }, {
1643
+ key: "getPropertyWebIfcAPI",
1644
+ value: function getPropertyWebIfcAPI(modelID, elementID) {
1645
+ var _this3 = this;
1646
+
1647
+ var recursive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1648
+ var propName = arguments.length > 3 ? arguments[3] : undefined;
1649
+ var propSetIds = this.getAllRelatedItemsOfTypeWebIfcAPI(modelID, elementID, propName);
1650
+ return propSetIds.map(function (id) {
1651
+ return _this3.state.api.GetLine(modelID, id, recursive);
1652
+ });
1653
+ }
1654
+ }, {
1655
+ key: "getAllItemsOfTypeWebIfcAPI",
1656
+ value: function getAllItemsOfTypeWebIfcAPI(modelID, type, verbose) {
1657
+ var _this4 = this;
1658
+
1659
+ var items = [];
1660
+ var lines = this.state.api.GetLineIDsWithType(modelID, type);
1661
+
1662
+ for (var i = 0; i < lines.size(); i++) {
1663
+ items.push(lines.get(i));
1664
+ }
1665
+
1666
+ if (verbose) return items.map(function (id) {
1667
+ return _this4.state.api.GetLine(modelID, id);
1668
+ });
1669
+ return items;
1670
+ }
1671
+ }, {
1672
+ key: "newIfcProject",
1673
+ value: function newIfcProject(id) {
1674
+ return {
1675
+ expressID: id,
1676
+ type: 'IFCPROJECT',
1677
+ children: []
1678
+ };
1679
+ }
1680
+ }, {
1681
+ key: "getSpatialTreeChunks",
1682
+ value: function getSpatialTreeChunks(modelID) {
1683
+ var treeChunks = {};
1684
+ var json = this.state.useJSON;
1685
+
1686
+ if (json) {
1687
+ this.getChunksJSON(modelID, treeChunks, PropsNames.aggregates);
1688
+ this.getChunksJSON(modelID, treeChunks, PropsNames.spatial);
1689
+ } else {
1690
+ this.getChunksWebIfcAPI(modelID, treeChunks, PropsNames.aggregates);
1691
+ this.getChunksWebIfcAPI(modelID, treeChunks, PropsNames.spatial);
1692
+ }
1693
+
1694
+ return treeChunks;
1695
+ }
1696
+ }, {
1697
+ key: "getChunksJSON",
1698
+ value: function getChunksJSON(modelID, chunks, propNames) {
1699
+ var _this5 = this;
1700
+
1701
+ var relation = this.getAllItemsOfTypeJSON(modelID, propNames.name, true);
1702
+ relation.forEach(function (rel) {
1703
+ _this5.saveChunk(chunks, propNames, rel);
1704
+ });
1705
+ }
1706
+ }, {
1707
+ key: "getChunksWebIfcAPI",
1708
+ value: function getChunksWebIfcAPI(modelID, chunks, propNames) {
1709
+ var relation = this.state.api.GetLineIDsWithType(modelID, propNames.name);
1710
+
1711
+ for (var i = 0; i < relation.size(); i++) {
1712
+ var rel = this.state.api.GetLine(modelID, relation.get(i), false);
1713
+ this.saveChunk(chunks, propNames, rel);
1714
+ }
1715
+ }
1716
+ }, {
1717
+ key: "saveChunk",
1718
+ value: function saveChunk(chunks, propNames, rel) {
1719
+ var relating = rel[propNames.relating].value;
1720
+ var related = rel[propNames.related].map(function (r) {
1721
+ return r.value;
1722
+ });
1723
+
1724
+ if (chunks[relating] == undefined) {
1725
+ chunks[relating] = related;
1726
+ } else {
1727
+ chunks[relating] = chunks[relating].concat(related);
1728
+ }
1729
+ }
1730
+ }, {
1731
+ key: "getSpatialNode",
1732
+ value: function getSpatialNode(modelID, node, treeChunks) {
1733
+ this.getChildren(modelID, node, treeChunks, PropsNames.aggregates);
1734
+ this.getChildren(modelID, node, treeChunks, PropsNames.spatial);
1735
+ }
1736
+ }, {
1737
+ key: "getChildren",
1738
+ value: function getChildren(modelID, node, treeChunks, propNames) {
1739
+ var _this6 = this;
1740
+
1741
+ var children = treeChunks[node.expressID];
1742
+ if (children == undefined) return;
1743
+ var prop = propNames.key;
1744
+ node[prop] = children.map(function (child) {
1745
+ var node = _this6.newNode(modelID, child);
1746
+
1747
+ _this6.getSpatialNode(modelID, node, treeChunks);
1748
+
1749
+ return node;
1750
+ });
1751
+ }
1752
+ }, {
1753
+ key: "newNode",
1754
+ value: function newNode(modelID, id) {
1755
+ var typeName = this.getNodeType(modelID, id);
1756
+ return {
1757
+ expressID: id,
1758
+ type: typeName,
1759
+ children: []
1760
+ };
1761
+ }
1762
+ }, {
1763
+ key: "getNodeType",
1764
+ value: function getNodeType(modelID, id) {
1765
+ if (this.state.useJSON) return this.state.models[modelID].jsonData[id].type;
1766
+ var typeID = this.state.models[modelID].types[id];
1767
+ return IfcElements[typeID];
1768
+ }
1769
+ }, {
1770
+ key: "getAllRelatedItemsOfTypeJSON",
1771
+ value: function getAllRelatedItemsOfTypeJSON(modelID, id, propNames) {
1772
+ var _this7 = this;
1773
+
1774
+ var lines = this.getAllItemsOfTypeJSON(modelID, propNames.name, true);
1775
+ var IDs = [];
1776
+ lines.forEach(function (line) {
1777
+ var isRelated = _this7.isRelated(id, line, propNames);
1778
+
1779
+ if (isRelated) _this7.getRelated(line, propNames, IDs);
1780
+ });
1781
+ return IDs;
1782
+ }
1783
+ }, {
1784
+ key: "getAllRelatedItemsOfTypeWebIfcAPI",
1785
+ value: function getAllRelatedItemsOfTypeWebIfcAPI(modelID, id, propNames) {
1786
+ var lines = this.state.api.GetLineIDsWithType(modelID, propNames.name);
1787
+ var IDs = [];
1788
+
1789
+ for (var i = 0; i < lines.size(); i++) {
1790
+ var rel = this.state.api.GetLine(modelID, lines.get(i));
1791
+ var isRelated = this.isRelated(id, rel, propNames);
1792
+ if (isRelated) this.getRelated(rel, propNames, IDs);
1793
+ }
1794
+
1795
+ return IDs;
1796
+ }
1797
+ }, {
1798
+ key: "getRelated",
1799
+ value: function getRelated(rel, propNames, IDs) {
1800
+ var element = rel[propNames.relating];
1801
+ if (!Array.isArray(element)) IDs.push(element.value);else element.forEach(function (ele) {
1802
+ return IDs.push(ele.value);
1803
+ });
1804
+ }
1805
+ }, {
1806
+ key: "isRelated",
1807
+ value: function isRelated(id, rel, propNames) {
1808
+ var relatedItems = rel[propNames.related];
1809
+
1810
+ if (Array.isArray(relatedItems)) {
1811
+ var values = relatedItems.map(function (item) {
1812
+ return item.value;
1813
+ });
1814
+ return values.includes(id);
1815
+ }
1816
+
1817
+ return relatedItems.value === id;
1818
+ }
1819
+ }]);
1820
+
1821
+ return PropertyManager;
1822
+ }();
1823
+
1824
+ var TypeManager = /*#__PURE__*/function () {
1825
+ function TypeManager(state) {
1826
+ _classCallCheck(this, TypeManager);
1827
+
1828
+ this.state = state;
1829
+ }
1830
+
1831
+ _createClass(TypeManager, [{
1832
+ key: "getAllTypes",
1833
+ value: function getAllTypes() {
1834
+ for (var modelID in this.state.models) {
1835
+ var types = this.state.models[modelID].types;
1836
+ if (Object.keys(types).length == 0) this.getAllTypesOfModel(parseInt(modelID));
1837
+ }
1838
+ }
1839
+ }, {
1840
+ key: "getAllTypesOfModel",
1841
+ value: function getAllTypesOfModel(modelID) {
1842
+ var _this8 = this;
1843
+
1844
+ this.state.models[modelID].types;
1845
+ var elements = Object.keys(IfcElements).map(function (e) {
1846
+ return parseInt(e);
1847
+ });
1848
+ var types = this.state.models[modelID].types;
1849
+ elements.forEach(function (type) {
1850
+ var lines = _this8.state.api.GetLineIDsWithType(modelID, type);
1851
+
1852
+ for (var i = 0; i < lines.size(); i++) {
1853
+ types[lines.get(i)] = type;
1854
+ }
1855
+ });
1856
+ }
1857
+ }]);
1858
+
1859
+ return TypeManager;
1860
+ }();
1861
+
1862
+ var modelIdCounter = 0;
1863
+ var nullIfcManagerErrorMessage = 'IfcManager is null!';
1864
+
1865
+ var IFCModel = /*#__PURE__*/function (_Mesh) {
1866
+ _inherits(IFCModel, _Mesh);
1867
+
1868
+ var _super = _createSuper(IFCModel);
1869
+
1870
+ function IFCModel() {
1871
+ var _this9;
1872
+
1873
+ _classCallCheck(this, IFCModel);
1874
+
1875
+ _this9 = _super.apply(this, arguments);
1876
+ _this9.modelID = modelIdCounter++;
1877
+ _this9.ifcManager = null;
1878
+ _this9.mesh = _assertThisInitialized(_this9);
1879
+ return _this9;
1880
+ }
1881
+
1882
+ _createClass(IFCModel, [{
1883
+ key: "setIFCManager",
1884
+ value: function setIFCManager(manager) {
1885
+ this.ifcManager = manager;
1886
+ }
1887
+ }, {
1888
+ key: "setWasmPath",
1889
+ value: function setWasmPath(path) {
1890
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1891
+ this.ifcManager.setWasmPath(path);
1892
+ }
1893
+ }, {
1894
+ key: "close",
1895
+ value: function close(scene) {
1896
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1897
+ this.ifcManager.close(this.modelID, scene);
1898
+ }
1899
+ }, {
1900
+ key: "getExpressId",
1901
+ value: function getExpressId(geometry, faceIndex) {
1902
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1903
+ return this.ifcManager.getExpressId(geometry, faceIndex);
1904
+ }
1905
+ }, {
1906
+ key: "getAllItemsOfType",
1907
+ value: function getAllItemsOfType(type, verbose) {
1908
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1909
+ return this.ifcManager.getAllItemsOfType(this.modelID, type, verbose);
1910
+ }
1911
+ }, {
1912
+ key: "getItemProperties",
1913
+ value: function getItemProperties(id) {
1914
+ var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1915
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1916
+ return this.ifcManager.getItemProperties(this.modelID, id, recursive);
1917
+ }
1918
+ }, {
1919
+ key: "getPropertySets",
1920
+ value: function getPropertySets(id) {
1921
+ var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1922
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1923
+ return this.ifcManager.getPropertySets(this.modelID, id, recursive);
1924
+ }
1925
+ }, {
1926
+ key: "getTypeProperties",
1927
+ value: function getTypeProperties(id) {
1928
+ var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1929
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1930
+ return this.ifcManager.getTypeProperties(this.modelID, id, recursive);
1931
+ }
1932
+ }, {
1933
+ key: "getIfcType",
1934
+ value: function getIfcType(id) {
1935
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1936
+ return this.ifcManager.getIfcType(this.modelID, id);
1937
+ }
1938
+ }, {
1939
+ key: "getSpatialStructure",
1940
+ value: function getSpatialStructure() {
1941
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1942
+ return this.ifcManager.getSpatialStructure(this.modelID);
1943
+ }
1944
+ }, {
1945
+ key: "getSubset",
1946
+ value: function getSubset(material) {
1947
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1948
+ return this.ifcManager.getSubset(this.modelID, material);
1949
+ }
1950
+ }, {
1951
+ key: "removeSubset",
1952
+ value: function removeSubset(parent, material) {
1953
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1954
+ this.ifcManager.removeSubset(this.modelID, parent, material);
1955
+ }
1956
+ }, {
1957
+ key: "createSubset",
1958
+ value: function createSubset(config) {
1959
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1960
+
1961
+ var modelConfig = _objectSpread(_objectSpread({}, config), {}, {
1962
+ modelID: this.modelID
1963
+ });
1964
+
1965
+ return this.ifcManager.createSubset(modelConfig);
1966
+ }
1967
+ }, {
1968
+ key: "hideItems",
1969
+ value: function hideItems(ids) {
1970
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1971
+ this.ifcManager.hideItems(this.modelID, ids);
1972
+ }
1973
+ }, {
1974
+ key: "hideAllItems",
1975
+ value: function hideAllItems() {
1976
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1977
+ this.ifcManager.hideAllItems(this.modelID);
1978
+ }
1979
+ }, {
1980
+ key: "showItems",
1981
+ value: function showItems(ids) {
1982
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1983
+ this.ifcManager.showItems(this.modelID, ids);
1984
+ }
1985
+ }, {
1986
+ key: "showAllItems",
1987
+ value: function showAllItems() {
1988
+ if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage);
1989
+ this.ifcManager.showAllItems(this.modelID);
1990
+ }
1991
+ }]);
1992
+
1993
+ return IFCModel;
1994
+ }(_three.Mesh);
1995
+
1996
+ var BvhManager = /*#__PURE__*/function () {
1997
+ function BvhManager() {
1998
+ _classCallCheck(this, BvhManager);
1999
+ }
2000
+
2001
+ _createClass(BvhManager, [{
2002
+ key: "initializeMeshBVH",
2003
+ value: function initializeMeshBVH(computeBoundsTree, disposeBoundsTree, acceleratedRaycast) {
2004
+ this.computeBoundsTree = computeBoundsTree;
2005
+ this.disposeBoundsTree = disposeBoundsTree;
2006
+ this.acceleratedRaycast = acceleratedRaycast;
2007
+ this.setupThreeMeshBVH();
2008
+ }
2009
+ }, {
2010
+ key: "applyThreeMeshBVH",
2011
+ value: function applyThreeMeshBVH(geometry) {
2012
+ if (this.computeBoundsTree) geometry.computeBoundsTree();
2013
+ }
2014
+ }, {
2015
+ key: "setupThreeMeshBVH",
2016
+ value: function setupThreeMeshBVH() {
2017
+ if (!this.computeBoundsTree || !this.disposeBoundsTree || !this.acceleratedRaycast) return;
2018
+ _three.BufferGeometry.prototype.computeBoundsTree = this.computeBoundsTree;
2019
+ _three.BufferGeometry.prototype.disposeBoundsTree = this.disposeBoundsTree;
2020
+ _three.Mesh.prototype.raycast = this.acceleratedRaycast;
2021
+ }
2022
+ }]);
2023
+
2024
+ return BvhManager;
2025
+ }();
2026
+
2027
+ var ItemsHider = /*#__PURE__*/function () {
2028
+ function ItemsHider(state) {
2029
+ _classCallCheck(this, ItemsHider);
2030
+
2031
+ this.modelCoordinates = {};
2032
+ this.expressIDCoordinatesMap = {};
2033
+ this.state = state;
2034
+ }
2035
+
2036
+ _createClass(ItemsHider, [{
2037
+ key: "processCoordinates",
2038
+ value: function processCoordinates(modelID) {
2039
+ var attributes = this.getAttributes(modelID);
2040
+ var ids = Array.from(attributes.expressID.array);
2041
+ this.expressIDCoordinatesMap[modelID] = {};
2042
+
2043
+ for (var i = 0; i < ids.length; i++) {
2044
+ if (!this.expressIDCoordinatesMap[modelID][ids[i]]) {
2045
+ this.expressIDCoordinatesMap[modelID][ids[i]] = [];
2046
+ }
2047
+
2048
+ var current = this.expressIDCoordinatesMap[modelID];
2049
+ current[ids[i]].push(3 * i);
2050
+ }
2051
+
2052
+ this.initializeCoordinates(modelID);
2053
+ }
2054
+ }, {
2055
+ key: "hideItems",
2056
+ value: function hideItems(modelID, ids) {
2057
+ this.editCoordinates(modelID, ids, true);
2058
+ }
2059
+ }, {
2060
+ key: "showItems",
2061
+ value: function showItems(modelID, ids) {
2062
+ this.editCoordinates(modelID, ids, false);
2063
+ }
2064
+ }, {
2065
+ key: "editCoordinates",
2066
+ value: function editCoordinates(modelID, ids, hide) {
2067
+ var current = this.expressIDCoordinatesMap[modelID];
2068
+ var indices = [];
2069
+ ids.forEach(function (id) {
2070
+ if (current[id]) indices.push.apply(indices, _toConsumableArray(current[id]));
2071
+ });
2072
+ var coords = this.getCoordinates(modelID);
2073
+ var initial = this.modelCoordinates[modelID];
2074
+ if (hide) indices.forEach(function (i) {
2075
+ return coords.set([0, 0, 0], i);
2076
+ });else indices.forEach(function (i) {
2077
+ return coords.set([initial[i], initial[i + 1], initial[i + 2]], i);
2078
+ });
2079
+ this.getAttributes(modelID).position.needsUpdate = true;
2080
+ }
2081
+ }, {
2082
+ key: "showAllItems",
2083
+ value: function showAllItems(modelID) {
2084
+ if (this.modelCoordinates[modelID]) {
2085
+ this.resetCoordinates(modelID);
2086
+ this.getAttributes(modelID).position.needsUpdate = true;
2087
+ }
2088
+ }
2089
+ }, {
2090
+ key: "hideAllItems",
2091
+ value: function hideAllItems(modelID) {
2092
+ this.getCoordinates(modelID).fill(0);
2093
+ this.getAttributes(modelID).position.needsUpdate = true;
2094
+ }
2095
+ }, {
2096
+ key: "initializeCoordinates",
2097
+ value: function initializeCoordinates(modelID) {
2098
+ var coordinates = this.getCoordinates(modelID);
2099
+
2100
+ if (!this.modelCoordinates[modelID]) {
2101
+ this.modelCoordinates[modelID] = new Float32Array(coordinates);
2102
+ }
2103
+ }
2104
+ }, {
2105
+ key: "resetCoordinates",
2106
+ value: function resetCoordinates(modelID) {
2107
+ var initial = this.modelCoordinates[modelID];
2108
+ this.getCoordinates(modelID).set(initial);
2109
+ }
2110
+ }, {
2111
+ key: "getCoordinates",
2112
+ value: function getCoordinates(modelID) {
2113
+ return this.getAttributes(modelID).position.array;
2114
+ }
2115
+ }, {
2116
+ key: "getAttributes",
2117
+ value: function getAttributes(modelID) {
2118
+ return this.state.models[modelID].mesh.geometry.attributes;
2119
+ }
2120
+ }]);
2121
+
2122
+ return ItemsHider;
2123
+ }();
2124
+
2125
+ var IFCManager = /*#__PURE__*/function () {
2126
+ function IFCManager() {
2127
+ _classCallCheck(this, IFCManager);
2128
+
2129
+ this.state = {
2130
+ models: [],
2131
+ api: new _webIfcApi.IfcAPI(),
2132
+ useJSON: false
2133
+ };
2134
+ this.BVH = new BvhManager();
2135
+ this.parser = new IFCParser(this.state, this.BVH);
2136
+ this.subsets = new SubsetManager(this.state, this.BVH);
2137
+ this.properties = new PropertyManager(this.state);
2138
+ this.types = new TypeManager(this.state);
2139
+ this.hider = new ItemsHider(this.state);
2140
+ }
2141
+
2142
+ _createClass(IFCManager, [{
2143
+ key: "parse",
2144
+ value: function () {
2145
+ var _parse2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(buffer) {
2146
+ var mesh, model;
2147
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
2148
+ while (1) {
2149
+ switch (_context2.prev = _context2.next) {
2150
+ case 0:
2151
+ _context2.next = 2;
2152
+ return this.parser.parse(buffer);
2153
+
2154
+ case 2:
2155
+ mesh = _context2.sent;
2156
+ this.state.useJSON ? this.disposeMemory() : this.types.getAllTypes();
2157
+ this.hider.processCoordinates(mesh.modelID);
2158
+ model = new IFCModel(mesh.geometry, mesh.material);
2159
+ model.setIFCManager(this);
2160
+ return _context2.abrupt("return", model);
2161
+
2162
+ case 8:
2163
+ case "end":
2164
+ return _context2.stop();
2165
+ }
2166
+ }
2167
+ }, _callee2, this);
2168
+ }));
2169
+
2170
+ function parse(_x2) {
2171
+ return _parse2.apply(this, arguments);
2172
+ }
2173
+
2174
+ return parse;
2175
+ }()
2176
+ }, {
2177
+ key: "setWasmPath",
2178
+ value: function setWasmPath(path) {
2179
+ this.state.api.SetWasmPath(path);
2180
+ }
2181
+ }, {
2182
+ key: "applyWebIfcConfig",
2183
+ value: function applyWebIfcConfig(settings) {
2184
+ this.state.webIfcSettings = settings;
2185
+ }
2186
+ }, {
2187
+ key: "useJSONData",
2188
+ value: function useJSONData() {
2189
+ var useJSON = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
2190
+ this.state.useJSON = useJSON;
2191
+ this.disposeMemory();
2192
+ }
2193
+ }, {
2194
+ key: "addModelJSONData",
2195
+ value: function addModelJSONData(modelID, data) {
2196
+ var model = this.state.models[modelID];
2197
+
2198
+ if (model) {
2199
+ model.jsonData = data;
2200
+ }
2201
+ }
2202
+ }, {
2203
+ key: "disposeMemory",
2204
+ value: function disposeMemory() {
2205
+ this.state.api = null;
2206
+ this.state.api = new _webIfcApi.IfcAPI();
2207
+ }
2208
+ }, {
2209
+ key: "setupThreeMeshBVH",
2210
+ value: function setupThreeMeshBVH(computeBoundsTree, disposeBoundsTree, acceleratedRaycast) {
2211
+ this.BVH.initializeMeshBVH(computeBoundsTree, disposeBoundsTree, acceleratedRaycast);
2212
+ }
2213
+ }, {
2214
+ key: "close",
2215
+ value: function close(modelID, scene) {
2216
+ this.state.api.CloseModel(modelID);
2217
+
2218
+ if (scene) {
2219
+ scene.remove(this.state.models[modelID].mesh);
2220
+ }
2221
+
2222
+ delete this.state.models[modelID];
2223
+ }
2224
+ }, {
2225
+ key: "getExpressId",
2226
+ value: function getExpressId(geometry, faceIndex) {
2227
+ return this.properties.getExpressId(geometry, faceIndex);
2228
+ }
2229
+ }, {
2230
+ key: "getAllItemsOfType",
2231
+ value: function getAllItemsOfType(modelID, type, verbose) {
2232
+ return this.properties.getAllItemsOfType(modelID, type, verbose);
2233
+ }
2234
+ }, {
2235
+ key: "getItemProperties",
2236
+ value: function getItemProperties(modelID, id) {
2237
+ var recursive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
2238
+ return this.properties.getItemProperties(modelID, id, recursive);
2239
+ }
2240
+ }, {
2241
+ key: "getPropertySets",
2242
+ value: function getPropertySets(modelID, id) {
2243
+ var recursive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
2244
+ return this.properties.getPropertySets(modelID, id, recursive);
2245
+ }
2246
+ }, {
2247
+ key: "getTypeProperties",
2248
+ value: function getTypeProperties(modelID, id) {
2249
+ var recursive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
2250
+ return this.properties.getTypeProperties(modelID, id, recursive);
2251
+ }
2252
+ }, {
2253
+ key: "getMaterialsProperties",
2254
+ value: function getMaterialsProperties(modelID, id) {
2255
+ var recursive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
2256
+ return this.properties.getMaterialsProperties(modelID, id, recursive);
2257
+ }
2258
+ }, {
2259
+ key: "getIfcType",
2260
+ value: function getIfcType(modelID, id) {
2261
+ var typeID = this.state.models[modelID].types[id];
2262
+ return IfcElements[typeID];
2263
+ }
2264
+ }, {
2265
+ key: "getSpatialStructure",
2266
+ value: function getSpatialStructure(modelID) {
2267
+ return this.properties.getSpatialStructure(modelID);
2268
+ }
2269
+ }, {
2270
+ key: "getSubset",
2271
+ value: function getSubset(modelID, material) {
2272
+ return this.subsets.getSubset(modelID, material);
2273
+ }
2274
+ }, {
2275
+ key: "removeSubset",
2276
+ value: function removeSubset(modelID, parent, material) {
2277
+ this.subsets.removeSubset(modelID, parent, material);
2278
+ }
2279
+ }, {
2280
+ key: "createSubset",
2281
+ value: function createSubset(config) {
2282
+ return this.subsets.createSubset(config);
2283
+ }
2284
+ }, {
2285
+ key: "hideItems",
2286
+ value: function hideItems(modelID, ids) {
2287
+ this.hider.hideItems(modelID, ids);
2288
+ }
2289
+ }, {
2290
+ key: "hideAllItems",
2291
+ value: function hideAllItems(modelID) {
2292
+ this.hider.hideAllItems(modelID);
2293
+ }
2294
+ }, {
2295
+ key: "showItems",
2296
+ value: function showItems(modelID, ids) {
2297
+ this.hider.showItems(modelID, ids);
2298
+ }
2299
+ }, {
2300
+ key: "showAllItems",
2301
+ value: function showAllItems(modelID) {
2302
+ this.hider.showAllItems(modelID);
2303
+ }
2304
+ }]);
2305
+
2306
+ return IFCManager;
2307
+ }();
2308
+
2309
+ var IFCLoader = /*#__PURE__*/function (_Loader) {
2310
+ _inherits(IFCLoader, _Loader);
2311
+
2312
+ var _super2 = _createSuper(IFCLoader);
2313
+
2314
+ function IFCLoader(manager) {
2315
+ var _this10;
2316
+
2317
+ _classCallCheck(this, IFCLoader);
2318
+
2319
+ _this10 = _super2.call(this, manager);
2320
+ _this10.ifcManager = new IFCManager();
2321
+ return _this10;
2322
+ }
2323
+
2324
+ _createClass(IFCLoader, [{
2325
+ key: "load",
2326
+ value: function load(url, onLoad, onProgress, onError) {
2327
+ var scope = this;
2328
+ var loader = new _three.FileLoader(scope.manager);
2329
+ loader.setPath(scope.path);
2330
+ loader.setResponseType('arraybuffer');
2331
+ loader.setRequestHeader(scope.requestHeader);
2332
+ loader.setWithCredentials(scope.withCredentials);
2333
+ loader.load(url, /*#__PURE__*/function () {
2334
+ var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(buffer) {
2335
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
2336
+ while (1) {
2337
+ switch (_context3.prev = _context3.next) {
2338
+ case 0:
2339
+ _context3.prev = 0;
2340
+
2341
+ if (!(typeof buffer == 'string')) {
2342
+ _context3.next = 3;
2343
+ break;
2344
+ }
2345
+
2346
+ throw new Error('IFC files must be given as a buffer!');
2347
+
2348
+ case 3:
2349
+ _context3.t0 = onLoad;
2350
+ _context3.next = 6;
2351
+ return scope.parse(buffer);
2352
+
2353
+ case 6:
2354
+ _context3.t1 = _context3.sent;
2355
+ (0, _context3.t0)(_context3.t1);
2356
+ _context3.next = 14;
2357
+ break;
2358
+
2359
+ case 10:
2360
+ _context3.prev = 10;
2361
+ _context3.t2 = _context3["catch"](0);
2362
+
2363
+ if (onError) {
2364
+ onError(_context3.t2);
2365
+ } else {
2366
+ console.error(_context3.t2);
2367
+ }
2368
+
2369
+ scope.manager.itemError(url);
2370
+
2371
+ case 14:
2372
+ case "end":
2373
+ return _context3.stop();
2374
+ }
2375
+ }
2376
+ }, _callee3, null, [[0, 10]]);
2377
+ }));
2378
+
2379
+ return function (_x3) {
2380
+ return _ref.apply(this, arguments);
2381
+ };
2382
+ }(), onProgress, onError);
2383
+ }
2384
+ }, {
2385
+ key: "parse",
2386
+ value: function parse(buffer) {
2387
+ return this.ifcManager.parse(buffer);
2388
+ }
2389
+ }]);
2390
+
2391
+ return IFCLoader;
2392
+ }(_three.Loader);
2393
+
2394
+ _exports.IFCLoader = IFCLoader;
2395
+ });