/* dtkComposerNodeVectorRealOperatorUnary.cpp --- * * Author: slekout * Copyright (C) 2011 - Babette lekouta, Inria. * Created: Thu Apr 26 15:58:22 2012 (+0200) * Version: $Id: d5c06aa24a677a76ae4ca61ec1d71d37a6cd3972 $ * Last-Updated: * By: * Update #: */ /* Commentary: * */ /* Change log: * */ #include "dtkComposerNodeVectorRealOperatorUnary.h" #include "dtkComposerTransmitterEmitter.h" #include "dtkComposerTransmitterReceiver.h" #include #include // ///////////////////////////////////////////////////////////////// // dtkComposerNodeVectorRealOperatorUnary // ///////////////////////////////////////////////////////////////// class dtkComposerNodeVectorRealOperatorUnaryPrivate { public: dtkComposerTransmitterReceiver receiver_vec; public: dtkComposerTransmitterEmitter emitter_vec; }; dtkComposerNodeVectorRealOperatorUnary::dtkComposerNodeVectorRealOperatorUnary(void) : dtkComposerNodeLeaf(), d(new dtkComposerNodeVectorRealOperatorUnaryPrivate) { this->appendReceiver(&d->receiver_vec); this->appendEmitter(&d->emitter_vec); } dtkComposerNodeVectorRealOperatorUnary::~dtkComposerNodeVectorRealOperatorUnary(void) { delete d; d = NULL; } // ///////////////////////////////////////////////////////////////// // dtkComposerNodeVectorRealOperatorUnaryScalar // ///////////////////////////////////////////////////////////////// class dtkComposerNodeVectorRealOperatorUnaryScalarPrivate { public: dtkComposerTransmitterReceiver receiver_vec; public: dtkComposerTransmitterEmitter emitter_val; public: qreal value; }; dtkComposerNodeVectorRealOperatorUnaryScalar::dtkComposerNodeVectorRealOperatorUnaryScalar(void) : dtkComposerNodeLeaf(), d(new dtkComposerNodeVectorRealOperatorUnaryScalarPrivate) { this->appendReceiver(&d->receiver_vec); d->value = 0.; d->emitter_val.setData(&d->value); this->appendEmitter(&d->emitter_val); } dtkComposerNodeVectorRealOperatorUnaryScalar::~dtkComposerNodeVectorRealOperatorUnaryScalar(void) { delete d; d = NULL; } // ///////////////////////////////////////////////////////////////// // dtkComposerNodeVectorRealOperatorUnary - UNITARY // ///////////////////////////////////////////////////////////////// void dtkComposerNodeVectorRealOperatorUnaryUnitary::run(void) { if (d->receiver_vec.isEmpty()) { dtkWarn() << "Input not specified. Nothing is done"; d->emitter_vec.clearData(); } else { dtkVectorReal *vector = d->receiver_vec.data(); vector->makeUnit(); d->emitter_vec.setData(vector); } } // ///////////////////////////////////////////////////////////////// // dtkComposerNodeVectorRealOperatorUnaryScalar - NORM // ///////////////////////////////////////////////////////////////// void dtkComposerNodeVectorRealOperatorUnaryScalarNorm::run(void) { if (d->receiver_vec.isEmpty()) { dtkWarn() << "Input not specified. Nothing is done"; d->value = -1.; } else { d->value = d->receiver_vec.data()->norm(); } }