File indexing completed on 2024-05-26 04:23:58
0001 /* 0002 * SPDX-FileCopyrightText: 2001-2015 Klaralvdalens Datakonsult AB. All rights reserved. 0003 * 0004 * This file is part of the KD Chart library. 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #ifndef KCHARTABSTRACTTERNARYDIAGRAM_H 0010 #define KCHARTABSTRACTTERNARYDIAGRAM_H 0011 0012 #include "KChartAbstractDiagram.h" 0013 #include "KChartTernaryAxis.h" 0014 0015 namespace KChart { 0016 0017 class TernaryCoordinatePlane; 0018 class TernaryAxis; 0019 0020 /** 0021 * @brief Base class for diagrams based on a ternary coordinate plane. 0022 */ 0023 class KCHART_EXPORT AbstractTernaryDiagram : public AbstractDiagram 0024 { 0025 Q_OBJECT 0026 Q_DISABLE_COPY( AbstractTernaryDiagram ) 0027 KCHART_DECLARE_DERIVED_DIAGRAM( AbstractTernaryDiagram, 0028 TernaryCoordinatePlane ) 0029 0030 public: 0031 explicit AbstractTernaryDiagram ( QWidget* parent = nullptr, 0032 TernaryCoordinatePlane* plane = nullptr ); 0033 ~AbstractTernaryDiagram() override; 0034 0035 void paint (PaintContext *paintContext) override; 0036 0037 virtual void addAxis( TernaryAxis* axis ); 0038 virtual void takeAxis( TernaryAxis* axis ); 0039 virtual TernaryAxisList axes () const; 0040 0041 protected: 0042 const QPair< QPointF, QPointF > calculateDataBoundaries () const override = 0; 0043 0044 }; 0045 0046 } 0047 0048 #endif