diff options
-rw-r--r-- | SConstruct | 7 | ||||
-rw-r--r-- | intern/SConscript | 6 | ||||
-rw-r--r-- | intern/elbeem/extern/elbeem.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 12 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/effect.c | 22 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 5 | ||||
-rw-r--r-- | source/blender/src/buttons_object.c | 12 | ||||
-rw-r--r-- | source/blender/src/fluidsim.c | 28 | ||||
-rwxr-xr-x | tools/btools.py | 3 |
9 files changed, 74 insertions, 22 deletions
diff --git a/SConstruct b/SConstruct index 24f723d9f1b..bc1dd8e47aa 100644 --- a/SConstruct +++ b/SConstruct @@ -159,6 +159,12 @@ else: opts = btools.read_opts(optfiles, B.arguments) opts.Update(env) +# disable elbeem (fluidsim) compilation? +if env['BF_NO_ELBEEM'] == 'true': + env['CPPFLAGS'].append('-DDISABLE_ELBEEM') + env['CXXFLAGS'].append('-DDISABLE_ELBEEM') + env['CCFLAGS'].append('-DDISABLE_ELBEEM') + #check for additional debug libnames if env.has_key('BF_DEBUG_LIBS'): @@ -375,7 +381,6 @@ if not env['WITH_BF_GAMEENGINE']: blendernogame = env.Alias('blendernogame', B.program_list) Depends(blendernogame,installtarget) - Default(B.program_list) Default(installtarget) diff --git a/intern/SConscript b/intern/SConscript index 606a81ae923..ecb7f29fab6 100644 --- a/intern/SConscript +++ b/intern/SConscript @@ -1,4 +1,6 @@ #!/usr/bin/python +Import ('env') + SConscript(['SoundSystem/SConscript', 'string/SConscript', 'ghost/SConscript', @@ -10,7 +12,6 @@ SConscript(['SoundSystem/SConscript', 'decimation/SConscript', 'iksolver/SConscript', 'boolop/SConscript', - 'elbeem/SConscript', 'opennl/SConscript']) # NEW_CSG was intended for intern/csg, but @@ -19,6 +20,9 @@ SConscript(['SoundSystem/SConscript', # perhaps get rid of intern/csg? NEW_CSG='false' +if env['BF_NO_ELBEEM'] == 'false': + SConscript(['elbeem/SConscript']) + if NEW_CSG=='false': SConscript(['bsp/SConscript']) else: diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h index 8eb8a5433b1..ea21e807a6f 100644 --- a/intern/elbeem/extern/elbeem.h +++ b/intern/elbeem/extern/elbeem.h @@ -78,6 +78,7 @@ typedef struct elbeemSimulationSettings { short generateVertexVectors; /* strength of surface smoothing */ float surfaceSmoothing; + // TODO add surf gen flags /* global transformation to apply to fluidsim mesh */ float surfaceTrafo[4*4]; diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 94e4dabeda4..4187e5c0320 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -2023,7 +2023,7 @@ static void mesh_calc_modifiers(Object *ob, float (*inputVertexCos)[3], DerivedM } } } - + if (useDeform) { if(do_ob_key(ob)) /* shape key makes deform verts */ deformedVerts = mesh_getVertexCos(me, &numVerts); @@ -2585,13 +2585,14 @@ float *mesh_get_mapped_verts_nors(Object *ob) /* ************************* fluidsim bobj file handling **************************** */ +#ifndef DISABLE_ELBEEM + #ifdef WIN32 #ifndef snprintf #define snprintf _snprintf #endif #endif - /* write .bobj.gz file for a mesh object */ void writeBobjgz(char *filename, struct Object *ob, int useGlobalCoords, int append, float time) { @@ -3144,4 +3145,11 @@ void fluidsimGetAxisAlignedBB(struct Mesh *mesh, float obmat[][4], } } +#else // DISABLE_ELBEEM + +/* dummy for mesh_calc_modifiers */ +void loadFluidsimMesh(Object *srcob, int useRenderParams) { +} + +#endif // DISABLE_ELBEEM diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index d18620283e4..abadc799e92 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -51,11 +51,6 @@ #include "DNA_object_force.h" #include "DNA_texture_types.h" #include "DNA_scene_types.h" -// FSPARTICLE -#include "DNA_object_fluidsim.h" -#include "LBM_fluidsim.h" -#include <zlib.h> -#include <string.h> #include "BLI_arithb.h" #include "BLI_blenlib.h" @@ -87,9 +82,17 @@ #include "BKE_utildefines.h" #include "PIL_time.h" -#include "elbeem.h" #include "RE_render_ext.h" +/* fluid sim particle import */ +#ifndef DISABLE_ELBEEM +#include "DNA_object_fluidsim.h" +#include "LBM_fluidsim.h" +#include "elbeem.h" +#include <zlib.h> +#include <string.h> +#endif // DISABLE_ELBEEM + /* temporal struct, used for reading return of mesh_get_mapped_verts_nors() */ typedef struct VeNoCo { float co[3], no[3]; @@ -1682,7 +1685,8 @@ void build_particle_system(Object *ob) printf("build particles\n"); - // FSPARTICLE all own created... + /* fluid sim particle import handling, actual loading */ + #ifndef DISABLE_ELBEEM if( (1) && (ob->fluidsimFlag & OB_FLUIDSIM_ENABLE) && (ob->fluidsimSettings) && (ob->fluidsimSettings->type == OB_FLUIDSIM_PARTICLE)) { @@ -1775,8 +1779,8 @@ void build_particle_system(Object *ob) snprintf(debugStrBuffer,256,"readFsPartData::done - particles:%d, active:%d, file:%d, mask:%d \n", paf->totpart,activeParts,fileParts,readMask); elbeemDebugOut(debugStrBuffer); return; - } - + } // fluid sim particles done + #endif // DISABLE_ELBEEM if(paf->end < paf->sta) return; diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 5ce83c19033..cb5df5ef2be 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -904,7 +904,10 @@ Object *copy_object(Object *ob) /* NT copy fluid sim setting memory */ if(obn->fluidsimSettings) { obn->fluidsimSettings = fluidsimSettingsCopy(ob->fluidsimSettings); - obn->fluidsimSettings->orgMesh = (Mesh *)obn->data; + /* copying might fail... */ + if(obn->fluidsimSettings) { + obn->fluidsimSettings->orgMesh = (Mesh *)obn->data; + } } obn->derivedDeform = NULL; diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index cedd631f7e2..339d0affd78 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -1461,8 +1461,7 @@ void softbody_bake(Object *ob) allqueue(REDRAWBUTSOBJECT, 0); } - -// NT store processed path & file prefix for fluidsim bake directory +// store processed path & file prefix for fluidsim bake directory void fluidsimFilesel(char *selection) { Object *ob = OBACT; @@ -1471,7 +1470,6 @@ void fluidsimFilesel(char *selection) char *srch, *srchSub, *srchExt, *lastFound; int isElbeemSurf = 0; - // check cfg? // make prefix strcpy(srcDir, selection); BLI_splitdirstring(srcDir, srcFile); @@ -1506,7 +1504,6 @@ void fluidsimFilesel(char *selection) } if(ob->fluidsimSettings) { - //strcpy(ob->fluidsimSettings->surfdataPath, selection); strcpy(ob->fluidsimSettings->surfdataPath, srcDir); //not necessary? strcat(ob->fluidsimSettings->surfdataPath, "/"); strcat(ob->fluidsimSettings->surfdataPath, prefix); @@ -1599,7 +1596,6 @@ void do_object_panels(unsigned short event) allqueue(REDRAWBUTSOBJECT, 0); allqueue(REDRAWVIEW3D, 0); break; - case B_FLUIDSIM_BAKE: ob= OBACT; /* write config files (currently no simulation) */ @@ -2521,6 +2517,7 @@ static void object_panel_particles(Object *ob) /* NT - Panel for fluidsim settings */ static void object_panel_fluidsim(Object *ob) { +#ifndef DISABLE_ELBEEM uiBlock *block; int yline = 160; const int lineHeight = 20; @@ -2567,7 +2564,6 @@ static void object_panel_fluidsim(Object *ob) elbeemEstimateMemreq(fss->resolutionxyz, ob->fluidsimSettings->bbSize[0],ob->fluidsimSettings->bbSize[1],ob->fluidsimSettings->bbSize[2], fss->maxRefine, memString); - //uiDefButBitS(block, TOG, 1, REDRAWBUTSOBJECT, "Advanced>>", 0,yline, 75,objHeight, &fss->show_advancedoptions, 0, 0, 0, 0, "Show advanced domain options."); uiBlockBeginAlign(block); uiDefButS(block, ROW, REDRAWBUTSOBJECT, "Std", 0,yline, 25,objHeight, &fss->show_advancedoptions, 16.0, 0, 20.0, 0, "Show standard domain options."); uiDefButS(block, ROW, REDRAWBUTSOBJECT, "Adv", 25,yline, 25,objHeight, &fss->show_advancedoptions, 16.0, 1, 20.0, 1, "Show advanced domain options."); @@ -2676,6 +2672,9 @@ static void object_panel_fluidsim(Object *ob) uiDefBut(block, LABEL, 0, "Tracer Particles:", 0,yline,200,objHeight, NULL, 0.0, 0, 0, 0, ""); uiDefButI(block, NUM, B_DIFF, "", 200, yline,100,objHeight, &fss->generateTracers, 0.0, 10000.0, 10,0, "Number of tracer particles to generate."); yline -= lineHeight; + uiDefBut(block, LABEL, 0, "Generate Particles:", 0,yline,200,objHeight, NULL, 0.0, 0, 0, 0, ""); + uiDefButF(block, NUM, B_DIFF, "", 200, yline,100,objHeight, &fss->generateParticles, 0.0, 10.0, 10,0, "Amount of particles to generate (0=off, 1=normal, >1=more)."); + yline -= lineHeight; uiDefBut(block, LABEL, 0, "Surface Smoothing:", 0,yline,200,objHeight, NULL, 0.0, 0, 0, 0, ""); uiDefButF(block, NUM, B_DIFF, "", 200, yline,100,objHeight, &fss->surfaceSmoothing, 0.0, 5.0, 10,0, "Amount of surface smoothing (0=off, 1=normal, >1=stronger smoothing)."); @@ -2798,6 +2797,7 @@ static void object_panel_fluidsim(Object *ob) uiDefBut(block, LABEL, 0, "Only Mesh Objects can participate", 0,yline,300,objHeight, NULL, 0.0, 0, 0, 0, ""); yline -= lineHeight; } +#endif // DISABLE_ELBEEM } void object_panels() diff --git a/source/blender/src/fluidsim.c b/source/blender/src/fluidsim.c index f88a6615143..c555aea654e 100644 --- a/source/blender/src/fluidsim.c +++ b/source/blender/src/fluidsim.c @@ -71,7 +71,7 @@ #include "BKE_DerivedMesh.h" #include "BKE_ipo.h" #include "LBM_fluidsim.h" -// TODO FIXME double elbeem.h in intern/extern... +// warning - double elbeem.h in intern/extern... #include "elbeem.h" #include "BLI_editVert.h" @@ -140,6 +140,11 @@ typedef struct { } fluidsimDerivedMesh; + +/* enable/disable overall compilation */ +#ifndef DISABLE_ELBEEM + + /* ********************** fluid sim settings struct functions ********************** */ /* allocates and initializes general main data */ @@ -1399,3 +1404,24 @@ void fluidsimBake(struct Object *ob) } +#else /* DISABLE_ELBEEM */ + +/* compile dummy functions for disabled fluid sim */ + +FluidsimSettings *fluidsimSettingsNew(struct Object *srcob) { + return NULL; +} + +void fluidsimSettingsFree(FluidsimSettings *fss) { +} + +FluidsimSettings* fluidsimSettingsCopy(FluidsimSettings *fss) { + return NULL; +} + +/* only compile dummy functions */ +void fluidsimBake(struct Object *ob) { +} + +#endif /* DISABLE_ELBEEM */ + diff --git a/tools/btools.py b/tools/btools.py index 6f3c8537c68..b3bb097a240 100755 --- a/tools/btools.py +++ b/tools/btools.py @@ -110,6 +110,7 @@ def SetupBufferedOutput( env ): def read_opts(cfg, args): localopts = Options.Options(cfg, args) localopts.AddOptions( + ('LCGDIR', 'The path to the CVS Lib folder, if you platform has it'), ('BF_DEBUG_LIBS', 'list of libraries to build with debug symbols'), ('BF_PYTHON', 'base path for python', ''), ('BF_PYTHON_VERSION', 'Python version to use', ''), @@ -118,7 +119,7 @@ def read_opts(cfg, args): ('BF_PYTHON_LIB', 'Python library', ''), ('BF_PYTHON_LIBPATH', 'Library path', ''), ('BF_PYTHON_LINKFLAGS', 'Python link flags', ''), - + ('BF_NO_ELBEEM', 'Disable Fluid Sim', 'false'), (BoolOption('WITH_BF_OPENAL', 'Use OpenAL if true', '')), ('BF_OPENAL', 'base path for OpenAL', ''), ('BF_OPENAL_INC', 'include path for python headers', ''), |