|
TuttleOFX
1
|
#include <ImageEffectNode.hpp>


Public Types | |
| typedef ImageEffectNode | This |
Public Member Functions | |
| ImageEffectNode (ofx::imageEffect::OfxhImageEffectPlugin &plugin, ofx::imageEffect::OfxhImageEffectNodeDescriptor &desc, const std::string &context) | |
| ImageEffectNode (const ImageEffectNode &other) | |
| ~ImageEffectNode () | |
| std::string | getLabel () const |
| const std::string & | getName () const |
| void | setName (const std::string &name) |
| std::size_t | getNbParams () const |
| const ofx::attribute::OfxhParam & | getParam (const std::string &name) const |
| ofx::attribute::OfxhParam & | getParam (const std::string &name) |
| const ofx::attribute::OfxhParam & | getParamByScriptName (const std::string &name, const bool acceptPartialName=false) const |
| ofx::attribute::OfxhParam & | getParamByScriptName (const std::string &name, const bool acceptPartialName=false) |
| const ofx::attribute::OfxhParam & | getParam (const std::size_t index) const |
| ofx::attribute::OfxhParam & | getParam (const std::size_t index) |
| const ofx::property::OfxhSet & | getProperties () const |
| ofx::property::OfxhSet & | getEditableProperties () |
| std::vector< int > | getVersion () const |
| ImageEffectNode * | clone () const |
| bool | operator== (const INode &other) const |
| bool | operator== (const ImageEffectNode &other) const |
| const ENodeType | getNodeType () const |
| void | connect (const INode &sourceEffect, attribute::Attribute &attr) |
| attribute::ClipImage & | getClip (const std::string &name, const bool acceptPartialName=false) |
| const attribute::ClipImage & | getClip (const std::string &name, const bool acceptPartialName=false) const |
| attribute::Attribute & | getAttribute (const std::string &name) |
| attribute::Attribute & | getSingleInputAttribute () |
| const attribute::Attribute & | getSingleInputAttribute () const |
| ofx::attribute::OfxhParamSet & | getParamSet () |
| const ofx::attribute::OfxhParamSet & | getParamSet () const |
| ofx::attribute::OfxhClipImageSet & | getClipImageSet () |
| const ofx::attribute::OfxhClipImageSet & | getClipImageSet () const |
| std::size_t | getLocalHashAtTime (const OfxTime time) const |
| OfxRectD | getRegionOfDefinition (const OfxTime time) const |
| OfxRangeD | getTimeDomain () const |
| void | debugOutputImage (const OfxTime time) const |
| OfxRangeD | getDefaultTimeDomain () const |
| std::ostream & | print (std::ostream &os) const |
| const std::string & | getDefaultOutputFielding () const |
| int | abort () |
| ofx::OfxhMemory * | newMemoryInstance (size_t nBytes) |
| ofx::attribute::OfxhClipImage * | newClipImage (const ofx::attribute::OfxhClipImageDescriptor &descriptor) |
| make a clip | |
| void | vmessage (const char *type, const char *id, const char *format, va_list args) const OFX_EXCEPTION_SPEC |
| vmessage | |
| void | getProjectSize (double &xSize, double &ySize) const |
| void | getProjectOffset (double &xOffset, double &yOffset) const |
| void | getProjectExtent (double &xSize, double &ySize) const |
| double | getProjectPixelAspectRatio () const |
| const std::string | getProjectPixelComponentsType () const |
| const std::string | getProjectBitDepth () const |
| double | getEffectDuration () const |
| double | getFrameRecursive () const |
| void | getRenderScaleRecursive (double &x, double &y) const |
| ofx::attribute::OfxhParam * | newParam (const ofx::attribute::OfxhParamDescriptor &Descriptor) OFX_EXCEPTION_SPEC |
| void | editBegin (const std::string &name) OFX_EXCEPTION_SPEC |
| void | editEnd () OFX_EXCEPTION_SPEC |
| void | progressStart (const std::string &message) |
| Start doing progress. | |
| void | progressEnd () |
| finish yer progress | |
| bool | progressUpdate (const double t) |
| double | timelineGetTime () |
| void | timelineGotoTime (double t) |
| set the timeline to a specific time | |
| void | timelineGetBounds (double &t1, double &t2) |
| get the first and last times available on the effect's timeline | |
| const OfxRangeD & | getEffectFrameRange () const |
| void | beginSequenceRenderAction (OfxTime startFrame, OfxTime endFrame, OfxTime step, bool interactive, OfxPointD renderScale) OFX_EXCEPTION_SPEC |
| override to get frame range of the effect | |
| OfxRangeD | computeTimeDomain () |
| void | setup1 () |
| void | setup2_reverse () |
| void | setup3 () |
| void | beginSequence (graph::ProcessVertexData &vData) |
| Begin of the a new frame range to process. Initilize this node. | |
| INode::ClipTimesSetMap | getTimesNeeded (const OfxTime time) const |
| Asks the plugin all times it needs for each of it's input clips. | |
| void | preProcess1 (graph::ProcessVertexAtTimeData &vData) |
| Initialization pass to propagate informations from inputs to outputs. | |
| void | preProcess2_reverse (graph::ProcessVertexAtTimeData &vData) |
| Initialization pass to propagate informations from outputs to inputs. | |
| bool | isIdentity (const graph::ProcessVertexAtTimeData &vData, std::string &clip, OfxTime &time) const |
| 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. | |
| void | preProcess_infos (const graph::ProcessVertexAtTimeData &vData, const OfxTime time, graph::ProcessVertexAtTimeInfo &nodeInfos) const |
| Fill ProcessInfo to compute statistics for the current process, like memory used by this node, by all input nodes, etc. | |
| void | process (graph::ProcessVertexAtTimeData &vData) |
| Process this node. All inputs are compute. | |
| void | postProcess (graph::ProcessVertexAtTimeData &vData) |
| The process of all nodes is done for one frame, now finalize this node. | |
| void | endSequence (graph::ProcessVertexData &vData) |
| End of the whole frame range process, now finalize this node. | |
Private Member Functions | |
| void | checkClipsConnections () const |
| void | initComponents () |
| void | initInputClipsPixelAspectRatio () |
| void | initPixelAspectRatio () |
| void | initInputClipsFps () |
| void | initFps () |
| void | maximizeBitDepthFromReadsToWrites () |
| void | maximizeBitDepthFromWritesToReads () |
| void | coutBitDepthConnections () const |
| void | validBitDepthConnections () const |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const This &v) |
Definition at line 18 of file ImageEffectNode.hpp.
Reimplemented from tuttle::host::INode.
Definition at line 22 of file ImageEffectNode.hpp.
| tuttle::host::ImageEffectNode::ImageEffectNode | ( | ofx::imageEffect::OfxhImageEffectPlugin & | plugin, |
| ofx::imageEffect::OfxhImageEffectNodeDescriptor & | desc, | ||
| const std::string & | context | ||
| ) |
Definition at line 47 of file ImageEffectNode.cpp.
References tuttle::host::ofx::imageEffect::OfxhImageEffectNode::populate().
Referenced by clone().

