File indexing completed on 2024-04-28 15:29:29

0001 /*  -*- C++ -*-
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 2003 Jason Harris <kstars@30doradus.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include "kplotpoint.h"
0009 
0010 #include <QPointF>
0011 #include <QtAlgorithms>
0012 
0013 class KPlotPoint::Private
0014 {
0015 public:
0016     Private(KPlotPoint *qq, const QPointF &p, const QString &l, double bw)
0017         : q(qq)
0018         , point(p)
0019         , label(l)
0020         , barWidth(bw)
0021     {
0022     }
0023 
0024     KPlotPoint *q;
0025 
0026     QPointF point;
0027     QString label;
0028     double barWidth;
0029 };
0030 
0031 KPlotPoint::KPlotPoint()
0032     : d(new Private(this, QPointF(), QString(), 0.0))
0033 {
0034 }
0035 
0036 KPlotPoint::KPlotPoint(double x, double y, const QString &label, double barWidth)
0037     : d(new Private(this, QPointF(x, y), label, barWidth))
0038 {
0039 }
0040 
0041 KPlotPoint::KPlotPoint(const QPointF &p, const QString &label, double barWidth)
0042     : d(new Private(this, p, label, barWidth))
0043 {
0044 }
0045 
0046 KPlotPoint::~KPlotPoint()
0047 {
0048     delete d;
0049 }
0050 
0051 QPointF KPlotPoint::position() const
0052 {
0053     return d->point;
0054 }
0055 
0056 void KPlotPoint::setPosition(const QPointF &pos)
0057 {
0058     d->point = pos;
0059 }
0060 
0061 double KPlotPoint::x() const
0062 {
0063     return d->point.x();
0064 }
0065 
0066 void KPlotPoint::setX(double x)
0067 {
0068     d->point.setX(x);
0069 }
0070 
0071 double KPlotPoint::y() const
0072 {
0073     return d->point.y();
0074 }
0075 
0076 void KPlotPoint::setY(double y)
0077 {
0078     d->point.setY(y);
0079 }
0080 
0081 QString KPlotPoint::label() const
0082 {
0083     return d->label;
0084 }
0085 
0086 void KPlotPoint::setLabel(const QString &label)
0087 {
0088     d->label = label;
0089 }
0090 
0091 double KPlotPoint::barWidth() const
0092 {
0093     return d->barWidth;
0094 }
0095 
0096 void KPlotPoint::setBarWidth(double w)
0097 {
0098     d->barWidth = w;
0099 }