BIMHome v1.0.0
BIMHome接口文档说明
Material.h
浏览该文件的文档.
1/************************************************************************
2* @file Material.h
3*
4* @brief
5*
6* @details
7*
8* @author
9*
10* @version
11*
12* @date
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18
19#ifndef BIMHOMEAPP_APP_MATERIAL_H
20#define BIMHOMEAPP_APP_MATERIAL_H
21
22#ifdef __GNUC__
23# include <cstdint>
24#endif
25
26#include <sstream>
27#include <iomanip>
28#include <BHGlobal.h>
29#include "Color.h"
30
31namespace App
32{
38 class AppExport Material {
39 public:
91 USER_DEFINED
92 };
93
94 public:
95
101
107 Material(const char* MatName);
108
114 Material(const MaterialType MatType);
115
117
123 void set(const char* MatName);
124
130 void setType(const MaterialType MatType);
131
136 MaterialType getType() const { return _matType; }
137
138
145 bool operator==(const Material& m) const
146 {
147 return _matType==m._matType && shininess==m.shininess &&
148 transparency==m.transparency && ambientColor==m.ambientColor &&
149 diffuseColor==m.diffuseColor && specularColor==m.specularColor &&
150 emissiveColor==m.emissiveColor;
151 }
152
158 bool operator!=(const Material& m) const
159 {
160 return !operator==(m);
161 }
162
163 public:
168 float shininess;
171 private:
173 };
174
180 class AppExport Texture {
181 public:
182 explicit Texture(std::string path="");
184
190 void setValue(const std::string& path);
191
197 std::string getValue() const;
198
205 bool operator==(const Texture& t) const;
206
213 bool operator!=(const Texture& t) const;
214
222
223 private:
225 std::string _texturePath;
226 };
227
233 class AppExport Pattern {
234 public:
242 void setValue(const std::string& path);
243
249 std::string getValue() const;
250
257 bool operator==(const Pattern& t) const;
258
265 bool operator!=(const Pattern& t) const;
266
274
275 private:
276 std::string _patternPath;
277 };
278
279
280} //namespace App
281
282#endif // BIMHOMEAPP_APP_MATERIAL_H
表示颜色的类
Definition Color.h:34
MaterialType getType() const
获取当前材质类型
Definition Material.h:136
bool operator!=(const Material &m) const
比较两个材质是否不相等
Definition Material.h:158
Color emissiveColor
自发光颜色
Definition Material.h:167
MaterialType _matType
当前材质类型
Definition Material.h:172
Material(const MaterialType MatType)
通过材质类型构造
void setType(const MaterialType MatType)
设置材质类型
Color diffuseColor
漫反射颜色
Definition Material.h:165
Material()
默认构造函数
float shininess
光泽度
Definition Material.h:168
void set(const char *MatName)
设置材质属性
Color specularColor
镜面反射颜色
Definition Material.h:166
float transparency
透明度
Definition Material.h:169
MaterialType
材质类型枚举
Definition Material.h:68
@ STONE
Definition Material.h:78
@ PLASTIC
Definition Material.h:75
@ SATIN
Definition Material.h:80
@ SILVER
Definition Material.h:76
@ DEFAULT
Definition Material.h:90
@ NEON_PHC
Definition Material.h:86
@ NEON_GNC
Definition Material.h:82
@ COPPER
Definition Material.h:71
@ GOLD
Definition Material.h:72
@ EMERALD
Definition Material.h:89
@ ALUMINIUM
Definition Material.h:84
@ PEWTER
Definition Material.h:73
@ OBSIDIAN
Definition Material.h:85
@ METALIZED
Definition Material.h:81
@ SHINY_PLASTIC
Definition Material.h:79
@ BRASS
Definition Material.h:69
@ PLASTER
Definition Material.h:74
@ JADE
Definition Material.h:87
@ BRONZE
Definition Material.h:70
@ CHROME
Definition Material.h:83
@ STEEL
Definition Material.h:77
@ RUBY
Definition Material.h:88
Color ambientColor
环境光颜色
Definition Material.h:164
Material(const char *MatName)
通过材质名称构造
bool operator==(const Material &m) const
比较两个材质是否相等
Definition Material.h:145
材质类
Definition Material.h:38
std::string getValue() const
获取填充样式路径
Pattern & operator=(const Pattern &t)
重载=运算符,赋值操作
bool operator==(const Pattern &t) const
重载==运算符,比较两个填充样式对象是否相等
void setValue(const std::string &path)
设置填充样式路径
std::string _patternPath
Definition Material.h:276
bool operator!=(const Pattern &t) const
重载!=运算符,比较两个填充样式对象是否不相等
填充样式类
Definition Material.h:233
bool operator==(const Texture &t) const
重载==运算符,比较两个纹理对象是否相等
bool operator!=(const Texture &t) const
重载!=运算符,比较两个纹理对象是否不相等
std::string _texturePath
纹理路径
Definition Material.h:225
Texture & operator=(const Texture &t)
重载=运算符,赋值操作
std::string getValue() const
获取纹理路径
void setValue(const std::string &path)
设置纹理路径
Texture(std::string path="")
纹理类
Definition Material.h:180
Definition BaseFigureFactory.h:28