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:
authorDaniel Genrich <daniel.genrich@gmx.net>2008-07-08 21:38:33 +0400
committerDaniel Genrich <daniel.genrich@gmx.net>2008-07-08 21:38:33 +0400
commit3bab1eba3a6c1cbf590d57cd10040491116077fa (patch)
tree305fdc7ec7fa16a6e3b0097e8c84bb2a8b100c79 /intern/elbeem
parent01e9635ef14de49e34dd0889c51dcb06799fa061 (diff)
Introduced quality to GUI, not yet tested (WIP commit)
Diffstat (limited to 'intern/elbeem')
-rw-r--r--intern/elbeem/extern/elbeem.h1
-rw-r--r--intern/elbeem/intern/elbeem.cpp2
-rw-r--r--intern/elbeem/intern/ntl_geometryobject.cpp1
-rw-r--r--intern/elbeem/intern/ntl_geometryobject.h5
-rw-r--r--intern/elbeem/intern/solver_control.cpp3
5 files changed, 12 insertions, 0 deletions
diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h
index 5370196ff4a..2cee22a62a4 100644
--- a/intern/elbeem/extern/elbeem.h
+++ b/intern/elbeem/extern/elbeem.h
@@ -162,6 +162,7 @@ typedef struct elbeemMesh {
/* fluid control settings */
float cpsTimeStart;
float cpsTimeEnd;
+ float cpsQuality;
int channelSizeAttractforceStrength;
float *channelAttractforceStrength;
diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp
index 00fc9ef6854..0deed5082b0 100644
--- a/intern/elbeem/intern/elbeem.cpp
+++ b/intern/elbeem/intern/elbeem.cpp
@@ -163,6 +163,7 @@ void elbeemResetMesh(elbeemMesh *mesh) {
/* fluid control settings */
mesh->cpsTimeStart = 0;
mesh->cpsTimeEnd = 0;
+ mesh->cpsQuality = 0;
mesh->channelSizeAttractforceStrength = 0;
mesh->channelAttractforceStrength = NULL;
@@ -215,6 +216,7 @@ int elbeemAddMesh(elbeemMesh *mesh) {
/* fluid control features */
obj->setCpsTimeStart(mesh->cpsTimeStart);
obj->setCpsTimeEnd(mesh->cpsTimeEnd);
+ obj->setCpsQuality(mesh->cpsQuality);
if((mesh->volumeInitType<VOLUMEINIT_VOLUME)||(mesh->volumeInitType>VOLUMEINIT_BOTH)) mesh->volumeInitType = VOLUMEINIT_VOLUME;
obj->setVolumeInit(mesh->volumeInitType);
diff --git a/intern/elbeem/intern/ntl_geometryobject.cpp b/intern/elbeem/intern/ntl_geometryobject.cpp
index 32433df34b3..c7a222af3e5 100644
--- a/intern/elbeem/intern/ntl_geometryobject.cpp
+++ b/intern/elbeem/intern/ntl_geometryobject.cpp
@@ -42,6 +42,7 @@ ntlGeometryObject::ntlGeometryObject() :
mTriangleDivs1(), mTriangleDivs2(), mTriangleDivs3(),
mMovPntsInited(-100.0), mMaxMovPnt(-1),
mcGeoActive(1.),
+ mCpsTimeStart(0.), mCpsTimeEnd(1.0), mCpsQuality(10.),
mcAttrFStr(0.),mcAttrFRad(0.), mcVelFStr(0.), mcVelFRad(0.)
{
};
diff --git a/intern/elbeem/intern/ntl_geometryobject.h b/intern/elbeem/intern/ntl_geometryobject.h
index 436e511ea79..666798385f6 100644
--- a/intern/elbeem/intern/ntl_geometryobject.h
+++ b/intern/elbeem/intern/ntl_geometryobject.h
@@ -109,6 +109,10 @@ class ntlGeometryObject : public ntlGeometryClass
inline float getCpsTimeEnd() const { return mCpsTimeEnd; }
inline void setCpsTimeEnd(float set) { mCpsTimeEnd=set; }
+ /*! Set/get the particle control set quality */
+ inline float getCpsQuality() const { return mCpsQuality; }
+ inline void setCpsQuality(float set) { mCpsQuality=set; }
+
inline AnimChannel<float> getCpsAttrFStr() const { return mcAttrFStr; }
inline AnimChannel<float> getCpsAttrFRad() const { return mcAttrFRad; }
inline AnimChannel<float> getCpsVelFStr() const { return mcVelFStr; }
@@ -228,6 +232,7 @@ class ntlGeometryObject : public ntlGeometryClass
/* fluid control settings */
float mCpsTimeStart;
float mCpsTimeEnd;
+ float mCpsQuality;
AnimChannel<float> mcAttrFStr, mcAttrFRad, mcVelFStr, mcVelFRad;
public:
diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp
index bda464f56d6..3dc9b700ccb 100644
--- a/intern/elbeem/intern/solver_control.cpp
+++ b/intern/elbeem/intern/solver_control.cpp
@@ -242,6 +242,9 @@ LbmFsgrSolver::initCpdata()
cset->mCparts->setCPSTimeStart(obj->getCpsTimeStart());
cset->mCparts->setCPSTimeEnd(obj->getCpsTimeEnd());
+ if(obj->getCpsQuality() > LBM_EPSILON)
+ cset->mCparts->setCPSWith(1.0 / obj->getCpsQuality());
+
// this value can be left at 0.5:
cset->mCparts->setCPSMvmWeightFac(0.5);