[Bf-blender-cvs] [e8ba159] fluid-mantaflow: some cleanup
SebastiaÌ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