tge/lib/maxsdk70/include/iRenderPresets.h
2017-04-17 06:17:10 -06:00

90 lines
3.2 KiB
C++
Executable File

/////////////////////////////////////////////////////////////////////////
//
//
// Render Preset Interface
//
// Created 5/14/2003 Tom Burke
//
#ifndef I_RENDER_PRESETS_H
#define I_RENDER_PRESETS_H
#include "bitarray.h"
#define RENDER_PRESETS_CATEGORY_COUNT 64
#define RENDER_PRESETS_CUSTOM_CATEGORY_INDEX_BEGIN 32
// return values
//
#define RENDER_PRESETS_SUCCESS 0
#define RP_ERROR_OBSOLETE_FILE 1
#define RP_ERROR_INCOMPATABLE_FILE 2
#define RP_ERROR_CATEGORY_NOT_COMPATABLE 3
#define RP_ERROR_SAVING_FILE 4
#define RP_ERROR_LOADING_FILE 5
#define RP_ERROR_CANCEL 6
#define RP_ERROR_FILE_NOT_FOUND 7
class RenderPresetsContext {
public:
RenderPresetsContext( int version, BitArray categories ) { mVersion = version; mCategories = categories; }
BitArray GetCategories() { return mCategories; }
int GetVersion() { return mVersion; }
private:
int mVersion;
BitArray mCategories;
};
class IRenderPresetsManager {
public:
enum RendererSpecifier {
kProduction = 0,
kMaterial,
kActiveShade
};
typedef enum {
kUnspecified = -1,
kLoadAll = 0,
kLoadNonNodeRefMakers = 1,
kLoadNone = 2,
} NodeRefAction;
// Save selected categories of render presets to the file
virtual int Save( RendererSpecifier rendSpecifier ) = 0;
virtual int Save( RendererSpecifier rendSpecifier, TCHAR * fileName ) = 0;
virtual int Save( RendererSpecifier rendSpecifier, TCHAR * fileName, BitArray saveCategories ) = 0;
// Load selected categories of render presets from the file
virtual int Load( RendererSpecifier rendSpecifier ) = 0;
virtual int Load( RendererSpecifier rendSpecifier, TCHAR * fileName ) = 0;
virtual int Load( RendererSpecifier rendSpecifier, TCHAR * fileName, BitArray loadCategories, NodeRefAction nodeRefAction = kUnspecified ) = 0;
// Check to see if file is compatable with current renderer
virtual int IsFileCompatible( RendererSpecifier rendSpecifier, TCHAR * fileName ) = 0;
// Convert between category index and category name for render preset files
virtual TCHAR * MapIndexToCategory( TCHAR * fileName, int catIndex ) = 0;
virtual int MapCategoryToIndex( TCHAR * fileName, TCHAR* category ) = 0;
// Convert between category index and category name for current renderers
virtual TCHAR * MapIndexToCategory( RendererSpecifier rendSpecifier, int catIndex ) = 0;
virtual int MapCategoryToIndex( RendererSpecifier rendSpecifier, TCHAR* category ) = 0;
// Retrieve the categories that were saved to the given file
virtual BitArray LoadCategories( TCHAR * fileName ) = 0; // list of categories saved in the file
virtual Tab<TCHAR *> LoadCategoryNames( TCHAR * fileName ) = 0;
virtual BitArray SaveCategories( RendererSpecifier rendSpecifier ) = 0;
virtual Tab<TCHAR *> SaveCategoryNames( RendererSpecifier rendSpecifier ) = 0;
// Retrieve the current RenderPresetContext.
// This is provided so that renderers can tailor their
// save and load methods to accomodate the saving and loading of
// any combination of render preset categories
virtual RenderPresetsContext * GetContext() = 0;
};
#endif // I_RENDER_PRESETS_H