Exemple #1
0
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;
        }
    }
}
Exemple #2
0
//#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;
            }
        }
    }
Exemple #3
0
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;
  }
}
Exemple #4
0
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;
   }
}
Exemple #6
0
	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;
		}
	}