[Bf-blender-cvs] [f750a48] openvdb: Cleanup: de-duplicate drawing code.

Kévin Dietrich noreply at git.blender.org
Thu Jun 18 07:01:10 CEST 2015


Commit: f750a48cdad751a5c08047330b98bac5bbc5bec8
Author: Kévin Dietrich
Date:   Wed Jun 17 18:12:25 2015 +0200
Branches: openvdb
https://developer.blender.org/rBf750a48cdad751a5c08047330b98bac5bbc5bec8

Cleanup: de-duplicate drawing code.

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

M	source/blender/editors/space_view3d/drawobject.c

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

diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 3dc36d0..aca45f0 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -8057,6 +8057,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
 #ifdef WITH_OPENVDB
 				{
 					OpenVDBDrawData *draw_data = sds->vdb_draw_data;
+					struct OpenVDBPrimitive *prim = NULL;
 					bool draw_root, draw_level_1, draw_level_2;
 					bool draw_leaves, draw_voxels;
 
@@ -8070,22 +8071,21 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
 					draw_leaves  = (draw_data->flags & DRAW_LEAVES);
 					draw_voxels  = (draw_data->flags & DRAW_VOXELS);
 
+					if (sds->density)
+						prim = sds->density;
+					else if (sds->density_high)
+						prim = sds->density_high;
+
 					glLoadMatrixf(rv3d->viewmat);
-					if (sds->density) {
-						OpenVDB_draw_primitive(sds->density, draw_root, draw_level_1, draw_level_2, draw_leaves);
-						if (draw_voxels && draw_data->voxel_drawing == DRAW_VOXELS_POINT)
-							OpenVDB_draw_primitive_values(sds->density, draw_data->tolerance, draw_data->point_size, false, draw_data->lod);
-						if (draw_voxels && draw_data->voxel_drawing == DRAW_VOXELS_BOX)
-							OpenVDB_draw_primitive_values(sds->density, draw_data->tolerance, draw_data->point_size, true, draw_data->lod);
-						if (draw_voxels && draw_data->voxel_drawing == DRAW_VOXELS_VOLUME)
-							render_volume = true;
-					}
-					if (sds->density_high) {
-						OpenVDB_draw_primitive(sds->density_high, draw_root, draw_level_1, draw_level_2, draw_leaves);
+					if (prim) {
+						OpenVDB_draw_primitive(prim, draw_root, draw_level_1, draw_level_2, draw_leaves);
+
 						if (draw_voxels && draw_data->voxel_drawing == DRAW_VOXELS_POINT)
-							OpenVDB_draw_primitive_values(sds->density_high, draw_data->tolerance, draw_data->point_size, false, draw_data->lod);
+							OpenVDB_draw_primitive_values(prim, draw_data->tolerance, draw_data->point_size, false, draw_data->lod);
+
 						if (draw_voxels && draw_data->voxel_drawing == DRAW_VOXELS_BOX)
-							OpenVDB_draw_primitive_values(sds->density_high, draw_data->tolerance, draw_data->point_size, true, draw_data->lod);
+							OpenVDB_draw_primitive_values(prim, draw_data->tolerance, draw_data->point_size, true, draw_data->lod);
+
 						if (draw_voxels && draw_data->voxel_drawing == DRAW_VOXELS_VOLUME)
 							render_volume = true;
 					}




More information about the Bf-blender-cvs mailing list