ParticleCloud

Object Hierarchy | Related C++ Class: ParticleCloud | Supported Parameter List: cloud

Inheritance

    SIObject
       ProjectItem
           SceneItem
              X3DObject
                  ParticleCloud

Description

The ParticleCloud object is a kind of X3DObject that represents a cloud of Particle objects. The data representing the particles is managed by the ParticleCloudPrimitive object. The ParticleCloud object has only one primitive which can be accessed via either: X3DObject.ActivePrimitive or X3DObject.Primitives(0).

Methods

Add2DChain | Add3DChain | AddCamera | AddCameraRig
AddChild | AddControl | AddCustomOp | AddCustomProperty
AddFxTree | AddGeometry | AddLattice | AddLight
AddLightRig | AddMaterial | AddModel | AddNull
AddNurbsCurve | AddNurbsCurveList | AddNurbsCurveList2 | AddNurbsSurface
AddNurbsSurfaceMesh | AddNurbsSurfaceMesh2 | AddParticleCloud | AddPolygonMesh
AddPrimitive | AddProperty | AddScriptedOp | AddScriptedOpFromFile
AnimatedParameters2 | ApplyEnvelope | BelongsTo | EvaluateAt
FindChild | FindChildren | GetICEAttributeFromName | GetModels2
GetStaticKinematicState | HasStaticKinematicState | IsA | IsAnimated2
IsClassOf | IsEqualTo | IsKindOf | IsLocked
IsNodeAnimated | IsSelected | LockOwners | NodeAnimatedParameters
RemoveChild | RemoveFromParent | SetAsSelected | SetCapabilityFlag
SetLock | SetMaterial | ShapeAnimatedClusters | TaggedParameters
UnSetLock |  |  |

Properties

ActivePrimitive | Application | BranchFlag | Capabilities
Categories | Children | Envelopes | Families
FullName | Help | ICEAttributes | Kinematics
LocalProperties | LocalRotation | LocalScaling | LocalTranslation
LockLevel | LockMasters | LockType | Material
Materials | Model | Models | Name
NestedObjects | ObjectID | Origin | OriginPath
Owners | Parameters | Parent | Parent3DObject
Particles | PPGLayout | Primitives | Properties
Selected | Type |  |

Examples

VBScript Example

    '
    '  This example demonstrates how it is possible to find the forces, emitters and
    '  particle types that influence a cloud via the construction history
    '

    Option Explicit
    NewScene , false

    dim myParticleCloud, myParticleEmitter, myParticleEmitter2
    dim myForce, myForce2

    ' First we create a complex cloud which is influenced by two forces and which
    ' emits two different particle types  from two different grids.

    set myParticleCloud = CreateParticleCloud

    set myParticleEmitter = CreatePrim( "Grid", "MeshSurface", "ParticleEmitter" )

    set myParticleEmitter2 = CreatePrim( "Grid", "MeshSurface", "ParticleEmitter2" )
    Translate myParticleEmitter2,,-4,,siRelative,siView,siObj,siY

    AddParticleEmitter myParticleCloud, myParticleEmitter
    AddParticleEmitter myParticleCloud, myParticleEmitter2

    set myForce = CreateForce( "Gravity" )
    AddParticleForce myParticleCloud, myForce

    set myForce2 = CreateForce( "Attractor" )
    AddParticleForce myParticleCloud, myForce2

    dim strNewType
    CreateParticleType siBlobType, strNewType

    SetParticleType myParticleEmitter2 & ".ParticleEmitter2_emission.PType", strNewType

    '
    ' Now that the scene is set up, demonstrate how to find these objects again
    '

    ' Find the ParticleOp operator.
    ' Note: There could be several operators in the Construction history,
    ' for example if there are any scripted operators on the cloud

    dim myCloudParticleOp, Op
    set myCloudParticleOp = Nothing
    set myParticleCloud = ActiveSceneRoot.Children( "cloud" )

    for each Op in myParticleCloud.ActivePrimitive.ConstructionHistory
       if ( Op.Name = "ParticlesOp" ) then
           set myCloudParticleOp = Op
           exit for
       end if
    next

    if ( TypeName( myCloudParticleOp ) <> "Nothing" ) then

       ' The particle operator connects to many different objects.
       ' By enumerating through these inputs you can find the various objects
       ' that are involved in the simulation
       dim inputport

       for each inputport in myCloudParticleOp.InputPorts

           if ( inputport.Target2.Type = "ParType" ) then
              Application.LogMessage "Found Particle Type: " & inputport.Target2
           elseif ( inputport.Target2.Type = "EmissionProp" ) then

              'The ParticlesOp connects to the ActivePrimitive of the
              'the emissions object.  To get to the actual X3DObject that
              'is the emitter we access the parent of this primitive.

              Application.LogMessage "Found Emission object: " & inputport.Target2.Parent
           elseif ( inputport.Target2.Type = "gravity" ) then
              Application.LogMessage "Found Gravity force: " & inputport.Target2.Parent
           elseif ( inputport.Target2.Type = "attractor" ) then
              Application.LogMessage "Found Attractor force: " & inputport.Target2.Parent
           end if
       next
    else
       MsgBox "Unexpected - no ParticlesOp in the cloud's construction history"
    end if

    'The output of running this script is this:
    'INFO : "Found Emission object: ParticleEmitter"
    'INFO : "Found Emission object: ParticleEmitter2"
    'INFO : "Found Gravity force: gravity"
    'INFO : "Found Attractor force: attractor"
    'INFO : "Found Particle Type: ParTypes.PType"
    'INFO : "Found Particle Type: ParTypes.PType1"

See Also

X3DObject.AddParticleCloud | CreateParticleCloud | Particle | ParticleCollection
ParticleCloudPrimitive |  |  |

Autodesk Softimage v7.5