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::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
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 OfxRangeDgetEffectFrameRange () 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)

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 47 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 65 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 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.

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

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.

Here is the call graph for this function:

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

Here is the call graph for this function:

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

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

Here is the call graph for this function:

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

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

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

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.

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

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

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 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]
const std::string& tuttle::host::ImageEffectNode::getName ( void  ) 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 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().

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

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

Definition at line 266 of file ImageEffectNode.cpp.

References kOfxBitDepthFloat.

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 ( void  ) 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 257 of file ImageEffectNode.cpp.

References kOfxImageComponentRGBA.

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 86 of file ImageEffectNode.hpp.

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

Referenced by tuttle::host::attribute::ClipImage::fetchRegionOfDefinition().

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 248 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 76 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 91 of file ImageEffectNode.hpp.

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

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 110 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 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.

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

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

Referenced by operator==().

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

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

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

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

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

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

void tuttle::host::ImageEffectNode::progressStart ( const std::string &  message) [virtual]
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::setup2_reverse ( ) [virtual]

Implements tuttle::host::INode.

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

References maximizeBitDepthFromReadsToWrites(), and validBitDepthConnections().

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 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::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.


Friends And Related Function Documentation

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

Definition at line 1055 of file ImageEffectNode.cpp.


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