5 #include <unordered_set> 9 #include "BlockConfig.h" 10 #include "BlockCoordinate.h" 11 #include "BlockIndex.h" 19 class RenderableChunk;
21 class BlockVertexCompressed;
26 BlockRenderPass_Opaque = 0,
27 BlockRenderPass_AlphaTest,
28 BlockRenderPass_AlphaBlended,
30 BlockRenderPass_ReflectedWater,
38 std::map<int64_t, Uint16x3>& GetBlocks();
41 std::map<int64_t, Uint16x3> m_blocks;
45 bool m_bOnlyRenderClickableArea;
94 dir_xy = dir_x | dir_y,
95 dir_xny = dir_x | dir_ny,
96 dir_xz = dir_x | dir_z,
97 dir_xnz = dir_x | dir_nz,
99 dir_nxy = dir_nx | dir_y,
100 dir_nxny = dir_nx | dir_ny,
101 dir_nxz = dir_nx | dir_z,
102 dir_nxnz = dir_nx | dir_nz,
117 enum BlockRenderMethod
119 BLOCK_RENDER_FIXED_FUNCTION = 0,
120 BLOCK_RENDER_FAST_SHADER,
121 BLOCK_RENDER_FANCY_SHADER,
124 enum BlockGroundIDEnum
126 BLOCK_GROUP_ID_HIGHLIGHT = 0,
128 BLOCK_GROUP_ID_WIREFRAME,
130 BLOCK_GROUP_ID_WIREFRAME1,
131 BLOCK_GROUP_ID_MAX = 10,
144 static Vector3 ConvertToRealPosition(uint16 x, uint16 y, uint16 z,
int nSide = -1);
145 static float ConvertToRealY(uint16 y);
150 static void GetBlockPosBySide(
int& x,
int& y,
int& z,
int nSide = 4);
154 static void ConvertToBlockIndex(
float x,
float y,
float z, uint16& idx_x, uint16& idx_y, uint16& idx_z);
158 static Vector3 GetBlockCenter(
float x,
float y,
float z);
162 static Vector3 GetNormalBySide(
int nSide);
165 static bool IsOppositeSide(
int nSide1,
int nSide2);
168 static bool IsCornerSide(
int nSide1,
int nSide2);
175 static void ConstrainPosOuter(
Vector3& vMovePos,
const Vector3& vMinPos,
const Vector3& vMaxPos,
float fBoarderDist);
177 static const Int16x3 NeighborOfsTable[27];
180 static const int32_t NeighborLightOrder[];
182 static const int32_t RBP_SixNeighbors[];
185 static int32 g_xzDirectionsConst[4][2];
3-dimensional vector with double precision.
Definition: ParaDVector3.h:17
Definition: BlockCommon.h:33
different physics engine has different winding order.
Definition: EventBinding.h:32
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
common static functions to block api, mostly standalone math API
Definition: BlockCommon.h:137
A linear, 32-bit/component floating point RGBA color.
Definition: ParaColor.h:12
Definition: BlockCommon.h:105
basic block world coordinate
Definition: BlockCoordinate.h:10