File: divide.h

package info (click to toggle)
librecad 2.2.0.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 105,584 kB
  • sloc: cpp: 187,958; sh: 336; xml: 47; makefile: 21
file content (51 lines) | stat: -rw-r--r-- 2,100 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/****************************************************************************
*  divide.h - divide lines, circles and arcs                                *
*                                                                           *
*  Copyright (C) 2018 mad-hatter                                            *
*                                                                           *
*  This library is free software, licensed under the terms of the GNU       *
*  General Public License as published by the Free Software Foundation,     *
*  either version 2 of the License, or (at your option) any later version.  *
*  You should have received a copy of the GNU General Public License        *
*  along with this program.  If not, see <http://www.gnu.org/licenses/>.    *
****************************************************************************/

#ifndef DIVIDE_H
#define DIVIDE_H

#include "qc_plugininterface.h"
#include "document_interface.h"

class Plug_Entity;

class divide : public QObject, QC_PluginInterface
{
    Q_OBJECT
    Q_INTERFACES(QC_PluginInterface)
    Q_PLUGIN_METADATA( IID LC_DocumentInterface_iid FILE "divide.json" )

public:
    virtual PluginCapabilities getCapabilities() const Q_DECL_OVERRIDE;
    virtual QString name() const Q_DECL_OVERRIDE;
    virtual void execComm ( Document_Interface *doc,
                            QWidget *parent, QString cmd ) Q_DECL_OVERRIDE;

public slots:
    void gotReturnedDataSlot( QString );

private:
    QString getStrData( Plug_Entity *ent );
    double polylineRadius( const Plug_VertexData& ptA,
                           const Plug_VertexData& ptB );
    Document_Interface *d;
    QString returnedData;
    double findHypLength( double, double, double, double );
    QPointF findLineEndPoint( double, double, double, double );
    QPoint findWindowCentre();
    QPointF findStartX( double, double, QPointF );
    void drawTick( QPointF, double, double );
    void segmentLine( QPointF, QPointF, QPointF, QString, int, int );
    void segment( QPointF *, double, double, double, QString);
};

#endif //end DIVIDE_H