@woosh/meep-engine 2.33.23 → 2.33.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/binary/BitSet.js +151 -167
- package/core/binary/BitSet.spec.js +99 -1
- package/core/binary/ValidatingBitSetWrapper.js +81 -0
- package/core/bvh2/BinaryNode.js +1 -1
- package/core/bvh2/aabb3/AABB3.js +21 -10
- package/core/bvh2/aabb3/AABB3Math.js +1 -1
- package/core/bvh2/binary/2/BinaryUint32BVH.js +498 -0
- package/core/bvh2/binary/2/BinaryUint32BVH.spec.js +54 -0
- package/core/bvh2/binary/IndexedBinaryBVH.js +22 -26
- package/core/bvh2/traversal/ThreeClippingPlaneComputingBVHVisitor.js +5 -1
- package/core/bvh2/traversal/__detailed_box_volume_intersection.js +22 -5
- package/core/cache/Cache.d.ts +4 -2
- package/core/cache/Cache.js +5 -2
- package/core/collection/ArrayUtils.js +1 -1
- package/core/collection/HashMap.d.ts +9 -2
- package/core/collection/HashSet.d.ts +7 -2
- package/core/collection/HashSet.js +7 -2
- package/core/collection/array/arrayQuickSort.js +9 -6
- package/core/collection/array/array_swap.js +22 -0
- package/core/collection/array/binarySearchHighIndex.js +1 -1
- package/core/collection/array/computeHashArray.js +22 -0
- package/core/collection/array/computeHashIntegerArray.js +15 -0
- package/core/collection/array/copyArray.js +2 -2
- package/core/collection/array/typed/typed_array_copy.js +1 -1
- package/core/collection/table/DataType2TypedArrayConstructorMapping.js +15 -0
- package/core/color/Color.js +2 -1
- package/core/function/FunctionCompiler.js +2 -1
- package/core/geom/3d/aabb/aabb3_computeDistanceAbovePlane.js +9 -33
- package/core/geom/3d/frustum/array_setFromProjectionMatrix.js +3 -3
- package/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.js +1 -1
- package/core/geom/3d/line/line3_computeSegmentPointDistance_sqr.js +41 -0
- package/core/geom/3d/morton/mortonEncode_magicbits.js +2 -1
- package/core/geom/3d/morton/reinterpret_float32_as_int32.js +13 -0
- package/core/geom/3d/morton/v3_morton_encode_transformed.js +33 -0
- package/core/geom/3d/normal/hemioct/unit_hemioct.spec.js +1 -1
- package/core/geom/3d/ray/ray_computeNearestPointToPoint.js +37 -0
- package/core/geom/3d/shape/AbstractShape3D.js +65 -0
- package/core/geom/3d/shape/TransformedShape3D.js +181 -0
- package/core/geom/3d/shape/TransformedShape3D.spec.js +33 -0
- package/core/geom/3d/shape/UnionShape3D.js +255 -0
- package/core/geom/3d/shape/UnitCubeShape3D.js +101 -0
- package/core/geom/3d/shape/UnitCubeShape3D.spec.js +42 -0
- package/core/geom/3d/shape/UnitSphereShape3D.js +55 -0
- package/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.js +48 -0
- package/core/geom/3d/shape/util/shape_to_visual_entity.js +159 -0
- package/core/geom/AABB2.js +1 -1
- package/core/geom/ConicRay.js +3 -1
- package/core/geom/LineSegment.js +0 -78
- package/core/geom/Matrix4.js +7 -8
- package/core/geom/Rectangle.js +2 -1
- package/core/geom/Vector1.js +1 -1
- package/core/geom/Vector3.js +2 -1
- package/core/geom/Vector4.js +2 -1
- package/core/geom/random/randomPointInBox.js +7 -3
- package/core/geom/random/randomPointInPoint.js +6 -3
- package/core/geom/random/randomPointInSphere.js +9 -5
- package/core/geom/random/randomPointOnBox.js +7 -3
- package/core/geom/random/randomPointOnSphere.js +6 -3
- package/core/geom/v3_length.js +8 -3
- package/core/graph/graph_k_means_cluster.js +1 -1
- package/core/json/resolvePathByArray.js +2 -2
- package/core/math/MathUtils.js +0 -354
- package/core/math/MathUtils.spec.js +7 -1
- package/core/math/gaussian.js +9 -0
- package/core/math/hash/computeHashFloat.js +17 -0
- package/core/math/hash/computeHashFloatArray.js +34 -0
- package/core/math/hash/computeObjectHash.js +54 -0
- package/core/math/intersects1D.js +19 -0
- package/core/math/interval/NumericInterval.js +2 -2
- package/core/math/isValueBetween.js +10 -0
- package/core/math/isValueBetweenInclusive.js +10 -0
- package/core/math/noise/curl_noise_3dt.js +1 -1
- package/core/math/noise/sdnoise.js +10 -10
- package/core/math/overlap1D.js +19 -0
- package/core/math/pingpong.js +17 -0
- package/core/math/random/makeRangedRandom.js +19 -0
- package/core/math/random/randomFloatBetween.js +14 -0
- package/core/math/random/randomFromArray.js +19 -0
- package/core/math/random/randomGaussian.js +15 -0
- package/core/math/random/randomIntegerBetween.js +14 -0
- package/core/math/random/roundFair.js +15 -0
- package/core/math/separation1D.js +21 -0
- package/core/math/solveQuadratic.js +25 -0
- package/core/model/BoundedValue.js +1 -1
- package/core/model/node-graph/node/NodeInstancePortReference.js +1 -1
- package/core/model/node-graph/node/Port.js +1 -1
- package/core/model/reactive/evaluation/MultiPredicateEvaluator.spec.js +3 -1
- package/core/model/reactive/model/ReactiveBinaryExpression.js +1 -1
- package/core/model/reactive/model/terminal/ReactiveLiteralNumber.js +1 -1
- package/core/model/reactive/model/terminal/ReactiveReference.js +1 -1
- package/core/model/reactive/model/util/createRandomReactiveExpression.js +1 -1
- package/core/model/stat/LinearModifier.js +1 -1
- package/core/parser/simple/Token.d.ts +13 -0
- package/core/parser/simple/Token.js +61 -27
- package/{engine/graphics/render/forward_plus/materials → core/primitives/strings}/insert_after.js +3 -0
- package/core/primitives/strings/insert_after_or_replace.js +27 -0
- package/editor/process/symbolic/makeHelperBoxGeometry.js +44 -0
- package/editor/tools/FoliagePaintTool.js +4 -4
- package/editor/view/ecs/EntityEditor.js +2 -2
- package/editor/view/ecs/components/particles/ParticleEmitterController.js +2 -2
- package/engine/EngineHarness.js +1 -0
- package/engine/animation/AnimationUtils.js +5 -5
- package/engine/animation/curve/AnimationCurve.js +72 -0
- package/engine/animation/curve/Keyframe.js +27 -0
- package/engine/animation/keyed2/AnimationTrack.js +27 -3
- package/engine/asset/Asset.js +1 -1
- package/engine/asset/loaders/GLTFAssetLoader.d.ts +1 -1
- package/engine/asset/loaders/GLTFAssetLoader.js +62 -1
- package/engine/asset/loaders/image/ImageDecoderWorker.js +4 -3
- package/engine/asset/loaders/image/ImageRGBADataAsset.js +10 -2
- package/engine/asset/loaders/image/ImageRGBADataLoader.js +3 -3
- package/engine/asset/loaders/image/codec/NativeImageDecoder.js +2 -1
- package/engine/asset/loaders/image/png/PNG.js +113 -6
- package/engine/asset/loaders/image/png/PNGReader.js +5 -0
- package/engine/asset/loaders/material/bitmap2sampler_gl.js +1 -1
- package/engine/asset/loaders/material/computeImageBitmapEquality.js +6 -1
- package/engine/asset/loaders/material/computeMaterialHash.js +3 -1
- package/engine/asset/loaders/material/computeTextureEquality.js +40 -49
- package/engine/asset/loaders/material/computeTextureHash.js +2 -1
- package/engine/ecs/EntityBuilder.js +25 -5
- package/engine/ecs/EntityComponentDataset.js +1 -1
- package/engine/ecs/animation/Animation.js +2 -1
- package/engine/ecs/animation/InverseKinematics.js +2 -1
- package/engine/ecs/attachment/AttachmentBinding.js +8 -0
- package/engine/ecs/attachment/AttachmentSystem.js +4 -0
- package/engine/ecs/attachment/TransformAttachmentBinding.js +14 -44
- package/engine/ecs/components/Tag.js +27 -6
- package/engine/ecs/dynamic_actions/DynamicActorSystem.js +2 -1
- package/engine/ecs/dynamic_actions/DynamicRuleDescriptionTable.spec.js +3 -5
- package/engine/ecs/dynamic_actions/actions/definition/WeightedRandomActionDescription.js +1 -1
- package/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.js +1 -1
- package/engine/ecs/foliage/InstancedFoliage.js +277 -266
- package/engine/ecs/foliage/ecs/Foliage2System.js +7 -7
- package/engine/ecs/foliage/ecs/InstancedMeshComponent.js +37 -0
- package/engine/ecs/foliage/ecs/{Foliage2.js → InstancedMeshLayer.js} +3 -45
- package/engine/ecs/foliage/ecs/InstancedMeshSerializationAdapter.js +6 -5
- package/engine/ecs/foliage/ecs/InstancedMeshUtils.js +7 -6
- package/engine/ecs/fow/FogOfWar.js +4 -0
- package/engine/ecs/fow/FogOfWarSystem.js +2 -0
- package/engine/ecs/fow/shader/FogOfWarRenderer.js +1 -1
- package/engine/ecs/gui/GUIElement.js +1 -1
- package/engine/ecs/gui/hud/HeadsUpDisplay.js +1 -1
- package/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +2 -0
- package/engine/ecs/gui/position/ViewportPosition.js +2 -1
- package/engine/ecs/storage/binary/BinarySerializationRegistry.js +1 -1
- package/engine/ecs/system/AbstractContextSystem.js +1 -1
- package/engine/ecs/systems/RangedAttackSystem.js +1 -1
- package/engine/ecs/systems/SteeringSystem.js +1 -1
- package/engine/ecs/systems/TagSystem.js +17 -0
- package/engine/ecs/terrain/ecs/layers/TerrainLayer.js +12 -16
- package/engine/ecs/terrain/tiles/TerrainTileManager.js +1 -1
- package/engine/ecs/tooltip/TooltipComponent.js +15 -0
- package/engine/ecs/transform/Transform.js +19 -6
- package/engine/graphics/GraphicsEngine.js +11 -6
- package/engine/graphics/composit/CompositLayer.js +17 -4
- package/engine/graphics/composit/CompositingStages.js +8 -0
- package/engine/graphics/composit/LayerCompositer.js +35 -6
- package/engine/graphics/ecs/animation/animator/AnimationClip.js +2 -1
- package/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +2 -1
- package/engine/graphics/ecs/animation/animator/AnimationNotification.js +2 -1
- package/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.js +2 -1
- package/engine/graphics/ecs/animation/animator/graph/AnimationGraph.js +2 -1
- package/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +2 -1
- package/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.js +1 -1
- package/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js +2 -1
- package/engine/graphics/ecs/camera/CameraClippingPlaneComputer.js +1 -1
- package/engine/graphics/ecs/highlight/HighlightDefinition.js +2 -1
- package/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.js +11 -7
- package/engine/graphics/ecs/light/Light.d.ts +1 -1
- package/engine/graphics/ecs/light/Light.js +5 -0
- package/engine/graphics/ecs/light/binding/three/ThreeLightBinding.js +5 -1
- package/engine/graphics/ecs/mesh/Mesh.js +2 -1
- package/engine/graphics/ecs/mesh-v2/DrawMode.js +5 -0
- package/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts +13 -0
- package/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +32 -18
- package/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts +6 -0
- package/engine/graphics/geometry/AttributeSpec.js +105 -0
- package/engine/graphics/{micron/format/MicronVertexDataSpec.js → geometry/VertexDataSpec.js} +56 -25
- package/engine/graphics/geometry/instancing/InstancedMeshGroup.js +14 -72
- package/engine/graphics/geometry/instancing/rewriteMaterial.js +70 -0
- package/engine/graphics/material/manager/MaterialManager.js +2 -1
- package/engine/graphics/micron/build/buildMicronGeometryFromBufferGeometry.js +7 -7
- package/engine/graphics/micron/build/fill_patch_geometry_data.js +1 -1
- package/engine/graphics/micron/buildPatchwork.js +1 -1
- package/engine/graphics/micron/format/MicronGeometry.js +3 -3
- package/engine/graphics/micron/format/serialization/MicronGeometryBinarySerializationAdapter.js +2 -2
- package/engine/graphics/micron/format/serialization/deserialize_attribute_spec.js +1 -1
- package/engine/graphics/micron/format/serialization/serialize_attribute_spec.js +1 -1
- package/engine/graphics/micron/render/PatchCacheKey.js +1 -1
- package/engine/graphics/micron/render/instanced/AttributeDataTexture.js +11 -9
- package/engine/graphics/micron/render/instanced/ThreeInstancedAdapter.js +0 -2
- package/engine/graphics/micron/render/v1/ThreeVirtualGeometryAdapter.js +1 -1
- package/engine/graphics/particles/ParticleEmitterLibrary.js +3 -0
- package/engine/graphics/particles/ecs/{ParticleEmitterSystem2.js → ParticleEmitterSystem.js} +17 -9
- package/engine/graphics/particles/particular/engine/ParticularEngine.js +8 -2
- package/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.js +80 -16
- package/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +71 -77
- package/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.js +5 -0
- package/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +2 -1
- package/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +141 -14
- package/engine/graphics/particles/particular/engine/emitter/ParticlePool.spec.js +8 -7
- package/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.js +1 -1
- package/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.js +8 -2
- package/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.js +2 -1
- package/engine/graphics/particles/particular/engine/parameter/ParameterTrack.js +1 -1
- package/engine/graphics/particles/particular/engine/parameter/ParticleParameter.js +1 -1
- package/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.js +24 -0
- package/engine/graphics/particles/particular/engine/renderers/billboard/ParticleBillboardMaterial.js +262 -71
- package/engine/graphics/particles/particular/engine/renderers/billboard/prototypeBillboardRenderer.js +9 -9
- package/engine/graphics/particles/particular/engine/shader/ShaderManager.js +81 -48
- package/engine/graphics/particles/particular/engine/shader/debugAtlas.js +14 -0
- package/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.js +2 -5
- package/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.js +2 -6
- package/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.js +2 -7
- package/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.js +2 -5
- package/engine/graphics/particles/particular/engine/simulator/update_parameters.js +1 -1
- package/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.js +1 -1
- package/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.js +1 -1
- package/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.js +141 -0
- package/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.js +478 -0
- package/engine/graphics/particles/particular/engine/utils/volume/lut_to_sampler.js +27 -0
- package/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +938 -0
- package/engine/graphics/particles/particular/group/Operation.js +18 -0
- package/engine/graphics/particles/particular/group/OperationType.js +9 -0
- package/engine/graphics/particles/particular/group/ParticleAttribute.js +2 -1
- package/engine/graphics/particles/particular/group/ParticleAttributeType.js +11 -0
- package/engine/graphics/particles/particular/group/ParticleDataType.js +10 -0
- package/engine/graphics/particles/particular/group/ParticleGroup.js +7 -245
- package/engine/graphics/particles/particular/group/ParticleGroup.spec.js +3 -1
- package/engine/graphics/particles/particular/group/ParticleSpecification.js +21 -14
- package/engine/graphics/particles/particular/group/itemSizeFromAttributeType.js +20 -0
- package/engine/graphics/particles/particular/group/optimizeCommandQueue.js +162 -0
- package/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.js +19 -0
- package/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js +16 -11
- package/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameter.js +2 -1
- package/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameterSet.js +1 -1
- package/engine/graphics/render/forward_plus/LightManager.js +117 -94
- package/engine/graphics/render/forward_plus/PointLight.js +9 -0
- package/engine/graphics/render/forward_plus/PointLightData.js +1 -1
- package/engine/graphics/render/forward_plus/SpotLight.js +9 -0
- package/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.js +2 -2
- package/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.js +1 -0
- package/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.js +32 -0
- package/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.js +51 -0
- package/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.js +25 -0
- package/engine/graphics/render/forward_plus/materials/FPlusDebugMaterial.js +3 -3
- package/engine/graphics/render/forward_plus/materials/ForwardPlusThreeMaterial.js +1 -1
- package/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.js +31 -120
- package/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.js +35 -0
- package/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.js +4 -5
- package/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.js +1 -1
- package/engine/graphics/render/forward_plus/plugin/MaterialTransformer.js +10 -3
- package/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +594 -59
- package/engine/graphics/render/forward_plus/prototypeLightManager.js +208 -89
- package/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.js +8 -0
- package/engine/graphics/render/forward_plus/query/cube_mapping.js +38 -0
- package/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +86 -0
- package/engine/graphics/render/forward_plus/query/point_light_inside_volume.js +74 -0
- package/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_objects.js +131 -0
- package/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.js +129 -0
- package/engine/graphics/render/forward_plus/query/spot_light_inside_volume.js +33 -0
- package/engine/graphics/render/forward_plus/read_frustum_corner.js +14 -0
- package/engine/graphics/render/forward_plus/testClusterEquality.js +22 -0
- package/engine/graphics/render/visibility/IncrementalDeltaSet.js +11 -0
- package/engine/graphics/render/visibility/hiz/prototypeHiZ.js +1 -1
- package/engine/graphics/shaders/TerrainShader.js +4 -5
- package/engine/graphics/shadows/ShadowMapRenderer.js +8 -2
- package/engine/graphics/texture/atlas/ManagedTextureAtlas.js +12 -1
- package/engine/graphics/texture/sampler/HarmonicDiffusionGrid.spec.js +1 -1
- package/engine/graphics/texture/sampler/SampleTraverser.js +1 -1
- package/engine/graphics/texture/sampler/Sampler2D.js +3 -1
- package/engine/graphics/texture/sampler/convertTexture2Sampler2D.js +1 -1
- package/engine/graphics/texture/sampler/copy_Sampler2D_channel_data.js +66 -0
- package/engine/graphics/texture/sampler/distanceField.spec.js +1 -1
- package/engine/graphics/util/composeMatrix4.js +33 -23
- package/engine/graphics/util/decompose_matrix_4_array.js +61 -0
- package/engine/grid/components/GridObstacle.js +1 -1
- package/engine/intelligence/behavior/ecs/BehaviorComponent.js +30 -14
- package/engine/intelligence/behavior/selector/WeightedElement.js +2 -1
- package/engine/intelligence/optimization/RandomOptimizer.js +1 -1
- package/engine/knowledge/database/StaticKnowledgeDataTable.js +6 -1
- package/engine/navigation/ecs/components/Path.js +1 -6
- package/engine/navigation/grid/FastBinaryHeap.spec.js +1 -1
- package/engine/sound/ecs/emitter/SoundEmitter.js +2 -1
- package/engine/sound/ecs/emitter/SoundTrack.js +2 -1
- package/engine/sound/material/concrete/RandomSoundMaterial.js +1 -1
- package/engine/ui/notification/notificationGenerator.js +1 -1
- package/generation/filtering/numeric/complex/CellFilterGaussianBlur.js +1 -1
- package/generation/grid/generation/GridTaskExecuteRuleTimes.js +2 -1
- package/generation/markers/actions/MarkerNodeActionSelectRandom.js +1 -1
- package/generation/markers/transform/MarkerNodeTransformerRecordUniqueRandomEnum.js +1 -1
- package/generation/placement/action/random/CellActionSelectRandom.js +1 -1
- package/generation/theme/ThemeEngine.js +1 -1
- package/misc/makeMaterialIconCached.js +2 -2
- package/package.json +1 -1
- package/view/elements/image/HTMLElementCacheKey.js +2 -1
- package/view/elements/radial/RadialText.js +2 -1
- package/view/minimap/gl/MinimapMarkersGL.js +6 -100
- package/view/minimap/gl/MinimapWorldGL.js +12 -5
- package/view/minimap/gl/buildMaterial.js +94 -0
- package/engine/graphics/micron/format/MicronGeometryBufferAttributeSpec.js +0 -71
- package/engine/graphics/render/forward_plus/queryBVH_Frustum.js +0 -357
|
@@ -161,7 +161,7 @@ function grad2(result, hash) {
|
|
|
161
161
|
* @param {number[]} result
|
|
162
162
|
* @param {number} hash
|
|
163
163
|
*/
|
|
164
|
-
function grad3(result, hash
|
|
164
|
+
function grad3(result, hash) {
|
|
165
165
|
const h = hash & 15;
|
|
166
166
|
|
|
167
167
|
const h3 = h * 3;
|
|
@@ -253,8 +253,8 @@ function sdnoise1(derivatives, x) {
|
|
|
253
253
|
* F2 = 0.5*(sqrt(3.0)-1.0)
|
|
254
254
|
* G2 = (3.0-Math.sqrt(3.0))/6.0
|
|
255
255
|
*/
|
|
256
|
-
const F2 = .
|
|
257
|
-
const G2 = .
|
|
256
|
+
const F2 = 0.3660254037844386;
|
|
257
|
+
const G2 = 0.21132486540518713;
|
|
258
258
|
|
|
259
259
|
/** 2D simplex noise with derivatives.
|
|
260
260
|
* If the last two arguments are not null, the analytic derivative
|
|
@@ -398,8 +398,8 @@ function sdnoise2(derivatives, x, y) {
|
|
|
398
398
|
/* Skewing factors for 3D simplex grid:
|
|
399
399
|
* F3 = 1/3
|
|
400
400
|
* G3 = 1/6 */
|
|
401
|
-
const F3 = .
|
|
402
|
-
const G3 = .
|
|
401
|
+
const F3 = 0.3333333333333333;
|
|
402
|
+
const G3 = 0.16666666666666666;
|
|
403
403
|
|
|
404
404
|
|
|
405
405
|
/** 3D simplex noise with derivatives.
|
|
@@ -519,9 +519,9 @@ export function sdnoise3(derivatives, x, y, z) {
|
|
|
519
519
|
const z3 = z0 - 1.0 + G9;
|
|
520
520
|
|
|
521
521
|
/* Wrap the integer indices at 256, to avoid indexing perm[] out of bounds */
|
|
522
|
-
const ii = i
|
|
523
|
-
const jj = j
|
|
524
|
-
const kk = k
|
|
522
|
+
const ii = i & 255;
|
|
523
|
+
const jj = j & 255;
|
|
524
|
+
const kk = k & 255;
|
|
525
525
|
|
|
526
526
|
/* Calculate the contribution from the four corners */
|
|
527
527
|
t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0;
|
|
@@ -652,8 +652,8 @@ export function sdnoise3(derivatives, x, y, z) {
|
|
|
652
652
|
}
|
|
653
653
|
|
|
654
654
|
// The skewing and unskewing factors are hairy again for the 4D case
|
|
655
|
-
const F4 = 0.
|
|
656
|
-
const G4 = 0.
|
|
655
|
+
const F4 = 0.30901699437494745;// F4 = (Math.sqrt(5.0)-1.0)/4.0
|
|
656
|
+
const G4 = 0.1381966011250105; // G4 = (5.0-Math.sqrt(5.0))/20.0
|
|
657
657
|
|
|
658
658
|
/**
|
|
659
659
|
* 4D simplex noise with derivatives.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { assert } from "../assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Returns true if two 1D lines overlap, touch is not considered overlap
|
|
5
|
+
* Parameters are assumed to be ordered, a1 > a0, b1 > b0
|
|
6
|
+
* @param {Number} a0
|
|
7
|
+
* @param {Number} a1
|
|
8
|
+
* @param {Number} b0
|
|
9
|
+
* @param {Number} b1
|
|
10
|
+
* @returns {boolean}
|
|
11
|
+
*/
|
|
12
|
+
export function overlap1D(a0, a1, b0, b1) {
|
|
13
|
+
assert.isNumber(a0, "a0");
|
|
14
|
+
assert.isNumber(a1, "a1");
|
|
15
|
+
assert.isNumber(b0, "b0");
|
|
16
|
+
assert.isNumber(b1, "b1");
|
|
17
|
+
|
|
18
|
+
return a1 > b0 && b1 > a0;
|
|
19
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// compute euclidian modulo of m % n
|
|
2
|
+
// https://en.wikipedia.org/wiki/Modulo_operation
|
|
3
|
+
function euclideanModulo(n, m) {
|
|
4
|
+
|
|
5
|
+
return ((n % m) + m) % m;
|
|
6
|
+
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @param {number} x
|
|
12
|
+
* @param {number} length
|
|
13
|
+
* @return {number}
|
|
14
|
+
*/
|
|
15
|
+
export function pingpong(x, length = 1) {
|
|
16
|
+
return length - Math.abs(euclideanModulo(x, length * 2) - length);
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {function():number} random returns a number between 0 and 1
|
|
4
|
+
* @param {number} min
|
|
5
|
+
* @param {number} max
|
|
6
|
+
* @returns {function():number} returns number between min and max
|
|
7
|
+
*/
|
|
8
|
+
export function makeRangedRandom(random, min, max) {
|
|
9
|
+
|
|
10
|
+
if (min === 0 && max === 1) {
|
|
11
|
+
//input already returns values in correct range
|
|
12
|
+
return random;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const scale = max - min;
|
|
16
|
+
return function () {
|
|
17
|
+
return random() * scale + min;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {function} random
|
|
4
|
+
* @param {number} min
|
|
5
|
+
* @param {number} max
|
|
6
|
+
* @returns {number}
|
|
7
|
+
*/
|
|
8
|
+
export function randomFloatBetween(random, min, max) {
|
|
9
|
+
const span = max - min;
|
|
10
|
+
|
|
11
|
+
const roll = random();
|
|
12
|
+
|
|
13
|
+
return roll * span + min;
|
|
14
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { assert } from "../../assert.js";
|
|
2
|
+
import { min2 } from "../min2.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @template T
|
|
6
|
+
* @param {function} random
|
|
7
|
+
* @param {T[]} array
|
|
8
|
+
* @returns {T}
|
|
9
|
+
*/
|
|
10
|
+
export function randomFromArray(random, array) {
|
|
11
|
+
assert.isArray(array, 'array');
|
|
12
|
+
assert.isFunction(random, 'random');
|
|
13
|
+
|
|
14
|
+
const length = array.length;
|
|
15
|
+
|
|
16
|
+
const i = min2(length - 1, Math.floor(random() * length));
|
|
17
|
+
|
|
18
|
+
return array[i];
|
|
19
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a random number within a normal distribution (Bell/Gaussian curve)
|
|
3
|
+
* @param {int} [quality=6] controls number of "die rolls" used to approximate curve, more rolls - better approximation but higher cost of computation
|
|
4
|
+
* @param {function():number} random
|
|
5
|
+
* @returns {number} value between 0 and 1 with normal weight at 0.5
|
|
6
|
+
*/
|
|
7
|
+
export function randomGaussian(random, quality = 6) {
|
|
8
|
+
let s = 0;
|
|
9
|
+
|
|
10
|
+
for (let i = 0; i < quality; i++) {
|
|
11
|
+
s += random();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return s / quality;
|
|
15
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inclusive random between two boundaries, result is integer
|
|
3
|
+
* @param {function} random
|
|
4
|
+
* @param {number} min lower boundary, must be an integer
|
|
5
|
+
* @param {number} max upper boundary, must be an integer
|
|
6
|
+
* @returns {number}
|
|
7
|
+
*/
|
|
8
|
+
export function randomIntegerBetween(random, min, max) {
|
|
9
|
+
const span = max - min;
|
|
10
|
+
|
|
11
|
+
const roll = random();
|
|
12
|
+
|
|
13
|
+
return Math.round(roll * span) + min;
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Performs a probabilistic rounding where a fraction is rounded up or down with probability equal to the fraction
|
|
3
|
+
* @param {number} number
|
|
4
|
+
* @param {function} random
|
|
5
|
+
* @returns {int}
|
|
6
|
+
*/
|
|
7
|
+
export function roundFair(number, random) {
|
|
8
|
+
const mantissa = number % 1;
|
|
9
|
+
const roll = random();
|
|
10
|
+
if (roll < mantissa) {
|
|
11
|
+
return Math.ceil(number);
|
|
12
|
+
} else {
|
|
13
|
+
return Math.floor(number);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { assert } from "../assert.js";
|
|
2
|
+
import { min2 } from "./min2.js";
|
|
3
|
+
import { max2 } from "./max2.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns a number representing overlap distance between two 1D line segments.
|
|
7
|
+
* Positive number indicates overlap, negative number indicates that segments do not overlap; 0 indicates that segments are touching.
|
|
8
|
+
* @param {Number} a0
|
|
9
|
+
* @param {Number} a1
|
|
10
|
+
* @param {Number} b0
|
|
11
|
+
* @param {Number} b1
|
|
12
|
+
* @returns {number}
|
|
13
|
+
*/
|
|
14
|
+
export function separation1D(a0, a1, b0, b1) {
|
|
15
|
+
assert.isNumber(a0, "a0");
|
|
16
|
+
assert.isNumber(a1, "a1");
|
|
17
|
+
assert.isNumber(b0, "b0");
|
|
18
|
+
assert.isNumber(b1, "b1");
|
|
19
|
+
|
|
20
|
+
return min2(a1, b1) - max2(a0, b0);
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return solutions for quadratic
|
|
3
|
+
* @param {number} a
|
|
4
|
+
* @param {number} b
|
|
5
|
+
* @param {number} c
|
|
6
|
+
* @returns {number[]|null}
|
|
7
|
+
*/
|
|
8
|
+
export function solveQuadratic(a, b, c) {
|
|
9
|
+
let sol = null;
|
|
10
|
+
if (Math.abs(a) < 1e-6) {
|
|
11
|
+
if (Math.abs(b) < 1e-6) {
|
|
12
|
+
sol = Math.abs(c) < 1e-6 ? [0, 0] : null;
|
|
13
|
+
} else {
|
|
14
|
+
sol = [-c / b, -c / b];
|
|
15
|
+
}
|
|
16
|
+
} else {
|
|
17
|
+
let disc = b * b - 4 * a * c;
|
|
18
|
+
if (disc >= 0) {
|
|
19
|
+
disc = Math.sqrt(disc);
|
|
20
|
+
a = 2 * a;
|
|
21
|
+
sol = [(-b - disc) / a, (-b + disc) / a];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return sol;
|
|
25
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { computeHashIntegerArray } from "../../../math/MathUtils.js";
|
|
2
1
|
import { computeStringHash } from "../../../primitives/strings/computeStringHash.js";
|
|
3
2
|
import { PortDirection } from "./PortDirection.js";
|
|
3
|
+
import { computeHashIntegerArray } from "../../../collection/array/computeHashIntegerArray.js";
|
|
4
4
|
|
|
5
5
|
export class Port {
|
|
6
6
|
constructor() {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { randomFloatBetween, randomFromArray, randomIntegerBetween } from "../../../math/MathUtils.js";
|
|
2
1
|
import { seededRandom } from "../../../math/random/seededRandom.js";
|
|
3
2
|
import DataType from "../../../parser/simple/DataType.js";
|
|
4
3
|
import { ReactiveLiteralBoolean } from "../model/terminal/ReactiveLiteralBoolean.js";
|
|
@@ -7,6 +6,9 @@ import { ReactiveLiteralString } from "../model/terminal/ReactiveLiteralString.j
|
|
|
7
6
|
import { ReactiveReference } from "../model/terminal/ReactiveReference.js";
|
|
8
7
|
import { createRandomReactiveExpression } from "../model/util/createRandomReactiveExpression.js";
|
|
9
8
|
import { MultiPredicateEvaluator } from "./MultiPredicateEvaluator.js";
|
|
9
|
+
import { randomFromArray } from "../../../math/random/randomFromArray.js";
|
|
10
|
+
import { randomFloatBetween } from "../../../math/random/randomFloatBetween.js";
|
|
11
|
+
import { randomIntegerBetween } from "../../../math/random/randomIntegerBetween.js";
|
|
10
12
|
|
|
11
13
|
test.skip('performance', () => {
|
|
12
14
|
const random = seededRandom(12319);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assert } from "../../../assert.js";
|
|
2
|
-
import { computeHashIntegerArray } from "../../../math/MathUtils.js";
|
|
3
2
|
import { ReactiveExpression } from "./ReactiveExpression.js";
|
|
3
|
+
import { computeHashIntegerArray } from "../../../collection/array/computeHashIntegerArray.js";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @extends {ReactiveExpression}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { assert } from "../../../../assert.js";
|
|
2
2
|
import Signal from "../../../../events/signal/Signal.js";
|
|
3
|
-
import { computeHashFloat } from "../../../../math/MathUtils.js";
|
|
4
3
|
import DataType from "../../../../parser/simple/DataType.js";
|
|
5
4
|
import { ReactiveExpression } from "../ReactiveExpression.js";
|
|
5
|
+
import { computeHashFloat } from "../../../../math/hash/computeHashFloat.js";
|
|
6
6
|
|
|
7
7
|
const dummySignal = new Signal();
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { assert } from "../../../../assert.js";
|
|
2
|
-
import { computeHashIntegerArray } from "../../../../math/MathUtils.js";
|
|
3
2
|
import DataType from "../../../../parser/simple/DataType.js";
|
|
4
3
|
import { computeStringHash } from "../../../../primitives/strings/computeStringHash.js";
|
|
5
4
|
import { ReactiveExpression } from "../ReactiveExpression.js";
|
|
5
|
+
import { computeHashIntegerArray } from "../../../../collection/array/computeHashIntegerArray.js";
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* @param {ReactiveExpression} b
|
|
5
5
|
* @returns {ReactiveExpression}
|
|
6
6
|
*/
|
|
7
|
-
import { randomFromArray } from "../../../../math/MathUtils.js";
|
|
8
7
|
import DataType from "../../../../parser/simple/DataType.js";
|
|
9
8
|
import { ReactiveAdd } from "../arithmetic/ReactiveAdd.js";
|
|
10
9
|
import { ReactiveDivide } from "../arithmetic/ReactiveDivide.js";
|
|
@@ -20,6 +19,7 @@ import { ReactiveAnd } from "../logic/ReactiveAnd.js";
|
|
|
20
19
|
import { ReactiveOr } from "../logic/ReactiveOr.js";
|
|
21
20
|
import { ReactiveLiteralNumber } from "../terminal/ReactiveLiteralNumber.js";
|
|
22
21
|
import { ReactiveLiteralString } from "../terminal/ReactiveLiteralString.js";
|
|
22
|
+
import { randomFromArray } from "../../../../math/random/randomFromArray.js";
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
*
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class Token<V = string, T = string> {
|
|
2
|
+
readonly value: V
|
|
3
|
+
readonly start: number
|
|
4
|
+
readonly end: number
|
|
5
|
+
readonly name: string
|
|
6
|
+
readonly type: T
|
|
7
|
+
|
|
8
|
+
constructor(value: V, start: number, end: number, name: string, type: T)
|
|
9
|
+
|
|
10
|
+
equals(other: Token<V, T>): boolean
|
|
11
|
+
|
|
12
|
+
hash(): number
|
|
13
|
+
}
|
|
@@ -1,31 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
1
|
+
class Token {
|
|
2
|
+
/**
|
|
3
|
+
* @template V,T
|
|
4
|
+
* @param {V} value
|
|
5
|
+
* @param {number} start
|
|
6
|
+
* @param {number} end
|
|
7
|
+
* @param {string} name
|
|
8
|
+
* @param {T} type
|
|
9
|
+
*/
|
|
10
|
+
constructor(value, start, end, name, type) {
|
|
11
|
+
/**
|
|
12
|
+
* @readonly
|
|
13
|
+
* @type {V}
|
|
14
|
+
*/
|
|
15
|
+
this.value = value;
|
|
16
|
+
/**
|
|
17
|
+
* Starting position in the input
|
|
18
|
+
* @readonly
|
|
19
|
+
* @type {number}
|
|
20
|
+
*/
|
|
21
|
+
this.start = start;
|
|
22
|
+
/**
|
|
23
|
+
* End position in the input
|
|
24
|
+
* @readonly
|
|
25
|
+
* @type {number}
|
|
26
|
+
*/
|
|
27
|
+
this.end = end;
|
|
28
|
+
/**
|
|
29
|
+
* @readonly
|
|
30
|
+
* @type {string}
|
|
31
|
+
*/
|
|
32
|
+
this.name = name;
|
|
33
|
+
/**
|
|
34
|
+
* Token type
|
|
35
|
+
* @readonly
|
|
36
|
+
* @type {T}
|
|
37
|
+
*/
|
|
38
|
+
this.type = type;
|
|
39
|
+
}
|
|
8
40
|
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
* @param {Token} other
|
|
44
|
+
* @returns {boolean}
|
|
45
|
+
*/
|
|
46
|
+
equals(other) {
|
|
47
|
+
return this.value === other.value &&
|
|
48
|
+
this.start === other.start &&
|
|
49
|
+
this.end === other.end &&
|
|
50
|
+
this.name === other.name &&
|
|
51
|
+
this.type === other.type
|
|
52
|
+
;
|
|
53
|
+
}
|
|
22
54
|
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
55
|
+
/**
|
|
56
|
+
*
|
|
57
|
+
* @return {number}
|
|
58
|
+
*/
|
|
59
|
+
hash() {
|
|
60
|
+
// TODO make an actual hash
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
30
64
|
|
|
31
65
|
export default Token;
|
package/{engine/graphics/render/forward_plus/materials → core/primitives/strings}/insert_after.js
RENAMED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* @param {string} source
|
|
4
4
|
* @param {string} term
|
|
5
5
|
* @param {string} extra
|
|
6
|
+
* @returns {string}
|
|
6
7
|
*/
|
|
7
8
|
export function insert_after(source, term, extra) {
|
|
8
9
|
const i = source.indexOf(term);
|
|
@@ -16,3 +17,5 @@ export function insert_after(source, term, extra) {
|
|
|
16
17
|
|
|
17
18
|
return source.slice(0, end) + extra + source.slice(end);
|
|
18
19
|
}
|
|
20
|
+
|
|
21
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {string} source
|
|
4
|
+
* @param {string} insert_term
|
|
5
|
+
* @param {string} replace_term
|
|
6
|
+
* @param {string} value
|
|
7
|
+
* @returns {string}
|
|
8
|
+
*/
|
|
9
|
+
export function insert_after_or_replace(source, insert_term, replace_term, value) {
|
|
10
|
+
const insert_term_index = source.indexOf(insert_term);
|
|
11
|
+
|
|
12
|
+
if (insert_term_index !== -1) {
|
|
13
|
+
const end = insert_term_index + insert_term.length;
|
|
14
|
+
return source.slice(0, end) + value + source.slice(end);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const replace_term_index = source.indexOf(replace_term);
|
|
18
|
+
|
|
19
|
+
if (replace_term_index === -1) {
|
|
20
|
+
// not found
|
|
21
|
+
console.warn(`Neither insert term '${insert_term}', nor replacement term '${replace_term}' were found in the source`, source, value);
|
|
22
|
+
return source;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
return source.slice(0, replace_term_index) + value + source.slice(replace_term_index + replace_term.length);
|
|
27
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BufferAttribute, BufferGeometry, Float32BufferAttribute } from "three";
|
|
2
|
+
|
|
3
|
+
export function makeHelperBoxGeometry(sx = 1, sy = 1, sz = 1) {
|
|
4
|
+
|
|
5
|
+
const geometry = new BufferGeometry();
|
|
6
|
+
|
|
7
|
+
const dx = sx / 2;
|
|
8
|
+
const dy = sy / 2;
|
|
9
|
+
const dz = sz / 2;
|
|
10
|
+
|
|
11
|
+
const vertices = new Float32Array([
|
|
12
|
+
-dx, -dy, -dz,
|
|
13
|
+
dx, -dy, -dz,
|
|
14
|
+
dx, dy, -dz,
|
|
15
|
+
-dx, dy, -dz,
|
|
16
|
+
|
|
17
|
+
-dx, dy, dz,
|
|
18
|
+
dx, dy, dz,
|
|
19
|
+
dx, -dy, dz,
|
|
20
|
+
-dx, -dy, dz
|
|
21
|
+
]);
|
|
22
|
+
|
|
23
|
+
geometry.setAttribute("position", new Float32BufferAttribute(vertices, 3));
|
|
24
|
+
|
|
25
|
+
geometry.setIndex(new BufferAttribute(new Uint8Array([
|
|
26
|
+
0, 1,
|
|
27
|
+
1, 2,
|
|
28
|
+
2, 3,
|
|
29
|
+
3, 0,
|
|
30
|
+
|
|
31
|
+
4, 5,
|
|
32
|
+
5, 6,
|
|
33
|
+
6, 7,
|
|
34
|
+
7, 4,
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
0, 7,
|
|
38
|
+
1, 6,
|
|
39
|
+
2, 5,
|
|
40
|
+
3, 4
|
|
41
|
+
]), 1, false));
|
|
42
|
+
|
|
43
|
+
return geometry;
|
|
44
|
+
}
|
|
@@ -6,7 +6,7 @@ import { parseHex } from "../../core/color/ColorUtils.js";
|
|
|
6
6
|
import Vector4 from "../../core/geom/Vector4.js";
|
|
7
7
|
import loadSampler2D from "../../engine/graphics/texture/sampler/loadSampler2D.js";
|
|
8
8
|
import convertSampler2D2Canvas from "../../engine/graphics/texture/sampler/Sampler2D2Canvas.js";
|
|
9
|
-
import {
|
|
9
|
+
import { InstancedMeshComponent } from "../../engine/ecs/foliage/ecs/InstancedMeshComponent.js";
|
|
10
10
|
|
|
11
11
|
class FoliagePaintTool extends Tool {
|
|
12
12
|
constructor() {
|
|
@@ -100,7 +100,7 @@ class FoliagePaintTool extends Tool {
|
|
|
100
100
|
|
|
101
101
|
/**
|
|
102
102
|
*
|
|
103
|
-
* @param {
|
|
103
|
+
* @param {InstancedMeshComponent} foliage
|
|
104
104
|
* @param {Number} entity
|
|
105
105
|
*/
|
|
106
106
|
function visit(foliage, entity) {
|
|
@@ -149,9 +149,9 @@ class FoliagePaintTool extends Tool {
|
|
|
149
149
|
|
|
150
150
|
/**
|
|
151
151
|
*
|
|
152
|
-
* @type {
|
|
152
|
+
* @type {InstancedMeshComponent}
|
|
153
153
|
*/
|
|
154
|
-
const foliage = entityManger.getComponent(entity,
|
|
154
|
+
const foliage = entityManger.getComponent(entity, InstancedMeshComponent);
|
|
155
155
|
|
|
156
156
|
|
|
157
157
|
if (foliage === null) {
|
|
@@ -38,7 +38,7 @@ import { HeadsUpDisplayController } from "./components/HeadsUpDisplayController.
|
|
|
38
38
|
import { BlackboardController } from "./components/BlackboardController.js";
|
|
39
39
|
import { GridObstacleController } from "./components/GridObstacleController.js";
|
|
40
40
|
import { AttachmentSocketsController } from "./components/sockets/AttachmentSocketsController.js";
|
|
41
|
-
import {
|
|
41
|
+
import { ParticleEmitterSystem } from "../../../engine/graphics/particles/ecs/ParticleEmitterSystem.js";
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
*
|
|
@@ -82,7 +82,7 @@ function prepareComponentFactory(factory, editor) {
|
|
|
82
82
|
.register('ParticleEmitter', () => {
|
|
83
83
|
const em = editor.engine.entityManager;
|
|
84
84
|
|
|
85
|
-
const particleEmitterSystem = em.getSystem(
|
|
85
|
+
const particleEmitterSystem = em.getSystem(ParticleEmitterSystem);
|
|
86
86
|
|
|
87
87
|
return new ParticleEmitterController(particleEmitterSystem);
|
|
88
88
|
})
|
|
@@ -24,7 +24,7 @@ export function enumNameByValue(value, enumerable) {
|
|
|
24
24
|
/**
|
|
25
25
|
*
|
|
26
26
|
* @param {ParticleEmitter} emitter
|
|
27
|
-
* @param {
|
|
27
|
+
* @param {ParticleEmitterSystem} system
|
|
28
28
|
* @param {function} op
|
|
29
29
|
* @param {*} [arg0]
|
|
30
30
|
*/
|
|
@@ -61,7 +61,7 @@ function applyEmitterChanges(emitter, system, op, arg0) {
|
|
|
61
61
|
export class ParticleEmitterController extends EmptyView {
|
|
62
62
|
/**
|
|
63
63
|
*
|
|
64
|
-
* @param {
|
|
64
|
+
* @param {ParticleEmitterSystem} particleEmitterSystem
|
|
65
65
|
* @constructor
|
|
66
66
|
*/
|
|
67
67
|
constructor(particleEmitterSystem) {
|
package/engine/EngineHarness.js
CHANGED
|
@@ -7,7 +7,7 @@ import { removeComponentsExcept } from "../ecs/util/removeComponentsExcept.js";
|
|
|
7
7
|
import { createSound, createTimer } from "../EntityCreator.js";
|
|
8
8
|
import Mesh from "../graphics/ecs/mesh/Mesh.js";
|
|
9
9
|
import Trail2D, { Trail2DFlags } from "../graphics/ecs/trail2d/Trail2D.js";
|
|
10
|
-
import {
|
|
10
|
+
import { ParticleEmitterSystem } from "../graphics/particles/ecs/ParticleEmitterSystem.js";
|
|
11
11
|
import { ParticleEmitter } from "../graphics/particles/particular/engine/emitter/ParticleEmitter.js";
|
|
12
12
|
import { ParticleEmitterFlag } from "../graphics/particles/particular/engine/emitter/ParticleEmitterFlag.js";
|
|
13
13
|
import { distributeParticlesOnObject3D } from "../graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.js";
|
|
@@ -137,9 +137,9 @@ export function removeEntityWithMeshParticlesEffect(
|
|
|
137
137
|
|
|
138
138
|
/**
|
|
139
139
|
*
|
|
140
|
-
* @type {
|
|
140
|
+
* @type {ParticleEmitterSystem}
|
|
141
141
|
*/
|
|
142
|
-
const sPE = entityManager.getSystem(
|
|
142
|
+
const sPE = entityManager.getSystem(ParticleEmitterSystem);
|
|
143
143
|
|
|
144
144
|
/**
|
|
145
145
|
*
|
|
@@ -214,9 +214,9 @@ export function removeEntityGenericEffect(
|
|
|
214
214
|
|
|
215
215
|
/**
|
|
216
216
|
*
|
|
217
|
-
* @type {
|
|
217
|
+
* @type {ParticleEmitterSystem}
|
|
218
218
|
*/
|
|
219
|
-
const sPE = engine.entityManager.getSystem(
|
|
219
|
+
const sPE = engine.entityManager.getSystem(ParticleEmitterSystem);
|
|
220
220
|
|
|
221
221
|
/**
|
|
222
222
|
*
|