[Bf-blender-cvs] [e8ba159] fluid-mantaflow: some cleanup

Sebastián Barschkis noreply at git.blender.org
Fri Feb 26 11:15:51 CET 2016


Commit: e8ba1594054a7bc6eef81146bd6ce2044c8ca4ec
Author: Sebastián Barschkis
Date:   Fri Feb 26 09:17:11 2016 +0100
Branches: fluid-mantaflow
https://developer.blender.org/rBe8ba1594054a7bc6eef81146bd6ce2044c8ca4ec

some cleanup

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

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

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

diff --git a/intern/smoke/intern/MANTA.cpp b/intern/smoke/intern/MANTA.cpp
index 5f48b4e..9d25161 100644
--- a/intern/smoke/intern/MANTA.cpp
+++ b/intern/smoke/intern/MANTA.cpp
@@ -1,403 +1,6 @@
 #include "MANTA.h"
 #include "WTURBULENCE.h"
 #include "scenarios/smoke.h"
-//#include "../../../source/blender/python/manta_pp/pwrapper/manta.h"
-
-//extern "C" bool manta_check_grid_size(struct FLUID_3D *fluid, int dimX, int dimY, int dimZ)
-//{
-//	/*Y and Z axes are swapped in manta and blender*/
-//	if (!(dimX == fluid->xRes() && dimY == fluid->yRes() && dimZ == fluid->zRes())) {
-//		for (int cnt(0); cnt < fluid->_totalCells; cnt++)
-//			fluid->_density[cnt] = 0.0f;
-//		return false;
-//	}
-//	return true;
-//}
-//
-//extern "C" bool manta_check_wavelets_size(struct WTURBULENCE *wt, int dimX, int dimY, int dimZ)
-//{
-//	/*Y and Z axes are swapped in manta and blender*/
-//	if (!(dimX == wt->_xResBig && dimY == wt->_yResBig && dimZ == wt->_zResBig)) {
-//		for (int cnt(0); cnt < wt->_totalCellsBig; cnt++)
-//			wt->_densityBig[cnt] = 0.0f;
-//		return false;
-//	}
-//	return true;
-//}
-//
-//void read_rotated_grid(gzFile gzf, float *data, int size_x, int size_y, int size_z)
-//{
-//	assert(size_x > 1 && size_y > 1 && size_z > 1);
-//	float* temp_data = (float*)malloc(sizeof(float) * size_x * size_y * size_z);
-////	data = (float*)malloc(sizeof(float) * size_x * size_y * size_z);
-//	gzread(gzf, temp_data, sizeof(float)* size_x * size_y * size_z);
-//	for (int cnt_x(0); cnt_x < size_x; ++cnt_x)
-//{
-//		for (int cnt_y(0); cnt_y < size_y; ++cnt_y)
-//		{
-//			for (int cnt_z(0); cnt_z < size_z; ++cnt_z)
-//			{
-//				data[cnt_x + size_x * cnt_y + size_x*size_y * cnt_z] = temp_data[cnt_x + size_x * cnt_y + size_x*size_y * cnt_z];
-//			}			
-//		}
-//	}
-//}
-//
-//static void wavelets_add_lowres_density(SmokeDomainSettings *sds)
-//{
-//	assert(sds != NULL);
-//	for (int cnt_x(0); cnt_x < sds->wt->_xResBig; ++cnt_x)
-//	{
-//		for (int cnt_y(0); cnt_y < sds->wt->_yResBig; ++cnt_y)
-//		{
-//			for (int cnt_z(0); cnt_z < sds->wt->_zResBig; ++cnt_z)
-//			{
-//				//scale down to domain res
-//				float x_sc = 1. * sds->base_res[0] * cnt_x / sds->wt->_xResBig;
-//				float y_sc = 1. * sds->base_res[1] * cnt_y / sds->wt->_yResBig;
-//				float z_sc = 1. * sds->base_res[2] * cnt_z / sds->wt->_zResBig;
-//				//finding cells to interpolate from
-//				int start_x = int(x_sc / 1);
-//				int start_y = int(y_sc / 1);
-//				int start_z = int(z_sc / 1);
-//				int end_x = ((x_sc - start_x > 0.001) && (start_x + 1 < sds->base_res[0]))? start_x + 1: start_x;
-//				int end_y = ((y_sc - start_y > 0.001) && (start_y + 1 < sds->base_res[1]))? start_y + 1: start_y;
-//				int end_z = ((z_sc - start_z > 0.001) && (start_z + 1 < sds->base_res[2]))? start_z + 1: start_z;
-//				//interpolation
-//				float add_value = 0;
-//				int cnt=0;
-//				for(int x(start_x); x <= end_x; ++x)
-//				{
-//					for(int y(start_y); y <= end_y; ++y)
-//					{
-//						for(int z(start_z); z <= end_z; ++z)
-//						{
-//							cnt++;
-//							add_value += sds->fluid->_density[x + y*sds->base_res[0] + z * sds->base_res[0]*sds->base_res[1]];	
-//						}			
-//					}	
-//				}
-//				add_value /= float(cnt);
-//				sds->wt->_densityBig[cnt_x + cnt_y *sds->wt->_xResBig + cnt_z*sds->wt->_xResBig*sds->wt->_yResBig] += add_value;
-//			}
-//		}
-//	}
-//}
-//
-////PR need SMD data here for wavelets 
-//extern "C" int read_mantaflow_sim(struct SmokeDomainSettings *sds, char *name, bool reading_wavelets)
-//{
-//    /*! l /*! legacy headers for reading old files */
-//	typedef struct {
-//		int dimX, dimY, dimZ;
-//		int frames, elements, elementType, bytesPerElement, bytesPerFrame;
-//	} UniLegacyHeader;
-//	
-//	typedef struct {
-//		int dimX, dimY, dimZ;
-//		int gridType, elementType, bytesPerElement;
-//	} UniLegacyHeader2;
-//	
-//	/* uni file header - currently used */ 
-//	typedef struct {
-//		int dimX, dimY, dimZ;
-//		int gridType, elementType, bytesPerElement;
-//		char info[256]; /* mantaflow build information */
-//		unsigned long long timestamp; /* creation time */
-//	} UniHeader;
-//	
-//#	if NO_ZLIB!=1
-//    gzFile gzf = gzopen(name, "rb");
-////    if (!gzf) {
-////		if(reading_wavelets){
-////			for (int cnt(0); cnt < sds->wt->_totalCellsBig; cnt++)
-////				sds->wt->_densityBig[cnt] = 0.0f;
-////		}
-////		else{
-////			for (int cnt(0); cnt < sds->fluid->_totalCells; cnt++)
-////				sds->fluid->_density[cnt] = 0.0f;
-////		}
-////		return 0;
-////	}
-//	
-//    char ID[5] = {0,0,0,0,0};
-//	gzread(gzf, ID, 4);
-//	/* legacy file format */
-//    if (!strcmp(ID, "DDF2")) {
-//        UniLegacyHeader head;
-//		gzread(gzf, &head, sizeof(UniLegacyHeader));
-//        int numEl = head.dimX*head.dimY*head.dimZ;
-//        gzseek(gzf, numEl, SEEK_CUR);
-//        /* actual grid read */
-//        if ( ! reading_wavelets){
-////			if (!manta_check_grid_size(sds->fluid, head.dimX, head.dimY, head.dimZ))	return 0;
-//			gzread(gzf, sds->fluid->_density, sizeof(float)*numEl);
-//		}
-//		else {
-//			if (!manta_check_wavelets_size(sds->wt, head.dimX, head.dimY, head.dimZ))	return 0;
-//			gzread(gzf, sds->wt->_densityBig, sizeof(float)*numEl);
-//    	} 
-//	}
-//	/* legacy file format 2 */
-//    else if (!strcmp(ID, "MNT1")) {
-//        UniLegacyHeader2 head;
-//        gzread(gzf, &head, sizeof(UniLegacyHeader2));
-//		/* actual grid read*/
-//        if ( ! reading_wavelets){
-////			if (!manta_check_grid_size(sds->fluid, head.dimX, head.dimY, head.dimZ))	return 0;
-//        	gzread(gzf, sds->fluid->_density, sizeof(float)*head.dimX*head.dimY*head.dimZ);
-//    	}
-//		else{
-//			if (!manta_check_wavelets_size(sds->wt, head.dimX, head.dimY, head.dimZ))	return 0;
-//        	gzread(gzf, sds->wt->_densityBig, sizeof(float)*head.dimX*head.dimY*head.dimZ);
-//    	}
-//	}
-//	/* current file format*/
-//    else if (!strcmp(ID, "MNT2")) {
-//        UniHeader head;
-//        gzread(gzf, &head, sizeof(UniHeader));
-//		/* actual grid read */
-//        if ( ! reading_wavelets){
-////			if (!manta_check_grid_size(sds->fluid, head.dimX, head.dimY, head.dimZ))	return 0;
-//			/*Y and Z axes are swapped in manta and blender*/
-//			gzread(gzf,sds->fluid->_density, sizeof(float)*head.dimX*head.dimY*head.dimZ);
-//    		
-//		}
-//		else{
-//			if (!manta_check_wavelets_size(sds->wt, head.dimX, head.dimY, head.dimZ))	return 0;
-//			/*Y and Z axes are swapped in manta and blender*/
-//			gzread(gzf,sds->wt->_densityBig, sizeof(float)*head.dimX*head.dimY*head.dimZ);
-//			gzread(gzf,sds->wt->_densityBigOld, sizeof(float)*head.dimX*head.dimY*head.dimZ);
-////			wavelets_add_lowres_density(sds);
-//		}
-//	}
-//    gzclose(gzf);
-//	return 1;
-//#	endif	/*zlib*/
-//	return 0;
-//}
-//
-//
-//void Manta_API::indent_ss(stringstream& ss, int indent)
-//{
-//	/*two-spaces indent*/
-//	if (indent < 0) return;
-//	std::string indentation = ""; 
-//	for (size_t cnt(0); cnt < indent; ++cnt) {
-//		indentation += "  ";
-//	}
-//	ss << indentation;
-//}
-//
-//void Manta_API::manta_gen_noise(stringstream& ss, char* solver, int indent, char *noise, int seed, bool load, bool clamp, float clampNeg, float clampPos, float valScale, float valOffset, float timeAnim)
-//{
-//	if (ss == NULL)/*should never be here*/
-//	{
-//		return;
-//	}
-//	indent_ss(ss, indent);
-//	ss << noise << " = "<<solver<<".create(NoiseField, fixedSeed=" << seed << ", loadFromFile="<< (load?"True":"False") <<") \n";
-//	ss << noise << ".posScale = vec3(20) \n";
-//	ss << noise << ".clamp = " << ((clamp)?"True":"False") << " \n";
-//	ss << noise << ".clampNeg = " << clampNeg << " \n";
-//	ss << noise << ".clampPos = " << clampPos << " \n";
-//	ss << noise << ".valScale = " << valScale << " \n";
-//	ss << noise << ".valOffset = " << valOffset << " \n";
-//	ss << noise << ".timeAnim = " << timeAnim << " \n";
-//}
-//
-//void Manta_API::manta_solve_pressure(stringstream& ss, char *flags, char *vel, char *pressure, bool useResNorms, int openBound, int solver_res,float cgMaxIterFac, float cgAccuracy)
-//{
-//	/*open:0 ; vertical : 1; closed:2*/
-//	ss << "  solvePressure(flags=" << flags << ", vel=" << vel << ", pressure=" << pressure << ", useResNorm=" << (useResNorms?"True":"False") << ", openBound='";	
-//	
-//	if(openBound == 1) /*vertical*/
-//	{
-//		ss << "yY'";
-//	}
-//	else if (openBound == 0) /*open*/
-//	{
-//		if(solver_res == 2)
-//			ss << "xXyY";
-//		else
-//			ss << "xXyYzZ";
-//	}
-//	ss << "'";	/*empty for closed bounds*/ 
-//	
-//	ss << ", cgMaxIterFac=" << cgMaxIterFac << ", cgAccuracy=" << cgAccuracy << ") \n";
-//}
-//
-//void Manta_API::manta_advect_SemiLagr(stringstream& ss, int indent, char *flags, char *vel, char *grid, int order)
-//{
-//	if((order <=1) || (flags == NULL) || (vel == NULL) || (grid == NULL)){return;}
-//	indent_ss(ss, indent);
-//	ss << "advectSemiLagrange(flags=" << flags << ", vel=" << vel \
-//	<< ", grid=" << grid << ", order=" << order << ") \n"; 
-//}
-//
-///*create solver, handle 2D case*/
-//void Manta_API::manta_create_solver(stringstream& ss, char *name, char *nick, char *grid_size_name, int x_res, int y_res, int z_res, int dim)
-//{
-//	if ((dim != 2) && (dim != 3))
-//	{ return; }
-//	if (dim == 2)
-//	{ y_res = 1; }
-//	ss << grid_size_name << " = vec3(" << x_res << ", " << y_res << ", " << z_res << ")" << " \n";
-//	ss << name << " = Solver(name = '" << nick << "', gridSize = " << grid_size_name << ", dim = " << dim << ") \n";
-//}
-//
-//inline bool file_exists (const std::string& name) {
-//    return ( access( name.c_str(), F_OK ) != -1 );
-//}
-//
-///*blender transforms obj coords to [-1,1]. This method transforms them back*/
-//void Manta_API::add_mesh_transform_method(stringstream& ss)
-//{
-//	ss << "def transform_back(obj, gs):\n" <<
-//	"  obj.scale(gs/2)\n" <<
-//	"  obj.offset(gs/2)\n\n";
-//}
-//
-//void Manta_API::stop_manta_sim()
-//{
-//	pthread_cancel(manta_thread);
-//}
-//
-//string Manta_API::gridNameFromType(const string &type)
-//{
-//	if (type == "float")
-//	{
-//		return "RealGrid";
-//	}
-//	else if (type == "Vec3")
-//	{
-//		return "MACGrid";	
-//	}
-//	else
-//	{
-//		cout<<"ERROR: can not create grid from type: "<< type << endl;
-//		re

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list