xsi_particlecloudprimitive.h
Go to the documentation of this file.

    00001 //*****************************************************************************
    00011 //*****************************************************************************
    00012
    00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
    00014 #pragma once
    00015 #endif
    00016
    00017 #ifndef __XSIPARTICLECLOUDPRIMITIVE_H__
    00018 #define __XSIPARTICLECLOUDPRIMITIVE_H__
    00019
    00020 #include <xsi_primitive.h>
    00021 #include <xsi_value.h>
    00022 #include <xsi_status.h>
    00023 #include <xsi_longarray.h>
    00024 #include <xsi_particle.h>
    00025 #include <xsi_doublearray.h>
    00026
    00027 namespace XSI {
    00028
    00029 //*****************************************************************************
    00076 //*****************************************************************************
    00077
    00078 class SICPPSDKDECL ParticleCloudPrimitive : public Primitive
    00079 {
    00080 public:
    00082     ParticleCloudPrimitive();
    00083
    00085     ~ParticleCloudPrimitive();
    00086
    00090     ParticleCloudPrimitive(const CRef& in_ref);
    00091
    00095     ParticleCloudPrimitive(const ParticleCloudPrimitive& in_obj);
    00096
    00101     bool IsA( siClassID in_ClassID) const;
    00102
    00106     siClassID GetClassID() const;
    00107
    00113     ParticleCloudPrimitive& operator=(const ParticleCloudPrimitive& in_obj);
    00114
    00120     ParticleCloudPrimitive& operator=(const CRef& in_ref);
    00121
    00134     CStatus AddParticles( LONG in_NbParticles, const CRef& in_ParType ) ;
    00135
    00136     /* Obsolete function to add particles to a cloud.
    00137     \deprecated 4.0 Maintained for backward compatibility only.
    00138     \param in_NbParticles Number of new particles to add.
    00139     \param in_ParType Reference to an existing particle type object.
    00140     */
    00141     CStatus AddParticles( LONG in_NbParticles, CRef& in_ParType ) ;
    00142
    00147     CStatus RemoveParticles(const CLongArray & in_IndexArray ) ;
    00148
    00154     CStatus RemoveParticlesWithIDs(const CLongArray & in_IDArray ) ;
    00155
    00156
    00159     LONG GetCount() const ;
    00160
    00164     Particle GetParticle( LONG in_index ) const ;
    00165
    00173     CRefArray GetParticleTypes() const ;
    00174
    00183     Particle FindParticle( LONG in_ID ) const ;
    00184
    00191     CStatus PutPositionArray( const CDoubleArray& in_values ) ;
    00192
    00199     CStatus GetPositionArray( CDoubleArray& out_values ) ;
    00200
    00207     CStatus PutVelocityArray( const CDoubleArray& in_values ) ;
    00208
    00215     CStatus GetVelocityArray( CDoubleArray& out_values ) ;
    00216
    00223     CStatus PutRotationArray( const CDoubleArray& in_values ) ;
    00224
    00231     CStatus GetRotationArray( CDoubleArray& out_values ) ;
    00232
    00239     CStatus PutAngularVelocityArray( const CDoubleArray& in_values ) ;
    00240
    00247     CStatus GetAngularVelocityArray( CDoubleArray& out_values ) ;
    00248
    00255     CStatus PutUVWArray( const CDoubleArray& in_values ) ;
    00256
    00263     CStatus GetUVWArray( CDoubleArray& out_values ) ;
    00264
    00271     CStatus PutColorArray( const CDoubleArray& in_values ) ;
    00272
    00279     CStatus GetColorArray( CDoubleArray& out_values ) ;
    00280
    00286     CStatus PutSizeArray( const CDoubleArray& in_values ) ;
    00287
    00293     CStatus GetSizeArray( CDoubleArray& out_values ) ;
    00294
    00300     CStatus PutSpriteAngleArray( const CDoubleArray& in_values ) ;
    00301
    00307     CStatus GetSpriteAngleArray( CDoubleArray& out_values ) ;
    00308
    00314     CStatus PutMassArray( const CDoubleArray& in_values ) ;
    00315
    00321     CStatus GetMassArray( CDoubleArray& out_values ) ;
    00322
    00328     CStatus GetDensityArray( CDoubleArray& out_values ) ;
    00329
    00335     CStatus GetPressureArray( CDoubleArray& out_values ) ;
    00336
    00342     CStatus GetPathLengthArray( CDoubleArray& out_values ) ;
    00343
    00349     CStatus PutAgeArray( const CLongArray& in_values ) ;
    00350
    00356     CStatus GetAgeArray( CLongArray& out_values ) ;
    00357
    00363     CStatus PutSeedArray( const CLongArray& in_values ) ;
    00364
    00370     CStatus GetSeedArray( CLongArray& out_values ) ;
    00371
    00377     CStatus PutAgeLimitArray( const CLongArray& in_values ) ;
    00378
    00384     CStatus GetAgeLimitArray( CLongArray& out_values ) ;
    00385
    00391     CStatus PutSpriteIndexArray( const CLongArray& in_values ) ;
    00392
    00398     CStatus GetSpriteIndexArray( CLongArray& out_values ) ;
    00399
    00405     CStatus PutTypeIDArray( const CLongArray& in_values ) ;
    00406
    00412     CStatus GetTypeIDArray( CLongArray& out_values ) ;
    00413
    00419     CStatus GetIDArray( CLongArray& in_values ) ;
    00420
    00421     private:
    00422     ParticleCloudPrimitive * operator&() const;
    00423     ParticleCloudPrimitive * operator&();
    00424 };
    00425
    00426 };
    00427 #endif // __XSIPARTICLECLOUDPRIMITIVE_H__