TuttleOFX
1
|
#include <INode.hpp>
Public Types | |
enum | ENodeType { eNodeTypeUnknown, eNodeTypeImageEffect, eNodeTypeParam, eNodeTypeGraph, eNodeTypeBuffer } |
typedef INode | This |
typedef std::set< OfxTime > | TimesSet |
typedef std::map< std::string, TimesSet > | ClipTimesSetMap |
Public Member Functions | |
INode () | |
INode (const INode &e) | |
virtual | ~INode ()=0 |
virtual INode * | clone () const =0 |
virtual bool | operator== (const INode &) const =0 |
virtual const std::string & | getName () const =0 |
virtual void | setName (const std::string &name)=0 |
virtual const ENodeType | getNodeType () const =0 |
ImageEffectNode & | asImageEffectNode () |
const ImageEffectNode & | asImageEffectNode () const |
virtual std::vector< int > | getVersion () const =0 |
std::string | getVersionStr () const |
virtual std::string | getLabel () const =0 |
virtual const ofx::property::OfxhSet & | getProperties () const =0 |
virtual ofx::property::OfxhSet & | getEditableProperties ()=0 |
virtual attribute::Attribute & | getAttribute (const std::string &name)=0 |
const attribute::Attribute & | getAttribute (const std::string &name) const |
virtual attribute::Attribute & | getSingleInputAttribute ()=0 |
virtual const attribute::Attribute & | getSingleInputAttribute () const =0 |
virtual std::size_t | getNbParams () const =0 |
virtual const ofx::attribute::OfxhParam & | getParam (const std::string &name) const =0 |
virtual ofx::attribute::OfxhParam & | getParam (const std::string &name)=0 |
virtual const ofx::attribute::OfxhParam & | getParamByScriptName (const std::string &name, const bool acceptPartialName=false) const =0 |
virtual ofx::attribute::OfxhParam & | getParamByScriptName (const std::string &name, const bool acceptPartialName=false)=0 |
virtual const ofx::attribute::OfxhParam & | getParam (const std::size_t index) const =0 |
virtual ofx::attribute::OfxhParam & | getParam (const std::size_t index)=0 |
virtual attribute::ClipImage & | getClip (const std::string &name, const bool acceptPartialName=false)=0 |
virtual const attribute::ClipImage & | getClip (const std::string &name, const bool acceptPartialName=false) const =0 |
attribute::ClipImage & | getOutputClip () |
const attribute::ClipImage & | getOutputClip () const |
virtual ofx::attribute::OfxhParamSet & | getParamSet ()=0 |
virtual const ofx::attribute::OfxhParamSet & | getParamSet () const =0 |
virtual ofx::attribute::OfxhClipImageSet & | getClipImageSet ()=0 |
virtual const ofx::attribute::OfxhClipImageSet & | getClipImageSet () const =0 |
virtual std::size_t | getLocalHashAtTime (const OfxTime time) const =0 |
virtual void | connect (const INode &, attribute::Attribute &)=0 |
virtual void | setup1 ()=0 |
virtual void | setup2_reverse ()=0 |
virtual void | setup3 ()=0 |
virtual OfxRangeD | computeTimeDomain ()=0 |
virtual OfxRangeD | getTimeDomain () const =0 |
virtual void | beginSequence (graph::ProcessVertexData &processData)=0 |
Begin of the a new frame range to process. Initilize this node. | |
virtual ClipTimesSetMap | getTimesNeeded (const OfxTime time) const =0 |
Asks the plugin all times it needs for each of it's input clips. | |
virtual void | preProcess1 (graph::ProcessVertexAtTimeData &processData) |
Initialization pass to propagate informations from inputs to outputs. | |
virtual void | preProcess2_reverse (graph::ProcessVertexAtTimeData &processData) |
Initialization pass to propagate informations from outputs to inputs. | |
virtual bool | isIdentity (const graph::ProcessVertexAtTimeData &processData, std::string &clip, OfxTime &time) const =0 |
The node can declare to be an identity operation. In this case, the node is not processed and the rendering engine direcly use the indicated input clip at a particular time. | |
virtual void | preProcess_infos (const graph::ProcessVertexAtTimeData &processData, const OfxTime time, graph::ProcessVertexAtTimeInfo &nodeInfos) const =0 |
Fill ProcessInfo to compute statistics for the current process, like memory used by this node, by all input nodes, etc. | |
virtual void | process (graph::ProcessVertexAtTimeData &processData)=0 |
Process this node. All inputs are compute. | |
virtual void | postProcess (graph::ProcessVertexAtTimeData &processData)=0 |
The process of all nodes is done for one frame, now finalize this node. | |
virtual void | endSequence (graph::ProcessVertexData &processData)=0 |
End of the whole frame range process, now finalize this node. | |
virtual std::ostream & | print (std::ostream &os) const =0 |
void | setProcessData (Data *data) |
void | setProcessDataAtTime (DataAtTime *dataAtTime) |
void | clearProcessDataAtTime () |
Data & | getData () |
const Data & | getData () const |
bool | hasData (const OfxTime time) const |
const DataAtTime & | getData (const OfxTime time) const |
const DataAtTime & | getFirstData () const |
const DataAtTime & | getLastData () const |
DataAtTime & | getData (const OfxTime time) |
DataAtTime & | getFirstData () |
DataAtTime & | getLastData () |
Protected Types | |
typedef graph::ProcessVertexData | Data |
typedef graph::ProcessVertexAtTimeData | DataAtTime |
typedef std::map< OfxTime, DataAtTime * > | DataAtTimeMap |
Protected Attributes | |
Data * | _data |
link to external datas | |
DataAtTimeMap | _dataAtTime |
link to external datas at each time | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const This &v) |
typedef std::map<std::string, TimesSet> tuttle::host::INode::ClipTimesSetMap |
typedef graph::ProcessVertexData tuttle::host::INode::Data [protected] |
typedef graph::ProcessVertexAtTimeData tuttle::host::INode::DataAtTime [protected] |
typedef std::map<OfxTime,DataAtTime*> tuttle::host::INode::DataAtTimeMap [protected] |
typedef INode tuttle::host::INode::This |
Reimplemented in tuttle::host::ImageEffectNode.
typedef std::set<OfxTime> tuttle::host::INode::TimesSet |
ImageEffectNode & tuttle::host::INode::asImageEffectNode | ( | ) |
Definition at line 17 of file INode.cpp.
Referenced by tuttle::host::attribute::ClipImage::fetchRegionOfDefinition(), tuttle::host::Graph::getNodesByContext(), tuttle::host::Graph::getNodesByPlugin(), tuttle::host::attribute::ClipImage::getUnmappedFrameRate(), tuttle::host::ImageEffectNode::maximizeBitDepthFromReadsToWrites(), and tuttle::host::ImageEffectNode::maximizeBitDepthFromWritesToReads().
const ImageEffectNode & tuttle::host::INode::asImageEffectNode | ( | ) | const |
virtual void tuttle::host::INode::beginSequence | ( | graph::ProcessVertexData & | processData | ) | [pure virtual] |
Begin of the a new frame range to process. Initilize this node.
[in] | processData |
Implemented in tuttle::host::ImageEffectNode.
void tuttle::host::INode::clearProcessDataAtTime | ( | ) |
Definition at line 49 of file INode.cpp.
References _dataAtTime.
Referenced by tuttle::host::graph::ProcessGraph::processAtTime().
virtual INode* tuttle::host::INode::clone | ( | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by tuttle::host::new_clone(), and tuttle::host::graph::ProcessGraph::relink().
virtual OfxRangeD tuttle::host::INode::computeTimeDomain | ( | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual void tuttle::host::INode::connect | ( | const INode & | , |
attribute::Attribute & | |||
) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by tuttle::host::graph::connectClips().
virtual void tuttle::host::INode::endSequence | ( | graph::ProcessVertexData & | processData | ) | [pure virtual] |
End of the whole frame range process, now finalize this node.
[in] | processData |
Implemented in tuttle::host::ImageEffectNode.
virtual attribute::Attribute& tuttle::host::INode::getAttribute | ( | const std::string & | name | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by BOOST_AUTO_TEST_CASE(), tuttle::host::graph::connectClips(), main(), and tuttle::host::Graph::replaceNodeConnections().
const attribute::Attribute& tuttle::host::INode::getAttribute | ( | const std::string & | name | ) | const [inline] |
Definition at line 85 of file INode.hpp.
References getAttribute().
Referenced by getAttribute().
virtual attribute::ClipImage& tuttle::host::INode::getClip | ( | const std::string & | name, |
const bool | acceptPartialName = false |
||
) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by BOOST_AUTO_TEST_CASE(), tuttle::host::ImageEffectNode::connect(), and getOutputClip().
virtual const attribute::ClipImage& tuttle::host::INode::getClip | ( | const std::string & | name, |
const bool | acceptPartialName = false |
||
) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual ofx::attribute::OfxhClipImageSet& tuttle::host::INode::getClipImageSet | ( | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual const ofx::attribute::OfxhClipImageSet& tuttle::host::INode::getClipImageSet | ( | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
INode::Data & tuttle::host::INode::getData | ( | ) |
Definition at line 54 of file INode.cpp.
References _data, and getName().
Referenced by getData(), tuttle::host::ImageEffectNode::getEffectFrameRange(), tuttle::host::ImageEffectNode::getRegionOfDefinition(), tuttle::host::attribute::ClipImage::getRemappedTime(), and tuttle::host::ImageEffectNode::getTimeDomain().
const INode::Data & tuttle::host::INode::getData | ( | ) | const |
const INode::DataAtTime & tuttle::host::INode::getData | ( | const OfxTime | time | ) | const |
Definition at line 82 of file INode.cpp.
References _dataAtTime, and getName().
INode::DataAtTime & tuttle::host::INode::getData | ( | const OfxTime | time | ) |
virtual ofx::property::OfxhSet& tuttle::host::INode::getEditableProperties | ( | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
const INode::DataAtTime & tuttle::host::INode::getFirstData | ( | ) | const |
Definition at line 109 of file INode.cpp.
References _dataAtTime, and getName().
Referenced by getFirstData().
INode::DataAtTime & tuttle::host::INode::getFirstData | ( | ) |
Definition at line 121 of file INode.cpp.
References getFirstData().
virtual std::string tuttle::host::INode::getLabel | ( | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by tuttle::host::Graph::addNode().
const INode::DataAtTime & tuttle::host::INode::getLastData | ( | ) | const |
Definition at line 126 of file INode.cpp.
References _dataAtTime, and getName().
Referenced by getLastData(), tuttle::host::ImageEffectNode::getProjectExtent(), and tuttle::host::ImageEffectNode::getProjectSize().
INode::DataAtTime & tuttle::host::INode::getLastData | ( | ) |
Definition at line 138 of file INode.cpp.
References getLastData().
virtual std::size_t tuttle::host::INode::getLocalHashAtTime | ( | const OfxTime | time | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual const std::string& tuttle::host::INode::getName | ( | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by tuttle::host::Graph::addNode(), tuttle::host::Graph::addToInternalGraph(), BOOST_AUTO_TEST_CASE(), tuttle::host::Graph::connect(), tuttle::host::Graph::deleteNode(), getData(), getFirstData(), tuttle::host::attribute::ClipImage::getFullName(), getLastData(), tuttle::host::Graph::getNbInputConnections(), tuttle::host::Graph::getNbOutputConnections(), tuttle::host::NodeListArg::NodeListArg(), tuttle::host::graph::ProcessGraph::relink(), tuttle::host::Graph::removeFromInternalGraph(), tuttle::host::Graph::renameNode(), tuttle::host::Graph::replaceNodeConnections(), setProcessDataAtTime(), and tuttle::host::Graph::unconnect().
virtual std::size_t tuttle::host::INode::getNbParams | ( | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual const ENodeType tuttle::host::INode::getNodeType | ( | ) | const [pure virtual] |
attribute::ClipImage& tuttle::host::INode::getOutputClip | ( | ) | [inline] |
Definition at line 100 of file INode.hpp.
References getClip(), and kOfxImageEffectOutputClipName.
Referenced by tuttle::host::graph::ProcessVertex::exportDotDebug(), tuttle::host::graph::ProcessVertexAtTime::exportDotDebug(), tuttle::host::ImageEffectNode::initComponents(), tuttle::host::ImageEffectNode::initFps(), tuttle::host::ImageEffectNode::initPixelAspectRatio(), tuttle::host::ImageEffectNode::isIdentity(), tuttle::host::ImageEffectNode::maximizeBitDepthFromReadsToWrites(), tuttle::host::ImageEffectNode::maximizeBitDepthFromWritesToReads(), tuttle::host::ImageEffectNode::preProcess_infos(), and tuttle::host::ImageEffectNode::process().
const attribute::ClipImage& tuttle::host::INode::getOutputClip | ( | ) | const [inline] |
Definition at line 101 of file INode.hpp.
References getClip(), and kOfxImageEffectOutputClipName.
virtual const ofx::attribute::OfxhParam& tuttle::host::INode::getParam | ( | const std::string & | name | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by BOOST_AUTO_TEST_CASE(), checkImageStatus(), diffImageStatus(), main(), and tuttle::host::OutputBufferWrapper::setCallback().
virtual ofx::attribute::OfxhParam& tuttle::host::INode::getParam | ( | const std::string & | name | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual const ofx::attribute::OfxhParam& tuttle::host::INode::getParam | ( | const std::size_t | index | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual ofx::attribute::OfxhParam& tuttle::host::INode::getParam | ( | const std::size_t | index | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual const ofx::attribute::OfxhParam& tuttle::host::INode::getParamByScriptName | ( | const std::string & | name, |
const bool | acceptPartialName = false |
||
) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual ofx::attribute::OfxhParam& tuttle::host::INode::getParamByScriptName | ( | const std::string & | name, |
const bool | acceptPartialName = false |
||
) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual ofx::attribute::OfxhParamSet& tuttle::host::INode::getParamSet | ( | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual const ofx::attribute::OfxhParamSet& tuttle::host::INode::getParamSet | ( | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual const ofx::property::OfxhSet& tuttle::host::INode::getProperties | ( | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual attribute::Attribute& tuttle::host::INode::getSingleInputAttribute | ( | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by tuttle::host::Graph::connect().
virtual const attribute::Attribute& tuttle::host::INode::getSingleInputAttribute | ( | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual OfxRangeD tuttle::host::INode::getTimeDomain | ( | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by tuttle::host::ImageEffectNode::getDefaultTimeDomain().
virtual ClipTimesSetMap tuttle::host::INode::getTimesNeeded | ( | const OfxTime | time | ) | const [pure virtual] |
Asks the plugin all times it needs for each of it's input clips.
[in] | time |
Implemented in tuttle::host::ImageEffectNode.
virtual std::vector<int> tuttle::host::INode::getVersion | ( | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by getVersionStr().
std::string tuttle::host::INode::getVersionStr | ( | ) | const |
Definition at line 27 of file INode.cpp.
References getVersion().
bool tuttle::host::INode::hasData | ( | const OfxTime | time | ) | const |
Definition at line 76 of file INode.cpp.
References _dataAtTime.
virtual bool tuttle::host::INode::isIdentity | ( | const graph::ProcessVertexAtTimeData & | processData, |
std::string & | clip, | ||
OfxTime & | time | ||
) | const [pure virtual] |
The node can declare to be an identity operation. In this case, the node is not processed and the rendering engine direcly use the indicated input clip at a particular time.
[in] | processData | |
[out] | clip | the input clip to use as identity |
[out] | time | the time to use as identity |
Implemented in tuttle::host::ImageEffectNode.
virtual bool tuttle::host::INode::operator== | ( | const INode & | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual void tuttle::host::INode::postProcess | ( | graph::ProcessVertexAtTimeData & | processData | ) | [pure virtual] |
The process of all nodes is done for one frame, now finalize this node.
[in] | processData |
Implemented in tuttle::host::ImageEffectNode.
virtual void tuttle::host::INode::preProcess1 | ( | graph::ProcessVertexAtTimeData & | processData | ) | [inline, virtual] |
Initialization pass to propagate informations from inputs to outputs.
[in] | processData |
Reimplemented in tuttle::host::ImageEffectNode.
virtual void tuttle::host::INode::preProcess2_reverse | ( | graph::ProcessVertexAtTimeData & | processData | ) | [inline, virtual] |
Initialization pass to propagate informations from outputs to inputs.
[in] | processData |
Reimplemented in tuttle::host::ImageEffectNode.
virtual void tuttle::host::INode::preProcess_infos | ( | const graph::ProcessVertexAtTimeData & | processData, |
const OfxTime | time, | ||
graph::ProcessVertexAtTimeInfo & | nodeInfos | ||
) | const [pure virtual] |
Fill ProcessInfo to compute statistics for the current process, like memory used by this node, by all input nodes, etc.
[in] | processData |
Implemented in tuttle::host::ImageEffectNode.
virtual std::ostream& tuttle::host::INode::print | ( | std::ostream & | os | ) | const [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by tuttle::host::operator<<().
virtual void tuttle::host::INode::process | ( | graph::ProcessVertexAtTimeData & | processData | ) | [pure virtual] |
Process this node. All inputs are compute.
[in] | processData |
Implemented in tuttle::host::ImageEffectNode.
virtual void tuttle::host::INode::setName | ( | const std::string & | name | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
Referenced by tuttle::host::Graph::addNode(), and tuttle::host::Graph::renameNode().
void tuttle::host::INode::setProcessData | ( | Data * | data | ) |
Definition at line 38 of file INode.cpp.
References _data.
Referenced by tuttle::host::graph::ProcessGraph::setup().
void tuttle::host::INode::setProcessDataAtTime | ( | DataAtTime * | dataAtTime | ) |
Definition at line 43 of file INode.cpp.
References _dataAtTime, tuttle::host::graph::ProcessVertexAtTimeData::_time, getName(), TUTTLE_TLOG, and TUTTLE_TRACE.
Referenced by tuttle::host::graph::ProcessGraph::setupAtTime().
virtual void tuttle::host::INode::setup1 | ( | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual void tuttle::host::INode::setup2_reverse | ( | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
virtual void tuttle::host::INode::setup3 | ( | ) | [pure virtual] |
Implemented in tuttle::host::ImageEffectNode.
std::ostream& operator<< | ( | std::ostream & | os, |
const This & | v | ||
) | [friend] |
Data* tuttle::host::INode::_data [protected] |
link to external datas
Definition at line 202 of file INode.hpp.
Referenced by getData(), and setProcessData().
DataAtTimeMap tuttle::host::INode::_dataAtTime [protected] |
link to external datas at each time
Definition at line 203 of file INode.hpp.
Referenced by clearProcessDataAtTime(), getData(), getFirstData(), getLastData(), tuttle::host::ImageEffectNode::getProjectExtent(), tuttle::host::ImageEffectNode::getProjectSize(), hasData(), and setProcessDataAtTime().