imtledit.h

Go to the documentation of this file.
00001 /**********************************************************************
00002  *<
00003     FILE: IMtlEdit.h
00004 
00005     DESCRIPTION: Material Editor Interface
00006 
00007     CREATED BY: Nikolai Sander
00008 
00009     HISTORY: Created 6/22/00
00010 
00011  *> Copyright (c) 2000, All Rights Reserved.
00012  **********************************************************************/
00013 #pragma once
00014 
00015 #include "ifnpub.h"
00016 #include "GetCOREInterface.h"
00017 
00018 // forward declarations
00019 class MtlBase;
00020 
00029 class IMtlEditInterface : public FPStaticInterface 
00030 {
00031 public:
00032 // function IDs 
00033     enum { 
00034            fnIdGetCurMtl,
00035            fnIdSetActiveMtlSlot,
00036            fnIdGetActiveMtlSlot,
00037            fnIdPutMtlToMtlEditor,
00038            fnIdGetTopMtlSlot,
00039            fnIdOkMtlForScene,
00040            fnIdUpdateMtlEditorBrackets,
00041     };
00042 
00045     virtual MtlBase *GetCurMtl() = 0;
00052     virtual void SetActiveMtlSlot(int i, BOOL forceUpdate = FALSE)=0;
00054     virtual int GetActiveMtlSlot()=0;
00062     virtual void PutMtlToMtlEditor(MtlBase *mtlBase, int slot)=0;
00069     virtual MtlBase* GetTopMtlSlot(int slot)=0;
00074     virtual BOOL OkMtlForScene(MtlBase *m)=0;
00079     virtual void UpdateMtlEditorBrackets()=0;
00080 
00081 };
00082 
00083 
00084 #define MTLEDIT_INTERFACE Interface_ID(0x2c7b3f6e, 0x16fb35d4)
00085 inline IMtlEditInterface* GetMtlEditInterface () { return (IMtlEditInterface *)GetCOREInterface(MTLEDIT_INTERFACE); }
00086