Public Member Functions
ParticleType Class Reference

Detailed 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.

See also:
ParticleCloud, ParticleCloudPrimitive, X3DObject::AddParticleCloud, ParticleAttribute
Since:
4.0
Deprecated:
8.0 (2010) Legacy particles are only kept for backward compatibility.
Example:
Creates the initial state with a user defined particle attribute for a particle simulation
        using namespace XSI;
        Application app ;

        CValueArray args(2) ;
        CValue outArg;

        args[0] = (LONG) siSphereType ;
        app.ExecuteCommand( L"CreateParticleType", args, outArg ) ;

        ParticleType myParType = args[1] ;
        myParType.PutName( CString(L"CustomParType") ) ;

        myParType.AddAttribute(L"myVector3Attr", siPAVector3);

        CRefArray particleTypeArray ;
        particleTypeArray.Add( myParType ) ;

        // Create a particle cloud.  This has no emittor, and no particle operator
        // so the cloud state is completely the responsibility of the plug-in
        // and will not change even if the current frame is changed
        ParticleCloud myParticleCloud ;
        app.GetActiveSceneRoot().AddParticleCloud(
                                    particleTypeArray,
                                    L"MyCloud",
                                    myParticleCloud ) ;

        ParticleCloudPrimitive myParticlePrim = myParticleCloud.GetActivePrimitive() ;

        // Our "CustomParType" will automatically be used because
        // we specified it in the call to AddParticleCloud
        myParticlePrim.AddParticles( 10, CRef() ) ;

        // Setting the user defined particle attribute
        for ( LONG i = 0 ; i < 10 ; i++ )
        {
            Particle oParticle = myParticlePrim.GetParticle(i) ;
            CRefArray attributes = oParticle.GetAttributes() ;
            ParticleAttribute myPA(attributes.GetItem(L"myVector3Attr"));
            myPA.PutValue( MATH::CVector3(1.0,1.0, 1.0)) ;
        }

#include <xsi_particletype.h>

Inheritance diagram for ParticleType:
Inheritance graph
[legend]

List of all members.

Public Member Functions

  ParticleType ()
  ~ParticleType ()
  ParticleType (const CRef &in_ref)
  ParticleType (const ParticleType &in_obj)
bool  IsA (siClassID in_ClassID) const
siClassID  GetClassID () const
ParticleType operator= (const ParticleType &in_obj)
ParticleType operator= (const CRef &in_ref)
LONG  GetID () const
CStatus  AddAttribute (const CString &in_name, XSI::siParticleAttributeType in_type) const
CStatus  RemoveAttribute (const CString &in_name) const
CStringArray  GetAttributeNames () const
XSI::siParticleAttributeType  GetAttributeType (const CString &in_name) const

Constructor & Destructor Documentation

Default constructor.

Default destructor.

ParticleType ( const CRef in_ref )

Constructor.

Parameters:
in_ref constant reference object.
ParticleType ( const ParticleType in_obj )

Copy constructor.

Parameters:
in_obj constant class object.

Member Function Documentation

bool IsA ( siClassID  in_ClassID ) const [virtual]

Returns true if a given class type is compatible with this API class.

Parameters:
in_ClassID class type.
Returns:
true if the class is compatible, false otherwise.

Reimplemented from Property.

siClassID GetClassID ( ) const [virtual]

Returns the type of the API class.

Returns:
The class type.

Reimplemented from Property.

ParticleType& operator= ( const ParticleType in_obj )

Creates an object from another object. The newly created object is set to empty if the input object is not compatible.

Parameters:
in_obj constant class object.
Returns:
The new ParticleType object.
ParticleType& operator= ( const CRef in_ref )

Creates an object from a reference object. The newly created object is set to empty if the input reference object is not compatible.

Parameters:
in_ref constant class object.
Returns:
The new ParticleType object.

Reimplemented from Property.

LONG GetID ( ) const

Returns the scene index for this particle type, which corresponds to the index of this particle type under the Scene.Particles container.

Returns:
The ParticleType ID.
CStatus AddAttribute ( const CString in_name,
XSI::siParticleAttributeType  in_type 
) const

Adds a new user-defined attribute to this particle type. You must specify a type (ParticleAttribute.GetAttributeType) and a unique name for the new attribute. This function fails if another user-defined attribute with the same name exists.

Parameters:
in_name name of the defined attribute
in_type type of the defined attribute
Returns:
CStatus::OK success
CStatus::Fail other failure
CStatus::InvalidArgument if in_type is siPAUndefined
CStatus RemoveAttribute ( const CString in_name ) const

Removes a user-defined attribute from this particle type by specifying the name.

Parameters:
in_name name of the attribute to remove.
Returns:
CStatus::OK success
CStatus::Fail other failure
CStatus::False the attribute of name in_name was not found on the ParticleType.
CStringArray GetAttributeNames ( ) const

Returns an array containing the names of all user-defined attributes for this particle type.

Returns:
Array of custom attribute names.
XSI::siParticleAttributeType GetAttributeType ( const CString in_name ) const

Returns the data type of the specified attribute. If no attribute matches the specified name, it returns siPAUndefined.

Parameters:
in_name name of the attribute to remove.
Returns:
Type of a given attribute.
siPAUndefined if no match is found

The documentation for this class was generated from the following file: