bool DataRequestImp::validate(const RasterDataDescriptor *pDescriptor) const { if (pDescriptor == NULL) { return false; } unsigned int numRows = pDescriptor->getRowCount(); unsigned int numColumns = pDescriptor->getColumnCount(); unsigned int numBands = pDescriptor->getBandCount(); unsigned int bytesPerElement = pDescriptor->getBytesPerElement(); unsigned int postLineBytes = 0; DimensionDescriptor startRow = getStartRow(); DimensionDescriptor stopRow = getStopRow(); unsigned int concurrentRows = getConcurrentRows(); DimensionDescriptor startColumn = getStartColumn(); DimensionDescriptor stopColumn = getStopColumn(); unsigned int concurrentColumns = getConcurrentColumns(); DimensionDescriptor startBand = getStartBand(); DimensionDescriptor stopBand = getStopBand(); unsigned int concurrentBands = getConcurrentBands(); if (!startRow.isActiveNumberValid() || !stopRow.isActiveNumberValid() || !startColumn.isActiveNumberValid() || !stopColumn.isActiveNumberValid() || !startBand.isActiveNumberValid() || !stopBand.isActiveNumberValid()) { return false; } //validate all the parameters before continuing if (startRow.getActiveNumber() >= numRows || startRow.getActiveNumber() > stopRow.getActiveNumber() || stopRow.getActiveNumber() >= numRows || startColumn.getActiveNumber() >= numColumns || startColumn.getActiveNumber() > stopColumn.getActiveNumber() || stopColumn.getActiveNumber() >= numColumns || startBand.getActiveNumber() >= numBands || startBand.getActiveNumber() > stopBand.getActiveNumber() || stopBand.getActiveNumber() >= numBands || concurrentRows > stopRow.getActiveNumber()-startRow.getActiveNumber()+1 || concurrentColumns > stopColumn.getActiveNumber()-startColumn.getActiveNumber()+1 || concurrentBands > stopBand.getActiveNumber()-startBand.getActiveNumber()+1) { return false; } if (getInterleaveFormat() == BSQ) { // Can only get single-band BSQ accessors if (startBand != stopBand || concurrentBands != 1) { return false; } } return true; }
void ComplexTetris::newPiece(){ game->setCurrentPiece(game->getNextPiece()); game->setNextPiece(Tetronimo::getRandomPiece()); curX = getStartColumn(); curY = game->getHeight() - 1 + curPiece().minY(); if (!tryMove(curPiece(), curX, curY)) { //game over gameOver = true; } }