[Bf-blender-cvs] [5c64aa2] soc-2014-fluid: Merge branch 'master' into soc-2014-fluid
Roman Pogribnyi
noreply at git.blender.org
Sun Mar 15 23:18:15 CET 2015
Commit: 5c64aa25541b973db4ec90c97e30b02d09b00075
Author: Roman Pogribnyi
Date: Sun Mar 15 19:57:06 2015 +0100
Branches: soc-2014-fluid
https://developer.blender.org/rB5c64aa25541b973db4ec90c97e30b02d09b00075
Merge branch 'master' into soc-2014-fluid
===================================================================
===================================================================
diff --cc CMakeLists.txt
index d66610c,8e54ddc..6b879b4
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -147,11 -218,10 +218,11 @@@ option(WITH_FFTW3 "Enable FFTW
option(WITH_BULLET "Enable Bullet (Physics Engine)" ON)
option(WITH_SYSTEM_BULLET "Use the systems bullet library (currently unsupported due to missing features in upstream!)" )
mark_as_advanced(WITH_SYSTEM_BULLET)
- option(WITH_GAMEENGINE "Enable Game Engine" ON)
+ option(WITH_GAMEENGINE "Enable Game Engine" ${_init_GAMEENGINE})
option(WITH_PLAYER "Build Player" OFF)
- option(WITH_OPENCOLORIO "Enable OpenColorIO color management" ON)
+ option(WITH_OPENCOLORIO "Enable OpenColorIO color management" ${_init_OPENCOLORIO})
option(WITH_COMPOSITOR "Enable the tile based nodal compositor" ON)
+option(WITH_MOD_MANTA "Enable Mantaflow Framework" ON)
# GHOST Windowing Library Options
option(WITH_GHOST_DEBUG "Enable debugging output for the GHOST library" OFF)
diff --cc intern/ghost/intern/GHOST_ContextCGL.mm
index c55935d,0b290c6..57cf53a
--- a/intern/ghost/intern/GHOST_ContextCGL.mm
+++ b/intern/ghost/intern/GHOST_ContextCGL.mm
@@@ -192,11 -193,7 +193,8 @@@ static void makeAttribList
* Maybe a command line flag is better... */
if (getenv("BLENDER_SOFTWAREGL")) {
attribs.push_back(NSOpenGLPFARendererID);
- #if defined(__ppc__) || defined(__ppc64__)
- attribs.push_back(kCGLRendererAppleSWID);
- #else
- // attribs.push_back(kCGLRendererGenericFloatID);
- #endif
++
+ attribs.push_back(kCGLRendererGenericFloatID);
}
else {
attribs.push_back(NSOpenGLPFAAccelerated);
diff --cc intern/ghost/intern/GHOST_WindowCocoa.mm
index 6fb73a3,65d371c..2914b36
--- a/intern/ghost/intern/GHOST_WindowCocoa.mm
+++ b/intern/ghost/intern/GHOST_WindowCocoa.mm
@@@ -1344,15 -1355,10 +1355,10 @@@ GHOST_TSuccess GHOST_WindowCocoa::endPr
// With OSX 10.8 and later, we can use notifications to inform the user when the progress reached 100%
// Atm. just fire this when the progressbar ends, the behavior is controlled in the NotificationCenter
// If Blender is not frontmost window, a message pops up with sound, in any case an entry in notifications
- //PR commented temporarily
- // if ([NSUserNotificationCenter respondsToSelector:@selector(defaultUserNotificationCenter)]) {
- // NSUserNotification *notification = [[NSUserNotification alloc] init];
- // notification.title = @"Blender progress notification";
- // notification.informativeText = @"Calculation ended";
- // notification.soundName = NSUserNotificationDefaultSoundName;
- // [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification];
- // [notification release];
- // }
-
++
+ if ([NSUserNotificationCenter respondsToSelector:@selector(defaultUserNotificationCenter)]) {
+ postNotification();
+ }
[dockIcon release];
diff --cc intern/smoke/intern/smoke_API.cpp
index 3a61b39,d79aaf7..462af5b
--- a/intern/smoke/intern/smoke_API.cpp
+++ b/intern/smoke/intern/smoke_API.cpp
@@@ -514,96 -506,3 +522,96 @@@ extern "C" void smoke_ensure_colors(FLU
wt->initColors(init_r, init_g, init_b);
}
}
+
+
+/*MantaFlow funcs*/
+extern "C" int smoke_mantaflow_read(struct SmokeDomainSettings *sds, char* name, bool with_wavelets)
+{
+ return read_mantaflow_sim(sds, name, with_wavelets);
+}
+
+
+extern "C" void manta_write_effectors(struct FLUID_3D *fluid)
+{
+ int size_x = fluid->_xRes;
+ int size_y = fluid->_yRes;
+ int size_z = fluid->_zRes;
+
+ float *force_x = smoke_get_force_x(fluid);
+ float *force_y = smoke_get_force_y(fluid);
+ float *force_z = smoke_get_force_z(fluid);
+// export_force_fields(size_x, size_y, size_z, force_x, force_y, force_z);
+ /*accumulate all force fields in one grid*/
+ Manta::Vec3 * accumulated_force = NULL;
+ long index(0);
+ if (fluid->manta_resoution == 3){
+ accumulated_force = (Manta::Vec3*)calloc(size_x * size_y * size_z , sizeof(Manta::Vec3));
+ for (int z(0); z < size_z; z++){
+ for (int y(0); y < size_y; y++){
+ for (int x(0); x < size_x; x++){
+ index = smoke_get_index(x, size_x, y, size_y, z);
+ accumulated_force[index] = Manta::Vec3(force_x[index], force_y[index], force_z[index]);
+ }
+ }
+ }
+ }
+ else if (fluid->manta_resoution == 2){
+ accumulated_force = (Manta::Vec3*)malloc(size_x * size_z * sizeof(Manta::Vec3));
+ int step(0);
+ for (int x(0); x < size_x; x++){
+ for (int z(0); z < size_z; z++){
+ index = smoke_get_index(x, size_x, size_y/2, size_y, z);
+ accumulated_force[x + z * size_x] = Manta::Vec3(force_x[index], force_z[index], 0.0);
+ }
+ }
+ }
+ else{
+ cout << "ERROR: Manta solver resoltion is neither 2 nor 3; Cannot write forces"<<endl;
+ return;
+ }
+
+
+ bool is2D = (fluid->manta_resoution == 2);
+ Manta_API::addGrid(accumulated_force, "forces", "Vec3", size_x, size_y, size_z, is2D);
+}
+
+extern "C" void manta_write_emitters(struct SmokeFlowSettings *sfs, bool highRes, 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);
+ bool is2D = (sfs->smd->domain->fluid->manta_resoution == 2);
+ if (! highRes)
+ Manta_API::addAdaptiveGrid(influence, "density", "s", "float",
+ min_x, min_y, min_z, max_x, max_y, max_z, is2D);
+ else
+ Manta_API::addAdaptiveGrid(influence, "xl_density", "xl", "float", min_x, min_y, min_z, max_x, max_y, max_z, is2D);
+ // 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);
+}
+
+/*deprecated*/
+extern "C" void manta_export_obstacles(float * influence, int x, int y, int z)
+{
+
+ cout << "!!!!!!!!!!Deprecated method manta_export_obstacles is being used" << endl;
+ if (influence == NULL){
+ cout<< "ERROR: empty influence object when exporting smoke obstacles" << endl;
+ return;
+ }
+// Manta_API::export_obstacles(influence, x, y, z);
+}
+
+extern "C" void smoke_mantaflow_stop_sim(struct Manta_API * fluid)
+{
+ if (fluid == NULL){
+ cout<< "ERROR: empty manta_API object when stopping smoke simulation" << endl;
+ return;
+ }
+ fluid->stop_manta_sim();
+}
+
+extern "C" int cell_index_3D(int index_2d, int sizex,int sizey, int sizez)
+{
+
+ return int(sizey * 0.5) * sizex +
+ (index_2d % (sizex)) +
+ int(index_2d/(sizex)) * sizex * sizey;
- }
++}
diff --cc release/scripts/startup/bl_ui/properties_physics_smoke.py
index d2a93e4,63268bc..c2a2b3b
--- a/release/scripts/startup/bl_ui/properties_physics_smoke.py
+++ b/release/scripts/startup/bl_ui/properties_physics_smoke.py
@@@ -18,15 -18,15 +18,17 @@@
# <pep8 compliant>
import bpy
+import os
+from copy import deepcopy
from bpy.types import Panel
- from bl_ui.properties_physics_common import (point_cache_ui,
- effector_weights_ui)
+ from bl_ui.properties_physics_common import (
+ point_cache_ui,
+ effector_weights_ui,
+ )
- class PhysicButtonsPanel():
+ class PhysicButtonsPanel:
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "physics"
diff --cc source/blender/editors/physics/physics_fluid.c
index 5478ad2,b5adf38..d96bba4
--- a/source/blender/editors/physics/physics_fluid.c
+++ b/source/blender/editors/physics/physics_fluid.c
@@@ -78,8 -72,7 +78,6 @@@
#include "DNA_scene_types.h"
#include "DNA_mesh_types.h"
- #include "PIL_time.h"
--
static float get_fluid_viscosity(FluidsimSettings *settings)
{
return (1.0f/powf(10.0f, settings->viscosityExponent)) * settings->viscosityValue;
More information about the Bf-blender-cvs
mailing list