OSG  3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Shooter.h
Go to the documentation of this file.
1 /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
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
5  * (at your option) any later version. The full license is in LICENSE file
6  * included with this distribution, and on the openscenegraph.org website.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * OpenSceneGraph Public License for more details.
12 */
13 //osgParticle - Copyright (C) 2002 Marco Jez
14 
15 #ifndef OSGPARTICLE_SHOOTER
16 #define OSGPARTICLE_SHOOTER 1
17 
18 #include <osg/CopyOp>
19 #include <osg/Object>
20 
21 namespace osgParticle
22 {
23 
24  class Particle;
25 
29  class Shooter: public osg::Object
30  {
31  public:
32  inline Shooter();
33  inline Shooter(const Shooter& copy, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
34 
35  virtual const char* libraryName() const { return "osgParticle"; }
36  virtual const char* className() const { return "Shooter"; }
37  virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast<const Shooter *>(obj) != 0; }
38 
43  virtual void shoot(Particle* P) const = 0;
44 
45  protected:
46  virtual ~Shooter() {}
47  Shooter &operator=(const Shooter &) { return *this; }
48  };
49 
50  // INLINE FUNCTIONS
51 
53  : osg::Object()
54  {
55  }
56 
57  inline Shooter::Shooter(const Shooter& copy, const osg::CopyOp& copyop)
58  : osg::Object(copy, copyop)
59  {
60  }
61 
62 }
63 
64 #endif
virtual ~Shooter()
Definition: Shooter.h:46
virtual const char * className() const
Definition: Shooter.h:36
Shooter & operator=(const Shooter &)
Definition: Shooter.h:47
virtual void shoot(Particle *P) const =0
virtual const char * libraryName() const
Definition: Shooter.h:35
Definition: AlphaFunc.h:19
virtual bool isSameKindAs(const osg::Object *obj) const
Definition: Shooter.h:37