Exemple #1
0
 void Remove()
 {
     Simulation.active.RemoveRuntimeCondition(condition);
     condition = null;
     isRunning = false;
     addOrRemoveButton.text = "Add";
 }
        public void RemoveRuntimeCondition(RuntimeCondition condition)
        {
            positions     = NativeArrayUtils.RemoveRange(positions, condition.startIndex, condition.numberOfParticles);
            positionsCopy = NativeArrayUtils.RemoveRange(positionsCopy, condition.startIndex, condition.numberOfParticles);
            velocities    = NativeArrayUtils.RemoveRange(velocities, condition.startIndex, condition.numberOfParticles);
            masses        = NativeArrayUtils.RemoveRange(masses, condition.startIndex, condition.numberOfParticles);
            particles     = NativeArrayUtils.RemoveRange(particles, condition.startIndex, condition.numberOfParticles);

            nTotal -= condition.numberOfParticles;
            pSystem.SetParticles(particles, nTotal);

            int conditionIndex = runtimeConditionsSet.IndexOf(condition);

            for (int i = conditionIndex + 1; i < runtimeConditionsSet.Count; i++)
            {
                runtimeConditionsSet[i].startIndex -= condition.numberOfParticles;
            }

            runtimeConditionsSet.Remove(condition);
        }
Exemple #3
0
        void Add()
        {
            List <InitialCondition> initialConditions = new List <InitialCondition>
            {
                new InitialCondition
                {
                    numberOfParticles  = InputFieldToInt(numberOfParticles),
                    center             = new float3(InputFieldToFloat(centerX), InputFieldToFloat(centerY), InputFieldToFloat(centerZ)),
                    radius             = InputFieldToFloat(radius),
                    shapeElipsoid      = new float3(InputFieldToFloat(shapeElipsoidX), InputFieldToFloat(shapeElipsoidY), InputFieldToFloat(shapeElipsoidZ)),
                    turbulenceStrength = InputFieldToFloat(turbulenceStrength),
                    turbulenceElipsoid = new float3(InputFieldToFloat(turbulenceElipsoidX), InputFieldToFloat(turbulenceElipsoidY), InputFieldToFloat(turbulenceElipsoidZ)),
                    angularVelocity    = InputFieldToFloat(angularVelocity),
                    seed = InputFieldToInt(seed)
                }
            };

            Simulation.active.AddInitialConditions(initialConditions);
            condition = Simulation.active.runtimeConditionsSet[Simulation.active.runtimeConditionsSet.Count - 1];

            isRunning = true;
            addOrRemoveButton.text = "Remove";
        }