paysages3d/src/definition/VegetationDefinition.cpp

38 lines
1.1 KiB
C++
Raw Permalink Normal View History

2015-10-18 15:26:19 +00:00
#include "VegetationDefinition.h"
#include "VegetationLayerDefinition.h"
#include "VegetationModelDefinition.h"
static DefinitionNode *_layer_constructor(Layers *parent, const string &name) {
return new VegetationLayerDefinition(parent, name);
2015-10-18 15:26:19 +00:00
}
VegetationDefinition::VegetationDefinition(DefinitionNode *parent) : Layers(parent, "vegetation", _layer_constructor) {
2015-10-18 15:26:19 +00:00
}
double VegetationDefinition::getMaxHeight() const {
2015-11-02 22:00:02 +00:00
double max_height = 0.0;
int n = getLayerCount();
2015-11-02 22:00:02 +00:00
for (int i = 0; i < n; i++) {
2015-11-02 22:00:02 +00:00
double layer_height = getVegetationLayer(i)->getMaxHeight();
if (layer_height > max_height) {
2015-11-02 22:00:02 +00:00
max_height = layer_height;
}
}
return max_height;
}
void VegetationDefinition::applyPreset(VegetationPreset preset, RandomGenerator &random) {
VegetationLayerDefinition layer(this, "temp");
2015-10-18 15:26:19 +00:00
clear();
2016-01-18 22:06:50 +00:00
if (preset == VEGETATION_PRESET_TEMPERATE) {
layer.applyPreset(VegetationLayerDefinition::VEGETATION_BASIC_TREES, random);
layer.setName("Basic tree");
// addLayer(layer);
2016-01-18 22:06:50 +00:00
}
2015-10-18 15:26:19 +00:00
}