bool LandscapesController::ShowEditorLandscape(EditorLandscape *displayingLandscape) { Landscape *landscape = EditorScene::GetLandscape(scene); if (!landscape) { Logger::Error("[LandscapesController::ShowEditorLandscape] Can be only one landscape"); return false; } displayingLandscape->SetNestedLandscape(landscape); if(!landscapeRenderer) { renderedHeightmap = new EditorHeightmap(landscape->GetHeightmap()); landscapeRenderer = new LandscapeRenderer(renderedHeightmap, landscape->GetBoundingBox()); displayingLandscape->SetHeightmap(renderedHeightmap); } displayingLandscape->SetRenderer(landscapeRenderer); //TODO: remove SetWorldTransformPtr displayingLandscape->SetWorldTransformPtr(landscape->GetWorldTransformPtr()); Entity* lanscapeNode = EditorScene::GetLandscapeNode(scene); lanscapeNode->RemoveComponent(Component::RENDER_COMPONENT); RenderComponent* component = new RenderComponent(displayingLandscape); lanscapeNode->AddComponent(component); currentLandscape = displayingLandscape; return true; }
void FoliageSystem::SyncFoliageWithLandscape() { if(landscapeEntity && foliageEntity) { Landscape* landscapeRO = GetLandscape(landscapeEntity); VegetationRenderObject* vegetationRO = GetVegetation(foliageEntity); vegetationRO->SetHeightmap(landscapeRO->GetHeightmap()); vegetationRO->SetHeightmapPath(landscapeRO->GetHeightmapPathname()); vegetationRO->SetWorldSize(Vector3(landscapeRO->GetLandscapeSize(), landscapeRO->GetLandscapeSize(), landscapeRO->GetLandscapeHeight())); } }