/* dtkComposerNodeVector3DOperatorUnary.cpp --- * * Author: tkloczko * Copyright (C) 2011 - Thibaud Kloczko, Inria. * Created: Thu Apr 26 15:58:22 2012 (+0200) * Version: $Id: a7a26a847b4497a0880d9d1dedc2224658bf6889 $ * Last-Updated: mar. févr. 4 17:48:26 2014 (+0100) * By: Nicolas Niclausse * Update #: 44 */ /* Commentary: * */ /* Change log: * */ #include "dtkComposerNodeVector3D.h" #include "dtkComposerNodeVector3DOperatorUnary.h" #include "dtkComposerTransmitterEmitter.h" #include "dtkComposerTransmitterReceiver.h" #include #include // ///////////////////////////////////////////////////////////////// // dtkComposerNodeVector3DOperatorUnary // ///////////////////////////////////////////////////////////////// class dtkComposerNodeVector3DOperatorUnaryPrivate { public: dtkComposerTransmitterReceiver receiver_vec; public: dtkComposerTransmitterEmitter emitter_vec; }; dtkComposerNodeVector3DOperatorUnary::dtkComposerNodeVector3DOperatorUnary(void) : dtkComposerNodeLeaf(), d(new dtkComposerNodeVector3DOperatorUnaryPrivate) { this->appendReceiver(&d->receiver_vec); this->appendEmitter(&d->emitter_vec); } dtkComposerNodeVector3DOperatorUnary::~dtkComposerNodeVector3DOperatorUnary(void) { delete d; d = NULL; } // ///////////////////////////////////////////////////////////////// // dtkComposerNodeVector3DOperatorUnaryScalar // ///////////////////////////////////////////////////////////////// class dtkComposerNodeVector3DOperatorUnaryScalarPrivate { public: dtkComposerTransmitterReceiver receiver_vec; public: dtkComposerTransmitterEmitter emitter_val; public: qreal value; }; dtkComposerNodeVector3DOperatorUnaryScalar::dtkComposerNodeVector3DOperatorUnaryScalar(void) : dtkComposerNodeLeaf(), d(new dtkComposerNodeVector3DOperatorUnaryScalarPrivate) { this->appendReceiver(&d->receiver_vec); d->value = 0.; d->emitter_val.setData(&d->value); this->appendEmitter(&d->emitter_val); } dtkComposerNodeVector3DOperatorUnaryScalar::~dtkComposerNodeVector3DOperatorUnaryScalar(void) { delete d; d = NULL; } // ///////////////////////////////////////////////////////////////// // dtkComposerNodeVector3DOperatorUnary - UNITARY // ///////////////////////////////////////////////////////////////// void dtkComposerNodeVector3DOperatorUnaryUnitary::run(void) { if (d->receiver_vec.isEmpty()) { dtkWarn() << "Input not specified. Nothing is done"; d->emitter_vec.clearData(); } else { dtkVector3DReal *vector = d->receiver_vec.data(); vector->makeUnit(); d->emitter_vec.setData(vector); } } // ///////////////////////////////////////////////////////////////// // dtkComposerNodeVector3DOperatorUnaryScalar - NORM // ///////////////////////////////////////////////////////////////// void dtkComposerNodeVector3DOperatorUnaryScalarNorm::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(); } }