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__