private:
static osg::Vec3 gravity;
static osg::Vec3 wind;
- const SGPropertyNode* modelRoot;
+ SGConstPropertyNode_ptr modelRoot;
static SGConstPropertyNode_ptr enabledNode;
static bool enabled;
};
public:
Particles();
- static osg::Group * appendParticles(const SGPropertyNode* configNode, SGPropertyNode* modelRoot, const osgDB::ReaderWriter::Options* options);
+ static osg::Group * appendParticles(const SGPropertyNode* configNode, SGPropertyNode* modelRoot, const osgDB::Options* options);
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv);
* magnitude is the velocity in meters per second.
*/
static void setWindVector(const osg::Vec3& wind) { _wind = wind; }
+ static void setWindFrom(const double from_deg, const double speed_kt) {
+ double map_rad = -from_deg * SG_DEGREES_TO_RADIANS;
+ double speed_mps = speed_kt * SG_KT_TO_MPS;
+ _wind[0] = cos(map_rad) * speed_mps;
+ _wind[1] = sin(map_rad) * speed_mps;
+ _wind[2] = 0.0;
+ }
static const osg::Vec3& getWindVector() { return _wind; }
protected:
float shooterExtraRange;