diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2008-07-08 21:38:33 +0400 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2008-07-08 21:38:33 +0400 |
commit | 3bab1eba3a6c1cbf590d57cd10040491116077fa (patch) | |
tree | 305fdc7ec7fa16a6e3b0097e8c84bb2a8b100c79 /intern/elbeem | |
parent | 01e9635ef14de49e34dd0889c51dcb06799fa061 (diff) |
Introduced quality to GUI, not yet tested (WIP commit)
Diffstat (limited to 'intern/elbeem')
-rw-r--r-- | intern/elbeem/extern/elbeem.h | 1 | ||||
-rw-r--r-- | intern/elbeem/intern/elbeem.cpp | 2 | ||||
-rw-r--r-- | intern/elbeem/intern/ntl_geometryobject.cpp | 1 | ||||
-rw-r--r-- | intern/elbeem/intern/ntl_geometryobject.h | 5 | ||||
-rw-r--r-- | intern/elbeem/intern/solver_control.cpp | 3 |
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); |