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'):
blendernogame = env.Alias('blendernogame', B.program_list)
Depends(blendernogame,installtarget)
-
Default(B.program_list)
Default(installtarget)
#!/usr/bin/python
+Import ('env')
+
SConscript(['SoundSystem/SConscript',
'string/SConscript',
'ghost/SConscript',
'decimation/SConscript',
'iksolver/SConscript',
'boolop/SConscript',
- 'elbeem/SConscript',
'opennl/SConscript'])
# NEW_CSG was intended for intern/csg, but
# 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:
short generateVertexVectors;
/* strength of surface smoothing */
float surfaceSmoothing;
+ // TODO add surf gen flags
/* global transformation to apply to fluidsim mesh */
float surfaceTrafo[4*4];
}
}
}
-
+
if (useDeform) {
if(do_ob_key(ob)) /* shape key makes deform verts */
deformedVerts = mesh_getVertexCos(me, &numVerts);
/* ************************* 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)
{
}
}
+#else // DISABLE_ELBEEM
+
+/* dummy for mesh_calc_modifiers */
+void loadFluidsimMesh(Object *srcob, int useRenderParams) {
+}
+
+#endif // DISABLE_ELBEEM
#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"
#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];
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)) {
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;
/* 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;
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;
char *srch, *srchSub, *srchExt, *lastFound;
int isElbeemSurf = 0;
- // check cfg?
// make prefix
strcpy(srcDir, selection);
BLI_splitdirstring(srcDir, srcFile);
}
if(ob->fluidsimSettings) {
- //strcpy(ob->fluidsimSettings->surfdataPath, selection);
strcpy(ob->fluidsimSettings->surfdataPath, srcDir);
//not necessary? strcat(ob->fluidsimSettings->surfdataPath, "/");
strcat(ob->fluidsimSettings->surfdataPath, prefix);
allqueue(REDRAWBUTSOBJECT, 0);
allqueue(REDRAWVIEW3D, 0);
break;
-
case B_FLUIDSIM_BAKE:
ob= OBACT;
/* write config files (currently no simulation) */
/* NT - Panel for fluidsim settings */
static void object_panel_fluidsim(Object *ob)
{
+#ifndef DISABLE_ELBEEM
uiBlock *block;
int yline = 160;
const int lineHeight = 20;
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.");
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).");
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()
#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"
} fluidsimDerivedMesh;
+
+/* enable/disable overall compilation */
+#ifndef DISABLE_ELBEEM
+
+
/* ********************** fluid sim settings struct functions ********************** */
/* allocates and initializes general main data */
}
+#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 */
+
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', ''),
('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', ''),