xsi_projectitem.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 __XSIPROJECTITEM_H__
00018 #define __XSIPROJECTITEM_H__
00019 
00020 #include <xsi_siobject.h>
00021 #include <xsi_value.h>
00022 #include <xsi_parameter.h>
00023 
00024 namespace XSI {
00025 
00026 class Model;
00027 class X3DObject;
00028 class PPGLayout;
00029 class ICEAttribute;
00030 
00031 //*****************************************************************************
00043 //*****************************************************************************
00044 
00045 class SICPPSDKDECL ProjectItem : public SIObject
00046 {
00047 public:
00049     ProjectItem();
00050 
00052     ~ProjectItem();
00053 
00057     ProjectItem(const CRef& in_ref);
00058 
00062     ProjectItem(const ProjectItem& in_obj);
00063 
00068     bool IsA( siClassID in_ClassID) const;
00069 
00073     siClassID GetClassID() const;
00074 
00080     ProjectItem& operator=(const ProjectItem& in_obj);
00081 
00087     ProjectItem& operator=(const CRef& in_ref);
00088 
00092     CString GetFamilies() const;
00093 
00097     siCapabilities GetCapabilities() const;
00098 
00108     CStatus PutCapabilityFlag( siCapabilities in_flag, bool in_bEnable ) ;
00109 
00110 
00117     bool GetSelected
00118     (
00119         siBranchFlag in_branchFlag = siNode
00120     ) const;
00121 
00130     CStatus PutSelected
00131     (
00132         bool in_newState,
00133         siBranchFlag in_branchFlag = siNode
00134     );
00135 
00141     CRefArray GetOwners() const;
00142 
00156     CParameterRefArray& GetParameters() const;
00157 
00162     Model GetModel() const;
00163 
00175     bool IsRelationship(siPSetRelationship in_PSetRelationship) const;
00176 
00182     bool BelongsTo( const CString& in_family) const;
00183 
00184 
00189     bool IsKindOf(const CString& in_objectType) const;
00190 
00201     bool IsAnimated
00202     (
00203         siSourceType    in_sourceType = siAnySource,
00204         bool            in_bLocal = false
00205     ) const;
00206 
00218     CRefArray GetAnimatedParameters
00219     (
00220         siSourceType    in_sourceType = siAnySource,
00221         bool            in_bLocal = false
00222     ) const;
00223 
00229     CRef EvaluateAt( double in_dFrame = DBL_MAX);
00230 
00253     CStatus PutParameterValue( const CString& in_scriptname, bool in_val, double in_time = DBL_MAX );
00254 
00266     CStatus PutParameterValue( const CString& in_scriptname, double in_val, double in_time = DBL_MAX);
00267 
00279     CStatus PutParameterValue( const CString& in_scriptname, float in_val, double in_time = DBL_MAX );
00280 
00292     CStatus PutParameterValue( const CString& in_scriptname, short in_val, double in_time = DBL_MAX );
00293 
00305     CStatus PutParameterValue( const CString& in_scriptname, LONG in_val, double in_time = DBL_MAX );
00306 
00320     CStatus PutParameterValue( const CString& in_scriptname, LLONG in_val, double in_time = DBL_MAX );
00321 
00333     CStatus PutParameterValue( const CString& in_scriptname, const CValue& in_val, double in_time = DBL_MAX );
00334 
00346     CStatus PutParameterValue( const CString& in_scriptname, const CRef& in_val, double in_time = DBL_MAX );
00347 
00359     CStatus PutParameterValue( const CString& in_scriptname, const CString& in_val, double in_time = DBL_MAX );
00360 
00376     CValue GetParameterValue( const CString& in_scriptname, double in_time=DBL_MAX )const;
00377 
00389     Parameter GetParameter( const CString& in_scriptname ) const;
00390 
00396     PPGLayout GetPPGLayout() const ;
00397 
00402     siLockType GetLockType();
00407     siLockLevel GetLockLevel();
00412     bool IsLocked();
00413 
00419     CStatus SetLock(siLockLevel  in_level=siLockLevelAll);
00420 
00427     CStatus UnSetLock(siLockLevel in_level=siLockLevelAll, const CString&in_password=CString() );
00428 
00441     CRefArray GetTaggedParameters
00442     (
00443         siTags      in_tags = siTagAll,
00444         bool        in_bLocal = false
00445     ) const;
00446 
00459     CRefArray GetLockOwners
00460     (
00461         siLockLevel in_eLevel = siLockLevelAll,
00462         bool        in_bLocal = false
00463     ) const;
00464 
00488     CRef AddScriptedOp(
00489             const CString& in_code=L"",
00490             const CRefArray& in_inputs = CRefArray(),
00491             const CString& in_name=L"",
00492             const CString& in_language=L"",
00493             siConstructionMode in_mode = siConstructionModeDefault,
00494             CStatus* out_pst = 0 );
00495 
00519     CRef AddScriptedOpFromFile( const CString& in_filename = L"", const CRefArray& in_inputs = CRefArray(), const CString& in_name = L"", const CString& in_language = L"", siConstructionMode in_mode = siConstructionModeDefault, CStatus* out_pst = 0 );
00520 
00535     CRef AddCustomOp(
00536             const CString& in_type,
00537             const CRefArray& in_inputs = CRefArray(),
00538             const CString& in_name=L"",
00539             siConstructionMode in_mode = siConstructionModeDefault,
00540             CStatus* io_pst = 0 );
00541 
00546     CRefArray GetLockOwners() const;
00547 
00554     X3DObject GetParent3DObject() const;
00555 
00566     siBranchFlag GetBranchFlag() const;
00567 
00573     CRefArray GetICEAttributes() const;
00574 
00727     ICEAttribute GetICEAttributeFromName( const CString& in_name ) const;
00728 
00739     ICEAttribute AddICEAttribute( const CString& in_name, XSI::siICENodeDataType in_DataType, XSI::siICENodeStructureType in_StructureType, XSI::siICENodeContextType in_ContextType );
00740 
00750     CStatus RemoveICEAttribute( const CString& in_name );
00751 
00752 
00758     ULONG GetObjectID( ) const;
00759 
00767     LONG    GetEvaluationID();
00768 
00776     LONG    GetHierarchicalEvaluationID();
00777 
00778     protected:
00779     mutable CParameterRefArray m_paramArray;
00780 
00781     private:
00782     ProjectItem * operator&() const;
00783     ProjectItem * operator&();
00784 
00785 };
00786 
00787 };
00788 
00789 #endif // __XSIPROJECTITEM_H__