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 |
typedef graph::ProcessVertexData | Data |
typedef graph::ProcessVertexAtTimeData | DataAtTime |
typedef std::map< OfxTime, DataAtTime * > | DataAtTimeMap |
Public Member Functions | |
INode () | |
INode (const INode &e) | |
virtual | ~INode () |
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. | |
void | setBeforeRenderCallback (Callback *cb) |
virtual std::ostream & | print (std::ostream &os) const =0 |
void | beforeRenderCallback (INode &, DataAtTime &) |
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 () |
Data Fields | |
Callback * | _beforeRenderCallback |
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 std::map<OfxTime,DataAtTime*> tuttle::host::INode::DataAtTimeMap |
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 |
void tuttle::host::INode::beforeRenderCallback | ( | INode & | node, |
DataAtTime & | data | ||
) |
Definition at line 59 of file INode.cpp.
References _beforeRenderCallback, tuttle::host::graph::ProcessVertexAtTimeData::_time, and tuttle::host::Callback::call().
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(), and tuttle::host::Graph::replaceNodeConnections().
const attribute::Attribute& tuttle::host::INode::getAttribute | ( | const std::string & | name | ) | const [inline] |
Definition at line 94 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 67 of file INode.cpp.
References _data, and getName().
Referenced by tuttle::host::ImageEffectNode::debugOutputImage(), getData(), tuttle::host::ImageEffectNode::getEffectFrameRange(), tuttle::host::attribute::ClipImage::getImage(), 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 95 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 122 of file INode.cpp.
References _dataAtTime, and getName().
Referenced by getFirstData().
INode::DataAtTime & tuttle::host::INode::getFirstData | ( | ) |
Definition at line 134 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 139 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 151 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(), tuttle::host::Graph::deleteUnconnectedNodes(), tuttle::host::Graph::getConnectedNodes(), getData(), getFirstData(), tuttle::host::attribute::ClipImage::getFullName(), getLastData(), tuttle::host::Graph::getNbInputConnections(), tuttle::host::Graph::getNbOutputConnections(), tuttle::host::Graph::getUnconnectedNodes(), 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] |
Reimplemented in tuttle::host::ImageEffectNode.
Definition at line 109 of file INode.hpp.
References getClip().
const attribute::ClipImage& tuttle::host::INode::getOutputClip | ( | ) | const [inline] |
Reimplemented in tuttle::host::ImageEffectNode.
Definition at line 110 of file INode.hpp.
References getClip().
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(), 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 89 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.
void tuttle::host::INode::setBeforeRenderCallback | ( | Callback * | cb | ) |
Callback triggered before the render. The Node does not own the callback so the client has to set the callback to null and destroy it.
Definition at line 54 of file INode.cpp.
References _beforeRenderCallback.
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] |
Definition at line 223 of file INode.hpp.
Referenced by beforeRenderCallback(), and setBeforeRenderCallback().
Data* tuttle::host::INode::_data [protected] |
link to external datas
Definition at line 226 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 227 of file INode.hpp.
Referenced by clearProcessDataAtTime(), getData(), getFirstData(), getLastData(), tuttle::host::ImageEffectNode::getProjectExtent(), tuttle::host::ImageEffectNode::getProjectSize(), hasData(), and setProcessDataAtTime().