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
diff options
context:
space:
mode:
-rw-r--r--intern/elbeem/extern/elbeem.h3
-rw-r--r--intern/elbeem/intern/elbeem.cpp5
-rw-r--r--intern/elbeem/intern/ntl_geometryobject.h11
-rw-r--r--intern/elbeem/intern/solver_control.cpp3
-rw-r--r--source/blender/makesdna/DNA_object_fluidsim.h3
-rw-r--r--source/blender/src/buttons_object.c9
-rw-r--r--source/blender/src/fluidsim.c9
7 files changed, 36 insertions, 7 deletions
diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h
index 5c1fc644827..b8752efed80 100644
--- a/intern/elbeem/extern/elbeem.h
+++ b/intern/elbeem/extern/elbeem.h
@@ -160,6 +160,9 @@ typedef struct elbeemMesh {
const char *name;
/* fluid control settings */
+ float cpsTimeStart;
+ float cpsTimeEnd;
+
// TODO dg: change to channels
float attractforceStrength;
float attractforceRadius;
diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp
index 1d8f92b0744..4517e20d89c 100644
--- a/intern/elbeem/intern/elbeem.cpp
+++ b/intern/elbeem/intern/elbeem.cpp
@@ -161,6 +161,9 @@ void elbeemResetMesh(elbeemMesh *mesh) {
mesh->name = "[unnamed]";
/* fluid control settings */
+ mesh->cpsTimeStart = 0;
+ mesh->cpsTimeEnd = 0;
+
mesh->attractforceStrength = 0;
mesh->attractforceRadius = 0;
mesh->velocityforceStrength = 0;
@@ -206,6 +209,8 @@ int elbeemAddMesh(elbeemMesh *mesh) {
obj->setGeoImpactFactor(mesh->obstacleImpactFactor);
/* fluid control features */
+ obj->setCpsTimeStart(mesh->cpsTimeStart);
+ obj->setCpsTimeEnd(mesh->cpsTimeEnd);
obj->setAttractForceStrength(mesh->attractforceStrength);
obj->setAttractForceRadius(mesh->attractforceRadius);
obj->setVelocityForceStrength(mesh->velocityforceStrength);
diff --git a/intern/elbeem/intern/ntl_geometryobject.h b/intern/elbeem/intern/ntl_geometryobject.h
index fd7455a4787..6076610ea0f 100644
--- a/intern/elbeem/intern/ntl_geometryobject.h
+++ b/intern/elbeem/intern/ntl_geometryobject.h
@@ -102,6 +102,14 @@ class ntlGeometryObject : public ntlGeometryClass
/* fluid control features */
/****************************************/
/*! Set/get the particle control set attract force strength */
+ inline float getCpsTimeStart() const { return mCpsTimeStart; }
+ inline void setCpsTimeStart(float set) { mCpsTimeStart=set; }
+
+ /*! Set/get the particle control set attract force strength */
+ inline float getCpsTimeEnd() const { return mCpsTimeEnd; }
+ inline void setCpsTimeEnd(float set) { mCpsTimeEnd=set; }
+
+ /*! Set/get the particle control set attract force strength */
inline float getAttractForceStrength() const { return mAttractforceStrength; }
inline void setAttractForceStrength(float set) { mAttractforceStrength=set; }
@@ -225,6 +233,9 @@ class ntlGeometryObject : public ntlGeometryClass
AnimChannel<float> mcGeoActive;
/* fluid control settings */
+ float mCpsTimeStart;
+ float mCpsTimeEnd
+ ;
// TODO dg: change to channels
float mAttractforceStrength;
float mAttractforceRadius;
diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp
index e4c5158b615..267a1c5268c 100644
--- a/intern/elbeem/intern/solver_control.cpp
+++ b/intern/elbeem/intern/solver_control.cpp
@@ -239,6 +239,9 @@ LbmFsgrSolver::initCpdata()
cset->mcForceVel = AnimChannel<float>(obj->getVelocityForceStrength());
cset->mcRadiusVel = AnimChannel<float>(obj->getVelocityForceRadius());
+ cset->mCparts->setCPSTimeStart(obj->getCpsTimeStart());
+ cset->mCparts->setCPSTimeEnd(obj->getCpsTimeEnd());
+
// this value can be left at 0.5:
cset->mCparts->setCPSMvmWeightFac(0.5);
diff --git a/source/blender/makesdna/DNA_object_fluidsim.h b/source/blender/makesdna/DNA_object_fluidsim.h
index 51592d76ec4..0c0eff0620e 100644
--- a/source/blender/makesdna/DNA_object_fluidsim.h
+++ b/source/blender/makesdna/DNA_object_fluidsim.h
@@ -119,6 +119,9 @@ typedef struct FluidsimSettings {
struct MVert *meshSurfNormals;
/* Fluid control settings */
+ float cpsTimeStart;
+ float cpsTimeEnd;
+
float attractforceStrength;
float attractforceRadius;
float velocityforceStrength;
diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c
index 9967e69fe27..3a0c9e8514d 100644
--- a/source/blender/src/buttons_object.c
+++ b/source/blender/src/buttons_object.c
@@ -5216,19 +5216,18 @@ static void object_panel_fluidsim(Object *ob)
}
else if(fss->type == OB_FLUIDSIM_CONTROL) {
- uiDefBut(block, LABEL, 0, "Attraction force:", 0,yline,300,20, NULL, 0.0, 0, 0, 0, "");
+ uiDefButF(block, NUM, B_DIFF, "Time Sta:", 0, yline,150,20, &fss->cpsTimeStart, 0.0, 2.0, 10,0, "Specifies time when the control particles are activated.");
+ uiDefButF(block, NUM, B_DIFF, "Time End:", 150, yline,150,20, &fss->cpsTimeEnd, 0.0, 2.0, 10,0, "Specifies time when the control particles are deactivated.");
yline -= lineHeight;
+ uiDefBut(block, LABEL, 0, "Attraction force:", 0,yline,300,20, NULL, 0.0, 0, 0, 0, "");
+ yline -= lineHeight;
uiDefButF(block, NUM, B_DIFF, "Strength:", 0, yline,150,20, &fss->attractforceStrength, 0.0, 2.0, 10,0, "");
uiDefButF(block, NUM, B_DIFF, "Radius:", 150, yline,150,20, &fss->attractforceRadius, 0.0, 2.0, 10,0, "");
-
yline -= lineHeight;
-
uiDefBut(block, LABEL, 0, "Velocity force:", 0,yline,300,20, NULL, 0.0, 0, 0, 0, "");
-
yline -= lineHeight;
-
uiDefButF(block, NUM, B_DIFF, "Strength:", 0, yline,150,20, &fss->velocityforceStrength, 0.0, 2.0, 10,0, "");
uiDefButF(block, NUM, B_DIFF, "Radius:", 150, yline,150,20, &fss->velocityforceRadius, 0.0, 2.0, 10,0, "");
}
diff --git a/source/blender/src/fluidsim.c b/source/blender/src/fluidsim.c
index 768acc18819..7298c767e45 100644
--- a/source/blender/src/fluidsim.c
+++ b/source/blender/src/fluidsim.c
@@ -219,6 +219,8 @@ FluidsimSettings *fluidsimSettingsNew(struct Object *srcob)
fss->attractforceRadius = 0.75;
fss->velocityforceStrength = 0.2;
fss->velocityforceRadius = 0.75;
+ fss->cpsTimeStart = fss->animStart;
+ fss->cpsTimeEnd = fss->animEnd;
return fss;
}
@@ -1026,17 +1028,20 @@ void fluidsimBake(struct Object *ob)
fsmesh.obstaclePartslip = obit->fluidsimSettings->partSlipValue;
fsmesh.volumeInitType = obit->fluidsimSettings->volumeInitType;
fsmesh.obstacleImpactFactor = obit->fluidsimSettings->surfaceSmoothing; // misused value
-
+ /*
if(fsmesh.type == OB_FLUIDSIM_CONTROL)
{
// control fluids will get exported as whole
deform = 1;
+ fsmesh.cpsTimeStart = obit->fluidsimSettings->cpsTimeStart;
+ fsmesh.cpsTimeEnd = obit->fluidsimSettings->cpsTimeEnd;
+
fsmesh.attractforceStrength = obit->fluidsimSettings->attractforceStrength;
fsmesh.attractforceRadius = obit->fluidsimSettings->attractforceRadius;
fsmesh.velocityforceStrength = obit->fluidsimSettings->velocityforceStrength;
fsmesh.velocityforceRadius = obit->fluidsimSettings->velocityforceRadius;
- }
+ }*/
// animated meshes
if(deform) {