xsi_particlecloudprimitive.h Source File
 
 
 
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__