@woosh/meep-engine 2.56.1 → 2.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/editor/Editor.js +4 -4
  2. package/editor/ecs/component/editors/ColorEditor.js +1 -1
  3. package/editor/ecs/component/editors/ImagePathEditor.js +2 -2
  4. package/editor/ecs/component/editors/{LargeStrongEditor.js → LargeStringEditor.js} +1 -1
  5. package/editor/process/symbolic/buildThreeJSHelperEntity.js +3 -3
  6. package/editor/process/symbolic/makeGridPositionSymbolDisplay.js +3 -3
  7. package/editor/process/symbolic/makePositionedIconDisplaySymbol.js +3 -3
  8. package/editor/tools/GridPaintTool.js +3 -3
  9. package/editor/tools/TopDownCameraControlTool.js +1 -1
  10. package/editor/tools/TransformTool.js +1 -1
  11. package/editor/tools/engine/Tool.js +9 -23
  12. package/editor/tools/engine/ToolEngine.js +5 -7
  13. package/editor/tools/paint/TerrainHeightPaintTool.js +2 -2
  14. package/editor/tools/paint/TerrainPaintTool.js +2 -2
  15. package/editor/tools/paint/TerrainTexturePaintTool.js +2 -2
  16. package/editor/tools/v2/prototypeTransformControls.js +3 -3
  17. package/editor/view/ecs/ComponentControlView.js +2 -1
  18. package/package.json +1 -1
  19. package/samples/generation/main.js +2 -2
  20. package/samples/terrain/from_image.js +2 -2
  21. package/samples/terrain/from_image_2.js +4 -4
  22. package/src/core/binary/byteArrayToString.js +28 -0
  23. package/src/core/binary/downloadAsFile.js +28 -0
  24. package/src/core/binary/downloadUrlAsFile.js +14 -0
  25. package/src/core/binary/jsonToStringToByteArray.js +27 -0
  26. package/src/core/binary/stringToByteArray.js +24 -0
  27. package/src/core/bvh2/BinaryNode.spec.js +2 -1
  28. package/src/core/bvh2/bvh3/query/compute_tight_near_far_clipping_planes.js +1 -1
  29. package/src/core/bvh2/traversal/ThreeClippingPlaneComputingBVHVisitor.js +1 -1
  30. package/src/core/bvh2/traversal/__process_point_if_within_planes.js +1 -1
  31. package/src/core/cache/LoadingCache.js +3 -2
  32. package/src/core/collection/array/arraySetSortingDiff.spec.js +12 -12
  33. package/src/core/collection/array/weightedRandomFromArray.js +2 -2
  34. package/src/core/color/Color.js +6 -6
  35. package/src/core/color/Color.spec.js +27 -1
  36. package/src/core/color/YCbCr/YCbCr.spec.js +16 -0
  37. package/src/core/color/{YCbCr_to_rgb_uint24.js → YCbCr/YCbCr_to_rgb_uint24.js} +6 -6
  38. package/src/core/color/YCbCr/rgb_to_YCbCr_uint24.js +16 -0
  39. package/src/core/color/{hex2rgb.js → hex/hex2rgb.js} +1 -1
  40. package/src/core/color/{rgb2hex.js → hex/rgb2hex.js} +1 -1
  41. package/src/core/color/{hsv2rgb.js → hsv/hsv2rgb.js} +3 -3
  42. package/src/core/color/hsv/rgb2hsv.js +49 -0
  43. package/src/core/color/{kelvin_to_rgb.js → kelvin/kelvin_to_rgb.js} +1 -1
  44. package/src/core/color/{kelvin_to_rgb.spec.js → kelvin/kelvin_to_rgb.spec.js} +2 -2
  45. package/src/core/color/{prototype_kelvin_to_rgb.js → kelvin/prototype_kelvin_to_rgb.js} +5 -5
  46. package/src/core/color/{rgb_to_kelvin.spec.js → kelvin/rgb_to_kelvin.spec.js} +1 -1
  47. package/src/core/color/{parseColor.js → parse_color.js} +5 -5
  48. package/src/core/color/parse_color.spec.js +18 -0
  49. package/src/core/color/rgb2uint24.js +3 -3
  50. package/src/core/color/sRGB/sRGB.spec.js +16 -0
  51. package/src/core/color/xyz/XYZ.spec.js +16 -0
  52. package/src/core/color/xyz/rgb_to_xyz.js +15 -0
  53. package/src/core/color/xyz/xyz_to_rgb.js +14 -0
  54. package/src/core/events/signal/Signal.js +5 -0
  55. package/src/core/events/signal/{signalAggregateByTimeWindow.js → signal_aggregate_by_time_window.js} +1 -1
  56. package/src/core/events/signal/{SignalUtils.js → signal_filter.js} +1 -2
  57. package/src/core/fsm/simple/SimpleStateMachine.spec.js +34 -2
  58. package/src/core/geom/2d/spline_bezier2_2d.js +26 -0
  59. package/src/core/geom/2d/spline_bezier2_2d.spec.js +16 -0
  60. package/src/core/geom/3d/SurfacePoint3.js +1 -1
  61. package/src/core/geom/3d/aabb/aabb3_compute_plane_side.js +1 -1
  62. package/src/core/geom/3d/aabb/aabb3_detailed_volume_intersection.js +1 -1
  63. package/src/core/geom/3d/aabb/aabb3_transformed_compute_plane_side.js +1 -1
  64. package/src/core/geom/3d/compute_circle_bounding_box.js +1 -1
  65. package/src/core/geom/3d/cone/computeConeBoundingBox.js +1 -1
  66. package/src/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.js +1 -1
  67. package/src/core/geom/3d/line/line3_computeSegmentPointDistance_sqr.js +1 -1
  68. package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.js +1 -1
  69. package/src/core/geom/3d/matrix/m4_multiply.js +2 -2
  70. package/src/core/geom/3d/matrix/m4_multiply.spec.js +11 -0
  71. package/src/core/geom/3d/matrix/m4_multiply_alphatensor.spec.js +11 -0
  72. package/src/core/geom/3d/morton/split_by_2.js +1 -1
  73. package/src/core/geom/3d/normal/hemioct/unit_hemioct.spec.js +1 -1
  74. package/src/core/geom/3d/normal/spherical/sphere_map_transform.js +1 -1
  75. package/src/core/geom/3d/plane/is_point_within_planes.js +1 -1
  76. package/src/core/geom/3d/plane/lerp_planes_to_array.js +1 -1
  77. package/src/core/geom/3d/plane/plane3_compute_convex_3_plane_intersection.js +1 -1
  78. package/src/core/geom/3d/plane/plane3_compute_line_segment_intersection.js +1 -1
  79. package/src/core/geom/3d/plane/plane3_compute_ray_intersection.js +1 -1
  80. package/src/core/geom/3d/plane/plane3_lerp.js +2 -2
  81. package/src/core/geom/3d/plane/plane3_projectPoint.js +1 -1
  82. package/src/core/geom/3d/plane/plane3_slerp.js +3 -3
  83. package/src/core/geom/3d/ray/ray_computeNearestPointToPoint.js +1 -1
  84. package/src/core/geom/3d/ray/ray_distance_to_point.js +1 -1
  85. package/src/core/geom/3d/shape/UnionShape3D.js +3 -3
  86. package/src/core/geom/3d/shape/UnitCubeShape3D.js +1 -1
  87. package/src/core/geom/3d/shape/UnitSphereShape3D.js +1 -1
  88. package/src/core/geom/3d/shape/util/shape_to_visual_entity.js +10 -10
  89. package/src/core/geom/3d/sphere/sphere_intersects_ray.js +1 -1
  90. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +6 -0
  91. package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.js +1 -1
  92. package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.spec.js +1 -1
  93. package/src/core/geom/3d/tetrahedra/compute_circumsphere.js +1 -1
  94. package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.js +1 -0
  95. package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.spec.js +10 -2
  96. package/src/core/geom/3d/tetrahedra/prototypeTetrahedraBuilder.js +2 -2
  97. package/src/core/geom/3d/topology/bounds/computeTriangleClusterNormalBoundingCone.js +1 -1
  98. package/src/core/geom/3d/topology/samples/sampleFloodFill.js +4 -4
  99. package/src/core/geom/3d/topology/simplify/compute_face_normal_change_dot_product.js +1 -1
  100. package/src/core/geom/3d/topology/simplify/quadratic/Quadratic3.js +1 -1
  101. package/src/core/geom/3d/topology/simplify/tm_edge_collapse_is_degenerate_flip.js +2 -2
  102. package/src/core/geom/3d/topology/struct/TopoVertex.js +1 -1
  103. package/src/core/geom/3d/topology/util/compute_face_connection_weight.js +2 -2
  104. package/src/core/geom/3d/triangle/computeTrianglePlaneSide.js +1 -1
  105. package/src/core/geom/3d/triangle/computeTriangleRayIntersection.js +1 -1
  106. package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentricEdge.js +1 -1
  107. package/src/core/geom/3d/v3_compute_triangle_normal.js +1 -1
  108. package/src/core/geom/Quaternion.js +1 -1
  109. package/src/core/geom/Vector3.js +7 -7
  110. package/src/core/geom/Vector3.spec.js +68 -1
  111. package/src/core/geom/mat2/m2_add.js +17 -0
  112. package/src/core/geom/mat2/m2_determinant.js +8 -0
  113. package/src/core/geom/mat2/m2_multiply.js +17 -0
  114. package/src/core/geom/mat2/m2_multiply_scalar.js +18 -0
  115. package/src/core/geom/mat2/m2_multiply_transposed.js +18 -0
  116. package/src/core/geom/mat2/m2_sub_transposed.js +17 -0
  117. package/src/{view → core/geom/mat3}/m3_cm_compose_transform.js +0 -29
  118. package/src/core/geom/mat3/m3_cm_extract_rotation.js +8 -0
  119. package/src/core/geom/mat3/m3_cm_from_translation.js +19 -0
  120. package/src/{view/multiplyMatrices3.js → core/geom/mat3/m3_multiply.js} +2 -2
  121. package/src/{view → core/geom/mat3}/m3_rm_compose_transform.js +0 -9
  122. package/src/core/geom/mat3/m3_rm_extract_scale.js +7 -0
  123. package/src/core/geom/{3d/vector/allocate_v3.js → vec3/v3_allocate.js} +1 -1
  124. package/src/core/geom/{v3_angle_between.js → vec3/v3_angle_between.js} +1 -1
  125. package/src/core/geom/vec3/v3_dot_array_array.js +20 -0
  126. package/src/core/geom/{v3_lerp.js → vec3/v3_lerp.js} +1 -1
  127. package/src/core/graph/SquareMatrix.js +26 -3
  128. package/src/core/graph/SquareMatrix.spec.js +52 -2
  129. package/src/core/math/clamp01.js +1 -0
  130. package/src/core/math/fract.js +3 -1
  131. package/src/core/math/inverseLerp.js +7 -5
  132. package/src/core/math/lerp.js +5 -5
  133. package/src/core/math/physics/spring/computeHookeForce.js +9 -0
  134. package/src/core/math/remap.js +19 -0
  135. package/src/core/math/remap.spec.js +15 -0
  136. package/src/core/math/smoothStep.spec.js +16 -0
  137. package/src/core/math/spline/spline_bezier2.js +13 -0
  138. package/src/core/math/spline/spline_bezier2.spec.js +13 -0
  139. package/src/core/model/object/compareValues.js +2 -2
  140. package/src/core/model/object/read_property.js +10 -2
  141. package/src/core/model/object/write_property.js +3 -23
  142. package/src/core/model/object/write_property.spec.js +26 -0
  143. package/src/core/primitives/numbers/number_pretty_print.spec.js +19 -0
  144. package/src/core/process/action/AsynchronousDelayAction.js +2 -2
  145. package/src/core/process/executor/profile/ConcurrentExecutorProfiler.js +1 -1
  146. package/src/engine/EngineHarness.js +7 -7
  147. package/src/engine/EntityCreator.js +5 -5
  148. package/src/engine/__module.js +1 -1
  149. package/src/engine/achievements/AchievementManager.js +2 -2
  150. package/src/engine/animation/AnimationUtils.js +4 -4
  151. package/src/engine/animation/behavior/animateProperty.js +2 -2
  152. package/src/engine/animation/curve/draw/build_plot_entity_from_array.js +3 -3
  153. package/src/engine/animation/playAnimationTrack.js +3 -3
  154. package/src/engine/animation/playTrackRealTime.js +3 -3
  155. package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +2 -2
  156. package/src/engine/control/ControlContext.js +7 -7
  157. package/src/engine/ecs/{EntityBuilder.d.ts → Entity.d.ts} +5 -5
  158. package/src/engine/ecs/{EntityBuilder.js → Entity.js} +29 -29
  159. package/src/engine/ecs/{EntityBuilder.spec.js → Entity.spec.js} +17 -17
  160. package/src/engine/ecs/EntityBlueprint.d.ts +2 -2
  161. package/src/engine/ecs/EntityBlueprint.js +3 -3
  162. package/src/engine/ecs/EntityBlueprint.spec.js +2 -2
  163. package/src/engine/ecs/{EntityBuilderFlags.js → EntityFlags.js} +1 -1
  164. package/src/engine/ecs/EntityObserver.spec.js +8 -8
  165. package/src/engine/ecs/dynamic_actions/DynamicActorSystem.js +5 -5
  166. package/src/engine/ecs/foliage/ecs/InstancedMeshUtils.js +3 -3
  167. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts +2 -2
  168. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.js +5 -5
  169. package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +2 -2
  170. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +2 -2
  171. package/src/engine/ecs/parent/EntityNode.d.ts +3 -3
  172. package/src/engine/ecs/parent/EntityNode.js +5 -5
  173. package/src/engine/ecs/parent/testHuDPerf.js +2 -2
  174. package/src/engine/ecs/speaker/VoiceSystem.js +5 -5
  175. package/src/engine/ecs/systems/SteeringSystem.js +1 -1
  176. package/src/engine/ecs/terrain/ecs/splat/SplatMapOptimizerDebugger.js +1 -1
  177. package/src/engine/ecs/tooltip/testTooltipComponentSystem.js +3 -3
  178. package/src/engine/graphics/camera/makeOrbitalCameraController.js +3 -3
  179. package/src/engine/graphics/camera/testClippingPlaneComputation.js +3 -3
  180. package/src/engine/graphics/debug/createDebugLabel.js +3 -3
  181. package/src/engine/graphics/ecs/camera/Camera.js +1 -1
  182. package/src/engine/graphics/ecs/camera/CameraClippingPlaneComputer.js +1 -1
  183. package/src/engine/graphics/ecs/camera/filter/setup_filtered_camera_controller.js +3 -3
  184. package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +3 -11
  185. package/src/engine/graphics/ecs/decal/v2/prototypeDecalEditor.js +3 -3
  186. package/src/engine/graphics/ecs/decal/v2/prototypeDecalSystem.js +14 -14
  187. package/src/engine/graphics/ecs/highlight/Highlight.js +20 -102
  188. package/src/engine/graphics/ecs/mesh/Mesh.js +12 -18
  189. package/src/engine/graphics/ecs/mesh/MeshSystem.js +41 -26
  190. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +1 -1
  191. package/src/engine/graphics/ecs/mesh-v2/aggregate/prototypeSGMesh.js +3 -3
  192. package/src/engine/graphics/ecs/mesh-v2/sample/prototypeShadedGeometry.js +5 -5
  193. package/src/engine/graphics/ecs/mesh-v2/sample/prototype_sg_raycast.js +6 -6
  194. package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.js +3 -3
  195. package/src/engine/graphics/ecs/path/testPathDisplaySystem.js +3 -3
  196. package/src/engine/graphics/ecs/path/tube/build/TubePathBuilder.js +4 -4
  197. package/src/engine/graphics/ecs/path/tube/build/makeTubeGeometry.js +1 -1
  198. package/src/engine/graphics/ecs/path/tube/build/make_cap.js +3 -3
  199. package/src/engine/graphics/ecs/path/tube/build/make_ring_vertices.js +1 -1
  200. package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +3 -3
  201. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +2 -2
  202. package/src/engine/graphics/ecs/sprite/prototypeSpriteSystem.js +2 -2
  203. package/src/engine/graphics/geometry/MikkT/InitTriInfo.js +5 -6
  204. package/src/engine/graphics/geometry/MikkT/MikkTSpace.js +3 -3
  205. package/src/engine/graphics/geometry/MikkT/NormalizeSafe.js +1 -2
  206. package/src/engine/graphics/geometry/MikkT/STSpace.js +3 -3
  207. package/src/engine/graphics/geometry/MikkT/v3_scale_dot_sub_normalize.js +2 -2
  208. package/src/engine/graphics/geometry/bvh/buffered/BVHGeometryRaycaster.js +1 -1
  209. package/src/engine/graphics/geometry/clipping/ClippedGeometry.js +1 -1
  210. package/src/engine/graphics/geometry/optimization/merge/prototypeGeometryMerge.js +4 -4
  211. package/src/engine/graphics/impostors/octahedral/prototypeBaker.js +7 -7
  212. package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.js +1 -1
  213. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +102 -95
  214. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.spec.js +25 -0
  215. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +0 -35
  216. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.spec.js +39 -2
  217. package/src/engine/graphics/particles/particular/engine/renderers/billboard/prototypeBillboardRenderer.js +2 -2
  218. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.js +22 -6
  219. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.d.ts +2 -2
  220. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.js +3 -3
  221. package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +10 -10
  222. package/src/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +2 -2
  223. package/src/engine/graphics/render/buffer/simple-fx/taa/prototypeTAA.js +2 -2
  224. package/src/engine/graphics/render/forward_plus/LightManager.js +1 -1
  225. package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +13 -13
  226. package/src/engine/graphics/render/forward_plus/prototype/prototypeLightManager.js +3 -3
  227. package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +1 -1
  228. package/src/engine/graphics/render/layers/RenderLayerUtils.js +1 -1
  229. package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +8 -7
  230. package/src/engine/graphics/sh3/LightProbeVolume.js +3 -3
  231. package/src/engine/graphics/sh3/path_tracer/PathTracer.js +2 -2
  232. package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +2 -2
  233. package/src/engine/graphics/sh3/path_tracer/random_in_hemisphere.js +1 -1
  234. package/src/engine/graphics/sh3/path_tracer/ray_hit_apply_transform.js +1 -1
  235. package/src/engine/graphics/sh3/path_tracer/ray_reflect.js +1 -1
  236. package/src/engine/graphics/sh3/prototypeSH3Probe.js +3 -3
  237. package/src/engine/graphics/sh3/sky/hosek/data.js +3744 -0
  238. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.js +10 -3786
  239. package/src/engine/graphics/sh3/visualise_probe.js +3 -3
  240. package/src/engine/graphics/shadows/testShadowMapRendering.js +3 -3
  241. package/src/engine/graphics/texture/atlas/AbstractTextureAtlas.js +1 -1
  242. package/src/engine/graphics/texture/atlas/AtlasPatch.js +0 -1
  243. package/src/engine/graphics/texture/atlas/AtlasPatchFlag.js +8 -1
  244. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.js +25 -0
  245. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.spec.js +54 -0
  246. package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.js +101 -160
  247. package/src/engine/graphics/texture/atlas/TextureAtlas.js +18 -1
  248. package/src/engine/graphics/texture/sampler/downloadSamplerAsPNG.js +1 -1
  249. package/src/engine/graphics/texture/sampler/sampler2d_ensure_uint8_RGBA.js +22 -0
  250. package/src/engine/graphics/texture/sprite/prototypeSpriteCutoutGeometry.js +2 -2
  251. package/src/engine/graphics/util/projectSphere.js +1 -1
  252. package/src/engine/input/ecs/controllers/KeyboardCameraController.js +2 -2
  253. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +2 -2
  254. package/src/engine/intelligence/behavior/composite/ParallelBehavior.spec.js +13 -12
  255. package/src/engine/navigation/ecs/components/Path.js +1 -1
  256. package/src/engine/physics/fluid/prototype.js +3 -3
  257. package/src/engine/physics/mls-mpm/MLS_MPM.js +11 -106
  258. package/src/engine/reference/v2/Reference.js +6 -2
  259. package/src/engine/save/storage/JsonStringCodec.js +1 -1
  260. package/src/engine/save/storage/LocalStorage.js +2 -1
  261. package/src/engine/sound/ecs/emitter/SoundEmitter.js +7 -7
  262. package/src/engine/sound/ecs/emitter/SoundTrack.js +6 -6
  263. package/src/engine/ui/GUIEngine.js +4 -4
  264. package/src/engine/ui/notification/NotificationManager.js +3 -3
  265. package/src/generation/filtering/numeric/complex/CellFilterAngleToNormal.js +1 -1
  266. package/src/generation/grid/generation/road/GridTaskGenerateRoads.js +2 -4
  267. package/src/generation/markers/debug/visualizeMarkers.js +2 -2
  268. package/src/generation/markers/prototypeGridCellActionPlaceMarker.js +2 -2
  269. package/src/generation/placement/action/random/weighted/CellActionSelectWeightedRandom.js +2 -2
  270. package/src/generation/theme/ThemeEngine.js +2 -2
  271. package/src/generation/theme/ThemeEngine.spec.js +7 -0
  272. package/src/view/View.js +21 -13
  273. package/src/view/elements/ColorPickerView.js +2 -2
  274. package/src/view/minimap/gl/MarkerGL.js +20 -18
  275. package/src/view/minimap/gl/MinimapMarkersGL.js +2 -1
  276. package/editor/tools/FoliagePaintTool.js +0 -168
  277. package/editor/tools/engine/ToolStateMachine.js +0 -53
  278. package/src/core/NumberFormat.js +0 -4
  279. package/src/core/binary/ByteArrayTools.js +0 -137
  280. package/src/core/binary/NaiveBitSet.js +0 -69
  281. package/src/core/binary/objects/StandardTypeBuilder.js +0 -126
  282. package/src/core/binary/serde/JsonSerializer.js +0 -113
  283. package/src/core/color/rgb2hsv.js +0 -47
  284. package/src/core/color/rgb_to_YCbCr_uint24.js +0 -16
  285. package/src/core/fsm/StateMachine.js +0 -440
  286. package/src/core/fsm/Transition.js +0 -65
  287. package/src/core/geom/Bezier.js +0 -24
  288. package/src/core/geom/Bezier.spec.js +0 -16
  289. package/src/core/math/spline/quadraticCurve.js +0 -11
  290. package/src/core/math/spline/quadraticCurve.spec.js +0 -13
  291. package/src/core/primitives/numbers/compareNumbers.js +0 -9
  292. package/src/engine/graphics/ecs/decal/Decal.js +0 -10
  293. package/src/engine/graphics/ecs/decal/DecalSystem.js +0 -99
  294. package/src/engine/graphics/ecs/decal/threejs/DecalGeometry.js +0 -298
  295. package/src/engine/graphics/ecs/trail/Trail.js +0 -83
  296. package/src/engine/graphics/ecs/trail/TrailMaterial.js +0 -67
  297. package/src/engine/graphics/ecs/trail/TrailMaterial2.js +0 -73
  298. package/src/engine/graphics/ecs/trail/TrailSystem.js +0 -162
  299. package/src/engine/graphics/ecs/water2/NodeWaterShader1.js +0 -213
  300. package/src/engine/graphics/ecs/water2/shader/JBWaterShader.js +0 -315
  301. package/src/engine/graphics/geometry/MikkT/Length.js +0 -10
  302. package/src/engine/graphics/texture/ImageLoader.js +0 -33
  303. package/src/engine/graphics/three/DDSLoader.js +0 -286
  304. package/src/engine/graphics/three/Water2.js +0 -343
  305. package/src/engine/physics/spring/computeHookeForce.js +0 -9
  306. package/src/engine/reference/v1/ReferenceManager.js +0 -124
  307. /package/src/core/color/{hex2rgb.spec.js → hex/hex2rgb.spec.js} +0 -0
  308. /package/src/core/color/{rgb2hex.spec.js → hex/rgb2hex.spec.js} +0 -0
  309. /package/src/core/color/{hsv2rgb.spec.js → hsv/hsv2rgb.spec.js} +0 -0
  310. /package/src/core/color/{rgb_to_kelvin.js → kelvin/rgb_to_kelvin.js} +0 -0
  311. /package/src/core/color/{linear_to_sRGB.js → sRGB/linear_to_sRGB.js} +0 -0
  312. /package/src/core/color/{sRGB_to_linear.js → sRGB/sRGB_to_linear.js} +0 -0
  313. /package/src/core/geom/{m3_determinant.js → mat3/m3_determinant.js} +0 -0
  314. /package/src/core/geom/{v3_distance.js → vec3/v3_distance.js} +0 -0
  315. /package/src/core/geom/{v3_distance_above_plane.js → vec3/v3_distance_above_plane.js} +0 -0
  316. /package/src/core/geom/{v3_distance_above_plane.spec.js → vec3/v3_distance_above_plane.spec.js} +0 -0
  317. /package/src/core/geom/{v3_distance_sqr.d.ts → vec3/v3_distance_sqr.d.ts} +0 -0
  318. /package/src/core/geom/{v3_distance_sqr.js → vec3/v3_distance_sqr.js} +0 -0
  319. /package/src/core/geom/{v3_dot.js → vec3/v3_dot.js} +0 -0
  320. /package/src/core/geom/{v3_length.js → vec3/v3_length.js} +0 -0
  321. /package/src/core/geom/{v3_length_sqr.js → vec3/v3_length_sqr.js} +0 -0
  322. /package/src/core/geom/{v3_slerp.js → vec3/v3_slerp.js} +0 -0
