aboutsummaryrefslogtreecommitdiff
path: root/tool_src/BspLib/Material.h
blob: a0c0f1f25316d7c949b1497b1d308522daccd93c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//-----------------------------------------------------------------------------
//	BSPLIB HEADER: Material.h
//
//  Copyright (c) 1997-1998 by Markus Hadwiger
//  All Rights Reserved.
//-----------------------------------------------------------------------------

#ifndef _MATERIAL_H_
#define _MATERIAL_H_

// bsplib header files
#include "BspLibDefs.h"
#include "SystemIO.h"


BSPLIB_NAMESPACE_BEGIN


// class that describes OpenGL-style material properties ----------------------
//
class Material {

public:
	Material() { }
	~Material() { }

	ColorRGBA	getAmbientColor()	{ return ambientcolor; }
	ColorRGBA	getDiffuseColor()	{ return diffusecolor; }
	ColorRGBA	getSpecularColor()	{ return specularcolor; }
	ColorRGBA	getEmissiveColor()	{ return emissivecolor; }

	void		setAmbientColor( ColorRGBA col )  { ambientcolor = col; ambientcolor.A = 255; }
	void		setDiffuseColor( ColorRGBA col )  { diffusecolor = col; diffusecolor.A = 255; }
	void		setSpecularColor( ColorRGBA col ) { specularcolor = col; specularcolor.A = 255; }
	void		setEmissiveColor( ColorRGBA col ) { emissivecolor = col; emissivecolor.A = 255; }

	float		getShininess()		{ return shininess; }
	float		getTransparency()	{ return transparency; }

	void		setShininess( float s )		{ shininess = s; }
	void		setTransparency( float t )	{ transparency = t; }

private:
	ColorRGBA	ambientcolor;	// OpenGL-style material properties
	ColorRGBA	diffusecolor;
	ColorRGBA	specularcolor;
	ColorRGBA	emissivecolor;
	float		shininess;
	float		transparency;
};


BSPLIB_NAMESPACE_END


#endif // _MATERIAL_H_