00001
00011
00012
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016
00017 #ifndef __XSIPARTICLE_H__
00018 #define __XSIPARTICLE_H__
00019
00020 #include <xsi_siobject.h>
00021 #include <xsi_value.h>
00022 #include <xsi_status.h>
00023 #include <xsi_vector3.h>
00024 #include <xsi_rotation.h>
00025 #include <xsi_color.h>
00026
00027 namespace XSI {
00028
00029
00030
00123
00124
00125 class SICPPSDKDECL Particle : public SIObject
00126 {
00127 public:
00129 Particle();
00130
00132 ~Particle();
00133
00137 Particle(const CRef& in_ref);
00138
00142 Particle(const Particle& in_obj);
00143
00148 bool IsA( siClassID in_ClassID) const;
00149
00153 siClassID GetClassID() const;
00154
00160 Particle& operator=(const Particle& in_obj);
00161
00167 Particle& operator=(const CRef& in_ref);
00168
00173 LONG GetIndex() const;
00174
00179 LONG GetID() const;
00180
00185 LONG GetTypeID() const;
00186
00191 CStatus PutTypeID(LONG in_TypeID);
00192
00197 MATH::CVector3 GetPosition() const;
00198
00203 CStatus PutPosition(const MATH::CVector3& in_vect);
00204
00209 MATH::CVector3 GetVelocity() const;
00210
00215 CStatus PutVelocity(const MATH::CVector3& in_vect);
00216
00221 MATH::CRotation GetAngularVelocity() const;
00222
00227 CStatus PutAngularVelocity(const MATH::CRotation& in_vect);
00228
00233 MATH::CVector3 GetRotation() const;
00234
00239 CStatus PutRotation(const MATH::CVector3& in_vect);
00240
00244 double GetPathLength() const ;
00245
00252 LONG GetAge() const ;
00253
00258 CStatus PutAge( LONG in_age ) ;
00259
00264 LONG GetAgeLimit() const;
00265
00270 CStatus PutAgeLimit(LONG in_agelimit);
00271
00276 LONG GetSeed() const;
00277
00282 CStatus PutSeed(LONG in_seed);
00283
00288 CColor GetColor( ) const ;
00289
00294 CStatus PutColor( const CColor & in_vColor ) ;
00295
00301 MATH::CVector3 GetUVW() const;
00302
00308 CStatus PutUVW(const MATH::CVector3& in_vect);
00309
00318 LONG GetSpriteIndex() const;
00319
00324 CStatus PutSpriteIndex(LONG in_index);
00325
00331 double GetSpriteAngle() const;
00332
00337 CStatus PutSpriteAngle(double in_angle);
00338
00343 double GetSize() const ;
00344
00349 CStatus PutSize( double in_size ) ;
00350
00355 double GetMass() const;
00356
00361 CStatus PutMass(double in_mass);
00362
00366 double GetDensity() const;
00367
00371 double GetPressure() const;
00372
00378 CRefArray GetAttributes() const;
00379
00380 private:
00381 Particle * operator&() const;
00382 Particle * operator&();
00383 };
00384
00385 };
00386 #endif // __XSIPARTICLE_H__