MAXScript Extensions > MAXScript Extensions for Reactor >

# RBCollection : Helper

    RBCollection - superclass: Helper; super-superclass:Node - classID: #(72697407, 2075537247)

The Reactor dynamics system has been retired and REMOVED from 3ds Max 2012.

Value > MAXWrapper > Node > Helper > reactor > RBCollection

Description:

The Rigid Body Collection is a helper object that acts as a container for rigid bodies. At a lower level, a collection also allows you to specify which mathematical method will be used for solving the rigid body behaviors for bodies in that collection.

Constructors:

    RBCollection ... rctRBCollection ...

Properties

    .disabled: boolean

When set to True , the RBCollection will be disabled.

    .odeSolver(ODE_Solver) : integer

Specifies the ODE Solver. Corresponds to the radio buttons in the Advanced rollout, "ODE Solver" group.

Possible values are:

0 - Euler (default)

1 - Runge-Kutta

Interfaces

    Interface: rctRBCollectionInterface

Properties

    .rigidBodies : node by value array : Read|Write

Get/Set the array of rigid body objects in the RBCollection.

EXAMPLE:
    rbc = RBCollection()--create an RBCollection
    $RBCollection:RBCollection01 @ [0.000000,0.000000,0.000000]
    s = Sphere pos:[100,0,0]--create a Sphere
    $Sphere:Sphere01 @ [100.000000,0.000000,0.000000]
    b = Box pos:[200,0,0]--create a Box
    $Box:Box01 @ [200.000000,0.000000,0.000000]
    rbc.rigidBodies = #(s,b)--add both objects to the RBCollection
    #($Sphere:Sphere01 @ [100.000000,0.000000,0.000000], $Box:Box01 @ [200.000000,0.000000,0.000000])
    select rbc--select the RBCollection
    OK
    max modify mode--change to Modify tab - the objects are on the list!
    OK
    rbc.rigidBodies--get the content of the list
    #($Sphere:Sphere01 @ [100.000000,0.000000,0.000000], $Box:Box01 @ [200.000000,0.000000,0.000000])

Methods

    <boolean>AddRigidBody <node>bodyNode

Add an object to the Collection. Returns true on success.

    <boolean>RemoveRigidBody <integer>bodyIndex

Remove the indexed object from the Collection. Returns true on success.

    <boolean>RemoveRigidBodyByINode <node>bodyNode

Remove the specified object from the Collection. Returns true on success.

    <integer>GetNumRigidBodies()

Returns the number of object in the Collection.

    <IObject>getRigidObject <integer>bodyIndex

Should returnthe object specified by the supplied index.

Note

This method is currently broken - always returns undefined.

An existing workaround is to set the properties of the RigidObject as values in the User Properties of the node, for example

setUserProp $ "Mass" 123.4 --sets the mass to 123.4

The following is a list of the User Properties assigned by reactor:
    Allowed_Penetration = 0.000000
    Disable_Collisions = 0
    Display_Proxy = Sphere01
    Ellasticity = 0.21--note incorrect spelling, required to set Elasticity.
    Friction = 0.5
    Inactive = 0
    Mass = 123.4
    Phantom = 0
    Proxy_Geometry = Sphere01
    Quality_Type = 3
    Shell_Radius = 0.050000
    Simulation_Geometry = 3
    Unyielding = 0
    Use_Display_Proxy = 0

#### See Also

- MAXScript Extensions for Reactor