Engauge Digitizer
2
Toggle main menu visibility
Loading...
Searching...
No Matches
Spline
SplineDrawer.h
Go to the documentation of this file.
1
/******************************************************************************************************
2
* (C) 2018 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3
* under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4
* LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5
******************************************************************************************************/
6
7
#ifndef SPLINE_DRAWER_H
8
#define SPLINE_DRAWER_H
9
10
#include "
SplinePair.h
"
11
#include "
Transformation.h
"
12
#include <QVector>
13
14
class
LineStyle
;
15
class
Spline
;
16
17
enum
SplineDrawerOperation
{
18
SPLINE_DRAWER_ENUM_INVISIBLE_MOVE
,
// Move to final point in segment
19
SPLINE_DRAWER_ENUM_VISIBLE_DRAW
// Draw to final point in segment
20
};
21
22
typedef
QVector<SplineDrawerOperation>
SegmentOperations
;
23
35
class
SplineDrawer
36
{
37
// For unit testing
38
friend
class
TestSplineDrawer
;
39
40
public
:
42
SplineDrawer
(
const
Transformation
&transformation);
43
45
void
bindToSpline
(
const
LineStyle
&lineStyle,
46
int
numSegments,
47
const
Spline
&spline);
48
50
bool
segmentIsMultiValued
(
const
Spline
&spline,
51
int
numSegments,
52
int
segment)
const
;
53
55
SplineDrawerOperation
segmentOperation
(
int
segment)
const
;
56
57
private
:
58
SplineDrawer
();
59
60
const
Transformation
m_transformation;
61
62
SegmentOperations
m_segmentOperations;
63
};
64
65
#endif
// SPLINE_DRAWER_H
SplineDrawerOperation
SplineDrawerOperation
Definition
SplineDrawer.h:17
SPLINE_DRAWER_ENUM_INVISIBLE_MOVE
@ SPLINE_DRAWER_ENUM_INVISIBLE_MOVE
Definition
SplineDrawer.h:18
SPLINE_DRAWER_ENUM_VISIBLE_DRAW
@ SPLINE_DRAWER_ENUM_VISIBLE_DRAW
Definition
SplineDrawer.h:19
SegmentOperations
QVector< SplineDrawerOperation > SegmentOperations
Definition
SplineDrawer.h:22
SplinePair.h
Transformation.h
LineStyle
Details for a specific Line.
Definition
LineStyle.h:20
SplineDrawer::bindToSpline
void bindToSpline(const LineStyle &lineStyle, int numSegments, const Spline &spline)
Analyze each segment in the Spline.
Definition
SplineDrawer.cpp:18
SplineDrawer::SplineDrawer
SplineDrawer(const Transformation &transformation)
Single constructor.
Definition
SplineDrawer.cpp:13
SplineDrawer::TestSplineDrawer
friend class TestSplineDrawer
Definition
SplineDrawer.h:38
SplineDrawer::segmentOperation
SplineDrawerOperation segmentOperation(int segment) const
Indicate if, and how, segment is to be drawn.
Definition
SplineDrawer.cpp:110
SplineDrawer::segmentIsMultiValued
bool segmentIsMultiValued(const Spline &spline, int numSegments, int segment) const
Return true if specified segment is multi-valued, else false.
Definition
SplineDrawer.cpp:48
Spline
Cubic interpolation given independent and dependent value vectors.
Definition
Spline.h:30
Transformation
Affine transformation between screen and graph coordinates, based on digitized axis points.
Definition
Transformation.h:32
Generated on
for Engauge Digitizer by
1.17.0