TuttleOFX  1
tuttle::host::ImageEffectNode Class Reference

#include <ImageEffectNode.hpp>

Inheritance diagram for tuttle::host::ImageEffectNode:
Collaboration diagram for tuttle::host::ImageEffectNode:

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::OfxhParamgetParam (const std::string &name) const
ofx::attribute::OfxhParamgetParam (const std::string &name)
const ofx::attribute::OfxhParamgetParamByScriptName (const std::string &name, const bool acceptPartialName=false) const
ofx::attribute::OfxhParamgetParamByScriptName (const std::string &name, const bool acceptPartialName=false)
const ofx::attribute::OfxhParamgetParam (const std::size_t index) const
ofx::attribute::OfxhParamgetParam (const std::size_t index)
const ofx::property::OfxhSetgetProperties () const
ofx::property::OfxhSetgetEditableProperties ()
std::vector< int > getVersion () const
ImageEffectNodeclone () 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::ClipImagegetClip (const std::string &name, const bool acceptPartialName=false)
const attribute::ClipImagegetClip (const std::string &name, const bool acceptPartialName=false) const
attribute::ClipImagegetOutputClip ()
const attribute::ClipImagegetOutputClip () const
attribute::AttributegetAttribute (const std::string &name)
attribute::AttributegetSingleInputAttribute ()
const attribute::AttributegetSingleInputAttribute () const
ofx::attribute::OfxhParamSetgetParamSet ()
const
ofx::attribute::OfxhParamSet
getParamSet () const
ofx::attribute::OfxhClipImageSetgetClipImageSet ()
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::OfxhMemorynewMemoryInstance (size_t nBytes)
ofx::attribute::OfxhClipImagenewClipImage (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::OfxhParamnewParam (const ofx::attribute::OfxhParamDescriptor &Descriptor) OFX_EXCEPTION_SPEC
 Create a parameter instance.
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, double 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 checkClipsConnected () const
void initComponents ()
void initInputClipsPixelAspectRatio ()
void initPixelAspectRatio ()
void initInputClipsFps ()
void initFps ()
void maximizeBitDepthFromReadsToWrites ()
void maximizeBitDepthFromWritesToReads ()
void coutBitDepthConnections () const
void validInputClipsConnections () const

Private Attributes

std::string _defaultOutputFielding
 our clip is pretending to be progressive PAL SD, so return kOfxImageFieldNone

Friends

std::ostream & operator<< (std::ostream &os, const This &v)

Detailed Description

Definition at line 18 of file ImageEffectNode.hpp.


Member Typedef Documentation

Reimplemented from tuttle::host::INode.

Definition at line 22 of file ImageEffectNode.hpp.


Constructor & Destructor Documentation

tuttle::host::ImageEffectNode::ImageEffectNode ( ofx::imageEffect::OfxhImageEffectPlugin plugin,
ofx::imageEffect::OfxhImageEffectNodeDescriptor desc,
const std::string &  context 
)

Definition at line 40 of file ImageEffectNode.cpp.

References tuttle::host::ofx::imageEffect::OfxhImageEffectNode::populate().

Referenced by clone().

Here is the call graph for this function:

tuttle::host::ImageEffectNode::~ImageEffectNode ( )

Definition at line 61 of file ImageEffectNode.cpp.


Member Function Documentation

int tuttle::host::ImageEffectNode::abort ( ) [virtual]
Returns:
1 to abort processing

Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.

Definition at line 141 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.

Parameters:
[in]processData
Remarks:
called on each node without predefined order.

Implements tuttle::host::INode.

Definition at line 772 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, and beginSequenceRenderAction().

Here is the call graph for this function:

void tuttle::host::ImageEffectNode::beginSequenceRenderAction ( OfxTime  startFrame,
OfxTime  endFrame,
double  step,
bool  interactive,
OfxPointD  renderScale 
) [virtual]

override to get frame range of the effect

Reimplemented from tuttle::host::ofx::imageEffect::OfxhImageEffectNode.

Definition at line 372 of file ImageEffectNode.cpp.

Referenced by beginSequence().

ImageEffectNode* tuttle::host::ImageEffectNode::clone ( ) const [inline, virtual]

Implements tuttle::host::INode.

Definition at line 58 of file ImageEffectNode.hpp.

References ImageEffectNode().

Here is the call graph for this function:

void tuttle::host::ImageEffectNode::connect ( const INode sourceEffect,
attribute::Attribute attr 
) [virtual]

Implements tuttle::host::INode.

Definition at line 80 of file ImageEffectNode.cpp.

References tuttle::host::INode::getClip(), and tuttle::host::attribute::ClipImage::setConnectedClip().

Here is the call graph for this function:

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 316 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 321 of file ImageEffectNode.cpp.

void tuttle::host::ImageEffectNode::endSequence ( graph::ProcessVertexData processData) [virtual]

End of the whole frame range process, now finalize this node.

Parameters:
[in]processData
Remarks:
called on each node without predefined order.

Implements tuttle::host::INode.

Definition at line 999 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, and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::endSequenceRenderAction().

Here is the call graph for this function:

attribute::Attribute& tuttle::host::ImageEffectNode::getAttribute ( const std::string &  name) [inline, virtual]

Implements tuttle::host::INode.

Definition at line 76 of file ImageEffectNode.hpp.

References getClip().

Here is the call graph for this function:

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

Here is the call graph for this function:

ofx::attribute::OfxhClipImageSet& tuttle::host::ImageEffectNode::getClipImageSet ( ) [inline, virtual]

Implements tuttle::host::INode.

Definition at line 84 of file ImageEffectNode.hpp.

const ofx::attribute::OfxhClipImageSet& tuttle::host::ImageEffectNode::getClipImageSet ( ) const [inline, virtual]

Implements tuttle::host::INode.

Definition at line 85 of file ImageEffectNode.hpp.

const std::string& tuttle::host::ImageEffectNode::getDefaultOutputFielding ( ) const [inline, virtual]

get default output fielding. This is passed into the clip prefs action and might be mapped (if the host allows such a thing)

Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.

Definition at line 138 of file ImageEffectNode.hpp.

References _defaultOutputFielding.

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 ( ) const [virtual]
const OfxRangeD& tuttle::host::ImageEffectNode::getEffectFrameRange ( ) const [inline]

Definition at line 251 of file ImageEffectNode.hpp.

References tuttle::host::graph::ProcessVertexData::_renderTimeRange, and tuttle::host::INode::getData().

Here is the call graph for this function:

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 226 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]
const std::string& tuttle::host::ImageEffectNode::getName ( ) const [inline, virtual]
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 attribute::ClipImage& tuttle::host::ImageEffectNode::getOutputClip ( ) const [inline]

