[Bf-blender-cvs] [407c9fc] openvdb: Various cleanups.

Kévin Dietrich noreply at git.blender.org
Wed Dec 30 18:40:54 CET 2015


Commit: 407c9fc9d6701908a0f42390153cb86d83f46873
Author: Kévin Dietrich
Date:   Tue Dec 29 00:53:32 2015 +0100
Branches: openvdb
https://developer.blender.org/rB407c9fc9d6701908a0f42390153cb86d83f46873

Various cleanups.

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

M	intern/openvdb/openvdb_capi.cc
M	intern/openvdb/openvdb_util.cc
M	source/blender/blenkernel/intern/smoke.c
M	source/blender/editors/object/object_modifier.c

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

diff --git a/intern/openvdb/openvdb_capi.cc b/intern/openvdb/openvdb_capi.cc
index 2b6850a..b0873e8 100644
--- a/intern/openvdb/openvdb_capi.cc
+++ b/intern/openvdb/openvdb_capi.cc
@@ -70,11 +70,17 @@ OpenVDBFloatGrid *OpenVDB_export_grid_fl(OpenVDBWriter *writer,
 {
 	Timer(__func__);
 
-	using namespace openvdb;
+	using openvdb::FloatGrid;
+
+	FloatGrid *mask_grid = reinterpret_cast<FloatGrid *>(mask);
+	FloatGrid *grid = internal::OpenVDB_export_grid<FloatGrid>(writer,
+	                                                           name,
+	                                                           data,
+	                                                           res,
+	                                                           matrix,
+	                                                           mask_grid);
 
-	OpenVDBFloatGrid *grid =
-	        (OpenVDBFloatGrid *)internal::OpenVDB_export_grid<FloatGrid>(writer, name, data, res, matrix, (FloatGrid *)mask);
-	return grid;
+	return reinterpret_cast<OpenVDBFloatGrid *>(grid);
 }
 
 OpenVDBIntGrid *OpenVDB_export_grid_ch(OpenVDBWriter *writer,
@@ -84,11 +90,18 @@ OpenVDBIntGrid *OpenVDB_export_grid_ch(OpenVDBWriter *writer,
 {
 	Timer(__func__);
 
-	using namespace openvdb;
+	using openvdb::FloatGrid;
+	using openvdb::Int32Grid;
+
+	FloatGrid *mask_grid = reinterpret_cast<FloatGrid *>(mask);
+	Int32Grid *grid = internal::OpenVDB_export_grid<Int32Grid>(writer,
+	                                                           name,
+	                                                           data,
+	                                                           res,
+	                                                           matrix,
+	                                                           mask_grid);
 
-	OpenVDBIntGrid *grid =
-	        (OpenVDBIntGrid *)internal::OpenVDB_export_grid<Int32Grid>(writer, name, data, res, matrix, (FloatGrid *)mask);
-	return grid;
+	return reinterpret_cast<OpenVDBIntGrid *>(grid);
 }
 
 OpenVDBVectorGrid *OpenVDB_export_grid_vec(struct OpenVDBWriter *writer,
@@ -99,14 +112,23 @@ OpenVDBVectorGrid *OpenVDB_export_grid_vec(struct OpenVDBWriter *writer,
 {
 	Timer(__func__);
 
-	using namespace openvdb;
-
-	OpenVDBVectorGrid *grid =
-	(OpenVDBVectorGrid *)internal::OpenVDB_export_vector_grid(writer, name,
-	                                     data_x, data_y, data_z, res, matrix,
-	                                     static_cast<VecType>(vec_type),
-	                                     is_color, (FloatGrid *)mask);
-	return grid;
+	using openvdb::GridBase;
+	using openvdb::FloatGrid;
+	using openvdb::VecType;
+
+	FloatGrid *mask_grid = reinterpret_cast<FloatGrid *>(mask);
+	GridBase *grid = internal::OpenVDB_export_vector_grid(writer,
+	                                                      name,
+	                                                      data_x,
+	                                                      data_y,
+	                                                      data_z,
+	                                                      res,
+	                                                      matrix,
+	                                                      static_cast<VecType>(vec_type),
+	                                                      is_color,
+	                                                      mask_grid);
+
+	return reinterpret_cast<OpenVDBVectorGrid *>(grid);
 }
 
 void OpenVDB_import_grid_fl(OpenVDBReader *reader,
@@ -148,18 +170,16 @@ void OpenVDBWriter_free(OpenVDBWriter *writer)
 
 void OpenVDBWriter_set_flags(OpenVDBWriter *writer, const int flag, const bool half)
 {
-	using namespace openvdb;
-
-	int compression_flags = io::COMPRESS_ACTIVE_MASK;
+	int compression_flags = openvdb::io::COMPRESS_ACTIVE_MASK;
 
 	if (flag == 0) {
-		compression_flags |= io::COMPRESS_ZIP;
+		compression_flags |= openvdb::io::COMPRESS_ZIP;
 	}
 	else if (flag == 1) {
-		compression_flags |= io::COMPRESS_BLOSC;
+		compression_flags |= openvdb::io::COMPRESS_BLOSC;
 	}
 	else {
-		compression_flags = io::COMPRESS_NONE;
+		compression_flags = openvdb::io::COMPRESS_NONE;
 	}
 
 	writer->setFlags(compression_flags, half);
diff --git a/intern/openvdb/openvdb_util.cc b/intern/openvdb/openvdb_util.cc
index d157796..ddd3ccf 100644
--- a/intern/openvdb/openvdb_util.cc
+++ b/intern/openvdb/openvdb_util.cc
@@ -63,5 +63,5 @@ ScopeTimer::ScopeTimer(const std::string &message)
 
 ScopeTimer::~ScopeTimer()
 {
-	printf("%s: %fs\n", m_message.c_str(), time_dt() - m_start);
+	std::printf("%s: %fs\n", m_message.c_str(), time_dt() - m_start);
 }
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 76f5a01..2673444 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -3414,31 +3414,29 @@ void smokeModifier_OpenVDB_export(SmokeModifierData *smd, Scene *scene, Object *
                                   update_cb update, void *update_cb_data)
 {
 	SmokeDomainSettings *sds = smd->domain;
-	OpenVDBCache *cache;
-	int orig_frame, fr, cancel = 0;
+	OpenVDBCache *cache = BKE_openvdb_get_current_cache(sds);
+
+	int cancel = 0;
 	float progress;
 	const char *relbase = modifier_path_relbase(ob);
 	char filename[FILE_MAX];
-	bool save_as_half;
-
-	orig_frame = scene->r.cfra;
 
-	cache = BKE_openvdb_get_current_cache(sds);
+	const int orig_frame = scene->r.cfra;
 
 	if (cache->writer == NULL) {
 		cache->writer = OpenVDBWriter_create();
 	}
 
-	save_as_half = ((cache->flags & OPENVDB_CACHE_SAVE_AS_HALF) != 0);
-
+	const bool save_as_half = ((cache->flags & OPENVDB_CACHE_SAVE_AS_HALF) != 0);
 	OpenVDBWriter_set_flags(cache->writer, cache->compression, save_as_half);
 
 	/* Unset exported flag if overwriting a cache, the operator should have
 	 * received confirmation from the user */
-	if (cache->flags & OPENVDB_CACHE_BAKED)
+	if (cache->flags & OPENVDB_CACHE_BAKED) {
 		cache->flags &= ~OPENVDB_CACHE_BAKED;
+	}
 
-	for (fr = cache->startframe; fr <= cache->endframe; fr++) {
+	for (int fr = cache->startframe; fr <= cache->endframe; fr++) {
 		/* smd->time is overwritten with scene->r.cfra in smokeModifier_process,
 		 * so we can't use it here... */
 		scene->r.cfra = fr;
@@ -3486,8 +3484,6 @@ bool smokeModifier_OpenVDB_import(SmokeModifierData *smd, Scene *scene, Object *
 	char filename[FILE_MAX];
 	const char *relbase = modifier_path_relbase(ob);
 
-	cache = BKE_openvdb_get_current_cache(sds);
-
 	if (!(cache->flags & OPENVDB_CACHE_BAKED)) {
 		return false;
 	}
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index a9d8ec7..ac6a8ca 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -2436,8 +2436,7 @@ static int openvdb_cache_bake_invoke(bContext *C, wmOperator *op, const wmEvent
 {
 	Object *ob = CTX_data_active_object(C);
 	SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, eModifierType_Smoke);
-	SmokeDomainSettings *sds = smd->domain;
-	OpenVDBCache *cache = BKE_openvdb_get_current_cache(sds);
+	OpenVDBCache *cache = BKE_openvdb_get_current_cache(smd->domain);
 	const char *relbase = modifier_path_relbase(ob);
 	char filename[FILE_MAX];
 
@@ -2446,25 +2445,22 @@ static int openvdb_cache_bake_invoke(bContext *C, wmOperator *op, const wmEvent
 
 	BKE_openvdb_cache_filename(filename, cache->path, cache->name, relbase, cache->startframe);
 
-	if (BLI_exists(filename)) {
-		if (BLI_is_file(filename)) {
-			if (BLI_file_is_writable(filename)) {
-				return WM_operator_confirm_message(C, op, "Cache target already exists! Overwrite?");
-			}
-			else {
-				BKE_reportf(op->reports, RPT_ERROR, "Cannot overwrite cache target: %200s", filename);
-				return OPERATOR_CANCELLED;
-			}
-		}
-		else {
-			BKE_reportf(op->reports, RPT_ERROR, "Invalid cache target: %200s", filename);
-			return OPERATOR_CANCELLED;
-		}
-	}
-	else {
+	if (!BLI_exists(filename)) {
 		return openvdb_cache_bake_exec(C, op);
 	}
 
+	if (!BLI_is_file(filename)) {
+		BKE_reportf(op->reports, RPT_ERROR, "Invalid cache target: %200s", filename);
+		return OPERATOR_CANCELLED;
+	}
+
+	if (BLI_file_is_writable(filename)) {
+		return WM_operator_confirm_message(C, op, "Cache target already exists! Overwrite?");
+	}
+
+	BKE_reportf(op->reports, RPT_ERROR, "Cannot create cache target: %200s", filename);
+	return OPERATOR_CANCELLED;
+
 	UNUSED_VARS(event);
 }
 
@@ -2655,24 +2651,25 @@ static int openvdb_cache_free_exec(bContext *C, wmOperator *op)
 		return OPERATOR_CANCELLED;
 	}
 
-	SmokeDomainSettings *sds = smd->domain;
-	OpenVDBCache *cache = BKE_openvdb_get_current_cache(sds);
+	OpenVDBCache *cache = BKE_openvdb_get_current_cache(smd->domain);
+
+	if ((cache->flags & OPENVDB_CACHE_BAKED) == 0) {
+		return OPERATOR_CANCELLED;
+	}
+
 	const char *relbase = modifier_path_relbase(ob);
 	char filename[FILE_MAX];
-	int fr;
 
-	if ((cache->flags & OPENVDB_CACHE_BAKED) != 0) {
-		for (fr = cache->startframe; fr <= cache->endframe; fr++) {
-			BKE_openvdb_cache_filename(filename, cache->path, cache->name, relbase, fr);
+	for (int fr = cache->startframe; fr <= cache->endframe; fr++) {
+		BKE_openvdb_cache_filename(filename, cache->path, cache->name, relbase, fr);
 
-			if (BLI_exists(filename)) {
-				BLI_delete(filename, false, false);
-			}
+		if (BLI_exists(filename)) {
+			BLI_delete(filename, false, false);
 		}
-
-		cache->flags &= ~OPENVDB_CACHE_BAKED;
 	}
 
+	cache->flags &= ~OPENVDB_CACHE_BAKED;
+
 	WM_event_add_notifier(C, NC_OBJECT | ND_POINTCACHE, ob);
 
 	return OPERATOR_FINISHED;




More information about the Bf-blender-cvs mailing list