tge/lib/maxsdk40/sbmtlapi.h
2017-04-17 06:17:10 -06:00

51 lines
1.9 KiB
C++
Executable File

/**********************************************************************
*<
FILE: sbmtlapi.h
DESCRIPTION: Object Sub Material API
CREATED BY: Christer Janson
HISTORY: 1-19-98
*> Copyright (c) 1998, All Rights Reserved.
**********************************************************************/
// By deriving your object or modifier from this class you will support
// direct assignment of sub materials to selected faces/elements.
// For a reference implementation of this class, please refer to
// maxsdk\samples\pack1\triobjed.cpp
#ifndef __SBMTLAPI_H__
#define __SBMTLAPI_H__
class ISubMtlAPI {
public:
// Return a material ID that is currently not used by the object.
// If the current face selection share once single MtlID that is not
// used by any other faces, you should use it.
virtual MtlID GetNextAvailMtlID(ModContext* mc) = 0;
// Indicate if you are active in the modifier panel and have an
// active face selection
virtual BOOL HasFaceSelection(ModContext* mc) = 0;
// Set the selected faces to the specified material ID.
// If bResetUnsel is TRUE, then you should set the remaining
// faces material ID's to 0
virtual void SetSelFaceMtlID(ModContext* mc, MtlID id, BOOL bResetUnsel = FALSE) = 0;
// Return the material ID of the selected face(s).
// If multiple faces are selected they should all have the same MtlID -
// otherwise you should return -1.
// If faces other than the selected share the same material ID, then
// you should return -1.
virtual int GetSelFaceUniqueMtlID(ModContext* mc) = 0;
// Return the material ID of the selected face(s).
// If multiple faces are selected they should all have the same MtlID,
// otherwise you should return -1.
virtual int GetSelFaceAnyMtlID(ModContext* mc) = 0;
// Return the highest MtlID on the object.
virtual int GetMaxMtlID(ModContext* mc) = 0;
};
#endif //__SBMTLAPI_H__