本文整理汇总了C++中Terrain::SetBlockLod方法的典型用法代码示例。如果您正苦于以下问题:C++ Terrain::SetBlockLod方法的具体用法?C++ Terrain::SetBlockLod怎么用?C++ Terrain::SetBlockLod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Terrain
的用法示例。
在下文中一共展示了Terrain::SetBlockLod方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CalcGeoMipmapLod
//.........这里部分代码省略.........
startBlockIdxX = blockCountX * 2;
startBlockIdxY = blockCountX * 2;
}
else if(dir == DIR_EAST)
{
startBlockIdxX = blockCountX * 2;
startBlockIdxY = blockCountX;
}
else if(dir == DIR_SOUTHEAST)
{
startBlockIdxX = blockCountX * 2;
startBlockIdxY = 0;
}
else if(dir == DIR_SOUTH)
{
startBlockIdxX = blockCountX;
startBlockIdxY = 0;
}
else if(dir == DIR_SOUTHWEST)
{
startBlockIdxX = 0;
startBlockIdxY = 0;
}
else if(dir == DIR_WEST)
{
startBlockIdxX = 0;
startBlockIdxY = blockCountX;
}
else if(dir == DIR_NORTHWEST)
{
startBlockIdxX = 0;
startBlockIdxY = blockCountX * 2;
}
for(int i=0;i<blockCountX;i++)
{
for(int j=0;j<blockCountX;j++)
{
int blockX = startBlockIdxX + j;
int blockY = startBlockIdxY + i;
int level = CalcBlockLod(lodBounds,blockX,blockY,3);
int blockType = 0;
int leftBlock = CalcBlockLod(lodBounds,blockX-1,blockY,3);
if(leftBlock > level)
blockType |= leftFlag;
int rightBlock = CalcBlockLod(lodBounds,blockX+1,blockY,3);
if(rightBlock > level)
blockType |= rightFlag;
int topBlock = CalcBlockLod(lodBounds,blockX,blockY-1,3);
if(topBlock > level)
blockType |= topFlag;
int bottomBlock = CalcBlockLod(lodBounds,blockX,blockY+1,3);
if(bottomBlock > level)
blockType |= bottomFlag;
GeoMipmapChunkType chunkType;
switch (blockType)
{
case leftFlag|rightFlag|topFlag|bottomFlag:
chunkType = gmc_surrounded;
break;
case topFlag | leftFlag:
chunkType = gmc_topLeft;
break;
case leftFlag:
chunkType = gmc_left;
break;
case bottomFlag | leftFlag:
chunkType = gmc_bottomLeft;
break;
case bottomFlag:
chunkType = gmc_bottom;
break;
case bottomFlag | rightFlag:
chunkType = gmc_bottomRight;
break;
case rightFlag:
chunkType = gmc_right;
break;
case topFlag | rightFlag:
chunkType = gmc_topRight;
break;
case topFlag:
chunkType = gmc_top;
break;
default:
chunkType = gmc_normal;
break;
}
pTerrain->SetBlockLod(i,j,level,chunkType);
}
}
}
}
}