added everything
This commit is contained in:
156
lib/maxsdk70/include/IDxMaterial.h
Executable file
156
lib/maxsdk70/include/IDxMaterial.h
Executable file
@@ -0,0 +1,156 @@
|
||||
/**********************************************************************
|
||||
*<
|
||||
FILE: IDxMaterial.h
|
||||
|
||||
DESCRIPTION: Interface for accessing the bitmaps used by effects in the DxMaterial
|
||||
|
||||
CREATED BY: Neil Hazzard
|
||||
|
||||
HISTORY: Created: 07/08/03
|
||||
|
||||
|
||||
*> Copyright (c) 2003, All Rights Reserved.
|
||||
**********************************************************************/
|
||||
#include "iFnPub.h"
|
||||
|
||||
#ifndef __IDXMATERIAL_H__
|
||||
#define __IDXMATERIAL_H__
|
||||
|
||||
#define IDXMATERIAL_INTERFACE Interface_ID(0x55b3201d, 0x29ab7fc3)
|
||||
#define IDXMATERIAL2_INTERFACE Interface_ID(0x54e4202f, 0x30ab6bc4)
|
||||
|
||||
//!An interface class to manage access to various parameters used by DirectX effects.
|
||||
/*!
|
||||
The Effect file has many internal presentations and as such the DxMaterial does not always store a
|
||||
one to one look up. Many parameters are stored in the ParamBlock and can be accessed that way. The
|
||||
paramblock index for the Effect is located at 0 (the material maintains 5 ParamBlocks). However things like Lights
|
||||
and Bitmaps do not get stored in the paramblock in an ideal way for data access. This interface simplifies this data
|
||||
access by providing direct access to these elements.
|
||||
*/
|
||||
class IDxMaterial : public FPMixinInterface
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
typedef enum LightSemantics {
|
||||
LIGHT_COLOR,
|
||||
LIGHT_DIRECTION,
|
||||
LIGHT_POSITION,
|
||||
}LightSemantics;
|
||||
|
||||
|
||||
|
||||
//!Reloads the current active effect
|
||||
virtual void ReloadDXEffect()=0;
|
||||
|
||||
//!Returns the number of bitmaps used by the currently loaded effect
|
||||
/*!
|
||||
\return The number of bitmaps
|
||||
*/
|
||||
virtual int GetNumberOfEffectBitmaps()=0;
|
||||
|
||||
//!Gets the bitmap used by the effect
|
||||
/*!
|
||||
\param index The index of the bitmap to retrieve
|
||||
\return A PBBitmap pointer for the bitmap used
|
||||
*/
|
||||
virtual PBBitmap * GetEffectBitmap(int index)=0;
|
||||
|
||||
//!Set the bitmap used by the effect
|
||||
/*!
|
||||
\param index The index of the bitmap to set
|
||||
\param * bmap A PBBitmap pointer for the bitmap to set
|
||||
*/
|
||||
virtual void SetEffectBitmap(int index,PBBitmap * bmap)=0;
|
||||
|
||||
//!Get the Dx Effect file
|
||||
/*!This can also be accessed via the paramblock, but it is simply provided for completeness
|
||||
\return The effect file in use
|
||||
*/
|
||||
virtual TCHAR* GetEffectFilename()=0;
|
||||
|
||||
//!Set the Dx Effect file
|
||||
/*!This can also be accessed via the paramblock, but it is simply provided for completeness
|
||||
\param filename The effect file to set
|
||||
*/
|
||||
virtual void SetEffectFilename(TCHAR * filename)=0;
|
||||
|
||||
//! Get the bitmap used for the software rendering overrride
|
||||
/*! This can also be set by the Paramblock, it is just used for completeness
|
||||
return The Bitmap used
|
||||
*/
|
||||
virtual PBBitmap * GetSoftwareRenderBitmap() = 0;
|
||||
|
||||
//!Set the bitmap to be used by the Renderer.
|
||||
/*! This can also be set by the Paramblock, it is just used for completeness
|
||||
\param *bmap A PBBitmap specifiying the bitmap to use
|
||||
*/
|
||||
virtual void SetSoftwareRenderBitmap(PBBitmap * bmap) = 0;
|
||||
|
||||
//************************************************************************************
|
||||
// The following method are not exposed through function publishing
|
||||
//************************************************************************************
|
||||
|
||||
//!Get the number of light based parameters
|
||||
/*!This will return the number of parameters that are light based, even Light Color. Care needs to be taken with Light Color
|
||||
as it could also have a Color Swatch associated with it, so could already have been exported as part of the ParamBlock.
|
||||
\return The number of light based parameters
|
||||
*/
|
||||
virtual int GetNumberOfLightParams()=0;
|
||||
|
||||
//!The actual node used by the parameter
|
||||
/*!This represent the light node used by the parameter. Care needs to taken as this could be a NULL pointer. There are two reason for this.
|
||||
The first is that the LightColor Semantic is stored internally as a LightElement, but the writer of the Effect file may not have specified
|
||||
a parentID for the light, this will result in a NULL. Secondly if the user has not actually assigned a light via the UI drop down list,
|
||||
then again this will again result in a NULL pointer.
|
||||
\param index The index of the light to return.
|
||||
\return The INode for the active light.
|
||||
*/
|
||||
virtual INode * GetLightNode(int index)=0;
|
||||
|
||||
//!The name of the parameter in the Effect file
|
||||
/*
|
||||
\param index The index of the light to retrieve
|
||||
\return A TCHAR* containing the name
|
||||
*/
|
||||
virtual TCHAR * GetLightParameterName(int index)=0;
|
||||
|
||||
//!The light semantic as defined in the effect file
|
||||
/*
|
||||
\param index THe index of the light to retrieve
|
||||
\return The semantic represented as a LightSemantics
|
||||
*/
|
||||
virtual LightSemantics GetLightSemantic(int index)=0;
|
||||
|
||||
};
|
||||
|
||||
class IDxMaterial2 : public IDxMaterial
|
||||
{
|
||||
|
||||
public:
|
||||
typedef enum BitmapTypes{
|
||||
UNKNOWN_MAP,
|
||||
DIFFUSE_MAP,
|
||||
BUMP_MAP,
|
||||
SPECULAR_MAP,
|
||||
OPACITY_MAP,
|
||||
DISPLACEMENT_MAP,
|
||||
LIGHTMAP_MAP,
|
||||
NORMAL_MAP,
|
||||
REFLECTION_MAP,
|
||||
|
||||
|
||||
}BitmapTypes;
|
||||
|
||||
//! Get the Mapping channel defined for the texture
|
||||
/*! The mapping channel as specified in the Effect file. If no mapping is defined then this will be mapping channel 0
|
||||
\param index The index of the bitmap to access
|
||||
\return The mapping channel for the texture
|
||||
*/
|
||||
virtual int GetBitmapMappingChannel(int index) = 0;
|
||||
virtual BitmapTypes GetBitmapUsage(int index) = 0;
|
||||
virtual void SetMappingChannel(int bitmapIndex, int mapChannel)=0;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user