MAXScript Extensions > MAXScript Extensions for Particle Flow > Particle Flow Classes > Operators > Speed >

# Keep_Apart : Helper

    Keep_Apart - superclass: helper super-superclass:node - classID: #(1962490652, 515064320)

Value > MAXWrapper > Node > Helper > Keep_Apart

| Particle Flow - Quick Navigation

Description:

The Keep_Apart operator lets you apply forces to particles to cause them to separate to prevent or minimize collisions among particles. Alternatively, you can use a negative force to keep particles from separating too much. The operator works by controlling particle speed and acceleration.

Constructor:

    Keep_Apart...

Properties:

    <Keep_Apart>.Force Float default:100.0 --world units

Get/Set the amount of force applied to the particles.

Use positive values to separate particles, or negative values to move them closer together.

    <Keep_Apart>.Use_Accel_Limit Boolean default:true

When set to True, the Accel_Limit value will be considered.

When set to False, the software uses any necessary acceleration.

    <Keep_Apart>.Accel_Limit Float default:1000.0 --world units

When .Use_Accel_Limit is set to True, lets you set a maximum acceleration value that can be applied to particles' motion.

    <Keep_Apart>.Use_Speed_Limit Boolean default:false

When set to True, the Speed_Limit value will be considered.

When set to False, the software uses any necessary speed.

    <Keep_Apart>.Speed_Limit Float default:600.0 --world units

When .Use_Speed_Limit is set to True, lets you set a maximum speed value that can be applied to particles' motion.

    <Keep_Apart>.Range_Type Integer default:0

Lets you set a volume and falloff within which the force takes effect, either as absolute distances or relative to particle size.

0: Absolute Size - Choose this to set the core radius and falloff zone as absolute distances, in system units, using the .Core_Size and .Falloff_Size values.

1: Relative to Particle Size - Choose this to set the core radius and falloff zone as percentages, relative to the radius of each particle. The particle radius is determined by measuring the distance from the pivot point to the farthest corner of its bounding box.

    <Keep_Apart>.Core_Size Float default:10.0 --world units

The distance from each particle's pivot point, in system units, within which the force is applied at full strength.

Used when .Range_Type is set to 0 : Absolute Size.

    <Keep_Apart>.Falloff_Size Float default:10.0 --world units

The distance beyond the core radius, in system units, over which the force diminishes from full strength to 0.

Used when .Range_Type is set to 0 : Absolute Size.

    <Keep_Apart>.Core_Percentage Float default:200.0 --percentage

The distance from each particle, as a percentage of the particle radius, within which the force is applied at full strength.

Used when .Range_Type is set to 1 : Relative to Particle Size.

    <Keep_Apart>.Falloff_Percentage Float default:100.0 --percentage

The distance beyond the core radius, as a percentage of the radius, over which the force diminishes from full strength to 0.

Used when .Range_Type is set to 1 : Relative to Particle Size.

    <Keep_Apart>.Variation Float default:0.0 --percentage

The amount by which range values can vary randomly, as a percentage of the specified values.

The software uses the same random variation value for both Core and Falloff values, whether absolute or relative.

    <Keep_Apart>.Scope_Type Integer default:0

By default, the Keep Apart force affects only particles in the current event, or particle group.

These settings let you widen the scope to other events or systems.

Possible values are:

0: Particle Group - The operator affects only particles in the current event.

1: Particle System - The operator affects all particles in the current particle system.

2: Selected Particle Groups - The operator affects only highlighted events in the list below this choice. After choosing this option, click items in the list to highlight them.

3: Selected Particle Systems - The operator affects only highlighted particle systems in the list below this choice. After choosing this option, click items in the list to highlight them.

    <Keep_Apart>.Selected_Groups int array default:#()

Get/Set the Groups to be affected when .Scope_Type is set to 2 : Selected Particle Groups.

    <Keep_Apart>.Selected_Systems int array default:#()

Get/Set the Systems to be affected when .Scope_Type is set to 3 : Selected Particle Systems.

    <Keep_Apart>.Use_Script_Float Integer

Possible values are:

0: Not Used - Particle Flow uses the Force setting specified in the Parameters rollout.

1: Influence - Particle Flow applies the script particleFloat channel value to the .Force value.

    <Keep_Apart>.Use_Script_Vector Integer

Controls the state of the drop-down list in the additional Script Wiring rollout.

Possible values are:

0: Not Used - Particle Flow uses the Range settings specified in the Parameters rollout.

1: Absolute Size Range - Particle Flow applies the script particleVector values to the Absolute Size Range values. The X component of the vector value is used for the .Core_Size value, and the Y component for the .Falloff_Size value.

2: Relative Size Range - Particle Flow applies the script particleVector values to the Relative Size Range values. The X component of the vector value is used for the. .Core_Percentage value, and the Y component for the. .Falloff_Percentage value.

    <Keep_Apart>.Random_Seed Integer

Specifies a randomization value.

## Script Wiring:

Script Wiring lets you use a script to control the Force and Range parameters, which you normally specify in the operator's properties.

- Place a Script Operator before the Speed_Keep_Apart operator in the event,

- Enable Script Wiring using the .setUseScriptWiring method in the Interface: action

- Use the Script_Operator to define values in the particleFloat and particleVector channels.

Channels:

ParticleFloat - Force

When Script Wiring is active, the values in the particleFloat channel will control the .Force value of the Keep_Apart operator. For an example of a script that sets particleFloat values, see particleFloat Sample Script.

ParticleVector - Absolute Size

When .Use_Script_Vector is set to 1, the values in the particleVector channel will control the Absolute Size Range values.

The X component of the vector will be used for the .Core_Size value.

The Y component of the vector will be used for the .Falloff_Size value.

ParticleVector - Relative Size

When .Use_Script_Vector is set to 2, the values in the particleVector channel will control the Relative Size Range values.

The X component of the vector will be used for the .Core_Percentage value.

The Y component of the vector will be used for the .Falloff_Percentage value.

## Keep_Apart Interfaces:

Interface: action

Interface: operator

Interface: PViewItem

#### See Also

- Particle Flow Classes

- particleFloat Sample Script

- particleVector Sample Script