00001 //***************************************************************************** 00011 //***************************************************************************** 00012 00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER) 00014 #pragma once 00015 #endif 00016 00017 #ifndef __XSIENVELOPE_H__ 00018 #define __XSIENVELOPE_H__ 00019 00020 #include <xsi_operator.h> 00021 #include <xsi_doublearray.h> 00022 #include <xsi_cluster.h> 00023 #include <xsi_clusterproperty.h> 00024 00025 namespace XSI { 00026 00027 struct CColor; 00028 00029 //***************************************************************************** 00047 //***************************************************************************** 00048 class SICPPSDKDECL Envelope : public Operator 00049 { 00050 public: 00052 Envelope(); 00053 00055 ~Envelope(); 00056 00060 Envelope(const CRef& in_ref); 00061 00065 Envelope(const Envelope& in_obj); 00066 00071 bool IsA( siClassID in_ClassID) const; 00072 00076 siClassID GetClassID() const; 00077 00083 Envelope& operator=(const Envelope& in_obj); 00084 00090 Envelope& operator=(const CRef& in_ref); 00091 00102 CRefArray GetDeformers() const; 00103 00186 CClusterPropertyElementArray GetWeights( double in_dFrame ) const; 00187 00192 CClusterElementArray GetElements( double in_dFrame ) const; 00193 00200 CDoubleArray GetDeformerWeights( const X3DObject &in_Deformer, double in_dFrame ) const; 00201 00275 CStatus SetDeformerWeights( X3DObject &in_Deformer, const CDoubleArray &in_Array ); 00276 00284 CStatus GetDeformerColor( const X3DObject &in_Deformer, CColor &io_Color ) const; 00285 00293 CStatus SetDeformerColor( const X3DObject &in_Deformer, const CColor &in_Color ); 00294 00373 CStatus SetDeformerWeights2( X3DObject &in_Deformer, const CDoubleArray &in_Array ); 00374 00375 private: 00376 Envelope * operator&() const; 00377 Envelope * operator&(); 00378 }; 00379 00380 }; 00381 00382 #endif // __XSIENVELOPE_H__