[Bf-blender-cvs] [0be1f274bb5] cycles_procedural_api: use getters and setters for Volume

Kévin Dietrich noreply at git.blender.org
Tue Sep 22 14:14:45 CEST 2020


Commit: 0be1f274bb5d26ade467ca088f3183369333d8d4
Author: Kévin Dietrich
Date:   Thu Sep 10 16:56:30 2020 +0200
Branches: cycles_procedural_api
https://developer.blender.org/rB0be1f274bb5d26ade467ca088f3183369333d8d4

use getters and setters for Volume

===================================================================

M	intern/cycles/blender/blender_volume.cpp
M	intern/cycles/render/object.cpp
M	intern/cycles/render/volume.cpp
M	intern/cycles/render/volume.h

===================================================================

diff --git a/intern/cycles/blender/blender_volume.cpp b/intern/cycles/blender/blender_volume.cpp
index ecd28930172..4caecbecf75 100644
--- a/intern/cycles/blender/blender_volume.cpp
+++ b/intern/cycles/blender/blender_volume.cpp
@@ -202,7 +202,7 @@ static void sync_smoke_volume(Scene *scene, BL::Object &b_ob, Volume *volume, fl
       continue;
     }
 
-    volume->clipping = b_domain.clipping();
+    volume->set_clipping(b_domain.clipping());
 
     Attribute *attr = volume->attributes.add(std);
 
@@ -262,9 +262,9 @@ static void sync_volume_object(BL::BlendData &b_data,
 
   BL::VolumeRender b_render(b_volume.render());
 
-  volume->clipping = b_render.clipping();
-  volume->step_size = b_render.step_size();
-  volume->object_space = (b_render.space() == BL::VolumeRender::space_OBJECT);
+  volume->set_clipping(b_render.clipping());
+  volume->set_step_size(b_render.step_size());
+  volume->set_object_space((b_render.space() == BL::VolumeRender::space_OBJECT));
 
   /* Find grid with matching name. */
   BL::Volume::grids_iterator b_grid_iter;
diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp
index 80e15eebb5b..31f747571d3 100644
--- a/intern/cycles/render/object.cpp
+++ b/intern/cycles/render/object.cpp
@@ -316,7 +316,7 @@ float Object::compute_volume_step_size() const
         }
 
         /* User specified step size. */
-        float voxel_step_size = volume->step_size;
+        float voxel_step_size = volume->get_step_size();
 
         if (voxel_step_size == 0.0f) {
           /* Auto detect step size. */
@@ -330,7 +330,7 @@ float Object::compute_volume_step_size() const
           }
           voxel_step_size = min3(fabs(transform_direction(&voxel_tfm, size)));
         }
-        else if (volume->object_space) {
+        else if (volume->get_object_space()) {
           /* User specified step size in object space. */
           float3 size = make_float3(voxel_step_size, voxel_step_size, voxel_step_size);
           voxel_step_size = min3(fabs(transform_direction(&tfm, size)));
@@ -381,7 +381,7 @@ float ObjectManager::object_surface_area(UpdateObjectTransformState *state,
   Mesh *mesh = static_cast<Mesh *>(geom);
   if (mesh->has_volume || geom->geometry_type == Geometry::VOLUME) {
     /* Volume density automatically adjust to object scale. */
-    if (geom->geometry_type == Geometry::VOLUME && static_cast<Volume *>(geom)->object_space) {
+    if (geom->geometry_type == Geometry::VOLUME && static_cast<Volume *>(geom)->get_object_space()) {
       const float3 unit = normalize(make_float3(1.0f, 1.0f, 1.0f));
       return 1.0f / len(transform_direction(&tfm, unit));
     }
diff --git a/intern/cycles/render/volume.cpp b/intern/cycles/render/volume.cpp
index 6ab91b70ad6..19c826186b5 100644
--- a/intern/cycles/render/volume.cpp
+++ b/intern/cycles/render/volume.cpp
@@ -518,20 +518,20 @@ void GeometryManager::create_volume_mesh(Volume *volume, Progress &progress)
 
       if (image_memory->data_elements == 1) {
         grid = openvdb_grid_from_device_texture<openvdb::FloatGrid>(
-            image_memory, volume->clipping, handle.metadata().transform_3d);
+            image_memory, volume->get_clipping(), handle.metadata().transform_3d);
       }
       else if (image_memory->data_elements == 3) {
         grid = openvdb_grid_from_device_texture<openvdb::Vec3fGrid>(
-            image_memory, volume->clipping, handle.metadata().transform_3d);
+            image_memory, volume->get_clipping(), handle.metadata().transform_3d);
       }
       else if (image_memory->data_elements == 4) {
         grid = openvdb_grid_from_device_texture<openvdb::Vec4fGrid>(
-            image_memory, volume->clipping, handle.metadata().transform_3d);
+            image_memory, volume->get_clipping(), handle.metadata().transform_3d);
       }
     }
 
     if (grid) {
-      builder.add_grid(grid, do_clipping, volume->clipping);
+      builder.add_grid(grid, do_clipping, volume->get_clipping());
     }
   }
 #endif
diff --git a/intern/cycles/render/volume.h b/intern/cycles/render/volume.h
index 05157eb948f..ce8bf9eebdd 100644
--- a/intern/cycles/render/volume.h
+++ b/intern/cycles/render/volume.h
@@ -28,9 +28,9 @@ class Volume : public Mesh {
 
   Volume();
 
-  float clipping;
-  float step_size;
-  bool object_space;
+  NODE_PUBLIC_API(float, clipping)
+  NODE_PUBLIC_API(float, step_size)
+  NODE_PUBLIC_API(bool, object_space)
 
   virtual void clear() override;
 };



More information about the Bf-blender-cvs mailing list