00001 /********************************************************************** 00002 *< 00003 FILE: CustAttrib.h 00004 00005 DESCRIPTION: Defines CustAttrib class 00006 00007 CREATED BY: Nikolai Sander 00008 00009 HISTORY: created 5/25/00 00010 00011 *> Copyright (c) 2000, All Rights Reserved. 00012 **********************************************************************/ 00013 00014 #pragma once 00015 00016 #include "maxtypes.h" 00017 #include "plugapi.h" 00018 #include "ref.h" 00019 00020 class ICustAttribContainer; 00021 class IGraphObjectManager; 00022 class IMtlParams; 00023 class ParamDlg; 00024 00032 class CustAttrib: public ReferenceTarget 00033 { 00034 public: 00035 virtual SClass_ID SuperClassID() { return CUST_ATTRIB_CLASS_ID; } 00040 virtual const MCHAR* GetName(){ return _M("Custom Attribute");} 00053 #pragma warning(push) 00054 #pragma warning(disable:4100) 00055 virtual ParamDlg *CreateParamDlg(HWND hwMtlEdit, IMtlParams *imp){return NULL;} 00066 virtual bool CheckCopyAttribTo(ICustAttribContainer *to) { return true; } 00067 virtual SvGraphNodeReference SvTraverseAnimGraph(IGraphObjectManager *gom, Animatable *owner, int id, DWORD flags) 00068 { 00069 return SvStdTraverseAnimGraph(gom, owner, id, flags); 00070 } 00071 #pragma warning(pop) 00072 }; 00073 00074 00077 struct NotifyCustomAttribute : public MaxHeapOperators 00078 { 00079 NotifyCustomAttribute(Animatable* owner = NULL, Animatable* custAttr = NULL): 00080 m_owner(owner), m_customAttribute(custAttr) {}; 00082 Animatable* m_owner; 00084 Animatable* m_customAttribute; 00085 }; 00086