|
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().