-#pragma once\r
-#include "mof/stream/Manipulator.hpp"\r
-\r
-namespace mof{\r
-\r
- template< typename T >\r
- class Offset : public Manipulator< T >\r
- {\r
- \r
- public:\r
- typedef typename std::shared_ptr< Offset > Handler;\r
- \r
- virtual ~Offset( ){}\r
-\r
- virtual T value( FrameNumber frame ) const\r
- {\r
- if( m_offset + frame < 0)return m_pBody->value( 0 );\r
- else return m_pBody->value( frame + m_offset );\r
- }\r
-\r
-\r
- private:\r
- typename Manipulator<T>::Handler m_pBody;\r
- int m_offset;\r
-\r
-\r
- Offset( const typename Manipulator<T>::Handler& pBody , int offset )\r
- : m_pBody(pBody) , m_offset(offset) \r
- {\r
- }\r
-\r
- template<typename T > friend\r
- typename std::shared_ptr< Offset< T > > makeOffsetHandler\r
- (\r
- const typename Manipulator<T>::Handler& pBody ,\r
- int offset\r
- );\r
-\r
- };\r
-\r
-\r
- template< typename T >\r
- std::shared_ptr< Offset< T > > makeOffsetHandler\r
- (\r
- const typename Manipulator< T >::Handler& pBody ,\r
- int offset\r
- )\r
- {\r
- return typename Offset< T >::Handler(\r
- new Offset< T >( pBody , offset )\r
- );\r
- }\r
-\r
-\r
-} //namespace mof\r
-\r
+#pragma once
+#include "mof/stream/Manipulator.hpp"
+
+namespace mof{
+
+ template< typename T >
+ class Offset : public Manipulator< T >
+ {
+
+ public:
+ typedef typename std::shared_ptr< Offset > Handler;
+
+ virtual ~Offset( ){}
+
+ virtual T value( FrameNumber frame ) const
+ {
+ if( m_offset + frame < 0)return m_pBody->value( 0 );
+ else return m_pBody->value( frame + m_offset );
+ }
+
+
+ private:
+ typename Manipulator<T>::Handler m_pBody;
+ int m_offset;
+
+
+ Offset( const typename Manipulator<T>::Handler& pBody , int offset )
+ : m_pBody(pBody) , m_offset(offset)
+ {
+ }
+
+ template<typename T > friend
+ typename std::shared_ptr< Offset< T > > makeOffsetHandler
+ (
+ const typename Manipulator<T>::Handler& pBody ,
+ int offset
+ );
+
+ };
+
+
+ template< typename T >
+ std::shared_ptr< Offset< T > > makeOffsetHandler
+ (
+ const typename Manipulator< T >::Handler& pBody ,
+ int offset
+ )
+ {
+ return typename Offset< T >::Handler(
+ new Offset< T >( pBody , offset )
+ );
+ }
+
+
+} //namespace mof
+