📄 mesh_flag.h
字号:
#pragma once
#include "stdafx.h"
// 0 bit - 7 bit /////////////////////////////////////////////
enum SHADE_TYPE
{
SHADE_TYPE_VERTEX_LIGHT_IM = 0x00000000,
SHADE_TYPE_VERTEX_LIGHT_RT = 0x00000001,
SHADE_TYPE_LIGHT_MAP = 0x00000003
};
#define SHADE_TYPE_MASK 0x0000000f
#define SHADE_TYPE_MASK_INVERSE 0xfffffff0
enum TRANSFORM_TYPE
{
TRANSFORM_TYPE_SOLID = 0x0000000,
TRANSFORM_TYPE_NOT_SOLID = 0x00000010,
TRANSFORM_TYPE_ALIGN_VIEW = 0x00000030,
TRANSFORM_TYPE_ILLUSION = 0x00000050
};
#define TRANSFORM_TYPE_MASK 0x000000f0
#define TRANSFORM_TYPE_MASK_INVERSE 0xffffff0f
// 0 bit - 7 bit /////////////////////////////////////////////
// 8 bit /////////////////////////////////////////////
enum RIGID_TYPE
{
RIGID_TYPE_NOT_RIGID = 0x00000000,
RIGID_TYPE_RIGID = 0x00000100
};
#define RIGID_TYPE_MASK 0x00000100
#define RIGID_TYPE_MASK_INVERSE ~(RIGID_TYPE_MASK)
// 8 bit /////////////////////////////////////////////
// 9 bit /////////////////////////////////////////////
enum PICK_ENABLE_TYPE
{
PICK_ENABLE = 0x00000000,
PICK_DISABLE = 0x00000200
};
#define PICK_ENABLE_TYPE_MASK 0x00000200
#define PICK_ENABLE_TYPE_MASK_INVERSE ~(PICK_ENABLE_TYPE_MASK)
// 9 bit /////////////////////////////////////////////
// 弥惑困 1厚飘绰 z滚欺 静扁 啊瓷/阂啊瓷
// 弊 促澜 7厚飘绰 坊歹傅 快急鉴困 128窜拌
#define RENDER_ZPRIORITY_DEFAULT 0
#define RENDER_ZPRIORITY_UNIT -10.0f
#define RENDER_ZPRIORITY_MASK 0x7f000000
#define RENDER_ZPRIORITY_MASK_INVERSE 0x80ffffff
#define WRITE_ZBUFFER_MASK 0x80000000
#define WRITE_ZBUFFER_MASK_INVERSE 0x7fffffff
class CMeshFlag
{
DWORD m_dwFlag;
public:
BOOL IsDisableZBubfferWrite() { return (m_dwFlag & WRITE_ZBUFFER_MASK)>>31;}
void DisableZBufferWrite() { m_dwFlag |= WRITE_ZBUFFER_MASK;}
void EnableZBufferWrite() {m_dwFlag &= WRITE_ZBUFFER_MASK_INVERSE;}
int GetRenderZPriorityValue()
{
// 弥惑困 1厚飘绰 z滚欺静扁 啊瓷/阂啊瓷, 弊 促澜 7厚飘绰 坊歹傅 鉴辑肺 荤侩茄促.
// 7厚飘吝 弥惑困厚飘绰 轿牢厚飘肺 荤侩茄促.
int iZOrder = (m_dwFlag & RENDER_ZPRIORITY_MASK)>>24;
int sign_mask = ( 0 - ( (iZOrder & 0x00000040)>>6 ) ) & 0xffffffc0;
iZOrder = iZOrder | sign_mask;
return iZOrder;
}
void SetRenderZPriorityValue(int iZOrder)
{
iZOrder = iZOrder & 0x0000007f;
m_dwFlag = (m_dwFlag & RENDER_ZPRIORITY_MASK_INVERSE) | (iZOrder<<24);
}
SHADE_TYPE GetShadeType() {return (SHADE_TYPE)(m_dwFlag & SHADE_TYPE_MASK);}
void SetShadeType(SHADE_TYPE type) {m_dwFlag = (m_dwFlag & SHADE_TYPE_MASK_INVERSE) | type;}
TRANSFORM_TYPE GetTransformType() {return (TRANSFORM_TYPE)(m_dwFlag & TRANSFORM_TYPE_MASK);}
void SetTransformType(TRANSFORM_TYPE type) {m_dwFlag = (m_dwFlag & TRANSFORM_TYPE_MASK_INVERSE) | type;}
RIGID_TYPE GetRigidType() {return (RIGID_TYPE)(m_dwFlag & RIGID_TYPE_MASK);}
void SetRigidType(RIGID_TYPE type) {m_dwFlag = (m_dwFlag & RIGID_TYPE_MASK_INVERSE) | type;}
PICK_ENABLE_TYPE GetPickEnable() {return (PICK_ENABLE_TYPE)(m_dwFlag & PICK_ENABLE_TYPE_MASK);}
void SetPickEnable(PICK_ENABLE_TYPE type) {m_dwFlag = (m_dwFlag & PICK_ENABLE_TYPE_MASK_INVERSE) | type;}
CMeshFlag() {m_dwFlag = 0;}
};
enum DYNAMIC_LIGHT_APPLY_TYPE
{
DYNAMIC_LIGHT_APPLY_TYPE_DISABLE = 0x00000000,
DYNAMIC_LIGHT_APPLY_TYPE_CHARACTER_ENABLE = 0x00000001,
DYNAMIC_LIGHT_APPLY_TYPE_MAP_ENABLE = 0x00000002,
DYNAMIC_LIGHT_APPLY_TYPE_BOTH_ENABLE = 0x00000003
};
#define DYNAMIC_LIGHT_APPLY_TYPE_MASK 0x0000000f
#define DYNAMIC_LIGHT_APPLY_TYPE_MASK_INVERSE 0xfffffff0
class CLightFlag
{
DWORD m_dwFlag;
public:
DYNAMIC_LIGHT_APPLY_TYPE GetDynamicLightType() {return (DYNAMIC_LIGHT_APPLY_TYPE)(m_dwFlag & DYNAMIC_LIGHT_APPLY_TYPE_MASK);}
void SetDynamicLightType(DYNAMIC_LIGHT_APPLY_TYPE type) {m_dwFlag = (m_dwFlag & DYNAMIC_LIGHT_APPLY_TYPE_MASK_INVERSE) | type;}
CLightFlag() {m_dwFlag = 0;}
};
class CCameraFlag
{
DWORD m_dwFlag;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -