Brushes work now, curve editor

This commit is contained in:
2025-01-12 18:46:11 +03:00
parent 59a99ff706
commit 6617b66ff3
7 changed files with 1132 additions and 5 deletions

View File

@@ -446,7 +446,42 @@ float VoxelGeneratorImgMapper::get_height_full(const Vector3 &v)
void VoxelGeneratorImgMapper::draw_brush(const Vector3 &v, float r, float s, int id)
{
print_line("draw_brush " + (v.operator String()) + " " +
String::num(r) + " " + String::num(s) + " " + itos(id));
ERR_FAIL_COND(!_image_draw.is_valid());
if (!curve1.is_valid())
{
int i;
curve1.instance();
curve1->set_min_value(-100);
curve1->set_max_value(100);
Array curve_data;
std::vector<Variant> data = {
Vector2(0, 100), 0.0f, 0.0f, 0, 0,
Vector2(0.492823, 81.8182), -150.0, -150.0, 0, 0,
Vector2(1, 21.8182), -123.243, -123.243, 0, 0,
Vector2(1, 3.63635), 0.0, 0.0, 0, 0};
curve_data.resize(data.size());
for (i = 0; i < (int)data.size(); i++)
curve_data[i] = data[i];
curve1->set_data(curve_data);
}
if (!curve2.is_valid())
{
int i;
curve2.instance();
curve2->set_min_value(-100);
curve2->set_max_value(100);
Array curve_data;
std::vector<Variant> data = {
Vector2(0, -100), 0.0, 0.0, 0, 0,
Vector2(0.813397, -30.9091), 86.8571, 86.8571, 0, 0,
Vector2(1, -14.5455), 57.0, 0.0, 0, 0};
curve_data.resize(data.size());
for (i = 0; i < (int)data.size(); i++)
curve_data[i] = data[i];
curve2->set_data(curve_data);
}
ERR_FAIL_COND(!curve1.is_valid());
ERR_FAIL_COND(!curve2.is_valid());
int i, j;
@@ -641,6 +676,7 @@ void VoxelGeneratorImgMapper::draw_brush(const Vector3 &v, float r, float s, int
void VoxelGeneratorImgMapper::compose()
{
Ref<Image> copy;
print_line("compose");
ERR_FAIL_COND(!_image_bg.is_valid());
ERR_FAIL_COND(!_image_overlay.is_valid());
ERR_FAIL_COND(!_image_draw.is_valid());
@@ -680,11 +716,11 @@ void VoxelGeneratorImgMapper::compose()
void VoxelGeneratorImgMapper::save_png()
{
if (_image_bg.is_valid())
_image_bg->save_png("res://textures/terrain.png");
_image_bg->save_png("res://terrain/terrain.png");
if (_image_draw.is_valid())
_image_draw->save_png("res://textures/terrain_draw.png");
_image_draw->save_png("res://terrain/terrain_draw.png");
if (_image_overlay.is_valid())
_image_overlay->save_png("res://textures/terrain_edit.png");
_image_overlay->save_png("res://terrain/terrain_edit.png");
}
void VoxelGeneratorImgMapper::set_curve1(const Ref<Curve> &curve)