void OgreWidget::defineTerrain(long x, long y, bool flat) { // First, we ask our TerrainGroup what file name it would use to generate the terrain. Then we check if // there is a file by that name in our resource group. If there is, it means that we generated a binary // terrain data file already, and thus there is no need to import it from an image. If there isn't a data // file present, it means we have to generate our terrain, and we load the image and uses that to define it. if(flat) { qDebug() << "OgreWidget::defineTerrain(): flat"; mTerrainGroup->defineTerrain(x, y, 0.0f); } else { Ogre::String filename = mTerrainGroup->generateFilename(x, y); qDebug() << "OgreWidget::defineTerrain(): filename" << QString::fromStdString((std::string)filename) << "resourceGroup" << QString::fromStdString((std::string)mTerrainGroup->getResourceGroup()); if(Ogre::ResourceGroupManager::getSingleton().resourceExists(mTerrainGroup->getResourceGroup(), filename)) { qDebug() << "OgreWidget::defineTerrain(): resource exists, calling TerrainGroup::defineTerrain with x y" << x << y; mTerrainGroup->defineTerrain(x, y); } else { qDebug() << "OgreWidget::defineTerrain(): resource absent, calling TerrainGroup::defineTerrain with image for x y" << x << y; Ogre::Image img; getTerrainImage(x % 2 != 0, y % 2 != 0, img); img.save("test2.png"); mTerrainGroup->defineTerrain(x, y, &img); mTerrainGroup->getTerrainDefinition(x, y)->importData->inputImage->save("test3.png"); mTerrainsImported = true; } } }
//#ifdef USE_SAMPLE_TERRAIN void defineTerrain(long x, long y, bool flat ) { // if a file is available, use it // if not, generate file from import // Usually in a real project you'll know whether the compact terrain data is // available or not; I'm doing it this way to save distribution size if (flat) { terrain_group->defineTerrain(x, y, 0.0f); } else { String filename = terrain_group->generateFilename(x, y); if (ResourceGroupManager::getSingleton().resourceExists(terrain_group->getResourceGroup(), filename)) { terrain_group->defineTerrain(x, y); } else { Image img; getTerrainImage(x % 2 != 0, y % 2 != 0, img); terrain_group->defineTerrain(x, y, &img); terrains_imported = true; } } }
void TerrainGenerator::defineTerrain(long x, long y) { Ogre::String filename = terrain_group_->generateFilename(x, y); if (Ogre::ResourceGroupManager::getSingleton().resourceExists(terrain_group_->getResourceGroup(), filename)) terrain_group_->defineTerrain(x, y); else { Ogre::Image img; getTerrainImage(x % 2 != 0, y % 2 != 0, img); terrain_group_->defineTerrain(x, y, &img); terrains_imported_ = true; } }
void Game::defineTerrain(long x, long y) { Ogre::String filename = mTerrainGroup->generateFilename(x, y); if(Ogre::ResourceGroupManager::getSingleton().resourceExists(mTerrainGroup->getResourceGroup(), filename)) { mTerrainGroup->defineTerrain(x, y); } else { Ogre::Image img; getTerrainImage(x % 2 != 0, y % 2 != 0, img); mTerrainGroup->defineTerrain(x, y, &img); mTerrainsImported = true; } }
void TutorialApplication::defineTerrain(long x, long y) { Ogre::String filename = mTerrainGroup->generateFilename(x, y); bool exists = Ogre::ResourceGroupManager::getSingleton().resourceExists(mTerrainGroup->getResourceGroup(),filename); if (exists) mTerrainGroup->defineTerrain(x, y); else { Ogre::Image img; getTerrainImage(x % 2 != 0,y %2 != 0, img); mTerrainGroup->defineTerrain(x, y, &img); mTerrainsImported = true; } }
void CTerrain::defineTerrain(long x, long y) { Ogre::String filename = _terrainGroup->generateFilename(x, y); if (Ogre::ResourceGroupManager::getSingleton().resourceExists(_terrainGroup->getResourceGroup(), filename)) { printf("Terrain: coordinate data loaded from file.\n"); _terrainGroup->defineTerrain(x, y); } else { //@TODO: Cuando esté en release mostrar un error en vez de generar el terreno. printf("Terrain: Generating a new terrain in that coord.\n"); Ogre::Image img; getTerrainImage(x % 2 != 0, y % 2 != 0, img); _terrainGroup->defineTerrain(x, y, &img); _terrainsImported = true; } }