@onerjs/core 8.31.0 → 8.31.2
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/Animations/animationGroup.js +1 -4
- package/Animations/animationGroup.js.map +1 -1
- package/Behaviors/Cameras/interpolatingBehavior.d.ts +8 -2
- package/Behaviors/Cameras/interpolatingBehavior.js +58 -6
- package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +11 -9
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +81 -0
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js +223 -0
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -0
- package/Cameras/Inputs/geospatialCameraMouseWheelInput.js +1 -1
- package/Cameras/Inputs/geospatialCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +8 -20
- package/Cameras/Inputs/geospatialCameraPointersInput.js +35 -75
- package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
- package/Cameras/Limits/geospatialLimits.d.ts +60 -0
- package/Cameras/Limits/geospatialLimits.js +89 -0
- package/Cameras/Limits/geospatialLimits.js.map +1 -0
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.js +2 -2
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/cameraMovement.js +1 -1
- package/Cameras/cameraMovement.js.map +1 -1
- package/Cameras/deviceOrientationCamera.js +5 -3
- package/Cameras/deviceOrientationCamera.js.map +1 -1
- package/Cameras/flyCamera.d.ts +2 -1
- package/Cameras/flyCamera.js.map +1 -1
- package/Cameras/geospatialCamera.d.ts +78 -49
- package/Cameras/geospatialCamera.js +210 -191
- package/Cameras/geospatialCamera.js.map +1 -1
- package/Cameras/geospatialCameraInputsManager.d.ts +5 -0
- package/Cameras/geospatialCameraInputsManager.js +9 -0
- package/Cameras/geospatialCameraInputsManager.js.map +1 -1
- package/Cameras/geospatialCameraMovement.d.ts +66 -0
- package/Cameras/geospatialCameraMovement.js +199 -0
- package/Cameras/geospatialCameraMovement.js.map +1 -0
- package/Cameras/targetCamera.d.ts +1 -1
- package/Cameras/targetCamera.js +2 -2
- package/Cameras/targetCamera.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +14 -6
- package/Engines/Native/nativeInterfaces.js +6 -1
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/nativeEngine.js +2 -2
- package/Engines/nativeEngine.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js.map +1 -1
- package/FlowGraph/flowGraphMath.d.ts +25 -0
- package/FlowGraph/flowGraphMath.js +40 -0
- package/FlowGraph/flowGraphMath.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.js +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js +5 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/splatReaderBlock.js +6 -5
- package/Materials/Node/Blocks/GaussianSplatting/splatReaderBlock.js.map +1 -1
- package/Materials/shaderMaterial.js +4 -2
- package/Materials/shaderMaterial.js.map +1 -1
- package/Maths/math.vector.functions.d.ts +5 -24
- package/Maths/math.vector.functions.js +32 -35
- package/Maths/math.vector.functions.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +51 -16
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Meshes/csg2.js +1 -1
- package/Meshes/csg2.js.map +1 -1
- package/Meshes/thinInstanceMesh.js +15 -0
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Misc/fileTools.js.map +1 -1
- package/Misc/tools.d.ts +3 -0
- package/Misc/tools.js +43 -4
- package/Misc/tools.js.map +1 -1
- package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.js +2 -2
- package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.js.map +1 -1
- package/Particles/Node/Blocks/particleInputBlock.js +1 -0
- package/Particles/Node/Blocks/particleInputBlock.js.map +1 -1
- package/Particles/Node/Blocks/systemBlock.d.ts +8 -8
- package/Particles/Node/Blocks/systemBlock.js +12 -12
- package/Particles/Node/Blocks/systemBlock.js.map +1 -1
- package/Particles/Node/Enums/nodeParticleContextualSources.d.ts +3 -1
- package/Particles/Node/Enums/nodeParticleContextualSources.js +2 -0
- package/Particles/Node/Enums/nodeParticleContextualSources.js.map +1 -1
- package/Particles/Node/nodeParticleBuildState.d.ts +5 -5
- package/Particles/Node/nodeParticleBuildState.js +9 -7
- package/Particles/Node/nodeParticleBuildState.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.helper.js +288 -149
- package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
- package/Particles/particle.d.ts +4 -0
- package/Particles/particle.js +2 -0
- package/Particles/particle.js.map +1 -1
- package/Particles/thinParticleSystem.d.ts +0 -4
- package/Particles/thinParticleSystem.function.d.ts +1 -1
- package/Particles/thinParticleSystem.function.js +9 -6
- package/Particles/thinParticleSystem.function.js.map +1 -1
- package/Particles/thinParticleSystem.js +1 -3
- package/Particles/thinParticleSystem.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js +5 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js +2 -1
- package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +3 -3
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js +2 -2
- package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +35 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingUboDeclaration.js +2 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingVertexDeclaration.js +1 -2
- package/ShadersWGSL/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +3 -3
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
- package/XR/webXRCamera.d.ts +5 -1
- package/XR/webXRCamera.js +2 -2
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRExperienceHelper.js +1 -1
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thinParticleSystem.function.js","sourceRoot":"","sources":["../../../../dev/core/src/Particles/thinParticleSystem.function.ts"],"names":[],"mappings":"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","sourcesContent":["import { Color4 } from \"core/Maths/math.color\";\r\nimport type { ColorGradient, FactorGradient } from \"core/Misc/gradients\";\r\nimport { GradientHelper } from \"core/Misc/gradients\";\r\nimport type { Particle } from \"./particle\";\r\nimport type { ThinParticleSystem } from \"./thinParticleSystem\";\r\nimport { Clamp, Lerp, RandomRange } from \"core/Maths/math.scalar.functions\";\r\nimport { TmpVectors, Vector3, Vector4 } from \"core/Maths/math.vector\";\r\n\r\n/** Color */\r\n\r\n/** @internal */\r\nexport function _CreateColorData(particle: Particle, system: ThinParticleSystem) {\r\n const step = RandomRange(0, 1.0);\r\n\r\n Color4.LerpToRef(system.color1, system.color2, step, particle.color);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateColorDeadData(particle: Particle, system: ThinParticleSystem) {\r\n system.colorDead.subtractToRef(particle.color, system._colorDiff);\r\n system._colorDiff.scaleToRef(1.0 / particle.lifeTime, particle.colorStep);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateColorGradientsData(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentColorGradient = system._colorGradients![0];\r\n particle._currentColorGradient.getColorToRef(particle.color);\r\n particle._currentColor1.copyFrom(particle.color);\r\n\r\n if (system._colorGradients!.length > 1) {\r\n system._colorGradients![1].getColorToRef(particle._currentColor2);\r\n } else {\r\n particle._currentColor2.copyFrom(particle.color);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessColorGradients(particle: Particle, system: ThinParticleSystem) {\r\n const colorGradients = system._colorGradients;\r\n GradientHelper.GetCurrentGradient(system._ratio, colorGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentColorGradient) {\r\n particle._currentColor1.copyFrom(particle._currentColor2);\r\n (<ColorGradient>nextGradient).getColorToRef(particle._currentColor2);\r\n particle._currentColorGradient = <ColorGradient>currentGradient;\r\n }\r\n Color4.LerpToRef(particle._currentColor1, particle._currentColor2, scale, particle.color);\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessColor(particle: Particle, system: ThinParticleSystem) {\r\n particle.colorStep.scaleToRef(system._scaledUpdateSpeed, system._scaledColorStep);\r\n particle.color.addInPlace(system._scaledColorStep);\r\n\r\n if (particle.color.a < 0) {\r\n particle.color.a = 0;\r\n }\r\n}\r\n\r\n/** Angular speed */\r\n\r\n/** @internal */\r\nexport function _ProcessAngularSpeedGradients(particle: Particle, system: ThinParticleSystem) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._angularSpeedGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentAngularSpeedGradient) {\r\n particle._currentAngularSpeed1 = particle._currentAngularSpeed2;\r\n particle._currentAngularSpeed2 = (<FactorGradient>nextGradient).getFactor();\r\n particle._currentAngularSpeedGradient = <FactorGradient>currentGradient;\r\n }\r\n particle.angularSpeed = Lerp(particle._currentAngularSpeed1, particle._currentAngularSpeed2, scale);\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessAngularSpeed(particle: Particle, system: ThinParticleSystem) {\r\n particle.angle += particle.angularSpeed * system._scaledUpdateSpeed;\r\n}\r\n\r\n/** Velocity & direction */\r\n\r\n/** @internal */\r\nexport function _CreateDirectionData(particle: Particle, system: ThinParticleSystem) {\r\n system.particleEmitterType.startDirectionFunction(system._emitterWorldMatrix, particle.direction, particle, system.isLocal, system._emitterInverseWorldMatrix);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateCustomDirectionData(particle: Particle, system: ThinParticleSystem) {\r\n system.startDirectionFunction!(system._emitterWorldMatrix, particle.direction, particle, system.isLocal);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateVelocityGradients(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentVelocityGradient = system._velocityGradients![0];\r\n particle._currentVelocity1 = particle._currentVelocityGradient.getFactor();\r\n\r\n if (system._velocityGradients!.length > 1) {\r\n particle._currentVelocity2 = system._velocityGradients![1].getFactor();\r\n } else {\r\n particle._currentVelocity2 = particle._currentVelocity1;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateLimitVelocityGradients(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentLimitVelocityGradient = system._limitVelocityGradients![0];\r\n particle._currentLimitVelocity1 = particle._currentLimitVelocityGradient.getFactor();\r\n\r\n if (system._limitVelocityGradients!.length > 1) {\r\n particle._currentLimitVelocity2 = system._limitVelocityGradients![1].getFactor();\r\n } else {\r\n particle._currentLimitVelocity2 = particle._currentLimitVelocity1;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessVelocityGradients(particle: Particle, system: ThinParticleSystem) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._velocityGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentVelocityGradient) {\r\n particle._currentVelocity1 = particle._currentVelocity2;\r\n particle._currentVelocity2 = (<FactorGradient>nextGradient).getFactor();\r\n particle._currentVelocityGradient = <FactorGradient>currentGradient;\r\n }\r\n system._directionScale *= Lerp(particle._currentVelocity1, particle._currentVelocity2, scale);\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessLimitVelocityGradients(particle: Particle, system: ThinParticleSystem) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._limitVelocityGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentLimitVelocityGradient) {\r\n particle._currentLimitVelocity1 = particle._currentLimitVelocity2;\r\n particle._currentLimitVelocity2 = (<FactorGradient>nextGradient).getFactor();\r\n particle._currentLimitVelocityGradient = <FactorGradient>currentGradient;\r\n }\r\n\r\n const limitVelocity = Lerp(particle._currentLimitVelocity1, particle._currentLimitVelocity2, scale);\r\n const currentVelocity = particle.direction.length();\r\n\r\n if (currentVelocity > limitVelocity) {\r\n particle.direction.scaleInPlace(system.limitVelocityDamping);\r\n }\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessDirection(particle: Particle, system: ThinParticleSystem) {\r\n particle.direction.scaleToRef(system._directionScale, system._scaledDirection);\r\n}\r\n\r\n/** Position */\r\n\r\n/** @internal */\r\nexport function _CreatePositionData(particle: Particle, system: ThinParticleSystem) {\r\n system.particleEmitterType.startPositionFunction(system._emitterWorldMatrix, particle.position, particle, system.isLocal);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateCustomPositionData(particle: Particle, system: ThinParticleSystem) {\r\n system.startPositionFunction!(system._emitterWorldMatrix, particle.position, particle, system.isLocal);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateIsLocalData(particle: Particle, system: ThinParticleSystem) {\r\n if (!particle._localPosition) {\r\n particle._localPosition = particle.position.clone();\r\n } else {\r\n particle._localPosition.copyFrom(particle.position);\r\n }\r\n Vector3.TransformCoordinatesToRef(particle._localPosition, system._emitterWorldMatrix, particle.position);\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessPosition(particle: Particle, system: ThinParticleSystem) {\r\n if (system.isLocal && particle._localPosition) {\r\n particle._localPosition!.addInPlace(system._scaledDirection);\r\n Vector3.TransformCoordinatesToRef(particle._localPosition!, system._emitterWorldMatrix, particle.position);\r\n } else {\r\n particle.position.addInPlace(system._scaledDirection);\r\n }\r\n}\r\n\r\n/** Drag */\r\n\r\n/** @internal */\r\nexport function _CreateDragData(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentDragGradient = system._dragGradients![0];\r\n particle._currentDrag1 = particle._currentDragGradient.getFactor();\r\n\r\n if (system._dragGradients!.length > 1) {\r\n particle._currentDrag2 = system._dragGradients![1].getFactor();\r\n } else {\r\n particle._currentDrag2 = particle._currentDrag1;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessDragGradients(particle: Particle, system: ThinParticleSystem) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._dragGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentDragGradient) {\r\n particle._currentDrag1 = particle._currentDrag2;\r\n particle._currentDrag2 = (<FactorGradient>nextGradient).getFactor();\r\n particle._currentDragGradient = <FactorGradient>currentGradient;\r\n }\r\n\r\n const drag = Lerp(particle._currentDrag1, particle._currentDrag2, scale);\r\n\r\n system._scaledDirection.scaleInPlace(1.0 - drag);\r\n });\r\n}\r\n\r\n/** Noise */\r\n\r\n/** @internal */\r\nexport function _CreateNoiseData(particle: Particle, _system: ThinParticleSystem) {\r\n if (particle._randomNoiseCoordinates1) {\r\n particle._randomNoiseCoordinates1.copyFromFloats(Math.random(), Math.random(), Math.random());\r\n particle._randomNoiseCoordinates2.copyFromFloats(Math.random(), Math.random(), Math.random());\r\n } else {\r\n particle._randomNoiseCoordinates1 = new Vector3(Math.random(), Math.random(), Math.random());\r\n particle._randomNoiseCoordinates2 = new Vector3(Math.random(), Math.random(), Math.random());\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessNoise(particle: Particle, system: ThinParticleSystem) {\r\n const noiseTextureData = system._noiseTextureData;\r\n const noiseTextureSize = system._noiseTextureSize;\r\n\r\n if (noiseTextureData && noiseTextureSize && particle._randomNoiseCoordinates1) {\r\n const fetchedColorR = system._fetchR(\r\n particle._randomNoiseCoordinates1.x,\r\n particle._randomNoiseCoordinates1.y,\r\n noiseTextureSize.width,\r\n noiseTextureSize.height,\r\n noiseTextureData\r\n );\r\n const fetchedColorG = system._fetchR(\r\n particle._randomNoiseCoordinates1.z,\r\n particle._randomNoiseCoordinates2.x,\r\n noiseTextureSize.width,\r\n noiseTextureSize.height,\r\n noiseTextureData\r\n );\r\n const fetchedColorB = system._fetchR(\r\n particle._randomNoiseCoordinates2.y,\r\n particle._randomNoiseCoordinates2.z,\r\n noiseTextureSize.width,\r\n noiseTextureSize.height,\r\n noiseTextureData\r\n );\r\n\r\n const force = TmpVectors.Vector3[0];\r\n const scaledForce = TmpVectors.Vector3[1];\r\n\r\n force.copyFromFloats((2 * fetchedColorR - 1) * system.noiseStrength.x, (2 * fetchedColorG - 1) * system.noiseStrength.y, (2 * fetchedColorB - 1) * system.noiseStrength.z);\r\n\r\n force.scaleToRef(system._tempScaledUpdateSpeed, scaledForce);\r\n particle.direction.addInPlace(scaledForce);\r\n }\r\n}\r\n\r\n/** Gravity */\r\n\r\n/** @internal */\r\nexport function _ProcessGravity(particle: Particle, system: ThinParticleSystem) {\r\n system.gravity.scaleToRef(system._tempScaledUpdateSpeed, system._scaledGravity);\r\n particle.direction.addInPlace(system._scaledGravity);\r\n}\r\n\r\n/** Size */\r\n\r\n/** @internal */\r\nexport function _CreateSizeData(particle: Particle, system: ThinParticleSystem) {\r\n particle.size = RandomRange(system.minSize, system.maxSize);\r\n particle.scale.copyFromFloats(RandomRange(system.minScaleX, system.maxScaleX), RandomRange(system.minScaleY, system.maxScaleY));\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateSizeGradientsData(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentSizeGradient = system._sizeGradients![0];\r\n particle._currentSize1 = particle._currentSizeGradient.getFactor();\r\n particle.size = particle._currentSize1;\r\n\r\n if (system._sizeGradients!.length > 1) {\r\n particle._currentSize2 = system._sizeGradients![1].getFactor();\r\n } else {\r\n particle._currentSize2 = particle._currentSize1;\r\n }\r\n\r\n particle.scale.copyFromFloats(RandomRange(system.minScaleX, system.maxScaleX), RandomRange(system.minScaleY, system.maxScaleY));\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateStartSizeGradientsData(particle: Particle, system: ThinParticleSystem) {\r\n const ratio = system._actualFrame / system.targetStopDuration;\r\n GradientHelper.GetCurrentGradient(ratio, system._startSizeGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== system._currentStartSizeGradient) {\r\n system._currentStartSize1 = system._currentStartSize2;\r\n system._currentStartSize2 = (<FactorGradient>nextGradient).getFactor();\r\n system._currentStartSizeGradient = <FactorGradient>currentGradient;\r\n }\r\n\r\n const value = Lerp(system._currentStartSize1, system._currentStartSize2, scale);\r\n particle.scale.scaleInPlace(value);\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessSizeGradients(particle: Particle, system: ThinParticleSystem) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._sizeGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentSizeGradient) {\r\n particle._currentSize1 = particle._currentSize2;\r\n particle._currentSize2 = (<FactorGradient>nextGradient).getFactor();\r\n particle._currentSizeGradient = <FactorGradient>currentGradient;\r\n }\r\n particle.size = Lerp(particle._currentSize1, particle._currentSize2, scale);\r\n });\r\n}\r\n\r\n/** Ramp */\r\n\r\n/** @internal */\r\nexport function _CreateRampData(particle: Particle, _system: ThinParticleSystem) {\r\n particle.remapData = new Vector4(0, 1, 0, 1);\r\n}\r\n\r\n/** Remap */\r\n\r\n/** @internal */\r\nexport function _ProcessRemapGradients(particle: Particle, system: ThinParticleSystem) {\r\n if (system._colorRemapGradients && system._colorRemapGradients.length > 0) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._colorRemapGradients, (currentGradient, nextGradient, scale) => {\r\n const min = Lerp((<FactorGradient>currentGradient).factor1, (<FactorGradient>nextGradient).factor1, scale);\r\n const max = Lerp((<FactorGradient>currentGradient).factor2!, (<FactorGradient>nextGradient).factor2!, scale);\r\n\r\n particle.remapData.x = min;\r\n particle.remapData.y = max - min;\r\n });\r\n }\r\n\r\n if (system._alphaRemapGradients && system._alphaRemapGradients.length > 0) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._alphaRemapGradients, (currentGradient, nextGradient, scale) => {\r\n const min = Lerp((<FactorGradient>currentGradient).factor1, (<FactorGradient>nextGradient).factor1, scale);\r\n const max = Lerp((<FactorGradient>currentGradient).factor2!, (<FactorGradient>nextGradient).factor2!, scale);\r\n\r\n particle.remapData.z = min;\r\n particle.remapData.w = max - min;\r\n });\r\n }\r\n}\r\n\r\n/** Life */\r\n\r\n/** @internal */\r\nexport function _CreateLifeGradientsData(particle: Particle, system: ThinParticleSystem) {\r\n const ratio = Clamp(system._actualFrame / system.targetStopDuration);\r\n GradientHelper.GetCurrentGradient(ratio, system._lifeTimeGradients!, (currentGradient, nextGradient) => {\r\n const factorGradient1 = <FactorGradient>currentGradient;\r\n const factorGradient2 = <FactorGradient>nextGradient;\r\n const lifeTime1 = factorGradient1.getFactor();\r\n const lifeTime2 = factorGradient2.getFactor();\r\n const gradient = (ratio - factorGradient1.gradient) / (factorGradient2.gradient - factorGradient1.gradient);\r\n particle.lifeTime = Lerp(lifeTime1, lifeTime2, gradient);\r\n });\r\n system._emitPower = RandomRange(system.minEmitPower, system.maxEmitPower);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateLifetimeData(particle: Particle, system: ThinParticleSystem) {\r\n particle.lifeTime = RandomRange(system.minLifeTime, system.maxLifeTime);\r\n system._emitPower = RandomRange(system.minEmitPower, system.maxEmitPower);\r\n}\r\n\r\n/** Emit power */\r\n\r\n/** @internal */\r\nexport function _CreateEmitPowerData(particle: Particle, system: ThinParticleSystem) {\r\n if (system._emitPower === 0) {\r\n if (!particle._initialDirection) {\r\n particle._initialDirection = particle.direction.clone();\r\n } else {\r\n particle._initialDirection.copyFrom(particle.direction);\r\n }\r\n particle.direction.set(0, 0, 0);\r\n } else {\r\n particle._initialDirection = null;\r\n particle.direction.scaleInPlace(system._emitPower);\r\n }\r\n\r\n // Inherited Velocity\r\n particle.direction.addInPlace(system._inheritedVelocityOffset);\r\n}\r\n\r\n/** Angle */\r\n\r\n/** @internal */\r\nexport function _CreateAngleData(particle: Particle, system: ThinParticleSystem) {\r\n particle.angularSpeed = RandomRange(system.minAngularSpeed, system.maxAngularSpeed);\r\n particle.angle = RandomRange(system.minInitialRotation, system.maxInitialRotation);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateAngleGradientsData(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentAngularSpeedGradient = system._angularSpeedGradients![0];\r\n particle.angularSpeed = particle._currentAngularSpeedGradient.getFactor();\r\n particle._currentAngularSpeed1 = particle.angularSpeed;\r\n\r\n if (system._angularSpeedGradients!.length > 1) {\r\n particle._currentAngularSpeed2 = system._angularSpeedGradients![1].getFactor();\r\n } else {\r\n particle._currentAngularSpeed2 = particle._currentAngularSpeed1;\r\n }\r\n particle.angle = RandomRange(system.minInitialRotation, system.maxInitialRotation);\r\n}\r\n\r\n/** Sheet */\r\n\r\n/** @internal */\r\nexport function _CreateSheetData(particle: Particle, system: ThinParticleSystem) {\r\n particle._initialStartSpriteCellId = system.startSpriteCellID;\r\n particle._initialEndSpriteCellId = system.endSpriteCellID;\r\n particle._initialSpriteCellLoop = system.spriteCellLoop;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"thinParticleSystem.function.js","sourceRoot":"","sources":["../../../../dev/core/src/Particles/thinParticleSystem.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,+BAA8B;AAE/C,OAAO,EAAE,cAAc,EAAE,6BAA4B;AAGrD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,0CAAyC;AAC5E,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,gCAA+B;AAEtE,YAAY;AAEZ,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,MAA0B;IAC3E,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEjC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,oBAAoB,CAAC,QAAkB,EAAE,MAA0B;IAC/E,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC9E,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,yBAAyB,CAAC,QAAkB,EAAE,MAA0B;IACpF,QAAQ,CAAC,qBAAqB,GAAG,MAAM,CAAC,eAAgB,CAAC,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,eAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,eAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,sBAAsB,CAAC,QAAkB,EAAE,MAA0B;IACjF,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC;IAC9C,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,cAAe,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;QACvG,IAAI,eAAe,KAAK,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACrD,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC1C,YAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACrE,QAAQ,CAAC,qBAAqB,GAAkB,eAAe,CAAC;QACpE,CAAC;QACD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE1F,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,MAA0B;IACxE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAClF,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnD,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;AAED,oBAAoB;AAEpB,gBAAgB;AAChB,MAAM,UAAU,6BAA6B,CAAC,QAAkB,EAAE,MAA0B;IACxF,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,sBAAuB,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;QACtH,IAAI,eAAe,KAAK,QAAQ,CAAC,4BAA4B,EAAE,CAAC;YAC5D,QAAQ,CAAC,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,CAAC;YAChE,QAAQ,CAAC,qBAAqB,GAAoB,YAAa,CAAC,SAAS,EAAE,CAAC;YAC5E,QAAQ,CAAC,4BAA4B,GAAmB,eAAe,CAAC;QAC5E,CAAC;QACD,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;AACP,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,oBAAoB,CAAC,QAAkB,EAAE,MAA0B;IAC/E,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACxE,CAAC;AAED,2BAA2B;AAE3B,gBAAgB;AAChB,MAAM,UAAU,oBAAoB,CAAC,QAAkB,EAAE,MAA0B;IAC/E,MAAM,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;AACnK,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,0BAA0B,CAAC,QAAkB,EAAE,MAA0B;IACrF,MAAM,CAAC,sBAAuB,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7G,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,wBAAwB,CAAC,QAAkB,EAAE,MAA0B;IACnF,QAAQ,CAAC,wBAAwB,GAAG,MAAM,CAAC,kBAAmB,CAAC,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,wBAAwB,CAAC,SAAS,EAAE,CAAC;IAE3E,IAAI,MAAM,CAAC,kBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAAC,kBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3E,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAC5D,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,6BAA6B,CAAC,QAAkB,EAAE,MAA0B;IACxF,QAAQ,CAAC,6BAA6B,GAAG,MAAM,CAAC,uBAAwB,CAAC,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,sBAAsB,GAAG,QAAQ,CAAC,6BAA6B,CAAC,SAAS,EAAE,CAAC;IAErF,IAAI,MAAM,CAAC,uBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,QAAQ,CAAC,sBAAsB,GAAG,MAAM,CAAC,uBAAwB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACrF,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,sBAAsB,GAAG,QAAQ,CAAC,sBAAsB,CAAC;IACtE,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,yBAAyB,CAAC,QAAkB,EAAE,MAA0B;IACpF,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,kBAAmB,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;QAClH,IAAI,eAAe,KAAK,QAAQ,CAAC,wBAAwB,EAAE,CAAC;YACxD,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACxD,QAAQ,CAAC,iBAAiB,GAAoB,YAAa,CAAC,SAAS,EAAE,CAAC;YACxE,QAAQ,CAAC,wBAAwB,GAAmB,eAAe,CAAC;QACxE,CAAC;QACD,QAAQ,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;AACP,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,8BAA8B,CAAC,QAAkB,EAAE,MAA0B;IACzF,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,uBAAwB,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;QACvH,IAAI,eAAe,KAAK,QAAQ,CAAC,6BAA6B,EAAE,CAAC;YAC7D,QAAQ,CAAC,sBAAsB,GAAG,QAAQ,CAAC,sBAAsB,CAAC;YAClE,QAAQ,CAAC,sBAAsB,GAAoB,YAAa,CAAC,SAAS,EAAE,CAAC;YAC7E,QAAQ,CAAC,6BAA6B,GAAmB,eAAe,CAAC;QAC7E,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QACpG,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QAEpD,IAAI,eAAe,GAAG,aAAa,EAAE,CAAC;YAClC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACjE,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAChD,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACvF,CAAC;AAED,eAAe;AAEf,gBAAgB;AAChB,MAAM,UAAU,mBAAmB,CAAC,QAAkB,EAAE,MAA0B;IAC9E,MAAM,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9H,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,yBAAyB,CAAC,QAAkB,EAAE,MAA0B;IACpF,MAAM,CAAC,qBAAsB,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3G,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CAAC,QAAkB,EAAE,MAA0B;IAC7E,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC3B,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxD,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,yBAAyB,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9G,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,MAA0B;IAC3E,IAAI,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC5C,QAAQ,CAAC,cAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC/D,OAAO,CAAC,yBAAyB,CAAC,QAAQ,CAAC,cAAe,EAAE,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/G,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC5D,CAAC;AACL,CAAC;AAED,WAAW;AAEX,gBAAgB;AAChB,MAAM,UAAU,eAAe,CAAC,QAAkB,EAAE,MAA0B;IAC1E,QAAQ,CAAC,oBAAoB,GAAG,MAAM,CAAC,cAAe,CAAC,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;IAEnE,IAAI,MAAM,CAAC,cAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,cAAe,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACnE,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;IACpD,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,qBAAqB,CAAC,QAAkB,EAAE,MAA0B;IAChF,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAe,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;QAC9G,IAAI,eAAe,KAAK,QAAQ,CAAC,oBAAoB,EAAE,CAAC;YACpD,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;YAChD,QAAQ,CAAC,aAAa,GAAoB,YAAa,CAAC,SAAS,EAAE,CAAC;YACpE,QAAQ,CAAC,oBAAoB,GAAmB,eAAe,CAAC;QACpE,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAEzE,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,YAAY;AAEZ,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,OAA2B;IAC5E,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QACpC,QAAQ,CAAC,wBAAwB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9F,QAAQ,CAAC,wBAAwB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,wBAAwB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7F,QAAQ,CAAC,wBAAwB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,MAA0B;IACxE,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAClD,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAElD,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QAC5E,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAChC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EACnC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EACnC,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,MAAM,EACvB,gBAAgB,CACnB,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAChC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EACnC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EACnC,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,MAAM,EACvB,gBAAgB,CACnB,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAChC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EACnC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EACnC,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,MAAM,EACvB,gBAAgB,CACnB,CAAC;QAEF,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1C,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAE3K,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;QAC7D,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC;AAED,cAAc;AAEd,gBAAgB;AAChB,MAAM,UAAU,eAAe,CAAC,QAAkB,EAAE,MAA0B;IAC1E,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAChF,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACzD,CAAC;AAED,WAAW;AAEX,gBAAgB;AAChB,MAAM,UAAU,eAAe,CAAC,QAAkB,EAAE,MAA0B;IAC1E,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5D,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACpI,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,wBAAwB,CAAC,QAAkB,EAAE,MAA0B;IACnF,QAAQ,CAAC,oBAAoB,GAAG,MAAM,CAAC,cAAe,CAAC,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;IACnE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC;IAEvC,IAAI,MAAM,CAAC,cAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,cAAe,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACnE,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACpI,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,6BAA6B,CAAC,QAAkB,EAAE,MAA0B;IACxF,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAC9D,cAAc,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,mBAAoB,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;QAC3G,IAAI,eAAe,KAAK,MAAM,CAAC,yBAAyB,EAAE,CAAC;YACvD,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;YACtD,MAAM,CAAC,kBAAkB,GAAoB,YAAa,CAAC,SAAS,EAAE,CAAC;YACvE,MAAM,CAAC,yBAAyB,GAAmB,eAAe,CAAC;QACvE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAChF,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,qBAAqB,CAAC,QAAkB,EAAE,MAA0B;IAChF,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAe,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;QAC9G,IAAI,eAAe,KAAK,QAAQ,CAAC,oBAAoB,EAAE,CAAC;YACpD,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;YAChD,QAAQ,CAAC,aAAa,GAAoB,YAAa,CAAC,SAAS,EAAE,CAAC;YACpE,QAAQ,CAAC,oBAAoB,GAAmB,eAAe,CAAC;QACpE,CAAC;QACD,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACP,CAAC;AAED,WAAW;AAEX,gBAAgB;AAChB,MAAM,UAAU,eAAe,CAAC,QAAkB,EAAE,OAA2B;IAC3E,QAAQ,CAAC,SAAS,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,YAAY;AAEZ,gBAAgB;AAChB,MAAM,UAAU,sBAAsB,CAAC,QAAkB,EAAE,MAA0B;IACjF,IAAI,MAAM,CAAC,oBAAoB,IAAI,MAAM,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;YACnH,MAAM,GAAG,GAAG,IAAI,CAAkB,eAAgB,CAAC,OAAO,EAAmB,YAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3G,MAAM,GAAG,GAAG,IAAI,CAAkB,eAAgB,CAAC,OAAQ,EAAmB,YAAa,CAAC,OAAQ,EAAE,KAAK,CAAC,CAAC;YAE7G,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;YAC3B,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,MAAM,CAAC,oBAAoB,IAAI,MAAM,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;YACnH,MAAM,GAAG,GAAG,IAAI,CAAkB,eAAgB,CAAC,OAAO,EAAmB,YAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3G,MAAM,GAAG,GAAG,IAAI,CAAkB,eAAgB,CAAC,OAAQ,EAAmB,YAAa,CAAC,OAAQ,EAAE,KAAK,CAAC,CAAC;YAE7G,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;YAC3B,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,WAAW;AAEX,gBAAgB;AAChB,MAAM,UAAU,wBAAwB,CAAC,QAAkB,EAAE,MAA0B;IACnF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACrE,cAAc,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,kBAAmB,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,EAAE;QACnG,MAAM,eAAe,GAAmB,eAAe,CAAC;QACxD,MAAM,eAAe,GAAmB,YAAY,CAAC;QACrD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC5G,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9E,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,mBAAmB,CAAC,QAAkB,EAAE,MAA0B;IAC9E,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACxE,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9E,CAAC;AAED,iBAAiB;AAEjB,gBAAgB;AAChB,MAAM,UAAU,oBAAoB,CAAC,QAAkB,EAAE,MAA0B;IAC/E,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC9B,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC5D,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC;QACD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAClC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,qBAAqB;IACrB,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;AACnE,CAAC;AAED,YAAY;AAEZ,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,MAA0B;IAC3E,QAAQ,CAAC,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACpF,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACvF,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,yBAAyB,CAAC,QAAkB,EAAE,MAA0B;IACpF,QAAQ,CAAC,4BAA4B,GAAG,MAAM,CAAC,sBAAuB,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,4BAA4B,CAAC,SAAS,EAAE,CAAC;IAC1E,QAAQ,CAAC,qBAAqB,GAAG,QAAQ,CAAC,YAAY,CAAC;IAEvD,IAAI,MAAM,CAAC,sBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,QAAQ,CAAC,qBAAqB,GAAG,MAAM,CAAC,sBAAuB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACnF,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,CAAC;IACpE,CAAC;IACD,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACvF,CAAC;AAED,YAAY;AAEZ,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,MAA0B;IAC3E,QAAQ,CAAC,yBAAyB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC9D,QAAQ,CAAC,uBAAuB,GAAG,MAAM,CAAC,eAAe,CAAC;IAC1D,QAAQ,CAAC,sBAAsB,GAAG,MAAM,CAAC,cAAc,CAAC;AAC5D,CAAC","sourcesContent":["import { Color4 } from \"core/Maths/math.color\";\r\nimport type { ColorGradient, FactorGradient } from \"core/Misc/gradients\";\r\nimport { GradientHelper } from \"core/Misc/gradients\";\r\nimport type { Particle } from \"./particle\";\r\nimport type { ThinParticleSystem } from \"./thinParticleSystem\";\r\nimport { Clamp, Lerp, RandomRange } from \"core/Maths/math.scalar.functions\";\r\nimport { TmpVectors, Vector3, Vector4 } from \"core/Maths/math.vector\";\r\n\r\n/** Color */\r\n\r\n/** @internal */\r\nexport function _CreateColorData(particle: Particle, system: ThinParticleSystem) {\r\n const step = RandomRange(0, 1.0);\r\n\r\n Color4.LerpToRef(system.color1, system.color2, step, particle.color);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateColorDeadData(particle: Particle, system: ThinParticleSystem) {\r\n system.colorDead.subtractToRef(particle.color, system._colorDiff);\r\n system._colorDiff.scaleToRef(1.0 / particle.lifeTime, particle.colorStep);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateColorGradientsData(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentColorGradient = system._colorGradients![0];\r\n particle._currentColorGradient.getColorToRef(particle.color);\r\n particle._currentColor1.copyFrom(particle.color);\r\n\r\n if (system._colorGradients!.length > 1) {\r\n system._colorGradients![1].getColorToRef(particle._currentColor2);\r\n } else {\r\n particle._currentColor2.copyFrom(particle.color);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessColorGradients(particle: Particle, system: ThinParticleSystem) {\r\n const colorGradients = system._colorGradients;\r\n GradientHelper.GetCurrentGradient(system._ratio, colorGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentColorGradient) {\r\n particle._currentColor1.copyFrom(particle._currentColor2);\r\n (<ColorGradient>nextGradient).getColorToRef(particle._currentColor2);\r\n particle._currentColorGradient = <ColorGradient>currentGradient;\r\n }\r\n Color4.LerpToRef(particle._currentColor1, particle._currentColor2, scale, particle.color);\r\n\r\n if (particle.color.a < 0) {\r\n particle.color.a = 0;\r\n }\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessColor(particle: Particle, system: ThinParticleSystem) {\r\n particle.colorStep.scaleToRef(system._scaledUpdateSpeed, system._scaledColorStep);\r\n particle.color.addInPlace(system._scaledColorStep);\r\n\r\n if (particle.color.a < 0) {\r\n particle.color.a = 0;\r\n }\r\n}\r\n\r\n/** Angular speed */\r\n\r\n/** @internal */\r\nexport function _ProcessAngularSpeedGradients(particle: Particle, system: ThinParticleSystem) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._angularSpeedGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentAngularSpeedGradient) {\r\n particle._currentAngularSpeed1 = particle._currentAngularSpeed2;\r\n particle._currentAngularSpeed2 = (<FactorGradient>nextGradient).getFactor();\r\n particle._currentAngularSpeedGradient = <FactorGradient>currentGradient;\r\n }\r\n particle.angularSpeed = Lerp(particle._currentAngularSpeed1, particle._currentAngularSpeed2, scale);\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessAngularSpeed(particle: Particle, system: ThinParticleSystem) {\r\n particle.angle += particle.angularSpeed * system._scaledUpdateSpeed;\r\n}\r\n\r\n/** Velocity & direction */\r\n\r\n/** @internal */\r\nexport function _CreateDirectionData(particle: Particle, system: ThinParticleSystem) {\r\n system.particleEmitterType.startDirectionFunction(system._emitterWorldMatrix, particle.direction, particle, system.isLocal, system._emitterInverseWorldMatrix);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateCustomDirectionData(particle: Particle, system: ThinParticleSystem) {\r\n system.startDirectionFunction!(system._emitterWorldMatrix, particle.direction, particle, system.isLocal);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateVelocityGradients(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentVelocityGradient = system._velocityGradients![0];\r\n particle._currentVelocity1 = particle._currentVelocityGradient.getFactor();\r\n\r\n if (system._velocityGradients!.length > 1) {\r\n particle._currentVelocity2 = system._velocityGradients![1].getFactor();\r\n } else {\r\n particle._currentVelocity2 = particle._currentVelocity1;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateLimitVelocityGradients(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentLimitVelocityGradient = system._limitVelocityGradients![0];\r\n particle._currentLimitVelocity1 = particle._currentLimitVelocityGradient.getFactor();\r\n\r\n if (system._limitVelocityGradients!.length > 1) {\r\n particle._currentLimitVelocity2 = system._limitVelocityGradients![1].getFactor();\r\n } else {\r\n particle._currentLimitVelocity2 = particle._currentLimitVelocity1;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessVelocityGradients(particle: Particle, system: ThinParticleSystem) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._velocityGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentVelocityGradient) {\r\n particle._currentVelocity1 = particle._currentVelocity2;\r\n particle._currentVelocity2 = (<FactorGradient>nextGradient).getFactor();\r\n particle._currentVelocityGradient = <FactorGradient>currentGradient;\r\n }\r\n particle._directionScale *= Lerp(particle._currentVelocity1, particle._currentVelocity2, scale);\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessLimitVelocityGradients(particle: Particle, system: ThinParticleSystem) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._limitVelocityGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentLimitVelocityGradient) {\r\n particle._currentLimitVelocity1 = particle._currentLimitVelocity2;\r\n particle._currentLimitVelocity2 = (<FactorGradient>nextGradient).getFactor();\r\n particle._currentLimitVelocityGradient = <FactorGradient>currentGradient;\r\n }\r\n\r\n const limitVelocity = Lerp(particle._currentLimitVelocity1, particle._currentLimitVelocity2, scale);\r\n const currentVelocity = particle.direction.length();\r\n\r\n if (currentVelocity > limitVelocity) {\r\n particle.direction.scaleInPlace(system.limitVelocityDamping);\r\n }\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessDirection(particle: Particle) {\r\n particle.direction.scaleToRef(particle._directionScale, particle._scaledDirection);\r\n}\r\n\r\n/** Position */\r\n\r\n/** @internal */\r\nexport function _CreatePositionData(particle: Particle, system: ThinParticleSystem) {\r\n system.particleEmitterType.startPositionFunction(system._emitterWorldMatrix, particle.position, particle, system.isLocal);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateCustomPositionData(particle: Particle, system: ThinParticleSystem) {\r\n system.startPositionFunction!(system._emitterWorldMatrix, particle.position, particle, system.isLocal);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateIsLocalData(particle: Particle, system: ThinParticleSystem) {\r\n if (!particle._localPosition) {\r\n particle._localPosition = particle.position.clone();\r\n } else {\r\n particle._localPosition.copyFrom(particle.position);\r\n }\r\n Vector3.TransformCoordinatesToRef(particle._localPosition, system._emitterWorldMatrix, particle.position);\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessPosition(particle: Particle, system: ThinParticleSystem) {\r\n if (system.isLocal && particle._localPosition) {\r\n particle._localPosition!.addInPlace(particle._scaledDirection);\r\n Vector3.TransformCoordinatesToRef(particle._localPosition!, system._emitterWorldMatrix, particle.position);\r\n } else {\r\n particle.position.addInPlace(particle._scaledDirection);\r\n }\r\n}\r\n\r\n/** Drag */\r\n\r\n/** @internal */\r\nexport function _CreateDragData(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentDragGradient = system._dragGradients![0];\r\n particle._currentDrag1 = particle._currentDragGradient.getFactor();\r\n\r\n if (system._dragGradients!.length > 1) {\r\n particle._currentDrag2 = system._dragGradients![1].getFactor();\r\n } else {\r\n particle._currentDrag2 = particle._currentDrag1;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessDragGradients(particle: Particle, system: ThinParticleSystem) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._dragGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentDragGradient) {\r\n particle._currentDrag1 = particle._currentDrag2;\r\n particle._currentDrag2 = (<FactorGradient>nextGradient).getFactor();\r\n particle._currentDragGradient = <FactorGradient>currentGradient;\r\n }\r\n\r\n const drag = Lerp(particle._currentDrag1, particle._currentDrag2, scale);\r\n\r\n particle._scaledDirection.scaleInPlace(1.0 - drag);\r\n });\r\n}\r\n\r\n/** Noise */\r\n\r\n/** @internal */\r\nexport function _CreateNoiseData(particle: Particle, _system: ThinParticleSystem) {\r\n if (particle._randomNoiseCoordinates1) {\r\n particle._randomNoiseCoordinates1.copyFromFloats(Math.random(), Math.random(), Math.random());\r\n particle._randomNoiseCoordinates2.copyFromFloats(Math.random(), Math.random(), Math.random());\r\n } else {\r\n particle._randomNoiseCoordinates1 = new Vector3(Math.random(), Math.random(), Math.random());\r\n particle._randomNoiseCoordinates2 = new Vector3(Math.random(), Math.random(), Math.random());\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessNoise(particle: Particle, system: ThinParticleSystem) {\r\n const noiseTextureData = system._noiseTextureData;\r\n const noiseTextureSize = system._noiseTextureSize;\r\n\r\n if (noiseTextureData && noiseTextureSize && particle._randomNoiseCoordinates1) {\r\n const fetchedColorR = system._fetchR(\r\n particle._randomNoiseCoordinates1.x,\r\n particle._randomNoiseCoordinates1.y,\r\n noiseTextureSize.width,\r\n noiseTextureSize.height,\r\n noiseTextureData\r\n );\r\n const fetchedColorG = system._fetchR(\r\n particle._randomNoiseCoordinates1.z,\r\n particle._randomNoiseCoordinates2.x,\r\n noiseTextureSize.width,\r\n noiseTextureSize.height,\r\n noiseTextureData\r\n );\r\n const fetchedColorB = system._fetchR(\r\n particle._randomNoiseCoordinates2.y,\r\n particle._randomNoiseCoordinates2.z,\r\n noiseTextureSize.width,\r\n noiseTextureSize.height,\r\n noiseTextureData\r\n );\r\n\r\n const force = TmpVectors.Vector3[0];\r\n const scaledForce = TmpVectors.Vector3[1];\r\n\r\n force.copyFromFloats((2 * fetchedColorR - 1) * system.noiseStrength.x, (2 * fetchedColorG - 1) * system.noiseStrength.y, (2 * fetchedColorB - 1) * system.noiseStrength.z);\r\n\r\n force.scaleToRef(system._tempScaledUpdateSpeed, scaledForce);\r\n particle.direction.addInPlace(scaledForce);\r\n }\r\n}\r\n\r\n/** Gravity */\r\n\r\n/** @internal */\r\nexport function _ProcessGravity(particle: Particle, system: ThinParticleSystem) {\r\n system.gravity.scaleToRef(system._tempScaledUpdateSpeed, system._scaledGravity);\r\n particle.direction.addInPlace(system._scaledGravity);\r\n}\r\n\r\n/** Size */\r\n\r\n/** @internal */\r\nexport function _CreateSizeData(particle: Particle, system: ThinParticleSystem) {\r\n particle.size = RandomRange(system.minSize, system.maxSize);\r\n particle.scale.copyFromFloats(RandomRange(system.minScaleX, system.maxScaleX), RandomRange(system.minScaleY, system.maxScaleY));\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateSizeGradientsData(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentSizeGradient = system._sizeGradients![0];\r\n particle._currentSize1 = particle._currentSizeGradient.getFactor();\r\n particle.size = particle._currentSize1;\r\n\r\n if (system._sizeGradients!.length > 1) {\r\n particle._currentSize2 = system._sizeGradients![1].getFactor();\r\n } else {\r\n particle._currentSize2 = particle._currentSize1;\r\n }\r\n\r\n particle.scale.copyFromFloats(RandomRange(system.minScaleX, system.maxScaleX), RandomRange(system.minScaleY, system.maxScaleY));\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateStartSizeGradientsData(particle: Particle, system: ThinParticleSystem) {\r\n const ratio = system._actualFrame / system.targetStopDuration;\r\n GradientHelper.GetCurrentGradient(ratio, system._startSizeGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== system._currentStartSizeGradient) {\r\n system._currentStartSize1 = system._currentStartSize2;\r\n system._currentStartSize2 = (<FactorGradient>nextGradient).getFactor();\r\n system._currentStartSizeGradient = <FactorGradient>currentGradient;\r\n }\r\n\r\n const value = Lerp(system._currentStartSize1, system._currentStartSize2, scale);\r\n particle.scale.scaleInPlace(value);\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function _ProcessSizeGradients(particle: Particle, system: ThinParticleSystem) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._sizeGradients!, (currentGradient, nextGradient, scale) => {\r\n if (currentGradient !== particle._currentSizeGradient) {\r\n particle._currentSize1 = particle._currentSize2;\r\n particle._currentSize2 = (<FactorGradient>nextGradient).getFactor();\r\n particle._currentSizeGradient = <FactorGradient>currentGradient;\r\n }\r\n particle.size = Lerp(particle._currentSize1, particle._currentSize2, scale);\r\n });\r\n}\r\n\r\n/** Ramp */\r\n\r\n/** @internal */\r\nexport function _CreateRampData(particle: Particle, _system: ThinParticleSystem) {\r\n particle.remapData = new Vector4(0, 1, 0, 1);\r\n}\r\n\r\n/** Remap */\r\n\r\n/** @internal */\r\nexport function _ProcessRemapGradients(particle: Particle, system: ThinParticleSystem) {\r\n if (system._colorRemapGradients && system._colorRemapGradients.length > 0) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._colorRemapGradients, (currentGradient, nextGradient, scale) => {\r\n const min = Lerp((<FactorGradient>currentGradient).factor1, (<FactorGradient>nextGradient).factor1, scale);\r\n const max = Lerp((<FactorGradient>currentGradient).factor2!, (<FactorGradient>nextGradient).factor2!, scale);\r\n\r\n particle.remapData.x = min;\r\n particle.remapData.y = max - min;\r\n });\r\n }\r\n\r\n if (system._alphaRemapGradients && system._alphaRemapGradients.length > 0) {\r\n GradientHelper.GetCurrentGradient(system._ratio, system._alphaRemapGradients, (currentGradient, nextGradient, scale) => {\r\n const min = Lerp((<FactorGradient>currentGradient).factor1, (<FactorGradient>nextGradient).factor1, scale);\r\n const max = Lerp((<FactorGradient>currentGradient).factor2!, (<FactorGradient>nextGradient).factor2!, scale);\r\n\r\n particle.remapData.z = min;\r\n particle.remapData.w = max - min;\r\n });\r\n }\r\n}\r\n\r\n/** Life */\r\n\r\n/** @internal */\r\nexport function _CreateLifeGradientsData(particle: Particle, system: ThinParticleSystem) {\r\n const ratio = Clamp(system._actualFrame / system.targetStopDuration);\r\n GradientHelper.GetCurrentGradient(ratio, system._lifeTimeGradients!, (currentGradient, nextGradient) => {\r\n const factorGradient1 = <FactorGradient>currentGradient;\r\n const factorGradient2 = <FactorGradient>nextGradient;\r\n const lifeTime1 = factorGradient1.getFactor();\r\n const lifeTime2 = factorGradient2.getFactor();\r\n const gradient = (ratio - factorGradient1.gradient) / (factorGradient2.gradient - factorGradient1.gradient);\r\n particle.lifeTime = Lerp(lifeTime1, lifeTime2, gradient);\r\n });\r\n system._emitPower = RandomRange(system.minEmitPower, system.maxEmitPower);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateLifetimeData(particle: Particle, system: ThinParticleSystem) {\r\n particle.lifeTime = RandomRange(system.minLifeTime, system.maxLifeTime);\r\n system._emitPower = RandomRange(system.minEmitPower, system.maxEmitPower);\r\n}\r\n\r\n/** Emit power */\r\n\r\n/** @internal */\r\nexport function _CreateEmitPowerData(particle: Particle, system: ThinParticleSystem) {\r\n if (system._emitPower === 0) {\r\n if (!particle._initialDirection) {\r\n particle._initialDirection = particle.direction.clone();\r\n } else {\r\n particle._initialDirection.copyFrom(particle.direction);\r\n }\r\n particle.direction.set(0, 0, 0);\r\n } else {\r\n particle._initialDirection = null;\r\n particle.direction.scaleInPlace(system._emitPower);\r\n }\r\n\r\n // Inherited Velocity\r\n particle.direction.addInPlace(system._inheritedVelocityOffset);\r\n}\r\n\r\n/** Angle */\r\n\r\n/** @internal */\r\nexport function _CreateAngleData(particle: Particle, system: ThinParticleSystem) {\r\n particle.angularSpeed = RandomRange(system.minAngularSpeed, system.maxAngularSpeed);\r\n particle.angle = RandomRange(system.minInitialRotation, system.maxInitialRotation);\r\n}\r\n\r\n/** @internal */\r\nexport function _CreateAngleGradientsData(particle: Particle, system: ThinParticleSystem) {\r\n particle._currentAngularSpeedGradient = system._angularSpeedGradients![0];\r\n particle.angularSpeed = particle._currentAngularSpeedGradient.getFactor();\r\n particle._currentAngularSpeed1 = particle.angularSpeed;\r\n\r\n if (system._angularSpeedGradients!.length > 1) {\r\n particle._currentAngularSpeed2 = system._angularSpeedGradients![1].getFactor();\r\n } else {\r\n particle._currentAngularSpeed2 = particle._currentAngularSpeed1;\r\n }\r\n particle.angle = RandomRange(system.minInitialRotation, system.maxInitialRotation);\r\n}\r\n\r\n/** Sheet */\r\n\r\n/** @internal */\r\nexport function _CreateSheetData(particle: Particle, system: ThinParticleSystem) {\r\n particle._initialStartSpriteCellId = system.startSpriteCellID;\r\n particle._initialEndSpriteCellId = system.endSpriteCellID;\r\n particle._initialSpriteCellLoop = system.spriteCellLoop;\r\n}\r\n"]}
|
|
@@ -317,8 +317,6 @@ export class ThinParticleSystem extends BaseParticleSystem {
|
|
|
317
317
|
/** @internal */
|
|
318
318
|
this._colorDiff = new Color4(0, 0, 0, 0);
|
|
319
319
|
/** @internal */
|
|
320
|
-
this._scaledDirection = Vector3.Zero();
|
|
321
|
-
/** @internal */
|
|
322
320
|
this._scaledGravity = Vector3.Zero();
|
|
323
321
|
this._currentRenderId = -1;
|
|
324
322
|
this._useInstancing = false;
|
|
@@ -520,7 +518,7 @@ export class ThinParticleSystem extends BaseParticleSystem {
|
|
|
520
518
|
particle.age = particle.lifeTime;
|
|
521
519
|
}
|
|
522
520
|
this._ratio = particle.age / particle.lifeTime;
|
|
523
|
-
|
|
521
|
+
particle._directionScale = this._tempScaledUpdateSpeed;
|
|
524
522
|
// Processing queue
|
|
525
523
|
let currentQueueItem = this._updateQueueStart;
|
|
526
524
|
while (currentQueueItem) {
|