Assignments
Assignments
keyFrames.h
Go to the documentation of this file.
1#ifndef KEY_FILE_INCLUDED
2#define KEY_FILE_INCLUDED
3
4#include <vector>
5#include <string>
6#include <Util/geometry.h>
8
9namespace Ray
10{
12 template< typename DataType >
14 {
15 public:
17 virtual ~KeyFrameEvaluator( void );
18
20 virtual DataType evaluate( unsigned int dof , double t , int curveType ) = 0;
21 };
22
24 template< typename DataType >
26 {
27 template< typename _DataType > friend std::ostream &operator << ( std::ostream & , const KeyFrameData<_DataType> & );
28 template< typename _DataType > friend std::istream &operator >> ( std::istream & , KeyFrameData<_DataType> & );
29 template< typename _DataType , typename ParameterType > friend class KeyFrameParameters;
30
32 float _duration;
33
35 std::vector< std::string > _dofNames;
36
38 std::vector< std::vector< DataType > > _data;
39
41 std::vector< DataType > _currentValues;
42
45 public:
47 KeyFrameData( void );
48
50 ~KeyFrameData( void );
51
53 float duration( void ) const;
54
56 int keyframes( void ) const;
57
59 int dofs( void ) const;
60
62 const DataType &current( const std::string &dofName ) const;
63
65 template< typename ParameterType >
66 void setEvaluator( void );
67
69 void setCurrentValues( double t , int curveType );
70 };
71
73 template< typename DataType > std::ostream &operator << ( std::ostream &stream , const KeyFrameData< DataType > &keyFrameData );
74
76 template< typename DataType > std::istream &operator >> ( std::istream &stream , KeyFrameData< DataType > &keyFrameData );
77
80
89 template< typename DataType , typename ParameterType >
90 class KeyFrameParameters : public KeyFrameEvaluator< DataType >
91 {
93 std::vector< std::vector< ParameterType > > _parameters;
94 public:
97
99 // KeyFrameEvaluator methods //
101 DataType evaluate( unsigned int dof , double t , int curveType );
102 };
103}
104#include "keyFrames.inl"
105#endif // KEY_FILE_INCLUDED
Definition: keyFrames.h:26
std::vector< std::string > _dofNames
Definition: keyFrames.h:35
float _duration
Definition: keyFrames.h:32
KeyFrameEvaluator< DataType > * _keyFrameEvaluator
Definition: keyFrames.h:44
const DataType & current(const std::string &dofName) const
Definition: keyFrames.inl:28
std::vector< DataType > _currentValues
Definition: keyFrames.h:41
friend std::istream & operator>>(std::istream &, KeyFrameData< _DataType > &)
~KeyFrameData(void)
Definition: keyFrames.inl:16
friend std::ostream & operator<<(std::ostream &, const KeyFrameData< _DataType > &)
void setCurrentValues(double t, int curveType)
Definition: keyFrames.inl:44
float duration(void) const
Definition: keyFrames.inl:19
std::vector< std::vector< DataType > > _data
Definition: keyFrames.h:38
KeyFrameData(void)
Definition: keyFrames.inl:13
int dofs(void) const
Definition: keyFrames.inl:25
int keyframes(void) const
Definition: keyFrames.inl:22
void setEvaluator(void)
Definition: keyFrames.inl:37
Definition: keyFrames.h:14
virtual ~KeyFrameEvaluator(void)
Definition: keyFrames.inl:7
virtual DataType evaluate(unsigned int dof, double t, int curveType)=0
Definition: keyFrames.h:91
DataType evaluate(unsigned int dof, double t, int curveType)
Definition: keyFrames.inl:113
std::vector< std::vector< ParameterType > > _parameters
Definition: keyFrames.h:93
KeyFrameParameters(const KeyFrameData< DataType > &data)
Definition: keyFrames.inl:96
Definition: box.h:7
KeyFrameData< Util::Matrix4D > KeyFrameMatrices
Definition: keyFrames.h:79
std::istream & operator>>(std::istream &stream, Camera &camera)
Definition: camera.cpp:15
std::ostream & operator<<(std::ostream &stream, const Camera &camera)
Definition: camera.cpp:25