00001 //***************************************************************************** 00011 //***************************************************************************** 00012 00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER) 00014 #pragma once 00015 #endif 00016 00017 #ifndef __XSIPARTICLETYPE_H__ 00018 #define __XSIPARTICLETYPE_H__ 00019 00020 #include <xsi_property.h> 00021 #include <xsi_value.h> 00022 #include <xsi_status.h> 00023 #include <xsi_string.h> 00024 #include <xsi_decl.h> 00025 00026 00027 namespace XSI { 00028 00029 00030 //***************************************************************************** 00088 //***************************************************************************** 00089 00090 class SICPPSDKDECL ParticleType : public Property 00091 { 00092 public: 00094 ParticleType(); 00095 00097 ~ParticleType(); 00098 00102 ParticleType(const CRef& in_ref); 00103 00107 ParticleType(const ParticleType& in_obj); 00108 00113 bool IsA( siClassID in_ClassID) const; 00114 00118 siClassID GetClassID() const; 00119 00125 ParticleType& operator=(const ParticleType& in_obj); 00126 00132 ParticleType& operator=(const CRef& in_ref); 00133 00138 LONG GetID() const; 00139 00152 CStatus AddAttribute 00153 ( 00154 const CString& in_name, 00155 XSI::siParticleAttributeType in_type 00156 )const; 00157 00164 CStatus RemoveAttribute(const CString& in_name )const; 00165 00170 CStringArray GetAttributeNames()const; 00171 00178 XSI::siParticleAttributeType GetAttributeType( const CString& in_name )const; 00179 00180 private: 00181 ParticleType * operator&() const; 00182 ParticleType * operator&(); 00183 }; 00184 00185 }; 00186 #endif // __XSIPARTICLETYPE_H__