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 //*****************************************************************************
00074 //*****************************************************************************
00075 
00076 class SICPPSDKDECL ParticleCloudPrimitive : public Primitive
00077 {
00078 public:
00080     ParticleCloudPrimitive();
00081 
00083     ~ParticleCloudPrimitive();
00084 
00088     ParticleCloudPrimitive(const CRef& in_ref);
00089 
00093     ParticleCloudPrimitive(const ParticleCloudPrimitive& in_obj);
00094 
00099     bool IsA( siClassID in_ClassID) const;
00100 
00104     siClassID GetClassID() const;
00105 
00111     ParticleCloudPrimitive& operator=(const ParticleCloudPrimitive& in_obj);
00112 
00118     ParticleCloudPrimitive& operator=(const CRef& in_ref);
00119 
00132     CStatus AddParticles( LONG in_NbParticles, const CRef& in_ParType ) ;
00133 
00134     /* Obsolete function to add particles to a cloud.
00135     \deprecated 4.0 Maintained for backward compatibility only.
00136     \param in_NbParticles Number of new particles to add.
00137     \param in_ParType Reference to an existing particle type object.
00138     */
00139     CStatus AddParticles( LONG in_NbParticles, CRef& in_ParType ) ;
00140 
00145     CStatus RemoveParticles(const CLongArray & in_IndexArray ) ;
00146 
00152     CStatus RemoveParticlesWithIDs(const CLongArray & in_IDArray ) ;
00153 
00154 
00157     LONG GetCount() const ;
00158 
00162     Particle GetParticle( LONG in_index ) const ;
00163 
00171     CRefArray GetParticleTypes() const ;
00172 
00181     Particle FindParticle( LONG in_ID ) const ;
00182 
00189     CStatus PutPositionArray( const CDoubleArray& in_values ) ;
00190 
00197     CStatus GetPositionArray( CDoubleArray& out_values ) ;
00198 
00205     CStatus PutVelocityArray( const CDoubleArray& in_values ) ;
00206 
00213     CStatus GetVelocityArray( CDoubleArray& out_values ) ;
00214 
00221     CStatus PutRotationArray( const CDoubleArray& in_values ) ;
00222 
00229     CStatus GetRotationArray( CDoubleArray& out_values ) ;
00230 
00237     CStatus PutAngularVelocityArray( const CDoubleArray& in_values ) ;
00238 
00245     CStatus GetAngularVelocityArray( CDoubleArray& out_values ) ;
00246 
00253     CStatus PutUVWArray( const CDoubleArray& in_values ) ;
00254 
00261     CStatus GetUVWArray( CDoubleArray& out_values ) ;
00262 
00269     CStatus PutColorArray( const CDoubleArray& in_values ) ;
00270 
00277     CStatus GetColorArray( CDoubleArray& out_values ) ;
00278 
00284     CStatus PutSizeArray( const CDoubleArray& in_values ) ;
00285 
00291     CStatus GetSizeArray( CDoubleArray& out_values ) ;
00292 
00298     CStatus PutSpriteAngleArray( const CDoubleArray& in_values ) ;
00299 
00305     CStatus GetSpriteAngleArray( CDoubleArray& out_values ) ;
00306 
00312     CStatus PutMassArray( const CDoubleArray& in_values ) ;
00313 
00319     CStatus GetMassArray( CDoubleArray& out_values ) ;
00320 
00326     CStatus GetDensityArray( CDoubleArray& out_values ) ;
00327 
00333     CStatus GetPressureArray( CDoubleArray& out_values ) ;
00334 
00340     CStatus GetPathLengthArray( CDoubleArray& out_values ) ;
00341 
00347     CStatus PutAgeArray( const CLongArray& in_values ) ;
00348 
00354     CStatus GetAgeArray( CLongArray& out_values ) ;
00355 
00361     CStatus PutSeedArray( const CLongArray& in_values ) ;
00362 
00368     CStatus GetSeedArray( CLongArray& out_values ) ;
00369 
00375     CStatus PutAgeLimitArray( const CLongArray& in_values ) ;
00376 
00382     CStatus GetAgeLimitArray( CLongArray& out_values ) ;
00383 
00389     CStatus PutSpriteIndexArray( const CLongArray& in_values ) ;
00390 
00396     CStatus GetSpriteIndexArray( CLongArray& out_values ) ;
00397 
00403     CStatus PutTypeIDArray( const CLongArray& in_values ) ;
00404 
00410     CStatus GetTypeIDArray( CLongArray& out_values ) ;
00411 
00417     CStatus GetIDArray( CLongArray& in_values ) ;
00418 
00419     private:
00420     ParticleCloudPrimitive * operator&() const;
00421     ParticleCloudPrimitive * operator&();
00422 };
00423 
00424 };
00425 #endif // __XSIPARTICLECLOUDPRIMITIVE_H__