def update(self, delta_t): self._lifetime -= delta_t positions = self._lifetime < 0.0 number_of_deaths = np.sum(positions) self._lifetime[positions] = np.random.rand(number_of_deaths) * 2.0 self.velocity[positions] = np.random.rand(number_of_deaths * 3).reshape(number_of_deaths, 3) self.velocity[positions, 0] = 2.0 * self.velocity[positions, 0] - 1.0 self.velocity[positions, 1] = 1.0 * self.velocity[positions, 1] + 7.0 self.velocity[positions, 2] = 2.0 * self.velocity[positions, 2] - 1.0 self.position[positions] = np.tile([-0.5, -2.0, 0.0], number_of_deaths).reshape(number_of_deaths, 3) ParticleArray.update(self, delta_t)
def __init__(self, number_of_particles): ParticleArray.__init__(self, mass=0.001, number_of_particles=number_of_particles) self.reset()
def getReadOnlyParticle(self, i): p = ParticleArray.getReadOnlyParticle(self, i) p.geometry.setColor(np.array([0.1, 0.1, 0.6])) return p