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

# Placement_Paint : Helper

    Placement_Paint- superclass: helper; super-superclass:node - 19:0 - classID:#(1395943175, 515064320)

Value > MAXWrapper > Node > Helper >Placement_Paint

| Particle Flow - Quick Navigation

Description:

The Placement_Paint operator uses a Particle Paint helper to acquire particle seeds from which to generate particles. Placement Paint sets particle position, rotation, and mapping.

The Placement_Paint operator was first added to 3ds Max as part of the Creativity Extension to 3ds Max 2009 and became an integral part of 3ds Max 2010. It was previously available in the Particle Flow Tools Box #1.

Constructor:

    Placement_Paint...

Properties:

    <Placement_Paint>.Particle_Paint_Helper: node

Get/set the Particle Paint Helper node as reference for particle seeds.

    <Placement_Paint>.Update_Type: radiobtnIndex

Get/set the Data Update radio buttons selection.

Possible values are:

0 - Once

1 - Continuous

## Acquire Paint Data

    <Placement_Paint>.Acquire_Paint_Position: boolean

Get/set the state of the Paint Position To option.

When set to true, the operator uses position data from the Particle Paint helper to control particle position or speed.

    <Placement_Paint>.Position_Type: radiobtnIndex

Get/set the selection index of the Type radio buttons.

Possible values are:

0 - Position- The particle seeds’ position data is translated into particle position. If the Data Update type is set to Continuous, particle speed is controlled to ensure that particles are locked to the particle seeds’ location. This is similar to the Lock On Emitter option in the Position Icon operator.

1 - Script Vector (default)- The particle seeds’ position data is translated into the particle script vector channel (as used by the Script operators and Find Target test). If the Data Update type is set to Continuous, the script vector channel is continuously updated while the particles are in the event. The most common use of the Script Vector data is the Find Target operator using it to direct particles at the target defined by the script vector. However, the Find Target test controls particles only until they reach the target.

To overcome that (keep particles on target) the following option is used:

    <Placement_Paint>.Snap_If_Close: boolean

Get/set the state of the Snap If Close option used when .Position_Type is set to 1.

The option is available for the Script Vector option only. If a particle is directed close to the target point as defined by the Paint Position value (written to the Script Vector channel), then the operator starts controlling the particle position directly, as with the option Position. This technique allows you to direct particles to the Paint seeds' location with the Find Target test, then switch back to direct control of particle position (similar to Lock On Emitter operation). Keep in mind that the operator continues to write the data into the script vector channel even after the snap moment.

    <Placement_Paint>.Snap_Distance: worldUnits

Get/set the Snap Distance value used when .Snap_If_Close is set to true .

    <Placement_Paint>.Acquire_Paint_Rotation: boolean

Get/set the state of the Rotation checkbox.

When set to true, the rotation data from the Particle Paint helper is used to control particle rotation or spin.

    <Placement_Paint>.BlendIn_Rotation: boolean

The option is used when

- the Data Update type is set to Continuous,

- the Paint Position To type is Script Vector, and

- the Rotation check box is turned on.

In this case, particles move toward the position as defined by the Particle Paint helper. Whenset to true, the operator modifies particle rotation to allow smooth blending from the current particle rotation to the rotation by Particle Paint while particles are approaching their target position.

    <Placement_Paint>.Near_Distance: worldUnits

Get/set the Near Distance value.

    <Placement_Paint>.Far_Distance: worldUnits

Get/set the Far Distance value.

These two parameters are used when .BlendIn_Rotation is set to true .

The Far Distance value indicates the distance from the target point to the current particle position when the blend-in rotation process starts.

The Near Distance value indicates the distance when the blend-in process should be finished, meaning a particle finally assumes the rotation value as defined by the Particle Paint helper.

    <Placement_Paint>.Acquire_Paint_Mapping: boolean

Get/set the state of the Mapping checkbox.

When set to true, the operator uses the mapping data from the Particle Paint helper for particle mapping.

    <Placement_Paint>.Acquire_Paint_MaterialID(Acquire_Paint_Material_ID) : boolean

Get/set the state of the Material ID checkbox.

When set to true, the operator defines a material ID for each particle. The ID is defined by the Particle Paint operator as sub-material index at the closest face of the painted object to the particle seed.

    <Placement_Paint>.Acquire_Paint_Selection: boolean

When set to true, the operator uses the Particle Paint helper selection to setup the selection qualities of particles. The selection that was made via the PF Source object (if any) is overwritten by the selection from the helper.

    <Placement_Paint>.Selection_Type: radiobtnIndex

Get/set the index of the Selection type radio buttons.

Possible values are

0 - Particles

1 - Strokes

## Index Order

    <Placement_Paint>.Order_Type: integer

Get/set the selection index of the Type drop down list.

Possible values are:

0 - Random (default) - Particle seeds from the Particle Paint helper are selected randomly for conversion to particles, without regard to stroke timing. If the number of particles exceeds the number of particle seeds and Stop If Count Overflow is turned off, all particle seeds are used each time the Placement Paint operator cycles through the seeds.

1 - Paint Timing- Uses the timing of particles and strokes in the Particle Paint helper to define the order of emission.

    <Placement_Paint>.Stop_If_Count_Overflow: boolean

Get/set the state of the Stop If Count Overflow checkbox.

When set to true, causes the Placement Paint operator to stop controlling particles when the number of particles in the event reaches the number of particle seeds in the Particle Paint helper. When this option is turned off, Placement Paint cycles through the particle seeds as many times as necessary to create the required quantity of particles.

    <Placement_Paint>.Obey_Quantity_Multiplier: boolean

Get/set the state of the Obey Quantity Multiplier checkbox.

When set to true, uses the Quantity Multiplier parameter from the PF Source object to adjust the correspondence between particles in the event and particle seeds in the helper. For example, if the Quantity Multiplier is 50% in the PF Source, then only half the particle seeds in the Particle Paint helper are used. If the Quantity Multiplier is greater than 100%, then some or all particle seeds will be used to generate more than one particle.

    <Placement_Paint>.Separate_Streams_Indexing: boolean

Get/set the state of the Separate Streams Indexing checkbox.

When set to true, causes particles from different events to be treated as separate streams with regard to particle seed correspondence. When this option is turned on, particles retain their correspondence to their original seeds. When this option is turned off, particles coming into the event can be associated with any seed from the entire pool of seeds.

## Uniqueness

    <Placement_Paint>.Random_Seed: integer

Get/set the random seed value.

## Placement_Paint Interfaces:

The following Interfaces are exposed by the Placement_Paint Class:

Interface: action

Interface: operator

Interface: PViewItem

#### See Also

- Particle Flow Classes