00001 /********************************************************************** 00002 00003 FILE: IPipelineClient.h 00004 00005 DESCRIPTION: Geometry pipeline client API 00006 00007 CREATED BY: Attila Szabo, Discreet 00008 00009 HISTORY: [attilas|19.09.2000] 00010 00011 00012 *> Copyright (c) 1998-2000, All Rights Reserved. 00013 **********************************************************************/ 00014 00015 #pragma once 00016 00017 #include "baseinterface.h" 00018 #include "channels.h" 00019 00020 // GUID that identifies this ifc (interface) 00021 #define PIPELINECLIENT_INTERFACE Interface_ID(0x62383d51, 0x2d0f7d6a) 00022 00023 // This interface should be implemented by objects that flow up the 00024 // geometry pipeline and have data members that belong to the pipeline 00025 // channels (geometry, topology, texmap, etc) 00026 // ... in other words by objects that are part of the data flow evaluation 00027 // of the Max stack. 00028 class IPipelineClient : public BaseInterface 00029 { 00030 public: 00031 // --- IPipelineClient methods 00032 virtual void ShallowCopy( IPipelineClient* from, ChannelMask channels ) = 0; 00033 virtual void DeepCopy( IPipelineClient* from, ChannelMask channels ) = 0; 00034 virtual void NewAndCopyChannels( ChannelMask channels ) = 0; 00035 virtual void FreeChannels( ChannelMask channels, int zeroOthers = 1 ) = 0; 00036 virtual void ZeroChannels( ChannelMask channels ) = 0; 00037 virtual void AppendAllChannels( IPipelineClient* from ) = 0; 00038 00039 // --- from BaseInterface 00040 virtual Interface_ID GetID() { return PIPELINECLIENT_INTERFACE; } 00041 }; 00042