[Bf-blender-cvs] [453a284] soc-2014-fluid: generating grid name from type

Roman Pogribnyi noreply at git.blender.org
Thu Oct 16 22:07:21 CEST 2014


Commit: 453a284e9758c89433fa2b86c00d3ee97eebca03
Author: Roman Pogribnyi
Date:   Thu Oct 16 21:42:37 2014 +0200
Branches: soc-2014-fluid
https://developer.blender.org/rB453a284e9758c89433fa2b86c00d3ee97eebca03

generating grid name from type

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

M	intern/smoke/intern/MANTA.cpp
M	intern/smoke/intern/MANTA.h
M	intern/smoke/intern/smoke_API.cpp

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

diff --git a/intern/smoke/intern/MANTA.cpp b/intern/smoke/intern/MANTA.cpp
index 16edebe..6419ed4 100644
--- a/intern/smoke/intern/MANTA.cpp
+++ b/intern/smoke/intern/MANTA.cpp
@@ -339,13 +339,26 @@ void Manta_API::stop_manta_sim()
 	pthread_cancel(manta_thread);
 }
 
-void Manta_API::addGrid(void * data, string name, int x, int y, int z)
+string Manta_API::gridNameFromType(const string &type)
+{
+	if (type == "float")
+	{
+		return "RealGrid";
+	}
+	else
+	{
+		cout<<"ERROR: can not create grid from type: "<< type << endl;
+		return "";
+	}
+}
+
+void Manta_API::addGrid(void * data, string name, string type, int x, int y, int z)
 {
 	std::ostringstream stringStream;
 	stringStream << "temp_" << name;
 	std::string grid_name = stringStream.str();
 	stringStream.str("");
-	stringStream << grid_name << " = s.create(RealGrid)";
+	stringStream << grid_name << " = s.create(" << gridNameFromType(type) << ")";
 	const std::string command_1 = stringStream.str();
 	stringStream.str("");
 	stringStream << grid_name << ".readGridFromMemory("<< data << "," << x << "," << z << "," << y << ")";
@@ -358,7 +371,7 @@ void Manta_API::addGrid(void * data, string name, int x, int y, int z)
 	PyGILState_Release(gilstate);		
 }
 
-void Manta_API::addAdaptiveGrid(void * data, string name, int minX, int minY, int minZ, int maxX, int maxY, int maxZ)
+void Manta_API::addAdaptiveGrid(void * data, string name, string type, int minX, int minY, int minZ, int maxX, int maxY, int maxZ)
 {
 	if (data == NULL)
 	{
@@ -369,7 +382,7 @@ void Manta_API::addAdaptiveGrid(void * data, string name, int minX, int minY, in
 	stringStream << "temp_" << name;
 	std::string grid_name = stringStream.str();
 	stringStream.str("");
-	stringStream << grid_name << " = s.create(RealGrid)";
+	stringStream << grid_name << " = s.create(" << gridNameFromType(type) << ")";
 	const std::string command_1 = stringStream.str();
 	stringStream.str("");
 	stringStream << grid_name << ".readAdaptiveGridFromMemory(\'"<< data << "\',\'" << name << "\', vec3(" << minX << "," << minY << "," << minZ << 
diff --git a/intern/smoke/intern/MANTA.h b/intern/smoke/intern/MANTA.h
index b241f2f..29dd146 100644
--- a/intern/smoke/intern/MANTA.h
+++ b/intern/smoke/intern/MANTA.h
@@ -83,8 +83,9 @@ public:
 	
 	pthread_t manta_thread;
 	
-	static void addGrid(void * data,string name, int x, int y, int z);
-	static void addAdaptiveGrid(void * data, string name, int minX, int minY, int minZ, int maxX, int maxY, int maxZ);
+	static string gridNameFromType(const string& type);
+	static void addGrid(void * data,string name, string type, int x, int y, int z);
+	static void addAdaptiveGrid(void * data, string name, string type,int minX, int minY, int minZ, int maxX, int maxY, int maxZ);
 };
 
 
diff --git a/intern/smoke/intern/smoke_API.cpp b/intern/smoke/intern/smoke_API.cpp
index e5f420a..8ccee68 100644
--- a/intern/smoke/intern/smoke_API.cpp
+++ b/intern/smoke/intern/smoke_API.cpp
@@ -534,7 +534,7 @@ extern "C" void manta_write_effectors(struct Scene *s, struct SmokeModifierData
 extern "C" void manta_write_emitters(struct SmokeFlowSettings *sfs, int min_x, int min_y, int min_z, int max_x, int max_y, int max_z, int d_x, int d_y, int d_z,float *influence, float *vel)
 {
 //	manta_update_effectors(s, smd->domain->manta_obj, smd->domain, 0.1f);
-	Manta_API::addAdaptiveGrid(influence, "density", 
+	Manta_API::addAdaptiveGrid(influence, "density", "float",
 										   min_x, min_y, min_z, max_x, max_y, max_z);
 //	export_em_fields(Manta_API::instance()->_emission_map,sfs->density, min_x,  min_y,  min_z,  max_x,  max_y,  max_z,  d_x,  d_y,  d_z,  influence,  vel);
 }




More information about the Bf-blender-cvs mailing list