ILockedContainerUpdate.h

Go to the documentation of this file.
00001 /*==============================================================================
00002 Copyright 2010 Autodesk, Inc.  All rights reserved.
00003 Use of this software is subject to the terms of the Autodesk license agreement provided at the time of installation or download,
00004 or which otherwise accompanies this software in either electronic or hard copy form.   
00005 *****************************/
00006 // DESCRIPTION: Interfaces for handling local edits during container update.
00007 // AUTHOR: Michael Zyracki created 2009
00008 //***************************************************************************/
00009 #pragma once
00010 
00011 #include "inode.h"
00012 
00015 #define IID_LOCKED_CONTAINER_UPDATE Interface_ID(0x5e323e2, 0x2add7cb8)
00016  
00017 class IContainerUpdateReplacedNode;
00038 class ILockedContainerUpdate : public BaseInterface
00039 {
00040 public:
00042     virtual ~ILockedContainerUpdate(){};
00043 
00046     virtual Interface_ID    GetID() { return IID_LOCKED_CONTAINER_UPDATE; }
00047 
00061     virtual bool PreReplacement(INode *sourceNode, Animatable *sourceAnim, INode *masterNode, Animatable *masterAnim, IContainerUpdateReplacedNode *man, MSTR &log)   = 0;
00062 
00063 
00076     virtual bool PostReplacement(INode *sourceNode, Animatable *sourceAnim, INode *masterNode, IContainerUpdateReplacedNode *man, MSTR &log) = 0;
00077 };
00078 
00079 
00104 class IContainerUpdateReplacedNode : public MaxHeapOperators
00105 {
00106 public:
00108     virtual ~IContainerUpdateReplacedNode(){};
00113     virtual INode *NewNode(INode *masterNode) = 0;
00114 };