Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorNils Thuerey <nils@thuerey.de>2006-08-22 15:18:00 +0400
committerNils Thuerey <nils@thuerey.de>2006-08-22 15:18:00 +0400
commitf21f3cb290e221e4b4610e43c17e9702b43a1cb5 (patch)
treee168253c66d3cc03dd83d3974168306bd5cd21ab /source
parent91c9917bc00c196ce03d3662b06443c4539bc87e (diff)
- modified patch #4681, for scons compiling
of the fluidsim can now be disabled with the flag: BF_NO_ELBEEM='true', e.g. for irix systems. (The number of ifdefs from the original patch was reduced, and the defines are now only necessary when elbeem is switched off.) - particle generation option is available again
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c12
-rw-r--r--source/blender/blenkernel/intern/effect.c22
-rw-r--r--source/blender/blenkernel/intern/object.c5
-rw-r--r--source/blender/src/buttons_object.c12
-rw-r--r--source/blender/src/fluidsim.c28
5 files changed, 60 insertions, 19 deletions
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 */
+