// -*- C++ -*- // // This file is part of the Coriolis Software. // Copyright (c) UPMC 2016-2019, All Rights Reserved // // +-----------------------------------------------------------------+ // | C O R I O L I S | // | B o r a - A n a l o g S l i c i n g T r e e | // | | // | Author : Jean-Paul Chaput | // | E-mail : Jean-Paul.Chaput@lip6.fr | // | =============================================================== | // | C++ Module : "./arameterRange.cpp" | // +-----------------------------------------------------------------+ #include "bora/ParameterRange.h" namespace Bora { using namespace std; // ------------------------------------------------------------------- // Class : "ParameterRange" ParameterRange::ParameterRange () : _flags(0), _index(0) { } ParameterRange::~ParameterRange () { } string ParameterRange::_getString () const { return "<" + _getTypeName() + ">"; } Record* ParameterRange::_getRecord () const { Record* record = new Record( getString(this) ); record->add( getSlot("_index", _index) ); return record; } // ------------------------------------------------------------------- // Class : "StepParameterRange" StepParameterRange::StepParameterRange ( double start, double step, double count ) : Super() , _start(start) , _step (step ) , _count(count) { } StepParameterRange::~StepParameterRange () { } StepParameterRange* StepParameterRange::clone () const { return new StepParameterRange( _start, _step, _count ); } size_t StepParameterRange::getSize () const { return size_t(_count); } double StepParameterRange::getValue () const { return _start + getIndex() * _step; } string StepParameterRange::_getTypeName () const { return "StepParameterRange"; } string StepParameterRange::_getString () const { string s = Super::_getString(); s.insert( s.length() - 1, " [" + getString(_start)); s.insert( s.length() - 1, " +" + getString(_step )); s.insert( s.length() - 1, " ," + getString(_count) + "]"); return s; } Record* StepParameterRange::_getRecord () const { Record* record = Super::_getRecord(); if (record) { record->add( getSlot("_start", _start) ); record->add( getSlot("_step" , _step ) ); record->add( getSlot("_count", _count) ); } return record; } // ------------------------------------------------------------------- // Class : "MatrixParameterRange" MatrixParameterRange::MatrixParameterRange () : Super() , _matrixes() { } MatrixParameterRange::~MatrixParameterRange () { } MatrixParameterRange* MatrixParameterRange::clone () const { MatrixParameterRange* param = new MatrixParameterRange(); param->copy( this ); return param; } size_t MatrixParameterRange::getSize () const { return _matrixes.size(); } const Matrix& MatrixParameterRange::getValue () const { return _matrixes[ getIndex() ]; } string MatrixParameterRange::_getTypeName () const { return "MatrixParameterRange"; } string MatrixParameterRange::_getString () const { string s = Super::_getString(); s.insert( s.length() - 1, " [" + getString(getSize()) + "]"); return s; } Record* MatrixParameterRange::_getRecord () const { Record* record = Super::_getRecord(); if (record) { record->add( getSlot("_matrixes", &_matrixes) ); } return record; } } // Bora namespace.