ipipelineclient.h

Go to the documentation of this file.
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