paysages3d/src/definition/VegetationDefinition.cpp
Michaël Lemaire 9a096ec329 Merge branch 'master' into vegetation
Conflicts:
	src/basics/Disk.cpp
	src/basics/Disk.h
	src/basics/SpaceSegment.cpp
	src/definition/DefinitionNode.cpp
	src/definition/DefinitionNode.h
	src/definition/Scenery.cpp
	src/definition/Scenery.h
	src/definition/SurfaceMaterial.cpp
	src/definition/SurfaceMaterial.h
	src/definition/TextureLayerDefinition.cpp
	src/definition/definition_global.h
	src/interface/commandline/tests.cpp
	src/render/opengl/OpenGLRenderer.cpp
	src/render/software/SoftwareCanvasRenderer.cpp
	src/render/software/SoftwareCanvasRenderer.h
	src/render/software/SoftwareRenderer.h
	src/render/software/TerrainRasterizer.cpp
	src/render/software/TerrainRasterizer.h
	src/render/software/TerrainRenderer.h
	src/render/software/software_global.h
2015-11-09 22:38:00 +01:00

37 lines
1,020 B
C++

#include "VegetationDefinition.h"
#include "VegetationLayerDefinition.h"
#include "VegetationModelDefinition.h"
static DefinitionNode *_layer_constructor(Layers *parent) {
return new VegetationLayerDefinition(parent);
}
VegetationDefinition::VegetationDefinition(DefinitionNode *parent) : Layers(parent, "vegetation", _layer_constructor) {
}
double VegetationDefinition::getMaxHeight() const {
double max_height = 0.0;
int n = count();
for (int i = 0; i < n; i++) {
double layer_height = getVegetationLayer(i)->getMaxHeight();
if (layer_height > max_height) {
max_height = layer_height;
}
}
return max_height;
}
void VegetationDefinition::applyPreset(VegetationPreset preset) {
VegetationLayerDefinition *layer;
clear();
if (preset == VEGETATION_PRESET_TEMPERATE) {
layer = getVegetationLayer(addLayer());
layer->applyPreset(VegetationLayerDefinition::VEGETATION_BASIC_TREES);
layer->setName("Basic tree");
}
}