TuttleOFX  1
TuttleOFX/libraries/tuttle/src/tuttle/host/graph/ProcessVertexAtTime.hpp
Go to the documentation of this file.
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