xsi_sceneitem.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 __XSISCENEITEM_H__
00018 #define __XSISCENEITEM_H__
00019 
00020 #include <xsi_projectitem.h>
00021 #include <xsi_customproperty.h>
00022 #include <xsi_status.h>
00023 
00024 namespace XSI {
00025 
00026 class Material;
00027 class Envelope;
00028 class Property;
00029 
00030 //*****************************************************************************
00036 //*****************************************************************************
00037 
00038 class SICPPSDKDECL SceneItem : public ProjectItem
00039 {
00040 public:
00042     SceneItem();
00043 
00045     ~SceneItem();
00046 
00050     SceneItem(const CRef& in_ref);
00051 
00055     SceneItem(const SceneItem& in_obj);
00056 
00061     bool IsA( siClassID in_ClassID) const;
00062 
00066     siClassID GetClassID() const;
00067 
00073     SceneItem& operator=(const SceneItem& in_obj);
00074 
00080     SceneItem& operator=(const CRef& in_ref);
00081 
00087     CRefArray   GetProperties() const;
00088 
00092     Material    GetMaterial() const;
00093 
00097     CRefArray   GetEnvelopes() const;
00098 
00107     CStatus     ApplyEnvelope
00108     (
00109         const CRefArray& in_deformers,
00110         siBranchFlag     in_DeformOnBranch,
00111         siBranchFlag     in_EnvOnBranch,
00112         Envelope&        io_env
00113     );
00114 
00118     CRefArray   GetLocalProperties() const;
00119 
00131     CStatus     AddMaterial
00132     (
00133         const CString&  in_preset,
00134         bool            in_branch,
00135         const CString&  in_name,
00136         Material&       io_mat
00137     );
00138 
00152     Property AddProperty
00153     (
00154         const CString&  in_preset,
00155         bool            in_bBranch = false,
00156         const CString&  in_name = CString()
00157     );
00158 
00166     CStatus     AddProperty
00167     (
00168         const CString&  in_preset,
00169         bool            in_bBranch ,
00170         const CString&  in_name,
00171         Property&       out_prop
00172     );
00173 
00181     CStatus     AddCustomProperty
00182     (
00183         const CString&  in_name,
00184         bool            in_bBranch ,
00185         CustomProperty& out_customprop
00186     );
00187 
00194     CStatus     SetMaterial
00195     (
00196         Material&       in_Material
00197     );
00198 
00205     CStatus     GetPropertyFromName
00206     (
00207         const CString&  in_name,
00208         Property&       out_prop
00209     );
00210 
00217     CStatus     GetLocalPropertyFromName
00218     (
00219         const CString&  in_name,
00220         Property&       out_prop
00221     );
00222 
00223     private:
00224     SceneItem * operator&() const;
00225     SceneItem * operator&();
00226 };
00227 
00228 };
00229 
00230 #endif // __XSISCENEITEM_H__