Reimplemented from tuttle::host::INode.

Definition at line 74 of file ImageEffectNode.hpp.

References getClip().

Here is the call graph for this function:

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 tuttle::host::io::getBestReader(), and 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().

Here is the call graph for this function:

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

Here is the call graph for this function:

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

Here is the call graph for this function:

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

Here is the call graph for this function:

ofx::attribute::OfxhParamSet& tuttle::host::ImageEffectNode::getParamSet ( ) [inline, virtual]

Implements tuttle::host::INode.

Definition at line 81 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 82 of file ImageEffectNode.hpp.

const std::string tuttle::host::ImageEffectNode::getProjectBitDepth ( ) const

The pixel bit depth of the current project (host work in float)

Todo:
tuttle: to remove in the future.... size, pixelType, BitDepth, etc... must be locally defined

Definition at line 252 of file ImageEffectNode.cpp.

void tuttle::host::ImageEffectNode::getProjectExtent ( double &  xSize,
double &  ySize 
) const [virtual]
void tuttle::host::ImageEffectNode::getProjectOffset ( double &  xOffset,
double &  yOffset 
) const [virtual]
double tuttle::host::ImageEffectNode::getProjectPixelAspectRatio ( ) const [virtual]
const std::string tuttle::host::ImageEffectNode::getProjectPixelComponentsType ( ) const

