Script Test Example

Description:

The following sample script is the default script of the Script Test. It shows how to test particles against a spherical volume.

Can Be Used With:

This script must be used in a Script_Test action.

Effect:

The script goes through all particles, compares the particle position with a radius of 20 and sets the particle’s test status to true when the particle is inside the radius.

In the above setup, the particles that pass through the sphere are sent to the next event where they change their color:

EXAMPLE

   --The ChannelsUsed handler defines the channels
   --to be made available to the script.
   --For the list of all channels, see
   --Interface: MaxscriptParticleContainer
   --The parameter pCont passed to the handler
   --contains the Particle Container the script is applied to
   on ChannelsUsed pCont do
   (
   --Enable the Time channel:
   pCont.useTime = true
   --Enable the Position channel:
   pCont.usePosition = true
   )

   --The Init handler is called on initialization.
   --It is not used in this case.
   on Init pCont do
   (
   )

   --The Proceed handler contains the main script
   --applied to the Particles.
   --The parameter pCont passed to the handler
   --contains the Particle Container the script is applied to:
   on Proceed pCont do
   (
   --get the total number of particles
   count = pCont.NumParticles()
   --loop through all particles
   for i in 1 to count do
   (
   --Set the particle index in the container to the current i value.
   --This makes the i-th particle in the container the current one
   pCont.particleIndex = i
   -- all particles inside a sphere with radius 20 satisfy the test
   if length (pCont.particlePosition) < 20 then
   (
   --set the Test Status of the particle to True
   pCont.particleTestStatus = true
   --set the Test Time of the particle to the current Particle Time
   pCont.particleTestTime = pCont.particleTime
   )
   )--end i loop
   )

   --The Release handler is used to do cleanup work.
   --Not used in this case.
   on Release pCont do
   (
   )