diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2014-10-30 14:22:17 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2014-10-30 14:22:17 +0000 |
| commit | 58ce696e0a1f622c94c23fed7671ad4c0e32e31d (patch) | |
| tree | 3ee66fc94effcb87448828938a1f99a45bbf4699 /src | |
| parent | Fix make check. Update POTFILES.in with new files. (diff) | |
| download | inkscape-58ce696e0a1f622c94c23fed7671ad4c0e32e31d.tar.gz inkscape-58ce696e0a1f622c94c23fed7671ad4c0e32e31d.zip | |
Starting poinwise code for 0.92. Add base files
(bzr r13645.1.1)
Diffstat (limited to 'src')
| -rw-r--r-- | src/2geom/pointwise.cpp | 62 | ||||
| -rw-r--r-- | src/2geom/pointwise.h | 90 | ||||
| -rw-r--r-- | src/2geom/satellite.h | 146 |
3 files changed, 298 insertions, 0 deletions
diff --git a/src/2geom/pointwise.cpp b/src/2geom/pointwise.cpp new file mode 100644 index 000000000..7a84593ba --- /dev/null +++ b/src/2geom/pointwise.cpp @@ -0,0 +1,62 @@ +/* + * pointwise.cpp - Pointwise function class + * + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, output to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + */ + +#include <2geom/pointwise.h> + +namespace Geom { + +std::pair<int,satelite> +pointwise::findSatellites(int A) const + { + std::pair<int,satelite> ret; + for(unsigned i = 0; i < _satellites.size(); i++){ + if(_satellites[i].first() == A){ + ret.push_back(std::pair<i,_satellites[i].second()>) + } + } + return ret; + } +double toTime(std::pair<int,satelite> A, double B){ + +} +double toSize(std::pair<int,satelite> A, double B) +Pointwise recalculate(Piecewise<D2<SBasis> > A) + + +} +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/2geom/pointwise.h b/src/2geom/pointwise.h new file mode 100644 index 000000000..7573a0bdc --- /dev/null +++ b/src/2geom/pointwise.h @@ -0,0 +1,90 @@ +/** + * \file + * \brief Pointwise + *//* + * Authors: + * + * Copyright 2014 authors + * + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, output to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + */ + +#ifndef SEEN_GEOM_POINTWISE_H +#define SEEN_GEOM_POINTWISE_H + +#include <vector> +#include <2geom/sbasis.h> +#include <2geom/sbasis-2d.h> +#include <2geom/piecewise.h> +#include <2geom/satellite.h> +#include <2geom/affine.h> + +namespace Geom { +/** + * %Pointwise function class. + */ + +class Pointwise +{ + public: + Pointwise(){} + + Pointwise(Piecewise<D2<SBasis> > pwd2, std::vector<std::pair<int,satelite> > satellites) + : _pwd2(pwd2), _satellites(satellites) + { + } + + virtual ~Pointwise(); + + std::pair<int,satelite> findSatellites(int A) const; + + double toTime(std::pair<int,satelite> A, double B); + double toSize(std::pair<int,satelite> A, double B); + double len_to_rad(int index, double len); + double rad_to_len(int index, double rad); + std::vector<double> get_times(int index, bool last); + std::pair<std::size_t, std::size_t> get_positions(int index) + int last_index(int index); + double time_to_len(int index, double time); + double len_to_time(int index, double len); + Pointwise recalculate_for_new_pwd2(Piecewise<D2<SBasis> > A); + + private: + std::vector<std::pair<int,satelite> > _satellites; + Piecewise<D2<SBasis> > _pwd2; +}; + +#endif //SEEN_GEOM_PW_SB_H +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/2geom/satellite.h b/src/2geom/satellite.h new file mode 100644 index 000000000..6be745de0 --- /dev/null +++ b/src/2geom/satellite.h @@ -0,0 +1,146 @@ +/** + * \file + * \brief Satellite + *//* + * Authors: + * + * Copyright 2014 authors + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + */ + +#ifndef LIB2GEOM_SEEN_SATELLITE_H +#define LIB2GEOM_SEEN_SATELLITE_H + +namespace Geom { + +class Satellite +{ + public: + Satellite() + {} + + virtual ~Sattelite(); + + Satellite(typeSatellite ts, bool isTime, bool active, bool after, bool hidden, double size, double time) + : _ts(ts), _time(time), _active(active), _after(after), _hidden(hidden), _size(size), _time(time) + { + } + + void setTypeSatellite(typeSatellite A) + { + _ts = A; + } + + void setActive(bool A) + { + _active = A; + } + + void setAfter(bool A) + { + _after = A; + } + + void setHidden(bool A) + { + _hidden = A; + } + + void setTime(double A) + { + _isTime = true; + _time = A; + } + + void setSize(double A) + { + _isTime = false; + _size = A; + } + + typeSatellite ts() const + { + return _ts; + } + + bool isTime() const + { + return _isTime; + } + + bool active() const + { + return _active; + } + + bool after() const + { + return _after; + } + + bool hidden() const + { + return _hidden; + } + + double size() const + { + return _size; + } + + double time() const + { + return _time; + } + + bool isDegenerate() const + { + return _size = 0 && _time = 0; + } + + private: + typeSatellite _ts; + bool _isTime; + bool _active; + bool _after; + bool _hidden; + double _size; + double _time; +}; + +} // end namespace Geom + +#endif // LIB2GEOM_SEEN_SATELLITE_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : |
