#pragma once /*========================================================================= medInria Copyright (c) INRIA 2013 - 2020. All rights reserved. See LICENSE.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. =========================================================================*/ #include #include #include #include #include class medArithmeticOperationProcessNodePrivate { public: dtkComposerTransmitterReceiver input1; dtkComposerTransmitterReceiver input2; dtkComposerTransmitterEmitter output; }; template medArithmeticOperationProcessNode::medArithmeticOperationProcessNode(void) : dtkComposerNodeObject(), d(new medArithmeticOperationProcessNodePrivate()) { this->appendReceiver(&d->input1); this->appendReceiver(&d->input2); this->appendEmitter(&d->output); } template medArithmeticOperationProcessNode::~medArithmeticOperationProcessNode(void) { } template void medArithmeticOperationProcessNode::run(void) { if (d->input1.isEmpty() || d->input2.isEmpty()) { qDebug() << Q_FUNC_INFO << "The input is not set. Aborting."; return; } else { medAbstractArithmeticOperationProcess* filter = this->object(); if(this->object()) { filter->setInput1(d->input1.data()); filter->setInput2(d->input2.data()); filter->run(); d->output.setData(filter->output()); qDebug()<<"filtering done"; } } }