The pixel components type of the current project

Todo:
tuttle: to remove in the future.... size, pixelType, BitDepth, etc... must be locally defined

Definition at line 243 of file ImageEffectNode.cpp.

void tuttle::host::ImageEffectNode::getProjectSize ( double &  xSize,
double &  ySize 
) const [virtual]
const ofx::property::OfxhSet& tuttle::host::ImageEffectNode::getProperties ( ) const [inline, virtual]

Implements tuttle::host::INode.

Definition at line 44 of file ImageEffectNode.hpp.

OfxRectD tuttle::host::ImageEffectNode::getRegionOfDefinition ( const OfxTime  time) const [inline]

Definition at line 89 of file ImageEffectNode.hpp.

References tuttle::host::INode::getData().

Referenced by tuttle::host::attribute::ClipImage::fetchRegionOfDefinition(), and tuttle::host::io::getBestReader().

Here is the call graph for this function:

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 234 of file ImageEffectNode.cpp.

attribute::Attribute & tuttle::host::ImageEffectNode::getSingleInputAttribute ( ) [virtual]
const attribute::Attribute& tuttle::host::ImageEffectNode::getSingleInputAttribute ( ) const [inline, virtual]

Implements tuttle::host::INode.

Definition at line 79 of file ImageEffectNode.hpp.

References getSingleInputAttribute().

Referenced by getSingleInputAttribute().

Here is the call graph for this function:

OfxRangeD tuttle::host::ImageEffectNode::getTimeDomain ( ) const [inline, virtual]

Implements tuttle::host::INode.

Definition at line 94 of file ImageEffectNode.hpp.

References tuttle::host::graph::ProcessVertexData::_timeDomain, and tuttle::host::INode::getData().

Referenced by tuttle::host::io::getBestReader().

Here is the call graph for this function:

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.

Parameters:
[in]time

Implements tuttle::host::INode.

Definition at line 113 of file ImageEffectNode.hpp.

References tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getFramesNeeded().

Here is the call graph for this function:

std::vector<int> tuttle::host::ImageEffectNode::getVersion ( ) const [inline, virtual]
void tuttle::host::ImageEffectNode::initFps ( ) [private]
void tuttle::host::ImageEffectNode::initPixelAspectRatio ( ) [private]
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.

Parameters:
[in]processData
[out]clipthe input clip to use as identity
[out]timethe time to use as identity
Returns:
if the node is an identity operation

Implements tuttle::host::INode.