@@ -1,4 +1,5 @@
1
1
  import { MarkerGLAttributes } from "./MarkerGLAttributes.js";
2
+ import { Reference } from "../../../engine/reference/v2/Reference.js";
2
3
 
3
4
  function logPatchLoadError(e) {
4
5
  console.error('Failed to load patch:', e);
@@ -24,21 +25,23 @@ export function MarkerGL(marker, transform, entity, id, manager) {
24
25
 
25
26
  this.id = id;
26
27
 
27
- this.patch = null;
28
+ /**
29
+ *
30
+ * @type {Reference<AtlasPatch>}
31
+ */
32
+ this.patch = Reference.NULL;
28
33
 
29
34
  this.manager = manager;
30
35
  this.particles = manager.particles;
31
36
 
32
37
  this.active = false;
33
38
 
34
- const self = this;
35
-
36
- this.updatePosition = function () {
39
+ this.updatePosition = () => {
37
40
 
38
41
  const position = transform.position;
39
42
 
40
- self.particles.executeOperationWriteAttribute_Vector3(
41
- self.id,
43
+ this.particles.executeOperationWriteAttribute_Vector3(
44
+ this.id,
42
45
  MarkerGLAttributes.AttributePosition,
43
46
  position.x,
44
47
  1,
@@ -48,26 +51,27 @@ export function MarkerGL(marker, transform, entity, id, manager) {
48
51
  manager.needsRender = true;
49
52
  };
50
53
 
51
- this.updateIcon = function (newURL, oldURL) {
54
+ this.updateIcon = (newURL, oldURL) => {
52
55
  const atlasManager = manager.atlasManager;
53
56
 
54
- if (oldURL !== null) {
55
- atlasManager.release(oldURL);
56
- }
57
+ this.patch.release();
57
58
 
58
59
  atlasManager
59
60
  .acquire(newURL)
60
- .then(function (patch) {
61
+ .then((patch) => {
62
+ this.patch = patch;
63
+
61
64
  //check if marker is still active
62
- if (!self.active) {
65
+ if (!this.active) {
63
66
  //marker is dead
64
67
  return;
65
68
  }
66
69
 
67
- const patchUv = patch.uv;
68
70
 
69
- self.particles.executeOperationWriteAttribute_Vector4(
70
- self.id,
71
+ const patchUv = patch.getValue().uv;
72
+
73
+ this.particles.executeOperationWriteAttribute_Vector4(
74
+ this.id,
71
75
  MarkerGLAttributes.AttributePatch,
72
76
  patchUv.position.x,
73
77
  patchUv.position.y,
@@ -76,8 +80,6 @@ export function MarkerGL(marker, transform, entity, id, manager) {
76
80
  );
77
81
 
78
82
  manager.needsRender = true;
79
-
80
- self.patch = patch;
81
83
  }, logPatchLoadError);
82
84
  };
83
85
  }
@@ -110,5 +112,5 @@ MarkerGL.prototype.shutdown = function () {
110
112
  this.marker.iconURL.onChanged.remove(this.updateIcon);
111
113
 
112
114
  //release reference to icon
113
- this.manager.atlasManager.release(this.marker.iconURL.getValue());
115
+ this.patch.release();
114
116
  };
@@ -225,7 +225,8 @@ export class MinimapMarkersGL extends MinimapWorldLayer {
225
225
  updateSprites() {
226
226
 
227
227
  this.markers.forEach((marker) => {
228
- const patch = marker.patch;
228
+ const patch = marker.patch.getValue();
229
+
229
230
  if (patch !== null) {
230
231
  /**
231
232
  * @type {Rectangle}
@@ -1,168 +0,0 @@
1
- import Tool from "./engine/Tool.js";
2
- import Vector1 from "../../src/core/geom/Vector1.js";
3
- import ObservedValue from "../../src/core/model/ObservedValue.js";
4
- import Vector4 from "../../src/core/geom/Vector4.js";
5
- import loadSampler2D from "../../src/engine/graphics/texture/sampler/loadSampler2D.js";
6
- import convertSampler2D2Canvas from "../../src/engine/graphics/texture/sampler/Sampler2D2Canvas.js";
7
- import { InstancedMeshComponent } from "../../src/engine/ecs/foliage/ecs/InstancedMeshComponent.js";
8
- import { hex2rgb } from "../../src/core/color/hex2rgb.js";
9
- import { obtainTerrain } from "../../src/engine/ecs/terrain/util/obtainTerrain.js";
10
-
11
- class FoliagePaintTool extends Tool {
12
- constructor() {
13
- super();
14
- this.name = "foliage_paint";
15
-
16
- this.settings.layer = new Vector1(0);
17
- this.settings.value = new Vector1(1);
18
- this.settings.alphaMultiplier = new Vector1(1);
19
- this.settings.color = new ObservedValue("#FFFFFF");
20
-
21
- this.settings.baseColor = new ObservedValue("#000000");
22
- this.settings.baseColorAlpha = new Vector1(0.6);
23
-
24
- const self = this;
25
-
26
- }
27
-
28
- updateSelection() {
29
- self.paint();
30
- }
31
-
32
- buildColor() {
33
-
34
- const color = new Vector4();
35
- const baseColor = hex2rgb(this.settings.color.get());
36
- color.set(baseColor.r, baseColor.g, baseColor.b, 0);
37
- color.multiplyScalar(1 / 255);
38
-
39
- return color;
40
- }
41
-
42
- buildBaseColor() {
43
-
44
- const color = new Vector4();
45
- const baseColor = hex2rgb(this.settings.baseColor.get());
46
- color.set(baseColor.r, baseColor.g, baseColor.b, 0);
47
- color.multiplyScalar(1 / 255);
48
-
49
- color.w = this.settings.baseColorAlpha.getValue();
50
-
51
- return color;
52
- }
53
-
54
- initialize() {
55
- super.initialize();
56
-
57
- const engine = this.engine;
58
- const editor = this.editor;
59
-
60
- this.terrain = obtainTerrain(engine.entityManager.dataset, function (t, entity) {
61
- self.terrainEntity = entity;
62
- });
63
-
64
- this.terrain.overlay.push();
65
-
66
- this.terrain.overlay.borderWidth.set(0);
67
-
68
- this.paint();
69
-
70
- editor.selection.on.added.add(this.updateSelection);
71
- editor.selection.on.removed.add(this.updateSelection);
72
- }
73
-
74
- shutdown() {
75
- this.terrain.overlay.pop();
76
-
77
- this.editor.selection.on.added.remove(this.updateSelection);
78
- this.editor.selection.on.removed.remove(this.updateSelection);
79
-
80
- this.settings.value.onChanged.remove(this.updateSelection);
81
- this.settings.alphaMultiplier.onChanged.remove(this.updateSelection);
82
- this.settings.color.onChanged.remove(this.updateSelection);
83
-
84
- super.shutdown();
85
- }
86
-
87
- paint() {
88
-
89
- const alphaMultiplier = this.settings.alphaMultiplier.getValue();
90
- const overlay = this.terrain.overlay;
91
- overlay.clear();
92
-
93
- const layer = this.settings.layer.getValue();
94
-
95
- const color = this.buildColor();
96
-
97
- const baseColor = this.buildBaseColor();
98
-
99
- const engine = this.engine;
100
-
101
- /**
102
- *
103
- * @param {InstancedMeshComponent} foliage
104
- * @param {Number} entity
105
- */
106
- function visit(foliage, entity) {
107
- const foliageLayer = foliage.layers.get(layer);
108
- loadSampler2D(foliageLayer.densityMap.get(), engine.assetManager).then(function (sampler) {
109
-
110
- overlay.size.set(sampler.width, sampler.height);
111
- overlay.clear();
112
-
113
- const v4c = new Vector4(0, 0, 0, 0);
114
-
115
- function mappingFunction(index, array, x, y) {
116
- const address = index;
117
- const alpha = sampler.data[address / 4] * alphaMultiplier;
118
- color.w = alpha;
119
-
120
- Vector4.lerp(color, baseColor, (1 - alpha), v4c);
121
-
122
- //scale to unsigned byte value
123
- v4c.multiplyScalar(255);
124
-
125
-
126
- array[address] = v4c.x;
127
- array[address + 1] = v4c.y;
128
- array[address + 2] = v4c.z;
129
- //alpha
130
- array[address + 3] = v4c.w;
131
- }
132
-
133
- convertSampler2D2Canvas(sampler, 1, 0, overlay.canvas, mappingFunction);
134
-
135
- overlay.update();
136
- });
137
- }
138
-
139
- //initialize overlay
140
- this.traverse(visit);
141
- }
142
-
143
- traverse(callback) {
144
- /**
145
- * @type {EntityManager}
146
- */
147
- const entityManger = this.engine.entityManager;
148
- this.editor.selection.forEach(function (entity) {
149
-
150
- /**
151
- *
152
- * @type {InstancedMeshComponent}
153
- */
154
- const foliage = entityManger.getComponent(entity, InstancedMeshComponent);
155
-
156
-
157
- if (foliage === null) {
158
- //do nothing
159
- return;
160
- }
161
-
162
- callback(foliage, entity);
163
- });
164
- }
165
- }
166
-
167
-
168
- export default FoliagePaintTool;
@@ -1,53 +0,0 @@
1
- import { SimpleStateMachineDescription } from "../../../src/core/fsm/simple/SimpleStateMachineDescription.js";
2
- import { ToolState } from "./ToolState.js";
3
- import { StateMachine } from "../../../src/core/fsm/StateMachine.js";
4
-
5
- const smd = new SimpleStateMachineDescription();
6
-
7
- smd.createState(ToolState.Initial);
8
- smd.createState(ToolState.Ready);
9
- smd.createState(ToolState.Running);
10
-
11
- smd.createEdge(ToolState.Initial, ToolState.Ready);
12
- smd.createEdge(ToolState.Ready, ToolState.Initial);
13
- smd.createEdge(ToolState.Ready, ToolState.Running);
14
- smd.createEdge(ToolState.Running, ToolState.Ready);
15
-
16
-
17
- /**
18
- * @param {Tool} tool
19
- * @returns {StateMachine}
20
- */
21
- export function buildToolStateMachine(tool) {
22
- const sm = new StateMachine(smd);
23
-
24
- sm.addState(ToolState.Initial);
25
- sm.addState(ToolState.Ready);
26
- sm.addState(ToolState.Running);
27
-
28
-
29
- sm.createTransition(ToolState.Initial, ToolState.Ready, () => {
30
- tool.initialize();
31
- return Promise.resolve();
32
- });
33
-
34
- sm.createTransition(ToolState.Ready, ToolState.Initial, () => {
35
- tool.shutdown();
36
- return Promise.resolve();
37
- });
38
-
39
- sm.createTransition(ToolState.Ready, ToolState.Running, () => {
40
- tool.start();
41
- return Promise.resolve();
42
- });
43
-
44
- sm.createTransition(ToolState.Running, ToolState.Ready, () => {
45
- tool.stop();
46
- return Promise.resolve();
47
- });
48
-
49
- sm.setState(ToolState.Initial);
50
-
51
-
52
- return sm;
53
- }
@@ -1,4 +0,0 @@
1
- /**
2
- * Created by Alex on 08/08/2016.
3
- * @copyright Alex Goldring 2016
4
- */
@@ -1,137 +0,0 @@
1
- /**
2
- * Created by Alex on 03/11/2016.
3
- * @author Alex Goldring
4
- * @author google.closure library team
5
- */
6
-
7
- import { stringifyStream } from "../json/JsonUtils.js";
8
-
9
- /**
10
- * Turns a string into an array of bytes; a "byte" being a JS number in the
11
- * range 0-255.
12
- * @param {string} str String value to arrify.
13
- * @return {!Uint8Array} Array of numbers corresponding to the
14
- * UCS character codes of each character in str.
15
- */
16
- function stringToByteArray(str) {
17
- const length = str.length;
18
-
19
- const output = [];
20
- let p = 0;
21
-
22
- for (let i = 0; i < length; i++) {
23
- let c = str.charCodeAt(i);
24
- while (c > 0xff) {
25
- output[p++] = c & 0xff;
26
- c >>= 8;
27
- }
28
- output[p++] = c;
29
- }
30
-
31
- const uint8Array = new Uint8Array(output);
32
-
33
- return uint8Array;
34
- }
35
-
36
-
37
- /**
38
- * Turns an array of numbers into the string given by the concatenation of the
39
- * characters to which the numbers correspond.
40
- * @param {!Uint8Array|!Array<number>} bytes Array of numbers representing
41
- * characters.
42
- * @return {string} Stringification of the array.
43
- */
44
- function byteArrayToString(bytes) {
45
- const numBytes = bytes.length;
46
-
47
- const CHUNK_SIZE = 8192;
48
-
49
- // Special-case the simple case for speed's sake.
50
- if (numBytes <= CHUNK_SIZE) {
51
- return String.fromCharCode.apply(null, bytes);
52
- }
53
-
54
- // The remaining logic splits conversion by chunks since
55
- // Function#apply() has a maximum parameter count.
56
- // See discussion: http://goo.gl/LrWmZ9
57
-
58
- let str = '';
59
- for (let i = 0; i < numBytes; i += CHUNK_SIZE) {
60
- const chunk = Array.prototype.slice.call(bytes, i, i + CHUNK_SIZE);
61
- str += String.fromCharCode.apply(null, chunk);
62
- }
63
- return str;
64
- }
65
-
66
- /**
67
- *
68
- * @param {Object} json
69
- * @returns {number[]}
70
- */
71
- function jsonToStringToByteArray(json) {
72
- const output = [];
73
- let p = 0;
74
-
75
- function addToOutput(str) {
76
- for (let i = 0; i < str.length; i++) {
77
- let c = str.charCodeAt(i);
78
- while (c > 0xff) {
79
- output[p++] = c & 0xff;
80
- c >>= 8;
81
- }
82
- output[p++] = c;
83
- }
84
- }
85
-
86
- stringifyStream(json, addToOutput);
87
- return output;
88
- }
89
-
90
-
91
- /**
92
- *
93
- * @param {string} url
94
- * @param {string} filename
95
- */
96
- export function downloadUrlAsFile(url, filename) {
97
- const elem = window.document.createElement('a');
98
- elem.href = url;
99
- elem.download = filename;
100
- document.body.appendChild(elem);
101
- elem.click();
102
- document.body.removeChild(elem);
103
- }
104
-
105
- function downloadAsFile(data, filename, type = 'text/json') {
106
-
107
- let blobContent;
108
-
109
- if (data instanceof ArrayBuffer || data instanceof Uint8Array) {
110
- //raw binary data
111
- blobContent = [data];
112
- } else if (data instanceof Array) {
113
- //already an array
114
- blobContent = data;
115
- } else if (data instanceof Blob) {
116
- //already a blob
117
- blobContent = [data];
118
- } else if (typeof data === "string") {
119
- blobContent = [data];
120
- } else {
121
- blobContent = [data]
122
- }
123
-
124
- const blob = new Blob(blobContent, { type });
125
- if (window.navigator.msSaveOrOpenBlob) {
126
- window.navigator.msSaveBlob(blob, filename);
127
- } else {
128
- downloadUrlAsFile(window.URL.createObjectURL(blob), filename);
129
- }
130
- }
131
-
132
- export {
133
- stringToByteArray,
134
- byteArrayToString,
135
- jsonToStringToByteArray,
136
- downloadAsFile
137
- };
@@ -1,69 +0,0 @@
1
- /**
2
- * Used for testing of BitSet correctness and performance
3
- * NOTE: Not intended for production. Use {@link BitSet} instead
4
- */
5
- export class NaiveBitSet {
6
- constructor() {
7
- this.data = [];
8
- }
9
-
10
- nextSetBit(fromIndex) {
11
- let i;
12
-
13
- for (i = fromIndex; i < this.data.length; i++) {
14
- if (this.data[i] === true) {
15
- return i;
16
- }
17
- }
18
-
19
- return -1;
20
- }
21
-
22
- nextClearBit(fromIndex) {
23
- let i;
24
-
25
- for (i = fromIndex; i < this.data.length; i++) {
26
- if (this.data[i] !== true) {
27
- return i;
28
- }
29
- }
30
-
31
- return i;
32
- }
33
-
34
- previousSetBit(fromIndex) {
35
- let i;
36
-
37
- for (i = fromIndex; i >= 0; i--) {
38
- if (this.data[i] === true) {
39
- return i;
40
- }
41
- }
42
-
43
- return -1;
44
- }
45
-
46
- set(bitIndex, value) {
47
- this.data[bitIndex] = value;
48
- }
49
-
50
- get(bitIndex) {
51
- return (this.data[bitIndex] === true);
52
- }
53
-
54
- size() {
55
- return this.data.length;
56
- }
57
-
58
- setCapacity(n) {
59
- //do nothing
60
- }
61
-
62
- capacity() {
63
- return this.data.length;
64
- }
65
-
66
- reset() {
67
- this.data = [];
68
- }
69
- }
@@ -1,126 +0,0 @@
1
- /**
2
- * Created by Alex on 14/12/2016.
3
- */
4
-
5
-
6
- import LineBuilder from "../../codegen/LineBuilder.js";
7
- import MultiplicityType from "../type/MultiplicityType.js";
8
-
9
- function cgFieldFromJSON(field) {
10
-
11
- }
12
-
13
- function generateStructure(type, typeRegistry) {
14
- const lbConstruct = new LineBuilder();
15
- const lbSerialize = new LineBuilder();
16
- const lbDeSerialize = new LineBuilder();
17
- //add fields
18
- if (type.isPrimitive) {
19
- throw new Error('Can not create a constructor for primitive type');
20
- }
21
- lbSerialize.add('return {');
22
- lbSerialize.indent();
23
-
24
- type.fields.forEach(function (field, index) {
25
- lbConstruct.add('this.' + field.name + ' = ' + field.initial + ';');
26
-
27
- lbSerialize.add(field.name + ': this.' + field.name + '.toJSON()' + ((index < type.fields.length - 1) ? ',' : ''));
28
-
29
- lbDeSerialize.add('this.' + field.name + ' = ');
30
- });
31
-
32
- lbSerialize.dedent();
33
- lbSerialize.add('};');
34
-
35
- }
36
-
37
- function build(type, typeRegistry) {
38
- return typeRegistry.getOrCompute(type.name, function () {
39
- return generateStructure(type, typeRegistry);
40
- });
41
- }
42
-
43
-
44
- function ClassBuilder() {
45
- this.dependencies = [];
46
-
47
- this.fragments = {
48
- init: new LineBuilder(),
49
- serialize: new LineBuilder(),
50
- deserialize: new LineBuilder()
51
- };
52
- this.jsonFields = [];
53
- }
54
-
55
- ClassBuilder.prototype.loadClass = function (name) {
56
- const dependencies = this.dependencies;
57
- const length = dependencies.length;
58
- for (let i = 0; i < length; i++) {
59
- const dependency = dependencies[i];
60
- if (dependency === name) {
61
- return "$" + i;
62
- }
63
- }
64
- this.dependencies.push(name);
65
- return "$" + length;
66
- };
67
- /**
68
- *
69
- * @param {Field} field
70
- */
71
- ClassBuilder.prototype.addField = function (field) {
72
- let handle;
73
-
74
- const fInit = this.fragments.init;
75
- const fDeSerialize = this.fragments.deserialize;
76
-
77
- const fieldType = field.type;
78
- const fieldName = field.name;
79
-
80
- const cgFieldVar = 'this.' + fieldName;
81
-
82
- let cgSerializedValue;
83
-
84
- const cgFieldJson = 'json.' + fieldName;
85
-
86
- if (field.multiplicity === MultiplicityType.Many) {
87
- handle = this.loadClass('core.collection.List');
88
-
89
- fInit.add(cgFieldVar + ' = new ' + handle + "();");
90
- cgSerializedValue = cgFieldVar + '.toJSON()';
91
-
92
- if (fieldType.isPrimitive) {
93
- fDeSerialize.add(cgFieldVar + '.fromJSON(' + cgFieldJson + ');');
94
- } else {
95
- handle = this.loadClass(fieldType.name);
96
- fDeSerialize.add(cgFieldVar + '.fromJSON(' + cgFieldJson + ', ' + handle + ');');
97
- }
98
-
99
- } else if (field.observed) {
100
- handle = this.loadClass('core.model.ObservedValue');
101
- fInit.add(cgFieldVar + ' = new ' + handle + "(" + field.initial + ");");
102
- cgSerializedValue = cgFieldVar + '.get()';
103
- if (!fieldType.isPrimitive) {
104
- cgSerializedValue += '.toJSON()';
105
- fDeSerialize.add(cgFieldVar + '.get().fromJSON(' + cgFieldJson + ');');
106
- } else {
107
- fDeSerialize.add(cgFieldVar + '.fromJSON(' + cgFieldJson + ');');
108
- }
109
-
110
- } else {
111
- fInit.add(cgFieldVar + ' = (' + field.initial + ');');
112
- cgSerializedValue = cgFieldVar;
113
- if (!fieldType.isPrimitive) {
114
- cgSerializedValue += '.toJSON()';
115
- fDeSerialize.add(cgFieldVar + '.fromJSON(' + cgFieldJson + ');');
116
- } else {
117
- fDeSerialize.add(cgFieldVar + ' = (' + cgFieldJson + ');');
118
- }
119
- }
120
-
121
- this.jsonFields.push(fieldName + ' : ' + cgSerializedValue);
122
- };
123
-
124
- export default {
125
- build: build
126
- };