| tuttle::host::ImageEffectNode::ImageEffectNode | ( | const ImageEffectNode & | other | ) |
Definition at line 56 of file ImageEffectNode.cpp.
References tuttle::host::ofx::imageEffect::OfxhImageEffectNode::copyAttributesValues(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::createInstanceAction(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::populate().

| tuttle::host::ImageEffectNode::~ImageEffectNode | ( | ) |
Definition at line 65 of file ImageEffectNode.cpp.
| int tuttle::host::ImageEffectNode::abort | ( | ) | [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 155 of file ImageEffectNode.cpp.
| void tuttle::host::ImageEffectNode::beginSequence | ( | graph::ProcessVertexData & | processData | ) | [virtual] |
Begin of the a new frame range to process. Initilize this node.
| [in] | processData |
Implements tuttle::host::INode.
Definition at line 774 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexData::_interactive, tuttle::host::graph::ProcessVertexData::_renderScale, tuttle::host::graph::ProcessVertexData::_renderTimeRange, tuttle::host::graph::ProcessVertexData::_step, beginSequenceRenderAction(), OfxRangeD::max, and OfxRangeD::min.

| void tuttle::host::ImageEffectNode::beginSequenceRenderAction | ( | OfxTime | startFrame, |
| OfxTime | endFrame, | ||
| OfxTime | step, | ||
| bool | interactive, | ||
| OfxPointD | renderScale | ||
| ) | [virtual] |
override to get frame range of the effect
Reimplemented from tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 386 of file ImageEffectNode.cpp.
References OFX::Private::beginSequenceRenderAction().
Referenced by beginSequence().

| void tuttle::host::ImageEffectNode::checkClipsConnections | ( | ) | const [private] |
Definition at line 395 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::attribute::ClipImage::getFullName(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhClipAccessor::isOptional(), and tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput().
Referenced by setup1().

| ImageEffectNode* tuttle::host::ImageEffectNode::clone | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 58 of file ImageEffectNode.hpp.
References ImageEffectNode().

| OfxRangeD tuttle::host::ImageEffectNode::computeTimeDomain | ( | ) | [virtual] |
Implementation of INode virtual functions
Implements tuttle::host::INode.
Definition at line 712 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::attribute::ClipImage::getConnectedClip(), getDefaultTimeDomain(), tuttle::host::ofx::attribute::OfxhClipImage::getFrameRange(), getName(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getTimeDomainAction(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), kOfxImageEffectOutputClipName, OfxRangeD::max, OfxRangeD::min, tuttle::quotes(), tuttle::host::attribute::ClipImage::setFrameRange(), TUTTLE_INFO, and TUTTLE_TLOG.

| void tuttle::host::ImageEffectNode::connect | ( | const INode & | sourceEffect, |
| attribute::Attribute & | attr | ||
| ) | [virtual] |
Implements tuttle::host::INode.
Definition at line 84 of file ImageEffectNode.cpp.
References tuttle::host::INode::getClip(), kOfxImageEffectOutputClipName, and tuttle::host::attribute::ClipImage::setConnectedClip().

| void tuttle::host::ImageEffectNode::coutBitDepthConnections | ( | ) | const [private] |
Definition at line 625 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::attribute::OfxhClipImage::getBitDepth(), tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::ClipImage::getFullName(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), TUTTLE_INFO, and TUTTLE_TLOG.

| void tuttle::host::ImageEffectNode::debugOutputImage | ( | const OfxTime | time | ) | const |
Definition at line 1060 of file ImageEffectNode.cpp.
References tuttle::host::core(), getName(), and kOfxOutputAttributeName.
Referenced by process().

| void tuttle::host::ImageEffectNode::editBegin | ( | const std::string & | name | ) | [virtual] |
Triggered when the plug-in calls OfxParameterSuiteV1::paramEditBegin
Client host code needs to implement this
Implements tuttle::host::ofx::attribute::OfxhParamSet.
Definition at line 330 of file ImageEffectNode.cpp.
| void tuttle::host::ImageEffectNode::editEnd | ( | ) | [virtual] |
Triggered when the plug-in calls OfxParameterSuiteV1::paramEditEnd
Client host code needs to implement this
Implements tuttle::host::ofx::attribute::OfxhParamSet.
Definition at line 335 of file ImageEffectNode.cpp.
| void tuttle::host::ImageEffectNode::endSequence | ( | graph::ProcessVertexData & | processData | ) | [virtual] |
End of the whole frame range process, now finalize this node.
| [in] | processData |
Implements tuttle::host::INode.
Definition at line 1019 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexData::_interactive, tuttle::host::graph::ProcessVertexData::_renderScale, tuttle::host::graph::ProcessVertexData::_renderTimeRange, tuttle::host::graph::ProcessVertexData::_step, tuttle::host::ofx::imageEffect::OfxhImageEffectNode::endSequenceRenderAction(), OfxRangeD::max, and OfxRangeD::min.

| attribute::Attribute& tuttle::host::ImageEffectNode::getAttribute | ( | const std::string & | name | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 73 of file ImageEffectNode.hpp.
References getClip().

| attribute::ClipImage& tuttle::host::ImageEffectNode::getClip | ( | const std::string & | name, |
| const bool | acceptPartialName = false |
||
| ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 70 of file ImageEffectNode.hpp.
Referenced by getAttribute(), getClip(), and process().
| const attribute::ClipImage& tuttle::host::ImageEffectNode::getClip | ( | const std::string & | name, |
| const bool | acceptPartialName = false |
||
| ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 71 of file ImageEffectNode.hpp.
References getClip().

| ofx::attribute::OfxhClipImageSet& tuttle::host::ImageEffectNode::getClipImageSet | ( | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 81 of file ImageEffectNode.hpp.
| const ofx::attribute::OfxhClipImageSet& tuttle::host::ImageEffectNode::getClipImageSet | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 82 of file ImageEffectNode.hpp.
| const std::string & tuttle::host::ImageEffectNode::getDefaultOutputFielding | ( | ) | const [virtual] |
get default output fielding. This is passed into the clip prefs action and might be mapped (if the host allows such a thing)
our clip is pretending to be progressive PAL SD, so return kOfxImageFieldNone
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 144 of file ImageEffectNode.cpp.
References kOfxImageFieldNone.
| OfxRangeD tuttle::host::ImageEffectNode::getDefaultTimeDomain | ( | ) | const |
Definition at line 679 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::Attribute::getNode(), tuttle::host::INode::getTimeDomain(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), kOfxFlagInfiniteMax, kOfxFlagInfiniteMin, tuttle::max(), OfxRangeD::max, tuttle::min(), and OfxRangeD::min.
Referenced by computeTimeDomain().

| ofx::property::OfxhSet& tuttle::host::ImageEffectNode::getEditableProperties | ( | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 45 of file ImageEffectNode.hpp.
| double tuttle::host::ImageEffectNode::getEffectDuration | ( | void | ) | const [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 233 of file ImageEffectNode.cpp.
| const OfxRangeD& tuttle::host::ImageEffectNode::getEffectFrameRange | ( | ) | const [inline] |
Definition at line 250 of file ImageEffectNode.hpp.
References tuttle::host::graph::ProcessVertexData::_renderTimeRange, and tuttle::host::INode::getData().

| double tuttle::host::ImageEffectNode::getFrameRecursive | ( | ) | const [virtual] |
This is called whenever a param is changed by the plugin so that the recursive instanceChangedAction will be fed the correct frame
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 240 of file ImageEffectNode.cpp.
| std::string tuttle::host::ImageEffectNode::getLabel | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 33 of file ImageEffectNode.hpp.
Referenced by print().
| std::size_t tuttle::host::ImageEffectNode::getLocalHashAtTime | ( | const OfxTime | time | ) | const [virtual] |
Implements tuttle::host::INode.
Definition at line 128 of file ImageEffectNode.cpp.
References tuttle::host::ofx::OfxhPluginDesc::getHash(), tuttle::host::ofx::attribute::OfxhParamSet::getHashAtTime(), getParamSet(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getPlugin(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isFrameVarying().

| const std::string& tuttle::host::ImageEffectNode::getName | ( | void | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 34 of file ImageEffectNode.hpp.
Referenced by computeTimeDomain(), debugOutputImage(), maximizeBitDepthFromReadsToWrites(), preProcess1(), progressStart(), and validBitDepthConnections().
| std::size_t tuttle::host::ImageEffectNode::getNbParams | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 36 of file ImageEffectNode.hpp.
| const ENodeType tuttle::host::ImageEffectNode::getNodeType | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 66 of file ImageEffectNode.hpp.
References tuttle::host::INode::eNodeTypeImageEffect.
| const ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParam | ( | const std::string & | name | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 37 of file ImageEffectNode.hpp.
Referenced by getParam().
| ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParam | ( | const std::string & | name | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 38 of file ImageEffectNode.hpp.
References getParam().

| const ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParam | ( | const std::size_t | index | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 41 of file ImageEffectNode.hpp.
References getParam().

| ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParam | ( | const std::size_t | index | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 42 of file ImageEffectNode.hpp.
References getParam().

| const ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParamByScriptName | ( | const std::string & | name, |
| const bool | acceptPartialName = false |
||
| ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 39 of file ImageEffectNode.hpp.
Referenced by getParamByScriptName().
| ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParamByScriptName | ( | const std::string & | name, |
| const bool | acceptPartialName = false |
||
| ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 40 of file ImageEffectNode.hpp.
References getParamByScriptName().

| ofx::attribute::OfxhParamSet& tuttle::host::ImageEffectNode::getParamSet | ( | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 78 of file ImageEffectNode.hpp.
Referenced by getLocalHashAtTime().
| const ofx::attribute::OfxhParamSet& tuttle::host::ImageEffectNode::getParamSet | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 79 of file ImageEffectNode.hpp.
| const std::string tuttle::host::ImageEffectNode::getProjectBitDepth | ( | ) | const |
The pixel bit depth of the current project (host work in float)
Definition at line 266 of file ImageEffectNode.cpp.
References kOfxBitDepthFloat.
| void tuttle::host::ImageEffectNode::getProjectExtent | ( | double & | xSize, |
| double & | ySize | ||
| ) | const [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 206 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::INode::_dataAtTime, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoD, tuttle::host::INode::getLastData(), OfxRectD::x1, OfxRectD::x2, OfxRectD::y1, and OfxRectD::y2.

| void tuttle::host::ImageEffectNode::getProjectOffset | ( | double & | xOffset, |
| double & | yOffset | ||
| ) | const [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 199 of file ImageEffectNode.cpp.
| double tuttle::host::ImageEffectNode::getProjectPixelAspectRatio | ( | void | ) | const [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 227 of file ImageEffectNode.cpp.
| const std::string tuttle::host::ImageEffectNode::getProjectPixelComponentsType | ( | ) | const |
The pixel components type of the current project
Definition at line 257 of file ImageEffectNode.cpp.
References kOfxImageComponentRGBA.
| void tuttle::host::ImageEffectNode::getProjectSize | ( | double & | xSize, |
| double & | ySize | ||
| ) | const [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 178 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::INode::_dataAtTime, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoD, tuttle::host::INode::getLastData(), OfxRectD::x1, OfxRectD::x2, OfxRectD::y1, and OfxRectD::y2.

| const ofx::property::OfxhSet& tuttle::host::ImageEffectNode::getProperties | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 44 of file ImageEffectNode.hpp.
Definition at line 86 of file ImageEffectNode.hpp.
References tuttle::host::INode::getData().
Referenced by tuttle::host::attribute::ClipImage::fetchRegionOfDefinition().

| void tuttle::host::ImageEffectNode::getRenderScaleRecursive | ( | double & | x, |
| double & | y | ||
| ) | const [virtual] |
This is called whenever a param is changed by the plugin so that the recursive instanceChangedAction will be fed the correct renderScale
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 248 of file ImageEffectNode.cpp.
| attribute::Attribute & tuttle::host::ImageEffectNode::getSingleInputAttribute | ( | ) | [virtual] |
Implements tuttle::host::INode.
Definition at line 92 of file ImageEffectNode.cpp.
References clips, tuttle::host::ofx::attribute::OfxhClipImageSet::getClipsByName(), tuttle::host::ofx::attribute::OfxhClipImageSet::getClipsByOrder(), and kOfxSimpleSourceAttributeName.

| const attribute::Attribute& tuttle::host::ImageEffectNode::getSingleInputAttribute | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 76 of file ImageEffectNode.hpp.
References getSingleInputAttribute().
Referenced by getSingleInputAttribute().

| OfxRangeD tuttle::host::ImageEffectNode::getTimeDomain | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 91 of file ImageEffectNode.hpp.
References tuttle::host::graph::ProcessVertexData::_timeDomain, and tuttle::host::INode::getData().

| INode::ClipTimesSetMap tuttle::host::ImageEffectNode::getTimesNeeded | ( | const OfxTime | time | ) | const [inline, virtual] |
Asks the plugin all times it needs for each of it's input clips.
| [in] | time |
Implements tuttle::host::INode.
Definition at line 110 of file ImageEffectNode.hpp.
References tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getFramesNeeded().

| std::vector<int> tuttle::host::ImageEffectNode::getVersion | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 47 of file ImageEffectNode.hpp.
References tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getDescriptor(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getPlugin().

| void tuttle::host::ImageEffectNode::initComponents | ( | ) | [private] |
Definition at line 410 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::imageEffect::OfxhImageEffectNode::findMostChromaticComponents(), tuttle::host::ofx::attribute::OfxhClipImage::getComponentsString(), tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::INode::getOutputClip(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::host::ofx::attribute::OfxhClipImageAccessor::isSupportedComponent(), kOfxImageComponentNone, and tuttle::host::ofx::attribute::OfxhClipImage::setComponentsStringIfNotModifiedByPlugin().
Referenced by setup1().

| void tuttle::host::ImageEffectNode::initFps | ( | ) | [private] |
Definition at line 500 of file ImageEffectNode.cpp.
References tuttle::host::INode::getOutputClip(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOutputFrameRate(), and tuttle::host::attribute::ClipImage::setFrameRate().
Referenced by setup1().

| void tuttle::host::ImageEffectNode::initInputClipsFps | ( | ) | [private] |
Definition at line 485 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::ClipImage::getFrameRate(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), and tuttle::host::attribute::ClipImage::setFrameRate().
Referenced by setup1().

| void tuttle::host::ImageEffectNode::initInputClipsPixelAspectRatio | ( | ) | [private] |
Definition at line 446 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::property::eModifiedByHost, tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::ClipImage::getName(), tuttle::host::ofx::attribute::OfxhClipImageSet::getNbClips(), tuttle::host::ofx::attribute::OfxhClipImage::getPixelAspectRatio(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::host::ofx::attribute::OfxhClipImage::setPixelAspectRatio(), tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::supportsMultipleClipPARs(), TUTTLE_INFO, and TUTTLE_TLOG.
Referenced by setup1().

| void tuttle::host::ImageEffectNode::initPixelAspectRatio | ( | ) | [private] |
Definition at line 506 of file ImageEffectNode.cpp.
References tuttle::host::ofx::property::eModifiedByHost, tuttle::host::INode::getOutputClip(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOutputPixelAspectRatio(), and tuttle::host::ofx::attribute::OfxhClipImage::setPixelAspectRatio().
Referenced by setup1().

| bool tuttle::host::ImageEffectNode::isIdentity | ( | const graph::ProcessVertexAtTimeData & | processData, |
| std::string & | clip, | ||
| OfxTime & | time | ||
| ) | const [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 |
Implements tuttle::host::INode.
Definition at line 818 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_field, tuttle::host::graph::ProcessVertexAtTimeData::_nodeData, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoI, tuttle::host::graph::ProcessVertexAtTimeData::_time, tuttle::host::INode::getOutputClip(), tuttle::host::ofx::attribute::OfxhClipImage::getPixelAspectRatio(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isIdentityAction(), OfxRectI::x1, OfxRectD::x1, OfxRectI::x2, OfxRectD::x2, OfxRectI::y1, OfxRectD::y1, OfxRectI::y2, and OfxRectD::y2.

| void tuttle::host::ImageEffectNode::maximizeBitDepthFromReadsToWrites | ( | ) | [private] |
Definition at line 512 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::INode::asImageEffectNode(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::bestSupportedBitDepth(), tuttle::host::INode::eNodeTypeBuffer, tuttle::host::INode::eNodeTypeImageEffect, tuttle::ofx::imageEffect::findDeepestBitDepth(), tuttle::host::ofx::attribute::OfxhClipImage::getBitDepthString(), tuttle::host::attribute::ClipImage::getConnectedClip(), getName(), tuttle::host::attribute::Attribute::getNode(), tuttle::host::INode::getNodeType(), tuttle::host::INode::getOutputClip(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isSupportedBitDepth(), kOfxBitDepthNone, tuttle::host::ofx::attribute::OfxhClipImage::setBitDepthStringIfUpperAndNotModifiedByPlugin(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::supportsMultipleClipDepths().
Referenced by setup1(), and setup3().

| void tuttle::host::ImageEffectNode::maximizeBitDepthFromWritesToReads | ( | ) | [private] |
Definition at line 584 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::INode::asImageEffectNode(), tuttle::host::INode::eNodeTypeImageEffect, tuttle::host::ofx::attribute::OfxhClipImage::getBitDepthString(), tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::Attribute::getNode(), tuttle::host::INode::getNodeType(), tuttle::host::INode::getOutputClip(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isSupportedBitDepth(), tuttle::host::ofx::attribute::OfxhClipImage::setBitDepthStringIfUpper(), tuttle::host::ofx::attribute::OfxhClipImage::setBitDepthStringIfUpperAndNotModifiedByPlugin(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::supportsMultipleClipDepths().
Referenced by setup2_reverse().

| tuttle::host::ofx::attribute::OfxhClipImage * tuttle::host::ImageEffectNode::newClipImage | ( | const ofx::attribute::OfxhClipImageDescriptor & | descriptor | ) | [virtual] |
make a clip
Implements tuttle::host::ofx::attribute::OfxhClipImageSet.
Definition at line 123 of file ImageEffectNode.cpp.
| ofx::OfxhMemory * tuttle::host::ImageEffectNode::newMemoryInstance | ( | size_t | nBytes | ) | [virtual] |
Allocating memory using the memoryPool
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 160 of file ImageEffectNode.cpp.
References tuttle::host::ofx::OfxhMemory::alloc().

| ofx::attribute::OfxhParam * tuttle::host::ImageEffectNode::newParam | ( | const ofx::attribute::OfxhParamDescriptor & | Descriptor | ) | [virtual] |
make a parameter instance
Client host code needs to implement this
Implements tuttle::host::ofx::attribute::OfxhParamSet.
Definition at line 273 of file ImageEffectNode.cpp.
References kOfxParamTypeBoolean, kOfxParamTypeChoice, kOfxParamTypeCustom, kOfxParamTypeDouble, kOfxParamTypeDouble2D, kOfxParamTypeDouble3D, kOfxParamTypeGroup, kOfxParamTypeInteger, kOfxParamTypeInteger2D, kOfxParamTypeInteger3D, kOfxParamTypePage, kOfxParamTypePushButton, kOfxParamTypeRGB, kOfxParamTypeRGBA, kOfxParamTypeString, kOfxStatErrUnknown, and tuttle::quotes().

| bool tuttle::host::ImageEffectNode::operator== | ( | const INode & | other | ) | const [virtual] |
Implements tuttle::host::INode.
Definition at line 68 of file ImageEffectNode.cpp.
Referenced by operator==().
| bool tuttle::host::ImageEffectNode::operator== | ( | const ImageEffectNode & | other | ) | const |
Definition at line 79 of file ImageEffectNode.cpp.
References operator==().

| void tuttle::host::ImageEffectNode::postProcess | ( | graph::ProcessVertexAtTimeData & | processData | ) | [virtual] |
The process of all nodes is done for one frame, now finalize this node.
| [in] | processData |
Implements tuttle::host::INode.
Definition at line 1013 of file ImageEffectNode.cpp.
| void tuttle::host::ImageEffectNode::preProcess1 | ( | graph::ProcessVertexAtTimeData & | processData | ) | [virtual] |
Initialization pass to propagate informations from inputs to outputs.
| [in] | processData |
<
Reimplemented from tuttle::host::INode.
Definition at line 786 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::graph::ProcessVertexAtTimeData::_nodeData, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoD, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoI, tuttle::host::graph::ProcessVertexAtTimeData::_time, getName(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getRegionOfDefinitionAction(), TUTTLE_INFO, TUTTLE_TLOG, OfxRectD::x1, OfxRectD::x2, OfxRectD::y1, and OfxRectD::y2.

| void tuttle::host::ImageEffectNode::preProcess2_reverse | ( | graph::ProcessVertexAtTimeData & | processData | ) | [virtual] |
Initialization pass to propagate informations from outputs to inputs.
| [in] | processData |
Reimplemented from tuttle::host::INode.
Definition at line 805 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_inputsRoI, tuttle::host::graph::ProcessVertexAtTimeData::_nodeData, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoI, tuttle::host::graph::ProcessVertexAtTimeData::_time, and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getRegionOfInterestAction().

| void tuttle::host::ImageEffectNode::preProcess_infos | ( | const graph::ProcessVertexAtTimeData & | processData, |
| const OfxTime | time, | ||
| graph::ProcessVertexAtTimeInfo & | nodeInfos | ||
| ) | const [virtual] |
Fill ProcessInfo to compute statistics for the current process, like memory used by this node, by all input nodes, etc.
| [in] | processData |
Implements tuttle::host::INode.
Definition at line 833 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::graph::ProcessVertexAtTimeInfo::_memory, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoD, tuttle::host::ofx::attribute::OfxhClipImage::getBitDepth(), tuttle::host::ofx::attribute::OfxhClipImage::getNbComponents(), tuttle::host::INode::getOutputClip(), OfxRectD::x1, OfxRectD::x2, OfxRectD::y1, and OfxRectD::y2.

| std::ostream & tuttle::host::ImageEffectNode::print | ( | std::ostream & | os | ) | const [virtual] |
Implements tuttle::host::INode.
Definition at line 1030 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::imageEffect::OfxhImageEffectNode::_context, tuttle::host::ofx::attribute::OfxhParamSet::_paramVector, getLabel(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getLongLabel().
Referenced by tuttle::host::operator<<().

| void tuttle::host::ImageEffectNode::process | ( | graph::ProcessVertexAtTimeData & | processData | ) | [virtual] |
Process this node. All inputs are compute.
| [in] | processData |
Implements tuttle::host::INode.
Definition at line 843 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_field, tuttle::host::graph::ProcessVertexAtTimeData::_inEdges, tuttle::host::graph::ProcessVertexAtTimeData::_nodeData, tuttle::host::graph::ProcessVertexAtTimeData::_outDegree, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoI, tuttle::host::graph::ProcessVertexAtTimeData::_time, OFX::memory::allocate(), tuttle::host::core(), debugOutputImage(), tuttle::host::attribute::Image::eImageOrientationFromBottomToTop, tuttle::host::ofx::imageEffect::OfxhImage::eReferenceOwnerHost, tuttle::host::memory::IMemoryCache::get(), getClip(), tuttle::host::attribute::ClipImage::getClipIdentifier(), tuttle::host::attribute::ClipImage::getFullName(), tuttle::host::graph::IEdge::getIn(), tuttle::host::graph::IEdge::getInAttrName(), tuttle::host::graph::IEdge::getOut(), tuttle::host::INode::getOutputClip(), tuttle::host::graph::ProcessEdgeAtTime::getOutTime(), tuttle::host::ofx::attribute::OfxhClipImage::getPixelAspectRatio(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::host::memory::IMemoryCache::put(), tuttle::quotes(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::renderAction(), TUTTLE_INFO, TUTTLE_TLOG, OfxRectD::x1, OfxRectD::x2, OfxRectD::y1, and OfxRectD::y2.

| void tuttle::host::ImageEffectNode::progressEnd | ( | ) | [virtual] |
finish yer progress
Implements tuttle::host::ofx::OfxhIProgress.
Definition at line 349 of file ImageEffectNode.cpp.
| void tuttle::host::ImageEffectNode::progressStart | ( | const std::string & | message | ) | [virtual] |
Start doing progress.
Implements tuttle::host::ofx::OfxhIProgress.
Definition at line 341 of file ImageEffectNode.cpp.
References tuttle::common::Color::get(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getContext(), getName(), kOfxImageEffectContextReader, kOfxImageEffectContextWriter, TUTTLE_LOG_INFO, and TUTTLE_LOG_PLUGIN_NAME_WIDTH.

| bool tuttle::host::ImageEffectNode::progressUpdate | ( | const double | progress | ) | [virtual] |
set the progress to some level of completion, returns true if you should abandon processing, false to continue
Implements tuttle::host::ofx::OfxhIProgress.
Definition at line 356 of file ImageEffectNode.cpp.
| void tuttle::host::ImageEffectNode::setName | ( | const std::string & | name | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 35 of file ImageEffectNode.hpp.
| void tuttle::host::ImageEffectNode::setup1 | ( | ) | [virtual] |
Implements tuttle::host::INode.
Definition at line 746 of file ImageEffectNode.cpp.
References checkClipsConnections(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getClipPreferencesAction(), initComponents(), initFps(), initInputClipsFps(), initInputClipsPixelAspectRatio(), initPixelAspectRatio(), and maximizeBitDepthFromReadsToWrites().

| void tuttle::host::ImageEffectNode::setup2_reverse | ( | ) | [virtual] |
Implements tuttle::host::INode.
Definition at line 762 of file ImageEffectNode.cpp.
References maximizeBitDepthFromWritesToReads().

| void tuttle::host::ImageEffectNode::setup3 | ( | ) | [virtual] |
Implements tuttle::host::INode.
Definition at line 767 of file ImageEffectNode.cpp.
References maximizeBitDepthFromReadsToWrites(), and validBitDepthConnections().

| void tuttle::host::ImageEffectNode::timelineGetBounds | ( | double & | t1, |
| double & | t2 | ||
| ) | [virtual] |
get the first and last times available on the effect's timeline
Implements tuttle::host::ofx::OfxhITimeline.
Definition at line 379 of file ImageEffectNode.cpp.
| double tuttle::host::ImageEffectNode::timelineGetTime | ( | ) | [virtual] |
get the current time on the timeline. This is not necessarily the same time as being passed to an action (eg render)
Implements tuttle::host::ofx::OfxhITimeline.
Definition at line 369 of file ImageEffectNode.cpp.
| void tuttle::host::ImageEffectNode::timelineGotoTime | ( | double | t | ) | [virtual] |
set the timeline to a specific time
Implements tuttle::host::ofx::OfxhITimeline.
Definition at line 375 of file ImageEffectNode.cpp.
| void tuttle::host::ImageEffectNode::validBitDepthConnections | ( | ) | const [private] |
Definition at line 656 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::attribute::OfxhClipImage::getBitDepth(), tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::ClipImage::getFullName(), getName(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getPlugin(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), and tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput().
Referenced by setup3().

| void tuttle::host::ImageEffectNode::vmessage | ( | const char * | type, |
| const char * | id, | ||
| const char * | format, | ||
| va_list | args | ||
| ) | const [virtual] |
vmessage
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 169 of file ImageEffectNode.cpp.
| std::ostream& operator<< | ( | std::ostream & | os, |
| const This & | v | ||
| ) | [friend] |
Definition at line 1055 of file ImageEffectNode.cpp.