- Timestamp:
- 03/21/12 18:36:20 (14 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/include/osgParticle/AngularDampingOperator
r12139 r13041 1 /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2010 Robert Osfield 1 /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2010 Robert Osfield 2 2 * 3 * This library is open source and may be redistributed and/or modified under 4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or 3 * This library is open source and may be redistributed and/or modified under 4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or 5 5 * (at your option) any later version. The full license is in LICENSE file 6 6 * included with this distribution, and on the openscenegraph.org website. 7 * 7 * 8 8 * This library is distributed in the hope that it will be useful, 9 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 11 * OpenSceneGraph Public License for more details. 12 12 */ … … 31 31 AngularDampingOperator() : Operator(), _cutoffLow(0.0f), _cutoffHigh(FLT_MAX) 32 32 {} 33 33 34 34 AngularDampingOperator( const AngularDampingOperator& copy, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY ) 35 35 : Operator(copy, copyop), _damping(copy._damping), 36 36 _cutoffLow(copy._cutoffLow), _cutoffHigh(copy._cutoffHigh) 37 37 {} 38 38 39 39 META_Object( osgParticle, AngularDampingOperator ); 40 40 41 41 /// Set the damping factors 42 42 void setDamping( float x, float y, float z ) { _damping.set(x, y, z); } 43 43 void setDamping( const osg::Vec3& damping ) { _damping = damping; } 44 44 45 45 /// Set the damping factors to one value 46 46 void setDamping( float x ) { _damping.set(x, x, x); } 47 47 48 48 /// Get the damping factors 49 49 void getDamping( float& x, float& y, float& z ) const 50 50 { x = _damping.x(); y = _damping.y(); z = _damping.z(); } 51 51 52 52 const osg::Vec3& getDamping() const { return _damping; } 53 53 54 54 /// Set the velocity cutoff factors 55 55 void setCutoff( float low, float high ) { _cutoffLow = low; _cutoffHigh = high; } 56 56 void setCutoffLow( float low ) { _cutoffLow = low; } 57 57 void setCutoffHigh( float low ) { _cutoffHigh = low; } 58 58 59 59 /// Get the velocity cutoff factors 60 60 void getCutoff( float& low, float& high ) const { low = _cutoffLow; high = _cutoffHigh; } 61 61 float getCutoffLow() const { return _cutoffLow; } 62 62 float getCutoffHigh() const { return _cutoffHigh; } 63 63 64 64 /// Apply the acceleration to a particle. Do not call this method manually. 65 65 inline void operate( Particle* P, double dt ); 66 66 67 67 protected: 68 68 virtual ~AngularDampingOperator() {} 69 69 AngularDampingOperator& operator=( const AngularDampingOperator& ) { return *this; } 70 70 71 71 osg::Vec3 _damping; 72 72 float _cutoffLow;
