本文整理汇总了C++中TileSet::NumTiles方法的典型用法代码示例。如果您正苦于以下问题:C++ TileSet::NumTiles方法的具体用法?C++ TileSet::NumTiles怎么用?C++ TileSet::NumTiles使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TileSet
的用法示例。
在下文中一共展示了TileSet::NumTiles方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SimpleCompaction
int WangTiles::SimpleCompaction(const TileSet & tileSet,
vector< vector<Tile> > & result)
{
const int numTiles = tileSet.NumTiles();
const int numHColors = tileSet.NumHColors();
const int numVColors = tileSet.NumVColors();
const int numTilesPerColor = tileSet.NumTilesPerColor();
// find the best aspect ratio
const int maxFactor = floor(sqrt(numTiles));
const int height = numVColors*numVColors;
const int width = numHColors*numHColors*numTilesPerColor;
{
result = vector< vector<Tile> > (height);
for(int i = 0; i < result.size(); i++)
{
result[i] = vector<Tile>(width);
}
}
{
int i = 0; int j = 0;
for(int e1 = 0; e1 < numVColors; e1++)
for(int e3 = 0; e3 < numVColors; e3++)
for(int e0 = 0; e0 < numHColors; e0++)
for(int e2 = 0; e2 < numHColors; e2++)
{
const vector<Tile> & tiles = tileSet.Tiles(e0, e1, e2, e3);
for(int k = 0; k < tiles.size(); k++)
{
result[i][j] = tiles[k];
j++;
if(j >= result[i].size())
{
i++; j = 0;
}
}
}
}
// done
return 1;
}