PlaneCornerPinWarpImageOperation::PlaneCornerPinWarpImageOperation()
    : PlaneDistortWarpImageOperation(), m_corners_ready(false)
{
  addInputSocket(COM_DT_VECTOR);
  addInputSocket(COM_DT_VECTOR);
  addInputSocket(COM_DT_VECTOR);
  addInputSocket(COM_DT_VECTOR);
}
DifferenceMatteOperation::DifferenceMatteOperation() : NodeOperation()
{
	addInputSocket(COM_DT_COLOR);
	addInputSocket(COM_DT_COLOR);
	addOutputSocket(COM_DT_VALUE);

	this->m_inputImage1Program = NULL;
	this->m_inputImage2Program = NULL;
}
ChromaMatteOperation::ChromaMatteOperation() : NodeOperation()
{
	addInputSocket(COM_DT_COLOR);
	addInputSocket(COM_DT_COLOR);
	addOutputSocket(COM_DT_VALUE);

	this->m_inputImageProgram = NULL;
	this->m_inputKeyProgram = NULL;
}
PlaneCornerPinMaskOperation::PlaneCornerPinMaskOperation()
    : PlaneDistortMaskOperation(), m_corners_ready(false)
{
  addInputSocket(COM_DT_VECTOR);
  addInputSocket(COM_DT_VECTOR);
  addInputSocket(COM_DT_VECTOR);
  addInputSocket(COM_DT_VECTOR);

  /* XXX this is stupid: we need to make this "complex",
   * so we can use the initializeTileData function
   * to read corners from input sockets ...
   */
  setComplex(true);
}
LuminanceMatteOperation::LuminanceMatteOperation() : NodeOperation()
{
	addInputSocket(COM_DT_COLOR);
	addOutputSocket(COM_DT_VALUE);

	this->m_inputImageProgram = NULL;
}
ExportParticles::ExportParticles() : core::GraphNode()
{
	addInputSocket( "input" );
	addInputSocket( "file" );
}