File: CameraPathProperty.h

package info (click to toggle)
openscenegraph 3.2.3%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 32,820 kB
  • ctags: 34,610
  • sloc: cpp: 370,040; ansic: 9,071; java: 1,020; yacc: 548; objc: 288; makefile: 285; xml: 155; lex: 151
file content (46 lines) | stat: -rw-r--r-- 1,280 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#ifndef CAMERAPATHPROPERTY_H
#define CAMERAPATHPROPERTY_H

#include <osg/AnimationPath>

#include "UpdateProperty.h"

namespace gsc
{

class CameraPathProperty : public gsc::UpdateProperty
{
public:

    CameraPathProperty() {}
    CameraPathProperty(const std::string& filename) { setAnimationPathFileName(filename); }
    CameraPathProperty(const CameraPathProperty& cpp, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY) {}
 
    META_Object(gsc, CameraPathProperty);

    void setAnimationPathFileName(const std::string& filename) { _filename = filename; loadAnimationPath(); }
    const std::string& getAnimationPathFileName() const { return _filename; }

    void setAnimationPath(osg::AnimationPath* ap) { _animationPath = ap; }
    osg::AnimationPath* getAnimationPath() { return _animationPath.get(); }
    const osg::AnimationPath* getAnimationPath() const { return _animationPath.get(); }

    bool getTimeRange(double& startTime, double& endTime) const;

    void resetTimeRange(double startTime, double endTime);

    virtual void update(osgViewer::View* view);

protected:

    virtual ~CameraPathProperty() {}

    void loadAnimationPath();

    std::string                         _filename;
    osg::ref_ptr<osg::AnimationPath>    _animationPath;
};

}

#endif