diff --git a/edition/voxel_tool.h b/edition/voxel_tool.h index 32a7f8f7..18b24d47 100644 --- a/edition/voxel_tool.h +++ b/edition/voxel_tool.h @@ -9,9 +9,7 @@ class VoxelBuffer; -using namespace zylann; - -namespace VoxelToolOps { +namespace zylann::voxel::ops { template struct SdfOperation16bit { Op op; @@ -74,12 +72,12 @@ struct TextureBlendSphereOp { const float distance_from_radius = radius - Math::sqrt(distance_squared); const float target_weight = tp.opacity * math::clamp(tp.sharpness * (distance_from_radius / radius), 0.f, 1.f); - voxel::blend_texture_packed_u16(tp.index, target_weight, indices, weights); + blend_texture_packed_u16(tp.index, target_weight, indices, weights); } } }; -}; // namespace VoxelToolOps +}; // namespace zylann::voxel::ops // TODO Need to review VoxelTool to account for transformed volumes @@ -223,7 +221,7 @@ protected: Mode _mode = MODE_ADD; // Used on smooth terrain - VoxelToolOps::TextureParams _texture_params; + zylann::voxel::ops::TextureParams _texture_params; }; VARIANT_ENUM_CAST(VoxelTool::Mode) diff --git a/edition/voxel_tool_buffer.cpp b/edition/voxel_tool_buffer.cpp index d3b61d94..c28a7eb6 100644 --- a/edition/voxel_tool_buffer.cpp +++ b/edition/voxel_tool_buffer.cpp @@ -3,6 +3,9 @@ #include "../util/profiling.h" #include "funcs.h" +using namespace zylann; +using namespace voxel; + VoxelToolBuffer::VoxelToolBuffer(Ref vb) { ERR_FAIL_COND(vb.is_null()); _buffer = vb; @@ -28,9 +31,9 @@ void VoxelToolBuffer::do_sphere(Vector3 center, float radius) { Vector3iUtil::create(Math::ceil(radius) * 2)); box.clip(Box3i(Vector3i(), _buffer->get_buffer().get_size())); - _buffer->get_buffer().write_box_2_template(box, + _buffer->get_buffer().write_box_2_template(box, VoxelBufferInternal::CHANNEL_INDICES, VoxelBufferInternal::CHANNEL_WEIGHTS, - VoxelToolOps::TextureBlendSphereOp(center, radius, _texture_params), Vector3i()); + ops::TextureBlendSphereOp(center, radius, _texture_params), Vector3i()); _post_edit(box); } diff --git a/edition/voxel_tool_lod_terrain.cpp b/edition/voxel_tool_lod_terrain.cpp index 36597db6..15202447 100644 --- a/edition/voxel_tool_lod_terrain.cpp +++ b/edition/voxel_tool_lod_terrain.cpp @@ -165,7 +165,7 @@ Ref VoxelToolLodTerrain::raycast( return res; } -namespace { +namespace zylann::voxel::ops { struct DoSphere { Vector3 center; @@ -174,11 +174,10 @@ struct DoSphere { VoxelDataGrid blocks; float sdf_scale; Box3i box; - VoxelToolOps::TextureParams texture_params; + TextureParams texture_params; void operator()() { VOXEL_PROFILE_SCOPE(); - using namespace VoxelToolOps; switch (mode) { case VoxelTool::MODE_ADD: { @@ -218,7 +217,7 @@ struct DoSphere { } }; -} // namespace +} //namespace zylann::voxel::ops void VoxelToolLodTerrain::do_sphere(Vector3 center, float radius) { VOXEL_PROFILE_SCOPE(); @@ -241,7 +240,7 @@ void VoxelToolLodTerrain::do_sphere(Vector3 center, float radius) { preload_box(*data, box, _terrain->get_generator().ptr()); } - DoSphere op; + ops::DoSphere op; op.box = box; op.center = center; op.mode = get_mode(); @@ -257,13 +256,15 @@ void VoxelToolLodTerrain::do_sphere(Vector3 center, float radius) { _post_edit(box); } -template class VoxelToolAsyncEdit : public zylann::IThreadedTask { +namespace zylann::voxel { + +template class VoxelToolAsyncEdit : public IThreadedTask { public: VoxelToolAsyncEdit(Op_T op, std::shared_ptr data) : _op(op), _data(data) { _tracker = gd_make_shared(1); } - void run(zylann::ThreadedTaskContext ctx) override { + void run(ThreadedTaskContext ctx) override { VOXEL_PROFILE_SCOPE(); CRASH_COND(_data == nullptr); VoxelDataLodMap::Lod &data_lod = _data->lods[0]; @@ -281,7 +282,7 @@ public: } void apply_result() override {} - std::shared_ptr get_tracker() { + std::shared_ptr get_tracker() { return _tracker; } @@ -289,9 +290,11 @@ private: Op_T _op; // We reference this just to keep map pointers alive std::shared_ptr _data; - std::shared_ptr _tracker; + std::shared_ptr _tracker; }; +} // namespace zylann::voxel + void VoxelToolLodTerrain::do_sphere_async(Vector3 center, float radius) { ERR_FAIL_COND(_terrain == nullptr); @@ -307,7 +310,7 @@ void VoxelToolLodTerrain::do_sphere_async(Vector3 center, float radius) { std::shared_ptr data = _terrain->get_storage(); ERR_FAIL_COND(data == nullptr); - DoSphere op; + ops::DoSphere op; op.box = box; op.center = center; op.mode = get_mode(); @@ -318,7 +321,7 @@ void VoxelToolLodTerrain::do_sphere_async(Vector3 center, float radius) { // TODO How do I use unique_ptr with Godot's memnew/memdelete instead? // (without having to mention it everywhere I pass this around) - VoxelToolAsyncEdit *task = memnew(VoxelToolAsyncEdit(op, data)); + VoxelToolAsyncEdit *task = memnew(VoxelToolAsyncEdit(op, data)); _terrain->push_async_edit(task, op.box, task->get_tracker()); } diff --git a/edition/voxel_tool_terrain.cpp b/edition/voxel_tool_terrain.cpp index 4e835628..53bb9a8b 100644 --- a/edition/voxel_tool_terrain.cpp +++ b/edition/voxel_tool_terrain.cpp @@ -6,6 +6,7 @@ #include "../util/voxel_raycast.h" using namespace zylann; +using namespace voxel; VoxelToolTerrain::VoxelToolTerrain() {} @@ -174,7 +175,7 @@ void VoxelToolTerrain::do_sphere(Vector3 center, float radius) { } _terrain->get_storage().write_box_2(box, VoxelBuffer::CHANNEL_INDICES, VoxelBuffer::CHANNEL_WEIGHTS, - VoxelToolOps::TextureBlendSphereOp{ center, radius, _texture_params }); + ops::TextureBlendSphereOp{ center, radius, _texture_params }); _post_edit(box); }