Changeset 3970
- Timestamp:
- 04/04/05 22:25:57
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
OpenSceneGraph/trunk/include/osgParticle/FluidProgram
r3957 r3970 42 42 { 43 43 _viscosity = v; 44 _ A= 6 * osg::PI * _viscosity;44 _viscosityCoefficient = 6 * osg::PI * _viscosity; 45 45 } 46 46 … … 52 52 { 53 53 _density = d; 54 _ B= 0.2f * osg::PI * _density;54 _densityCoefficeint = 0.2f * osg::PI * _density; 55 55 } 56 56 … … 66 66 67 67 /// Set the acceleration vector. 68 inline void setAcceleration(const osg::Vec3& v) { _ acceleration = v; }68 inline void setAcceleration(const osg::Vec3& v) { _viscosityCoefficientcceleration = v; } 69 69 70 70 /// Get the acceleration vector. 71 inline const osg::Vec3& getAcceleration() const { return _ acceleration; }71 inline const osg::Vec3& getAcceleration() const { return _viscosityCoefficientcceleration; } 72 72 73 73 /** Set the acceleration vector to the gravity on earth (0, 0, -9.81). 74 74 The acceleration will be multiplied by the <CODE>scale</CODE> parameter. 75 75 */ 76 inline void setToGravity(float scale = 1.0f) { _ acceleration.set(0, 0, -9.81f*scale); }76 inline void setToGravity(float scale = 1.0f) { _viscosityCoefficientcceleration.set(0, 0, -9.81f*scale); } 77 77 78 78 /// Set the fluid parameters as for air (20°C temperature). … … 100 100 virtual void execute(double dt); 101 101 102 osg::Vec3 _ acceleration;102 osg::Vec3 _viscosityCoefficientcceleration; 103 103 float _viscosity; 104 104 float _density; 105 105 osg::Vec3 _wind; 106 106 107 float _ A;108 float _ B;107 float _viscosityCoefficient; 108 float _densityCoefficeint; 109 109 }; 110 110 OpenSceneGraph/trunk/src/osgParticle/FluidProgram.cpp
r3957 r3970 9 9 osgParticle::FluidProgram::FluidProgram(const FluidProgram& copy, const osg::CopyOp& copyop): 10 10 Program(copy, copyop), 11 _ acceleration(copy._acceleration),11 _viscosityCoefficientcceleration(copy._viscosityCoefficientcceleration), 12 12 _viscosity(copy._viscosity), 13 13 _density(copy._density), 14 14 _wind(copy._wind), 15 _ A(copy._A),16 _ B(copy._B)15 _viscosityCoefficient(copy._viscosityCoefficient), 16 _densityCoefficeint(copy._densityCoefficeint) 17 17 { 18 18 } … … 33 33 34 34 // compute force due to gravity + boyancy of displacing the fluid that the particle is emersed in. 35 osg::Vec3 force = _ acceleration * (particle->getMass() - _density*Volume);35 osg::Vec3 force = _viscosityCoefficientcceleration * (particle->getMass() - _density*Volume); 36 36 37 37 // compute force due to friction 38 38 osg::Vec3 relative_wind = particle->getVelocity()-_wind; 39 force -= relative_wind * Area * (_ A + _B*relative_wind.length());39 force -= relative_wind * Area * (_viscosityCoefficient + _densityCoefficeint*relative_wind.length()); 40 40 41 41 // divide force by mass to get acceleration.
