From d3745d70a507bef4dfeadec2d8bd8947e5f3d6c4 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 7 Jul 2008 09:23:12 +0000 Subject: Another addition of time values, yet some things to follow --- intern/elbeem/extern/elbeem.h | 3 +++ intern/elbeem/intern/elbeem.cpp | 5 +++++ intern/elbeem/intern/ntl_geometryobject.h | 11 +++++++++++ intern/elbeem/intern/solver_control.cpp | 3 +++ 4 files changed, 22 insertions(+) (limited to 'intern/elbeem') 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 @@ -101,6 +101,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 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(obj->getVelocityForceStrength()); cset->mcRadiusVel = AnimChannel(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); -- cgit v1.2.3