ParticleType

Object Hierarchy | Related C++ Class: ParticleType | Supported Parameter List: ParType

Inheritance

    SIObject
       ProjectItem
           Property
              ParticleType

Introduced

4.0

Description

Represents a particle type. A particle type serves as a definition of the particles on the initial state of a particle simulation. A particle cloud contains one or more particle type(s). All particle types in a scene can be found under Scene.Particles container.

Methods

AddAttribute | AddCustomOp | AddScriptedOp | AddScriptedOpFromFile
AnimatedParameters2 | AttributeNames | AttributeType | BelongsTo
EvaluateAt | GetICEAttributeFromName | IsA | IsAnimated2
IsClassOf | IsEqualTo | IsKindOf | IsLocked
IsSelected | LockOwners | RemoveAttribute | SetAsSelected
SetCapabilityFlag | SetLock | TaggedParameters | UnSetLock

Properties

Application | Branch | BranchFlag | Capabilities
Categories | Families | FullName | Help
ICEAttributes | ID | LockLevel | LockMasters
LockType | Model | Name | NestedObjects
ObjectID | Origin | OriginPath | Owners
Parameters | Parent | Parent3DObject | PPGLayout
Selected | Singleton | Type |

Examples

1. VBScript Example

    '
    '  This example demonstrates how to create a user defined particle attribute
    '  on a ParticleType and access its value within a particle cloud
    '
    NewScene , false

    ' Set up the new ParticleType with a new ParticleAttribute
    set ParTypeCol = CreateParticleType()
    set oParticleType = ParTypeCol(0)
    oParticleType.AddAttribute "ZetaFactor", siPAVector3

    ' Create a new ParticleCloud using the new ParticleType
    set oParticleCloud = ActiveSceneRoot.AddParticleCloud( oParticleType, "MyCloud" )
    set oParticleCloudPrim = oParticleCloud.ActivePrimitive
    oParticleCloudPrim.AddParticles 10 , oParticleType
    set oParticleCollection = oParticleCloudPrim.Particles

    ' Vector object to fill in the x,y,z positions
    set pos = XSIMath.CreateVector3()

    ' Set the ParticleAttribute value
    for i = 0 to 9
       set oParticle = oParticleCollection(i)
       pos.x = -5 + i
       pos.y = -3 + i
       pos.z = i
       oParticle.Attributes("ZetaFactor").Value = pos
    next

    ' Retrieve the ParticleAttribute value and print it
    for i = 0 to 9
       set oParticle = oParticleCollection(i)
       set oVector3 = oParticle.Attributes("ZetaFactor").Value
       Application.LogMessage oVector3.x & " " & oVector3.y & " " & oVector3.z
    next

    ' Expected result:
    'INFO : -5 -3 0
    'INFO : -4 -2 1
    'INFO : -3 -1 2
    'INFO : -2 0 3
    'INFO : -1 1 4
    'INFO : 0 2 5
    'INFO : 1 3 6
    'INFO : 2 4 7
    'INFO : 3 5 8
    'INFO : 4 6 9

2. JScript Example

    /*
       This example demonstrates how to create a user defined particle attribute
       on a ParticleType and access its value within a particle cloud
    */
    NewScene( null, false );

    // Set up the new ParticleType with a new ParticleAttribute
    var ParTypeCol = CreateParticleType();
    var oParticleType = ParTypeCol(0);
    oParticleType.AddAttribute( "ZetaFactor", siPAVector3 );

    // Create a new ParticleCloud using the new ParticleType
    var oParticleCloud = ActiveSceneRoot.AddParticleCloud( oParticleType, "MyCloud" );
    var oParticleCloudPrim = oParticleCloud.ActivePrimitive;
    oParticleCloudPrim.AddParticles( 10, oParticleType );
    var oParticleCollection = oParticleCloudPrim.Particles;

    // Vector object to fill in the x,y,z positions
    var pos = XSIMath.CreateVector3();

    // Set the ParticleAttribute value
    for ( var i=0; i<10; i++ ) {
       var oParticle = oParticleCollection(i);
       pos.x = -5 + i;
       pos.y = -3 + i;
       pos.z = i;
       oParticle.Attributes("ZetaFactor").Value = pos;
    }

    // Retrieve the ParticleAttribute value and print it
    for ( var i=0; i<10; i++ ) {
       var oParticle = oParticleCollection(i);
       var oVector3 = oParticle.Attributes("ZetaFactor").Value;
       Application.LogMessage( oVector3.x + " " + oVector3.y + " " + oVector3.z );
    }

    // Expected result:
    //INFO : -5 -3 0
    //INFO : -4 -2 1
    //INFO : -3 -1 2
    //INFO : -2 0 3
    //INFO : -1 1 4
    //INFO : 0 2 5
    //INFO : 1 3 6
    //INFO : 2 4 7
    //INFO : 3 5 8
    //INFO : 4 6 9

3. Python Example

    #
    #  This example demonstrates how to create a user defined particle attribute
    #  on a ParticleType and access its value within a particle cloud
    #
    from win32com.client import constants as c
    app = Application
    app.NewScene( "", 0 );

    # Set up the new ParticleType with a new ParticleAttribute
    ParTypeCol = app.CreateParticleType()
    oParticleType = ParTypeCol(0)
    oParticleType.AddAttribute( "ZetaFactor", c.siPAVector3 )

    # Create a new ParticleCloud using the new ParticleType
    oParticleCloud = app.ActiveSceneRoot.AddParticleCloud( oParticleType, "MyCloud" )
    oParticleCloudPrim = oParticleCloud.ActivePrimitive
    oParticleCloudPrim.AddParticles( 10, oParticleType )
    oParticleCollection = oParticleCloudPrim.Particles

    # Vector object to fill in the x,y,z positions
    pos = XSIMath.CreateVector3()

    # Set the ParticleAttribute value
    i = 0
    while i < 10 :
       oParticle = oParticleCollection(i)
       pos.X = -5 + i
       pos.Y = -3 + i
       pos.Z = i
       oParticle.Attributes("ZetaFactor").Value = pos
       i = i + 1

    # Retrieve the ParticleAttribute value and print it
    i = 0
    while i < 10 :
       oParticle = oParticleCollection(i)
       oVector3 = oParticle.Attributes("ZetaFactor").Value
       Application.LogMessage( str(oVector3.X) + " " + str(oVector3.Y) + " " + str(oVector3.Z) )
       i = i + 1

    # Expected result:
    #INFO : -5.0 -3.0 0.0
    #INFO : -4.0 -2.0 1.0
    #INFO : -3.0 -1.0 2.0
    #INFO : -2.0 0.0 3.0
    #INFO : -1.0 1.0 4.0
    #INFO : 0.0 2.0 5.0
    #INFO : 1.0 3.0 6.0
    #INFO : 2.0 4.0 7.0
    #INFO : 3.0 5.0 8.0
    #INFO : 4.0 6.0 9.0

See Also

CreateParticleType | ParticleCloud | ParticleTypeCollection

Autodesk Softimage v7.5