2013-11-16 18:12:42 +00:00
|
|
|
#ifndef TEXTURELAYERDEFINITION_H
|
|
|
|
#define TEXTURELAYERDEFINITION_H
|
|
|
|
|
|
|
|
#include "definition_global.h"
|
|
|
|
|
2015-08-12 20:21:10 +00:00
|
|
|
#include "DefinitionNode.h"
|
2013-11-16 18:12:42 +00:00
|
|
|
|
|
|
|
namespace paysages {
|
|
|
|
namespace definition {
|
|
|
|
|
2015-08-12 20:21:10 +00:00
|
|
|
class DEFINITIONSHARED_EXPORT TextureLayerDefinition : public DefinitionNode
|
2013-11-16 18:12:42 +00:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
TEXTURES_MERGE_FADE,
|
|
|
|
TEXTURES_MERGE_DISSOLVE,
|
|
|
|
TEXTURES_MERGE_DISPLACEMENT_VALUE
|
|
|
|
} TextureMergeMode;
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
TEXTURES_LAYER_PRESET_MUD,
|
|
|
|
TEXTURES_LAYER_PRESET_ROCK,
|
|
|
|
TEXTURES_LAYER_PRESET_GRASS,
|
|
|
|
TEXTURES_LAYER_PRESET_SAND,
|
|
|
|
TEXTURES_LAYER_PRESET_SNOW
|
|
|
|
} TextureLayerPreset;
|
|
|
|
|
|
|
|
public:
|
2015-08-12 20:21:10 +00:00
|
|
|
TextureLayerDefinition(DefinitionNode* parent);
|
2013-11-16 18:12:42 +00:00
|
|
|
virtual ~TextureLayerDefinition();
|
|
|
|
|
|
|
|
virtual void save(PackStream* stream) const override;
|
|
|
|
virtual void load(PackStream* stream) override;
|
|
|
|
|
2015-08-12 20:21:10 +00:00
|
|
|
virtual void copy(DefinitionNode* destination) const override;
|
2013-11-16 18:12:42 +00:00
|
|
|
virtual void validate() override;
|
|
|
|
|
|
|
|
void applyPreset(TextureLayerPreset preset);
|
|
|
|
|
|
|
|
public:
|
|
|
|
Zone* terrain_zone;
|
|
|
|
double displacement_scaling;
|
|
|
|
double displacement_height;
|
|
|
|
double displacement_offset;
|
|
|
|
/*double detail_scaling;
|
|
|
|
double detail_height;*/
|
|
|
|
SurfaceMaterial* material;
|
|
|
|
/*double cancel_displacement_factor;
|
|
|
|
TexturesMergeMode merge_mode;*/
|
|
|
|
|
|
|
|
NoiseGenerator* _displacement_noise;
|
|
|
|
NoiseGenerator* _detail_noise;
|
|
|
|
/*Curve* _local_slope_condition;*/
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // TEXTURELAYERDEFINITION_H
|