Definition at line 816 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, getOutputClip(), tuttle::host::ofx::attribute::OfxhClipImage::getPixelAspectRatio(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isIdentityAction().

Here is the call graph for this function:

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 119 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 146 of file ImageEffectNode.cpp.

References tuttle::host::ofx::OfxhMemory::alloc().

Here is the call graph for this function:

ofx::attribute::OfxhParam * tuttle::host::ImageEffectNode::newParam ( const ofx::attribute::OfxhParamDescriptor Descriptor) [virtual]

Create a parameter instance.

Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.

Definition at line 259 of file ImageEffectNode.cpp.

References tuttle::quotes().

Here is the call graph for this function:

bool tuttle::host::ImageEffectNode::operator== ( const INode other) const [virtual]

Implements tuttle::host::INode.

Definition at line 64 of file ImageEffectNode.cpp.

Referenced by operator==().

bool tuttle::host::ImageEffectNode::operator== ( const ImageEffectNode other) const
Warning:
do a deep comparison

Definition at line 75 of file ImageEffectNode.cpp.

References operator==().

Here is the call graph for this function:

void tuttle::host::ImageEffectNode::postProcess ( graph::ProcessVertexAtTimeData processData) [virtual]

The process of all nodes is done for one frame, now finalize this node.

Parameters:
[in]processData
Remarks:
Called on each node in a depth first search order. So you have the guarantee that it has been called on each input nodes before.

Implements tuttle::host::INode.

Definition at line 993 of file ImageEffectNode.cpp.

void tuttle::host::ImageEffectNode::preProcess1 ( graph::ProcessVertexAtTimeData processData) [virtual]

Initialization pass to propagate informations from inputs to outputs.

Parameters:
[in]processData
Remarks:
Called on each node in a depth first search order. So you have the guarantee that it has been called on each input nodes before.

<

Todo:
tuttle: tile supports

Reimplemented from tuttle::host::INode.

Definition at line 784 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, and TUTTLE_TLOG.

Here is the call graph for this function:

void tuttle::host::ImageEffectNode::preProcess2_reverse ( graph::ProcessVertexAtTimeData processData) [virtual]

Initialization pass to propagate informations from outputs to inputs.

Parameters:
[in]processData
Remarks:
Called on each node in a REVERSE depth first search order. So you have the guarantee that it has been called on each output nodes before. Output nodes are those who used the result of the current node.

Reimplemented from tuttle::host::INode.

Definition at line 803 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().

Here is the call graph for this function:

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.

Parameters:
[in]processData
Remarks:
Called on each node in a depth first search order. So you have the guarantee that it has been called on each input nodes before.

Implements tuttle::host::INode.

Definition at line 831 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(), and getOutputClip().

Here is the call graph for this function:

std::ostream & tuttle::host::ImageEffectNode::print ( std::ostream &  os) const [virtual]
void tuttle::host::ImageEffectNode::process ( graph::ProcessVertexAtTimeData processData) [virtual]

Process this node. All inputs are compute.

Parameters:
[in]processData
Remarks:
Called on each node in a depth first search order. So you have the guarantee that it has been called on each input nodes before.

Implements tuttle::host::INode.

Definition at line 841 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::_isFinalNode, tuttle::host::graph::ProcessVertexAtTimeData::_nodeData, tuttle::host::graph::ProcessVertexAtTimeData::_outDegree, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoI, tuttle::host::graph::ProcessVertexAtTimeData::_time, 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(), getName(), tuttle::host::graph::IEdge::getOut(), getOutputClip(), tuttle::host::graph::ProcessEdgeAtTime::getOutTime(), tuttle::host::ofx::attribute::OfxhClipImage::getPixelAspectRatio(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getPlugin(), 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_LOG_TRACE, and TUTTLE_TLOG.

Here is the call graph for this function:

void tuttle::host::ImageEffectNode::progressEnd ( ) [virtual]

finish yer progress

Implements tuttle::host::ofx::OfxhIProgress.

Definition at line 335 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 327 of file ImageEffectNode.cpp.

References tuttle::common::Color::get(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getContext(), getName(), TUTTLE_LOG_INFO, and TUTTLE_LOG_PLUGIN_NAME_WIDTH.

Here is the call graph for this function:

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 342 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::setup2_reverse ( ) [virtual]

Implements tuttle::host::INode.

Definition at line 760 of file ImageEffectNode.cpp.

References maximizeBitDepthFromWritesToReads().

Here is the call graph for this function:

void tuttle::host::ImageEffectNode::setup3 ( ) [virtual]

Implements tuttle::host::INode.

Definition at line 765 of file ImageEffectNode.cpp.

References maximizeBitDepthFromReadsToWrites(), and validInputClipsConnections().

Here is the call graph for this function:

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 365 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 355 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 361 of file ImageEffectNode.cpp.

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 155 of file ImageEffectNode.cpp.


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const This v 
) [friend]

Definition at line 1035 of file ImageEffectNode.cpp.


Field Documentation

our clip is pretending to be progressive PAL SD, so return kOfxImageFieldNone

Definition at line 277 of file ImageEffectNode.hpp.

Referenced by getDefaultOutputFielding().


The documentation for this class was generated from the following files: