代码:
enum class LightType// 光线类型
{
DIRECTIONAL = 0,
POINT = 1,
SPOT = 2,
AMBIENT = 3,
};
enum class LightFlag//光线标识
{
LIGHT0 = 1,
LIGHT1 = 1 << 1,
LIGHT2 = 1 << 2,
LIGHT3 = 1 << 3,
LIGHT4 = 1 << 4,
LIGHT5 = 1 << 5,
LIGHT6 = 1 << 6,
LIGHT7 = 1 << 7,
LIGHT8 = 1 << 8,
LIGHT9 = 1 << 9,
LIGHT10 = 1 << 10,
LIGHT11 = 1 << 11,
LIGHT12 = 1 << 12,
LIGHT13 = 1 << 13,
LIGHT14 = 1 << 14,
LIGHT15 = 1 << 15,
};
/**
@js NA
*/
// 基础光
class CC_DLL BaseLight : public Node
{
public:
/**
* Get the light type,light type MUST be one of LightType::DIRECTIONAL ,
* LightType::POINT, LightType::SPOT, LightType::AMBIENT.
*/
// 得到光线的类型
virtual LightType getLightType() const = 0;
/** intensity getter and setter */
// 得到光的强度
float getIntensity() const { return _intensity; }
// 设置光的强度
void setIntensity(float intensity);
/**light flag getter and setter*/
// 得到光的标识
LightFlag