78 lines
2.1 KiB
C++
Executable File
78 lines
2.1 KiB
C++
Executable File
/**********************************************************************
|
|
*<
|
|
FILE: mtl.h
|
|
|
|
DESCRIPTION: Material and texture class definitions
|
|
|
|
CREATED BY: Don Brittain
|
|
|
|
HISTORY:
|
|
|
|
*> Copyright (c) 1994, All Rights Reserved.
|
|
**********************************************************************/
|
|
|
|
#if !defined(_MTL_H_)
|
|
|
|
#define _MTL_H_
|
|
|
|
#include "tab.h"
|
|
|
|
#include "BaseInterface.h"
|
|
class MtlBase;
|
|
|
|
#define UVSOURCE_MESH 0 // use UVW coords from a standard map channel
|
|
#define UVSOURCE_XYZ 1 // compute UVW from object XYZ
|
|
#define UVSOURCE_MESH2 2 // use UVW2 (vertexCol) coords
|
|
#define UVSOURCE_WORLDXYZ 3 // use world XYZ as UVW
|
|
#ifdef GEOREFSYS_UVW_MAPPING
|
|
#define UVSOURCE_GEOXYZ 4 // generate planar uvw mapping from geo referenced world xyz on-the-fly
|
|
#endif
|
|
#define UVSOURCE_FACEMAP 5 // use "face map" UV coords
|
|
#define UVSOURCE_HWGEN 6 // use hardware generated texture coords
|
|
|
|
// texture class definition
|
|
class TextureInfo : public BaseInterfaceServer {
|
|
public:
|
|
DllExport TextureInfo();
|
|
virtual ~TextureInfo() {};
|
|
DllExport TextureInfo& operator=(const TextureInfo &from);
|
|
|
|
int useTex;
|
|
int faceMap;
|
|
DWORD_PTR textHandle; // texture handle
|
|
int uvwSource;
|
|
int mapChannel;
|
|
Matrix3 textTM; // texture transform
|
|
UBYTE tiling[3]; // u,v,w tiling: GW_TEX_REPEAT, GW_TEX_MIRROR, or GW_TEX_NO_TILING
|
|
UBYTE colorOp; // color texture operation
|
|
UBYTE colorAlphaSource; // color blend alpha source
|
|
UBYTE colorScale; // color scale factor
|
|
UBYTE alphaOp; // alpha texture operation
|
|
UBYTE alphaAlphaSource; // alpha blend alpha source
|
|
UBYTE alphaScale; // alpha scale factor
|
|
};
|
|
|
|
// main material class definition
|
|
class Material : public BaseInterfaceServer {
|
|
protected:
|
|
|
|
public:
|
|
DllExport Material();
|
|
virtual ~Material() {};
|
|
DllExport Material& operator=(const Material &from);
|
|
|
|
Point3 Ka;
|
|
Point3 Kd;
|
|
Point3 Ks;
|
|
float shininess;
|
|
float shinStrength;
|
|
float opacity;
|
|
float selfIllum;
|
|
int dblSided;
|
|
int shadeLimit;
|
|
Tab<TextureInfo> texture;
|
|
DllExport BaseInterface *GetInterface(Interface_ID id);
|
|
};
|
|
|
|
#endif // _MTL_H_
|