TuttleOFX
1
|
00001 #ifndef _TUTTLE_HOST_PROCESSVERTEXATTIME_HPP_ 00002 #define _TUTTLE_HOST_PROCESSVERTEXATTIME_HPP_ 00003 00004 #include "IVertex.hpp" 00005 #include "ProcessVertex.hpp" 00006 #include "ProcessVertexData.hpp" 00007 #include "ProcessVertexAtTimeData.hpp" 00008 00009 #include <tuttle/host/NodeAtTimeKey.hpp> 00010 00011 #include <ostream> 00012 #include <string> 00013 00014 namespace tuttle { 00015 namespace host { 00016 namespace graph { 00017 00018 class ProcessVertexAtTime : public IVertex 00019 { 00020 public: 00021 typedef NodeAtTimeKey Key; 00022 00023 public: 00024 ProcessVertexAtTime( ); 00025 ProcessVertexAtTime( const ProcessVertex& v, const OfxTime t ); 00026 ProcessVertexAtTime( const ProcessVertexAtTime& other ); 00027 virtual ~ProcessVertexAtTime( ); 00028 00029 ProcessVertexAtTime& operator=( const ProcessVertexAtTime& v ) 00030 { 00031 IVertex::operator=(v); 00032 _data = v._data; 00033 return *this; 00034 } 00035 00036 Key getKey() const 00037 { 00038 return Key(_clipName, _data._time); 00039 } 00040 00041 const ProcessVertexData& getProcessData() const { return *_data._nodeData; } 00042 ProcessVertexAtTimeData& getProcessDataAtTime() { return _data; } 00043 const ProcessVertexAtTimeData& getProcessDataAtTime() const { return _data; } 00044 00045 std::ostream& exportDotDebug( std::ostream& os ) const; 00046 friend std::ostream& operator<<( std::ostream& os, const ProcessVertexAtTime& v ); 00047 friend std::ostream& operator<<( std::ostream& os, const Key& v ); 00048 00049 public: 00050 std::string _clipName; 00051 ProcessVertexAtTimeData _data; 00052 00053 }; 00054 00055 std::ostream& operator<<( std::ostream& os, const ProcessVertexAtTime& v ); 00056 00057 } 00058 } 00059 } 00060 00061 namespace boost { 00062 inline std::size_t hash_value( const tuttle::host::graph::ProcessVertexAtTime::Key& k ) 00063 { return k.getHash(); } 00064 } 00065 00066 #endif 00067