本文整理汇总了C++中MatrixArea类的典型用法代码示例。如果您正苦于以下问题:C++ MatrixArea类的具体用法?C++ MatrixArea怎么用?C++ MatrixArea使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MatrixArea类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createArea
void AreaCombat::setupExtArea(const std::list<uint32_t>& list, uint32_t rows)
{
if (list.empty()) {
return;
}
hasExtArea = true;
MatrixArea* area = createArea(list, rows);
//NORTH-WEST
areas[NORTHWEST] = area;
uint32_t maxOutput = std::max<uint32_t>(area->getCols(), area->getRows()) * 2;
//NORTH-EAST
MatrixArea* neArea = new MatrixArea(maxOutput, maxOutput);
copyArea(area, neArea, MATRIXOPERATION_MIRROR);
areas[NORTHEAST] = neArea;
//SOUTH-WEST
MatrixArea* swArea = new MatrixArea(maxOutput, maxOutput);
copyArea(area, swArea, MATRIXOPERATION_FLIP);
areas[SOUTHWEST] = swArea;
//SOUTH-EAST
MatrixArea* seArea = new MatrixArea(maxOutput, maxOutput);
copyArea(swArea, seArea, MATRIXOPERATION_MIRROR);
areas[SOUTHEAST] = seArea;
}
示例2: MatrixArea
MatrixArea* AreaCombat::createArea(const std::list<uint32_t>& list, uint32_t rows)
{
uint32_t cols;
if (rows == 0) {
cols = 0;
} else {
cols = list.size() / rows;
}
MatrixArea* area = new MatrixArea(rows, cols);
uint32_t x = 0;
uint32_t y = 0;
for (uint32_t value : list) {
if (value == 1 || value == 3) {
area->setValue(y, x, true);
}
if (value == 2 || value == 3) {
area->setCenter(y, x);
}
++x;
if (cols == x) {
x = 0;
++y;
}
}
return area;
}
示例3: createArea
void CombatArea::setupExtArea(const std::list<uint32_t>& list, uint32_t rows)
{
if(list.empty())
return;
//NORTH-WEST
MatrixArea* area = createArea(list, rows);
areas[Direction::NORTH_WEST] = area;
uint32_t maxOutput = std::max(area->getCols(), area->getRows()) * 2;
//NORTH-EAST
MatrixArea* neArea = new MatrixArea(maxOutput, maxOutput);
copyArea(area, neArea, MATRIXOPERATION_MIRROR);
areas[Direction::NORTH_EAST] = neArea;
//SOUTH-WEST
MatrixArea* swArea = new MatrixArea(maxOutput, maxOutput);
copyArea(area, swArea, MATRIXOPERATION_FLIP);
areas[Direction::SOUTH_WEST] = swArea;
//SOUTH-EAST
MatrixArea* seArea = new MatrixArea(maxOutput, maxOutput);
copyArea(swArea, seArea, MATRIXOPERATION_MIRROR);
areas[Direction::SOUTH_EAST] = seArea;
hasExtArea = true;
}
示例4: MatrixArea
MatrixArea* AreaCombat::createArea(const std::list<uint32_t>& list, uint32_t rows)
{
uint32_t cols = list.size() / rows;
MatrixArea* area = new MatrixArea(rows, cols);
uint32_t x = 0;
uint32_t y = 0;
for(std::list<uint32_t>::const_iterator it = list.begin(); it != list.end(); ++it)
{
if(*it == 1 || *it == 3)
area->setValue(y, x, true);
if(*it == 2 || *it == 3)
area->setCenter(y, x);
++x;
if(cols == x)
{
x = 0;
++y;
}
}
return area;
}
示例5: createArea
void AreaCombat::setupArea(const std::list<uint32_t>& list, const uint32_t& rows)
{
MatrixArea* area = createArea(list, rows);
//NORTH
areas[NORTH] = area;
uint32_t maxOutput = std::max(area->getCols(), area->getRows()) * 2;
//SOUTH
MatrixArea* southArea = new MatrixArea(maxOutput, maxOutput);
copyArea(area, southArea, MATRIXOPERATION_ROTATE180);
areas[SOUTH] = southArea;
//EAST
MatrixArea* eastArea = new MatrixArea(maxOutput, maxOutput);
copyArea(area, eastArea, MATRIXOPERATION_ROTATE90);
areas[EAST] = eastArea;
//WEST
MatrixArea* westArea = new MatrixArea(maxOutput, maxOutput);
copyArea(area, westArea, MATRIXOPERATION_ROTATE270);
areas[WEST] = westArea;
}