Imported Upstream version 8.3
Tobias Winchen
7 years ago
18 | 18 | engauge.dmg |
19 | 19 | engauge.pkg |
20 | 20 | engauge.app.dSYM |
21 | fftw-3.3.4* | |
22 | log4cpp-1.1.1* | |
23 | log4cpp_null* | |
24 | poppler-qt5* | |
21 | 25 | transifex_downloads⏎ |
6 | 6 | QTLIBS: Qt5CLucene Qt5Core Qt5Gui Qt5Help Qt5Network Qt5PrintSupport Qt5Sql Qt5Widgets Qt5Xml |
7 | 7 | |
8 | 8 | matrix: |
9 | - ENGAUGE_RELEASE: "1" | |
9 | - ENGAUGE_RELEASE: 1 | |
10 | ENGAUGE_CONFIG: "pdf" | |
10 | 11 | QTLIBEXT: '.lib' |
11 | 12 | LOG4CPPDLLINK: 'https://dl.dropboxusercontent.com/u/1147076/log4cpp-1.1.1.zip' |
12 | 13 | RESULTDIR: engauge-build |
13 | - QTLIBEXT: 'd.lib' | |
14 | - ENGAUGE_CONFIG: "debug pdf" | |
15 | QTLIBEXT: 'd.lib' | |
14 | 16 | LOG4CPPDLLINK: 'https://dl.dropboxusercontent.com/u/1147076/log4cpp-debug-1.1.1.zip' |
15 | 17 | RESULTDIR: engauge-build-debug |
16 | 18 | |
17 | 19 | install: |
18 | - set QTDIR=C:\Qt\5.6\msvc2013 | |
20 | - set QTDIR=C:\Qt\5.7\msvc2013 | |
19 | 21 | - set PATH=%PATH%;%QTDIR%\bin |
20 | 22 | - cd %APPVEYOR_BUILD_FOLDER% |
21 | 23 | - curl -fsSL %LOG4CPPDLLINK% -o log4cpp-1.1.1.zip |
33 | 35 | - move *dll lib |
34 | 36 | - move *def lib |
35 | 37 | - move *lib lib |
38 | - cd %APPVEYOR_BUILD_FOLDER% | |
39 | - curl -fsSLO 'https://dl.dropboxusercontent.com/u/1147076/poppler-qt5.zip' -o poppler-qt5.zip | |
40 | - 7z x poppler-qt5.zip -aoa | |
36 | 41 | |
37 | 42 | build_script: |
38 | 43 | - cd %APPVEYOR_BUILD_FOLDER% |
39 | 44 | - set LOG4CPP_HOME=%APPVEYOR_BUILD_FOLDER%\log4cpp-1.1.1 |
40 | 45 | - set FFTW_HOME=%APPVEYOR_BUILD_FOLDER%\fftw-3.3.4-dll32 |
41 | - qmake engauge.pro | |
46 | - set POPPLER_INCLUDE=%APPVEYOR_BUILD_FOLDER%\poppler-qt5\include\poppler\qt5 | |
47 | - set POPPLER_LIB=%APPVEYOR_BUILD_FOLDER%\poppler-qt5 | |
48 | - qmake engauge.pro "CONFIG+=%ENGAUGE_CONFIG%" | |
42 | 49 | - move Makefile Makefile.orig |
43 | 50 | - ps: gc Makefile.orig | %{ $_ -replace '551.lib', $Env:QTLIBEXT } > Makefile |
44 | 51 | - nmake |
60 | 67 | - copy bin\engauge.exe %RESULTDIR% |
61 | 68 | - copy log4cpp-1.1.1\lib\log4cpp.dll %RESULTDIR% |
62 | 69 | - copy fftw-3.3.4-dll32\lib\libfftw3-3.dll %RESULTDIR% |
70 | - copy %APPVEYOR_BUILD_FOLDER%\poppler-qt5\*.dll %RESULTDIR% | |
63 | 71 | - copy LICENSE %RESULTDIR% |
64 | 72 | - cd %APPVEYOR_BUILD_FOLDER%\help |
65 | 73 | - qcollectiongenerator engauge.qhcp -o engauge.qhc |
66 | 74 | - move engauge.qch ..\%RESULTDIR%\documentation |
67 | 75 | - move engauge.qhc ..\%RESULTDIR%\documentation |
68 | 76 | - cd .. |
69 | - 7z a %RESULTDIR%.zip %RESULTDIR% | |
77 | - 7z a %RESULTDIR%.7z %RESULTDIR% | |
70 | 78 | |
71 | 79 | artifacts: |
72 | - path: engauge-build*.zip | |
80 | - path: engauge-build*.7z | |
73 | 81 | name: engauge-build-result |
0 | [Desktop Entry] | |
1 | Name=Engauge Digitizer | |
2 | Type=Application | |
3 | Comment=Extracts data points from images of graphs | |
4 | TryExec=engauge | |
5 | Exec=engauge %F | |
6 | MimeType=text/plain | |
7 | Categories=Education;Science;DataVisualization; | |
8 | Icon=/usr/share/pixmaps/engauge-digitizer.xpm | |
9 | Keywords=Analog-Digital Converter; |
0 | 0 | <?xml version="1.0" encoding="UTF-8"?> |
1 | 1 | <!DOCTYPE QtCreatorProject> |
2 | <!-- Written by QtCreator 3.0.1, 2016-06-08T22:08:48. --> | |
2 | <!-- Written by QtCreator 3.0.1, 2016-07-06T22:13:50. --> | |
3 | 3 | <qtcreator> |
4 | 4 | <data> |
5 | 5 | <variable>ProjectExplorer.Project.ActiveTarget</variable> |
57 | 57 | <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> |
58 | 58 | <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> |
59 | 59 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> |
60 | <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory"></value> | |
60 | <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/mark/engauge-digitizer/</value> | |
61 | 61 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> |
62 | 62 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> |
63 | 63 | <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> |
66 | 66 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> |
67 | 67 | <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> |
68 | 68 | <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value> |
69 | <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> | |
69 | <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments">CONFIG+=pdf</value> | |
70 | 70 | <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> |
71 | 71 | </valuemap> |
72 | 72 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> |
115 | 115 | <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> |
116 | 116 | <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> |
117 | 117 | </valuemap> |
118 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> | |
119 | <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory"></value> | |
120 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> | |
121 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> | |
122 | <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> | |
123 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> | |
124 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
125 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> | |
126 | <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> | |
127 | <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value> | |
128 | <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> | |
129 | <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> | |
130 | </valuemap> | |
131 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> | |
132 | <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> | |
133 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> | |
134 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
135 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> | |
136 | <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> | |
137 | <value type="QString">-w</value> | |
138 | <value type="QString">-r</value> | |
139 | </valuelist> | |
140 | <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> | |
141 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> | |
142 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> | |
143 | </valuemap> | |
144 | <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> | |
145 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> | |
146 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
147 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> | |
148 | </valuemap> | |
149 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> | |
150 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> | |
151 | <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> | |
152 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> | |
153 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
154 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> | |
155 | <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> | |
156 | <value type="QString">-w</value> | |
157 | <value type="QString">-r</value> | |
158 | </valuelist> | |
159 | <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> | |
160 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> | |
161 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> | |
162 | </valuemap> | |
163 | <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> | |
164 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> | |
165 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
166 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> | |
167 | </valuemap> | |
168 | <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> | |
169 | <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> | |
170 | <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> | |
171 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value> | |
172 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
173 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> | |
174 | <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value> | |
175 | <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> | |
176 | </valuemap> | |
177 | <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value> | |
118 | <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value> | |
178 | 119 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> |
179 | 120 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> |
180 | 121 | <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> |
229 | 170 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">engauge</value> |
230 | 171 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
231 | 172 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/mark/engauge-digitizer/engauge.pro</value> |
232 | <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments">-errorreport ../test/cartesian_linear_log.xml -regression</value> | |
173 | <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value> | |
233 | 174 | <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">engauge.pro</value> |
234 | 175 | <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value> |
235 | 176 | <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value> |
236 | <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value> | |
177 | <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory">/home/mark/engauge-digitizer/src</value> | |
237 | 178 | <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> |
238 | 179 | <value type="bool" key="RunConfiguration.UseCppDebugger">true</value> |
239 | 180 | <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value> |
4 | 4 | <metadata_license>CC0</metadata_license> |
5 | 5 | <project_license>GPL-2.0+</project_license> |
6 | 6 | <name>Engauge Digitizer</name> |
7 | <summary>Convert an image file showing a graph or map into numbers</summary> | |
8 | 7 | <description> |
9 | <p> | |
10 | This open source digitizing software converts an image file | |
11 | showing a graph or map into numbers. The image file can come | |
12 | from a scanner, digital camera, or a screen-shot. The numbers | |
13 | can be read on the screen and written or copied to a | |
14 | spreadsheet. The process starts with an image file containing a | |
15 | graph or map. The final result is digitized data that can be | |
16 | used by other tools such as spreadsheet and numerical computation | |
17 | programs. | |
18 | </p> | |
19 | <p> | |
20 | Here are some real-life examples: | |
21 | </p> | |
22 | <ul> | |
23 | <li> | |
24 | You need to recreate graphs in some decades-old documents in | |
25 | a modern format | |
26 | </li> | |
27 | <li> | |
28 | You are a graduate student gathering historical data from | |
29 | charts for your project | |
30 | </li> | |
31 | <li> | |
32 | You are a webmaster with visitor statistics charts and you | |
33 | want to do statistical analyses | |
34 | </li> | |
35 | </ul> | |
8 | <p> | |
9 | The Engauge Digitizer tool assists in interactively extracting numbers | |
10 | from images of graphs. Conceptually, it is thus the opposite of a | |
11 | graphing tool that converts data points to graphs. It provides assistance | |
12 | in enhancing the image quality and matching the data points. Engauge | |
13 | Digitizer is used by individuals such as grad students and researchers as | |
14 | well as engineers and employees in large government and commercial | |
15 | organizations for processing single files but also managing databases of | |
16 | thousands of image files. | |
17 | </p> | |
18 | ||
19 | <p> | |
20 | Features of Engauge Digitizer include: | |
21 | </p> | |
22 | <ul> | |
23 | <li>Automatic grid line removal</li> | |
24 | <li>Automatic point and axis matching</li> | |
25 | <li>Automatic curve tracing</li> | |
26 | <li>Image processing for separating important details from background information</li> | |
27 | <li>A wizard providing an interactive tutorial to explain the basic steps</li> | |
28 | <li>Multiple coordinate systems in the same image can be digitized in advanced mode</li> | |
29 | <li>Cubic spline interpolation between points gives more accurate curves with fewer points</li> | |
30 | <li>Handling of cartesian, polar, linear and logarithmic graphs</li> | |
31 | <li>Support for drag-and-drop and copy-and-paste</li> | |
32 | <li>Context-sensitive help, user manual and tutorials explaining every feature</li> | |
33 | <li>Preview windows to give immediate feedback while modifying settings</li> | |
34 | <li>Automated line and point extraction to rapidly digitize data</li> | |
35 | </ul> | |
36 | ||
36 | 37 | </description> |
37 | 38 | <screenshots> |
38 | 39 | <screenshot type="default">https://github.com/markummitchell/engauge-digitizer/raw/master/dev/gnome/engauge-screenshots/engauge-screenshot-points-save-as.png</screenshot> |
39 | 40 | <screenshot>https://github.com/markummitchell/engauge-digitizer/raw/master/dev/gnome/engauge-screenshots/engauge-screenshot-axis-point.png</screenshot> |
40 | 41 | <screenshot>https://github.com/markummitchell/engauge-digitizer/raw/master/dev/gnome/engauge-screenshots/engauge-screenshot-map-points.png</screenshot> |
41 | 42 | </screenshots> |
42 | <url type="homepage">http://digitizer.sourceforge.net/</url> | |
43 | <url type="homepage">http://markummitchell.github.io/engauge-digitizer/</url> | |
43 | 44 | <updatecontact>zbyszek@in.waw.pl</updatecontact> |
44 | 45 | </application> |
12 | 12 | <key>CFBundleExecutable</key> |
13 | 13 | <string>Engauge Digitizer</string> |
14 | 14 | <key>CFBundleVersion</key> |
15 | <string>8.2</string> | |
15 | <string>8.3</string> | |
16 | 16 | <key>CFBundleShortVersionString</key> |
17 | <string>8.2</string> | |
17 | <string>8.3</string> | |
18 | 18 | <key>LSApplicationCategoryType</key> |
19 | 19 | <string>public.app-category.utilities</string> |
20 | 20 | <key>CFBundleIdentifier</key> |
4 | 4 | engauge*.wixpdb |
5 | 5 | staging |
6 | 6 | Engauge Digitizer |
7 | Engauge Digitizer.7z | |
7 | 8 | build_msi_and_zip~ |
9 | engauge-build | |
10 | engauge-build.7z | |
11 | fftw-3.3.4-dll32 | |
12 | log4cpp-1.1.1*⏎ |
0 | #!/usr/bin/bash | |
1 | # | |
2 | # ENGDIR is two levels above the current directory | |
3 | DIR=`pwd` | |
4 | export ENGDIR=${DIR%/*/*} | |
5 | export ENGTRANSDIR="$ENGDIR/translations" | |
6 | export QTBINDIR=`qtpaths --binaries-dir` | |
7 | export QTPLUGINSDIR=`qtpaths --plugin-dir` | |
8 | if [ -z "$QTBINDIR" ]; then | |
9 | echo "qtpaths utility is not in PATH, which should be pointing to the Qt5 bin directory" | |
10 | exit | |
11 | fi | |
12 | # | |
13 | echo "Engauge: $ENGDIR" | |
14 | echo "Qt binaries: $QTBINDIR" | |
15 | echo "Qt plugins: $QTPLUGINSDIR" | |
16 | echo "Translations: $ENGTRANSDIR" | |
17 | # | |
18 | echo " " | |
19 | where g++ | |
20 | where mingw32-make | |
21 | echo " " | |
22 | # | |
23 | read -p 'If the g++ compiler and mingw32-make tools are first in a directory like C:\QtOpenSource\Qt5.5.1\Tools\mingw492_32\bin, press Enter to continue, otherwise Control-C and fix the PATH variable' | |
24 | # | |
25 | export FROMQCH="$ENGDIR/bin/documentation/engauge.qch" | |
26 | export FROMQHC="$ENGDIR/bin/documentation/engauge.qhc" | |
27 | export FROMICO="$ENGDIR/src/img/digitizer.ico" | |
28 | export FROMDLL="$QTBINDIR" | |
29 | if ([ ! -f "$FROMQCH" ] || [ ! -f "$FROMQHC" ]); then | |
30 | echo "File $FROMQCH and/or $FROMQHC does not exist. Run $ENGDIR/help/build.mingw to create those files" | |
31 | exit | |
32 | fi | |
33 | # | |
34 | echo " " | |
35 | ls -ls $FROMQCH | awk '{print $7,$8,$9,$10}' | |
36 | ls -ls $FROMQHC | awk '{print $7,$8,$9,$10}' | |
37 | echo " " | |
38 | # | |
39 | read -p 'If the help input files are up to date, press Enter to continue' | |
40 | # | |
41 | VERSION_NUMBER_CODE=`fgrep -e 'char *VERSION_NUMBER' ../../src/util/Version.cpp | awk -F '"' '{print $2}'` | |
42 | VERSION_NUMBER_WIX=`fgrep -e 'Version' engauge.wxs | grep -v Installer | awk -F "'" '{print $2}'` | |
43 | # | |
44 | echo " " | |
45 | echo "Version number in C++ code (Version.cpp)=$VERSION_NUMBER_CODE" | |
46 | echo "Version number in Windows WiX installer (engauge.wxs)=$VERSION_NUMBER_WIX" | |
47 | echo " " | |
48 | # | |
49 | read -p 'If the version numbers are correct, press Enter to continue' | |
50 | # | |
51 | VERSION_NUMBER_CODE=`echo $VERSION_NUMBER_CODE | sed 's/\./_/g'` | |
52 | # | |
53 | echo "***Copying help input files" | |
54 | mkdir -p documentation | |
55 | cp $FROMQCH ../../bin/documentation | |
56 | cp $FROMQHC ../../bin/documentation | |
57 | # | |
58 | echo "***Copying DLL libraries from $FROMDLL" | |
59 | cp $FROMDLL/libwinpthread-1.dll ../../bin/ | |
60 | # | |
61 | echo "***Copying icon file" | |
62 | cp $FROMICO ../../bin | |
63 | # | |
64 | # Notes: | |
65 | # 1) Need gcc 4 bundled with Qt rather than gcc 3 at /usr/bin to prevent 'unrecognized command line | |
66 | # option -fno-keep-inline-dllexport' | |
67 | # 2) Running 'make -j 4' exhausts system resources which hangs the build | |
68 | # 3) windeployqt builds the release files in the same directory as the executable | |
69 | # 4) PATH must include $QTBINDIR but in the /C/... format rather than the C:/... format that $QTBINDIR is in | |
70 | # 5) qt dislikes mingw to the point that it creates Makefiles with mangled library names, which we fix using sed | |
71 | echo "***Rebuilding release executable" && | |
72 | export PATH="$QTBINDIR:$PATH" | |
73 | export ENGAUGE_RELEASE=1 && | |
74 | cd ../.. && | |
75 | lrelease engauge.pro && | |
76 | qmake engauge.pro && | |
77 | sed 's/-lQt/-lQt5/g' Makefile >Makefile~ && | |
78 | sed 's/Qt55/Qt5/g' Makefile~ >Makefile && | |
79 | mingw32-make clean && | |
80 | mingw32-make && | |
81 | cd dev/windows && | |
82 | echo "***Rebuilding release directory" && | |
83 | windeployqt -release ../../bin/engauge.exe && | |
84 | echo "***Compiling release files" && | |
85 | candle.exe engauge.wxs && | |
86 | candle.exe WixUI_InstallDir_NoLicense.wxs && | |
87 | echo "***Creating MSI" && | |
88 | light.exe -ext WixUIExtension -ext WixUtilExtension engauge.wixobj WixUI_InstallDir_NoLicense.wixobj -o digit-exe-windows-32-bit-installer-$VERSION_NUMBER_CODE.msi | |
89 | # | |
90 | echo "***Copying files for creating zip file" | |
91 | mkdir -p "Engauge Digitizer/bearer" | |
92 | mkdir -p "Engauge Digitizer/documentation" | |
93 | mkdir -p "Engauge Digitizer/iconengines" | |
94 | mkdir -p "Engauge Digitizer/imageformats" | |
95 | mkdir -p "Engauge Digitizer/platforms" | |
96 | mkdir -p "Engauge Digitizer/printsupport" | |
97 | mkdir -p "Engauge Digitizer/sqldrivers" | |
98 | mkdir -p "Engauge Digitizer/translations" | |
99 | cp $QTPLUGINSDIR/bearer/qgenericbearer.dll "Engauge Digitizer/bearer" | |
100 | cp $QTPLUGINSDIR/bearer/qnativewifibearer.dll "Engauge Digitizer/bearer" | |
101 | cp $FROMQCH "Engauge Digitizer/documentation" | |
102 | cp $FROMQHC "Engauge Digitizer/documentation" | |
103 | cp $QTPLUGINSDIR/iconengines/qsvgicon.dll "Engauge Digitizer/iconengines" | |
104 | cp $QTPLUGINSDIR/imageformats/qdds.dll "Engauge Digitizer/imageformats" | |
105 | cp $QTPLUGINSDIR/imageformats/qgif.dll "Engauge Digitizer/imageformats" | |
106 | cp $QTPLUGINSDIR/imageformats/qicns.dll "Engauge Digitizer/imageformats" | |
107 | cp $QTPLUGINSDIR/imageformats/qico.dll "Engauge Digitizer/imageformats" | |
108 | cp $QTPLUGINSDIR/imageformats/qjpeg.dll "Engauge Digitizer/imageformats" | |
109 | cp $QTPLUGINSDIR/imageformats/qsvg.dll "Engauge Digitizer/imageformats" | |
110 | cp $QTPLUGINSDIR/imageformats/qtga.dll "Engauge Digitizer/imageformats" | |
111 | cp $QTPLUGINSDIR/imageformats/qtiff.dll "Engauge Digitizer/imageformats" | |
112 | cp $QTPLUGINSDIR/imageformats/qwbmp.dll "Engauge Digitizer/imageformats" | |
113 | cp $QTPLUGINSDIR/imageformats/qwebp.dll "Engauge Digitizer/imageformats" | |
114 | cp $QTPLUGINSDIR/platforms/qwindows.dll "Engauge Digitizer/platforms" | |
115 | cp $QTPLUGINSDIR/printsupport/windowsprintersupport.dll "Engauge Digitizer/printsupport" | |
116 | cp $QTPLUGINSDIR/sqldrivers/qsqlite.dll "Engauge Digitizer/sqldrivers" | |
117 | cp $QTPLUGINSDIR/sqldrivers/qsqlmysql.dll "Engauge Digitizer/sqldrivers" | |
118 | cp $QTPLUGINSDIR/sqldrivers/qsqlpsql.dll "Engauge Digitizer/sqldrivers" | |
119 | cp $QTTRANSDIR/*.qm "Engauge Digitizer/translations" | |
120 | cp $ENGTRANSDIR/*.qm "Engauge Digitizer/translations" | |
121 | cp ../../LICENSE "Engauge Digitizer" | |
122 | cp ../../bin/D3Dcompiler_47.dll "Engauge Digitizer" | |
123 | cp ../../bin/engauge.exe "Engauge Digitizer" | |
124 | cp ../../bin/libEGL.dll "Engauge Digitizer" | |
125 | cp ../../bin/libgcc_s_dw2-1.dll "Engauge Digitizer" | |
126 | cp ../../bin/libGLESV2.dll "Engauge Digitizer" | |
127 | cp ../../bin/libstdc++-6.dll "Engauge Digitizer" | |
128 | cp ../../bin/libwinpthread-1.dll "Engauge Digitizer" | |
129 | cp ../../bin/opengl32sw.dll "Engauge Digitizer" | |
130 | cp ../../bin/Qt5*.dll "Engauge Digitizer" | |
131 | # | |
132 | echo "***Building zip file" | |
133 | /C/cygwin64/bin/zip -r digit-exe-windows-32-bit-without-installer-file-$VERSION_NUMBER_CODE.zip "Engauge Digitizer" |
0 | call C:\"Program Files (x86)"\"Microsoft Visual Studio 12.0"\VC\vcvarsall.bat x86 | |
1 | ||
2 | set QTDIRS=bearer iconengines imageformats platforms printsupport sqldrivers | |
3 | set QTLIBS=Qt5CLucene Qt5Core Qt5Gui Qt5Help Qt5Network Qt5PrintSupport Qt5Sql Qt5Widgets Qt5Xml | |
4 | ||
5 | set ENGAUGE_CONFIG='pdf' | |
6 | set QTLIBEXT='.lib' | |
7 | set LOG4CPPDLLINK='https://dl.dropboxusercontent.com/u/1147076/log4cpp-1.1.1.zip' | |
8 | ||
9 | set SCRIPTDIR=%cd% | |
10 | ||
11 | rem Double-double quotes are needed in next line if the directory has a space | |
12 | set RESULTDIR=""%SCRIPTDIR%\Engauge Digitizer"" | |
13 | ||
14 | mkdir "%RESULTDIR%" | |
15 | ||
16 | rem Directory containing engauge.pro | |
17 | set APPVEYOR_BUILD_FOLDER="%SCRIPTDIR%\..\.." | |
18 | ||
19 | rem Nominal Qt installation is QTDIR="C:\Qt\5.6\msvc2013" or QTDIR="C:\Qt\5.7\msvc2013" | |
20 | set PATH=%QTDIR%\bin;%PATH% | |
21 | ||
22 | mkdir "%APPVEYOR_BUILD_FOLDER%" | |
23 | cd "%APPVEYOR_BUILD_FOLDER%" | |
24 | curl "%LOG4CPPDLLINK%" -o log4cpp-1.1.1.zip | |
25 | 7z x log4cpp-1.1.1.zip -aoa | |
26 | mkdir fftw-3.3.4-dll32 | |
27 | cd fftw-3.3.4-dll32 | |
28 | curl 'ftp://ftp.fftw.org/pub/fftw/fftw-3.3.4-dll32.zip' -o fftw-3.3.4-dll32.zip | |
29 | 7z x fftw-3.3.4-dll32.zip -aoa | |
30 | lib /def:libfftw3-3.def | |
31 | lib /def:libfftw3f-3.def | |
32 | lib /def:libfftw3l-3.def | |
33 | mkdir include | |
34 | mkdir lib | |
35 | move fftw3.h include | |
36 | move *dll lib | |
37 | move *def lib | |
38 | move *.lib lib | |
39 | cd "%APPVEYOR_BUILD_FOLDER%" | |
40 | curl 'https://dl.dropboxusercontent.com/u/1147076/poppler-qt5.zip' -o poppler-qt5.zip | |
41 | 7z x poppler-qt5.zip -aoa | |
42 | ||
43 | cd "%APPVEYOR_BUILD_FOLDER%" | |
44 | set FFTW_HOME="%APPVEYOR_BUILD_FOLDER%\fftw-3.3.4-dll32" | |
45 | set POPPLER_INCLUDE="%APPVEYOR_BUILD_FOLDER%\poppler-qt5\include\poppler\qt5" | |
46 | set POPPLER_LIB="%APPVEYOR_BUILD_FOLDER%\poppler-qt5" | |
47 | lrelease engauge.pro | |
48 | qmake engauge.pro "CONFIG+=%ENGAUGE_CONFIG%" | |
49 | rem move Makefile Makefile.orig | |
50 | rem ps: gc Makefile.orig | %{ $_ -replace '551.lib', %QTLIBEXT% } > Makefile | |
51 | nmake | |
52 | ||
53 | cd "%APPVEYOR_BUILD_FOLDER%" | |
54 | mkdir "%RESULTDIR%"\documentation | |
55 | for %%I in (%QTDIRS%) do mkdir "%RESULTDIR%\%%I" | |
56 | for %%I in (%QTDIRS%) do copy %QTDIR%\plugins\%%I\*.dll "%RESULTDIR%\%%I" | |
57 | for %%I in (%QTLIBS%) do copy %QTDIR%\bin\%%I.dll "%RESULTDIR%" | |
58 | del /S *d.dll | |
59 | copy bin\engauge.exe "%RESULTDIR%" | |
60 | ||
61 | copy "%LOG4CPP_HOME%\lib\log4cpp.dll" "%RESULTDIR%" | |
62 | ||
63 | copy fftw-3.3.4-dll32\lib\libfftw3-3.dll "%RESULTDIR%" | |
64 | copy "%APPVEYOR_BUILD_FOLDER%"\poppler-qt5\*.dll "%RESULTDIR%" | |
65 | copy LICENSE "%RESULTDIR%" | |
66 | cd "%APPVEYOR_BUILD_FOLDER%"\help | |
67 | qcollectiongenerator engauge.qhcp -o engauge.qhc | |
68 | move engauge.qch "%RESULTDIR%"\documentation | |
69 | move engauge.qhc "%RESULTDIR%"\documentation | |
70 | cd .. | |
71 | 7z a "%RESULTDIR%.7z" "%RESULTDIR%" | |
72 | ||
73 | echo ***creating msi | |
74 | cd "%SCRIPTDIR%" | |
75 | findStr "char *VERSION_NUMBER" ..\..\src\util\Version.cpp | |
76 | findStr "Version=" engauge.wxs | findStr /v InstallerVersion | |
77 | set /p VERSION_NUMBER_CODE="If the version numbers are correct, enter the version number seen above to continue and build releases> " | |
78 | ||
79 | candle engauge.wxs | |
80 | candle WixUI_InstallDir_NoLicense.wxs | |
81 | light.exe -ext WixUIExtension -ext WixUtilExtension engauge.wixobj WixUI_InstallDir_NoLicense.wixobj -o digit-exe-windows-32-bit-installer-%VERSION_NUMBER_CODE%.msi | |
82 | ||
83 | echo *** creating zip | |
84 | rem "Engauge Digitizer" in next line is needed since zip crashes on %RESULTDIR% due to the space | |
85 | zip -r "digit-exe-windows-32-bit-without-installer-file-%VERSION_NUMBER_CODE%.zip" "Engauge Digitizer" |
0 | #!/usr/bin/bash | |
1 | # | |
2 | # ENGDIR is two levels above the current directory | |
3 | DIR=`pwd` | |
4 | export ENGDIR=${DIR%/*/*} | |
5 | export ENGTRANSDIR="$ENGDIR/translations" | |
6 | export QTBINDIR=`qtpaths --binaries-dir` | |
7 | export QTPLUGINSDIR=`qtpaths --plugin-dir` | |
8 | if [ -z "$QTBINDIR" ]; then | |
9 | echo "qtpaths utility is not in PATH, which should be pointing to the Qt5 bin directory" | |
10 | exit | |
11 | fi | |
12 | # | |
13 | echo "Engauge: $ENGDIR" | |
14 | echo "Qt binaries: $QTBINDIR" | |
15 | echo "Qt plugins: $QTPLUGINSDIR" | |
16 | echo "Translations: $ENGTRANSDIR" | |
17 | # | |
18 | echo " " | |
19 | where g++ | |
20 | where mingw32-make | |
21 | echo " " | |
22 | # | |
23 | read -p 'If the g++ compiler and mingw32-make tools are first in a directory like C:\QtOpenSource\Qt5.5.1\Tools\mingw492_32\bin, press Enter to continue, otherwise Control-C and fix the PATH variable' | |
24 | # | |
25 | export FROMQCH="$ENGDIR/bin/documentation/engauge.qch" | |
26 | export FROMQHC="$ENGDIR/bin/documentation/engauge.qhc" | |
27 | export FROMICO="$ENGDIR/src/img/digitizer.ico" | |
28 | export FROMDLL="$QTBINDIR" | |
29 | if ([ ! -f "$FROMQCH" ] || [ ! -f "$FROMQHC" ]); then | |
30 | echo "File $FROMQCH and/or $FROMQHC does not exist. Run $ENGDIR/help/build.mingw to create those files" | |
31 | exit | |
32 | fi | |
33 | # | |
34 | echo " " | |
35 | ls -ls $FROMQCH | awk '{print $7,$8,$9,$10}' | |
36 | ls -ls $FROMQHC | awk '{print $7,$8,$9,$10}' | |
37 | echo " " | |
38 | # | |
39 | read -p 'If the help input files are up to date, press Enter to continue' | |
40 | # | |
41 | VERSION_NUMBER_CODE=`fgrep -e 'char *VERSION_NUMBER' ../../src/util/Version.cpp | awk -F '"' '{print $2}'` | |
42 | VERSION_NUMBER_WIX=`fgrep -e 'Version' engauge.wxs | grep -v Installer | awk -F "'" '{print $2}'` | |
43 | # | |
44 | echo " " | |
45 | echo "Version number in C++ code (Version.cpp)=$VERSION_NUMBER_CODE" | |
46 | echo "Version number in Windows WiX installer (engauge.wxs)=$VERSION_NUMBER_WIX" | |
47 | echo " " | |
48 | # | |
49 | read -p 'If the version numbers are correct, press Enter to continue' | |
50 | # | |
51 | VERSION_NUMBER_CODE=`echo $VERSION_NUMBER_CODE | sed 's/\./_/g'` | |
52 | # | |
53 | echo "***Copying help input files" | |
54 | mkdir -p documentation | |
55 | cp $FROMQCH ../../bin/documentation | |
56 | cp $FROMQHC ../../bin/documentation | |
57 | # | |
58 | echo "***Copying DLL libraries from $FROMDLL" | |
59 | cp $FROMDLL/libwinpthread-1.dll ../../bin/ | |
60 | # | |
61 | echo "***Copying icon file" | |
62 | cp $FROMICO ../../bin | |
63 | # | |
64 | # Notes: | |
65 | # 1) Need gcc 4 bundled with Qt rather than gcc 3 at /usr/bin to prevent 'unrecognized command line | |
66 | # option -fno-keep-inline-dllexport' | |
67 | # 2) Running 'make -j 4' exhausts system resources which hangs the build | |
68 | # 3) windeployqt builds the release files in the same directory as the executable | |
69 | # 4) PATH must include $QTBINDIR but in the /C/... format rather than the C:/... format that $QTBINDIR is in | |
70 | # 5) qt dislikes mingw to the point that it creates Makefiles with mangled library names, which we fix using sed | |
71 | echo "***Rebuilding release executable" && | |
72 | export PATH="$QTBINDIR:$PATH" | |
73 | export ENGAUGE_RELEASE=1 && | |
74 | cd ../.. && | |
75 | lrelease engauge.pro && | |
76 | qmake engauge.pro && | |
77 | sed 's/-lQt/-lQt5/g' Makefile >Makefile~ && | |
78 | sed 's/Qt55/Qt5/g' Makefile~ >Makefile && | |
79 | mingw32-make clean && | |
80 | mingw32-make && | |
81 | cd dev/windows && | |
82 | echo "***Rebuilding release directory" && | |
83 | windeployqt -release ../../bin/engauge.exe && | |
84 | echo "***Compiling release files" && | |
85 | candle.exe engauge.wxs && | |
86 | candle.exe WixUI_InstallDir_NoLicense.wxs && | |
87 | echo "***Creating MSI" && | |
88 | light.exe -ext WixUIExtension -ext WixUtilExtension engauge.wixobj WixUI_InstallDir_NoLicense.wixobj -o digit-exe-windows-32-bit-installer-$VERSION_NUMBER_CODE.msi | |
89 | # | |
90 | echo "***Copying files for creating zip file" | |
91 | mkdir -p "Engauge Digitizer/bearer" | |
92 | mkdir -p "Engauge Digitizer/documentation" | |
93 | mkdir -p "Engauge Digitizer/iconengines" | |
94 | mkdir -p "Engauge Digitizer/imageformats" | |
95 | mkdir -p "Engauge Digitizer/platforms" | |
96 | mkdir -p "Engauge Digitizer/printsupport" | |
97 | mkdir -p "Engauge Digitizer/sqldrivers" | |
98 | mkdir -p "Engauge Digitizer/translations" | |
99 | cp $QTPLUGINSDIR/bearer/qgenericbearer.dll "Engauge Digitizer/bearer" | |
100 | cp $QTPLUGINSDIR/bearer/qnativewifibearer.dll "Engauge Digitizer/bearer" | |
101 | cp $FROMQCH "Engauge Digitizer/documentation" | |
102 | cp $FROMQHC "Engauge Digitizer/documentation" | |
103 | cp $QTPLUGINSDIR/iconengines/qsvgicon.dll "Engauge Digitizer/iconengines" | |
104 | cp $QTPLUGINSDIR/imageformats/qdds.dll "Engauge Digitizer/imageformats" | |
105 | cp $QTPLUGINSDIR/imageformats/qgif.dll "Engauge Digitizer/imageformats" | |
106 | cp $QTPLUGINSDIR/imageformats/qicns.dll "Engauge Digitizer/imageformats" | |
107 | cp $QTPLUGINSDIR/imageformats/qico.dll "Engauge Digitizer/imageformats" | |
108 | cp $QTPLUGINSDIR/imageformats/qjpeg.dll "Engauge Digitizer/imageformats" | |
109 | cp $QTPLUGINSDIR/imageformats/qsvg.dll "Engauge Digitizer/imageformats" | |
110 | cp $QTPLUGINSDIR/imageformats/qtga.dll "Engauge Digitizer/imageformats" | |
111 | cp $QTPLUGINSDIR/imageformats/qtiff.dll "Engauge Digitizer/imageformats" | |
112 | cp $QTPLUGINSDIR/imageformats/qwbmp.dll "Engauge Digitizer/imageformats" | |
113 | cp $QTPLUGINSDIR/imageformats/qwebp.dll "Engauge Digitizer/imageformats" | |
114 | cp $QTPLUGINSDIR/platforms/qwindows.dll "Engauge Digitizer/platforms" | |
115 | cp $QTPLUGINSDIR/printsupport/windowsprintersupport.dll "Engauge Digitizer/printsupport" | |
116 | cp $QTPLUGINSDIR/sqldrivers/qsqlite.dll "Engauge Digitizer/sqldrivers" | |
117 | cp $QTPLUGINSDIR/sqldrivers/qsqlmysql.dll "Engauge Digitizer/sqldrivers" | |
118 | cp $QTPLUGINSDIR/sqldrivers/qsqlpsql.dll "Engauge Digitizer/sqldrivers" | |
119 | cp $QTTRANSDIR/*.qm "Engauge Digitizer/translations" | |
120 | cp $ENGTRANSDIR/*.qm "Engauge Digitizer/translations" | |
121 | cp ../../LICENSE "Engauge Digitizer" | |
122 | cp ../../bin/D3Dcompiler_47.dll "Engauge Digitizer" | |
123 | cp ../../bin/engauge.exe "Engauge Digitizer" | |
124 | cp ../../bin/libEGL.dll "Engauge Digitizer" | |
125 | cp ../../bin/libgcc_s_dw2-1.dll "Engauge Digitizer" | |
126 | cp ../../bin/libGLESV2.dll "Engauge Digitizer" | |
127 | cp ../../bin/libstdc++-6.dll "Engauge Digitizer" | |
128 | cp ../../bin/libwinpthread-1.dll "Engauge Digitizer" | |
129 | cp ../../bin/opengl32sw.dll "Engauge Digitizer" | |
130 | cp ../../bin/Qt5*.dll "Engauge Digitizer" | |
131 | # | |
132 | echo "***Building zip file" | |
133 | /C/cygwin64/bin/zip -r digit-exe-windows-32-bit-without-installer-file-$VERSION_NUMBER_CODE.zip "Engauge Digitizer" |
1 | 1 | <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> |
2 | 2 | <Product Name='Engauge Digitizer' |
3 | 3 | Manufacturer='Engauge Open Source Developers' |
4 | Id='CC6A7063-A6B8-45BE-AC9B-8EDD614C43F8' | |
4 | Id='C111CD75-C12E-45D2-AD60-F0DD78831DC0' | |
5 | 5 | UpgradeCode='00A6792B-65ED-4894-A48B-B95D63C62CC6' |
6 | 6 | Language='1033' Codepage='1252' |
7 | Version='8.2'> | |
7 | Version='8.3'> | |
8 | 8 | <Package Id='*' Keywords='Installer' Description="Engauge Digitizer Installer" |
9 | 9 | Comments='Engauge Digitizer is available from github.com' Manufacturer='Engauge Open Source Developers' |
10 | 10 | InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> |
21 | 21 | <File Id='engauge.exe' Name='engauge.exe' DiskId='1' Source='../../bin/engauge.exe' KeyPath='yes'> |
22 | 22 | <Shortcut Id='desktopshortcut' Directory='DesktopFolder' Name='Engauge Digitizer' WorkingDirectory='INSTALLDIR' Icon='engauge.ico' IconIndex='0' Advertise='yes' /> |
23 | 23 | </File> |
24 | <File Id='d3dcompiler' Name='D3Dcompiler_47.dll' DiskId='1' Source='../../bin/D3Dcompiler_47.dll' /> | |
25 | <File Id='clucene' Name='Qt5CLucene.dll' DiskId='1' Source='../../bin/Qt5CLucene.dll' /> | |
26 | <File Id='core' Name='Qt5Core.dll' DiskId='1' Source='../../bin/Qt5Core.dll' /> | |
27 | <File Id='gui' Name='Qt5Gui.dll' DiskId='1' Source='../../bin/Qt5Gui.dll' /> | |
28 | <File Id='help' Name='Qt5Help.dll' DiskId='1' Source='../../bin/Qt5Help.dll' /> | |
29 | <File Id='network' Name='Qt5Network.dll' DiskId='1' Source='../../bin/Qt5Network.dll' /> | |
30 | <File Id='printsupport' Name='Qt5PrintSupport.dll' DiskId='1' Source='../../bin/Qt5PrintSupport.dll' /> | |
31 | <File Id='sql' Name='Qt5Sql.dll' DiskId='1' Source='../../bin/Qt5Sql.dll' /> | |
32 | <File Id='svg' Name='Qt5Svg.dll' DiskId='1' Source='../../bin/Qt5Svg.dll' /> | |
33 | <File Id='widgets' Name='Qt5Widgets.dll' DiskId='1' Source='../../bin/Qt5Widgets.dll' /> | |
34 | <File Id='xml' Name='Qt5Xml.dll' DiskId='1' Source='../../bin/Qt5Xml.dll' /> | |
35 | <File Id='egl' Name='libEGL.dll' DiskId='1' Source='../../bin/libEGL.dll' /> | |
36 | <File Id='gles' Name='libGLESV2.dll' DiskId='1' Source='../../bin/libGLESV2.dll' /> | |
37 | <File Id='gcc' Name='libgcc_s_dw2-1.dll' DiskId='1' Source='../../bin/libgcc_s_dw2-1.dll' /> | |
38 | <File Id='pthread' Name='libwinpthread-1.dll' DiskId='1' Source='../../bin/libwinpthread-1.dll' /> | |
39 | <File Id='stdc' Name='libstdc++-6.dll' DiskId='1' Source='../../bin/libstdc++-6.dll' /> | |
40 | <File Id='opengl' Name='opengl32sw.dll' DiskId='1' Source='../../bin/opengl32sw.dll' /> | |
24 | <File Id='freetype6' Name='freetype6.dll' DiskId='1' Source='Engauge Digitizer/freetype6.dll' /> | |
25 | <File Id='libfftw33' Name='libfftw3-3.dll' DiskId='1' Source='Engauge Digitizer/libfftw3-3.dll' /> | |
26 | <File Id='log4cpp' Name='log4cpp.dll' DiskId='1' Source='Engauge Digitizer/log4cpp.dll' /> | |
27 | <File Id='openjpeg' Name='openjpeg.dll' DiskId='1' Source='Engauge Digitizer/openjpeg.dll' /> | |
28 | <File Id='popplerqt5' Name='poppler-qt5.dll' DiskId='1' Source='Engauge Digitizer/poppler-qt5.dll' /> | |
29 | <File Id='clucene' Name='Qt5CLucene.dll' DiskId='1' Source='Engauge Digitizer/Qt5CLucene.dll' /> | |
30 | <File Id='core' Name='Qt5Core.dll' DiskId='1' Source='Engauge Digitizer/Qt5Core.dll' /> | |
31 | <File Id='gui' Name='Qt5Gui.dll' DiskId='1' Source='Engauge Digitizer/Qt5Gui.dll' /> | |
32 | <File Id='help' Name='Qt5Help.dll' DiskId='1' Source='Engauge Digitizer/Qt5Help.dll' /> | |
33 | <File Id='network' Name='Qt5Network.dll' DiskId='1' Source='Engauge Digitizer/Qt5Network.dll' /> | |
34 | <File Id='printsupport' Name='Qt5PrintSupport.dll' DiskId='1' Source='Engauge Digitizer/Qt5PrintSupport.dll' /> | |
35 | <File Id='sql' Name='Qt5Sql.dll' DiskId='1' Source='Engauge Digitizer/Qt5Sql.dll' /> | |
36 | <File Id='widgets' Name='Qt5Widgets.dll' DiskId='1' Source='Engauge Digitizer/Qt5Widgets.dll' /> | |
37 | <File Id='xml' Name='Qt5Xml.dll' DiskId='1' Source='Engauge Digitizer/Qt5Xml.dll' /> | |
38 | <File Id='zlib' Name='zlib1.dll' DiskId='1' Source='Engauge Digitizer/zlib1.dll' /> | |
41 | 39 | </Component> |
42 | 40 | <Directory Id='bearer' Name='bearer'> |
43 | 41 | <Component Id='bearer' Guid='C7385BF7-2EF9-499A-90FF-17C3F8D4C708'> |
44 | <File Id='generic' Name='qgenericbearer.dll' DiskId='1' Source='../../bin/bearer/qgenericbearer.dll' /> | |
45 | <File Id='native' Name='qnativewifibearer.dll' DiskId='1' Source='../../bin/bearer/qnativewifibearer.dll' /> | |
42 | <File Id='generic' Name='qgenericbearer.dll' DiskId='1' Source='Engauge Digitizer/bearer/qgenericbearer.dll' /> | |
43 | <File Id='native' Name='qnativewifibearer.dll' DiskId='1' Source='Engauge Digitizer/bearer/qnativewifibearer.dll' /> | |
46 | 44 | </Component> |
47 | 45 | </Directory> |
48 | 46 | <Directory Id='documentation' Name='documentation'> |
49 | 47 | <Component Id='documentation' Guid='34F27B58-56AC-4380-9B85-131DED5BA593'> |
50 | <File Id='qch' Name='engauge.qch' DiskId='1' Source='../../bin/documentation/engauge.qch' /> | |
51 | <File Id='qhc' Name='engauge.qhc' DiskId='1' Source='../../bin/documentation/engauge.qhc' /> | |
48 | <File Id='qch' Name='engauge.qch' DiskId='1' Source='Engauge Digitizer/documentation/engauge.qch' /> | |
49 | <File Id='qhc' Name='engauge.qhc' DiskId='1' Source='Engauge Digitizer/documentation/engauge.qhc' /> | |
52 | 50 | </Component> |
53 | 51 | </Directory> |
54 | 52 | <Directory Id='iconengines' Name='iconengines'> |
55 | 53 | <Component Id='iconengines' Guid='ADE56F32-F33D-4315-ADEA-244EAD400CC2'> |
56 | <File Id='svgicon' Name='qsvgicon.dll' DiskId='1' Source='../../bin/iconengines/qsvgicon.dll' KeyPath='yes' /> | |
54 | <File Id='svgicon' Name='qsvgicon.dll' DiskId='1' Source='Engauge Digitizer/iconengines/qsvgicon.dll' KeyPath='yes' /> | |
57 | 55 | </Component> |
58 | 56 | </Directory> |
59 | 57 | <Directory Id='imageformats' Name='imageformats'> |
60 | 58 | <Component Id='imageformats' Guid='94F1114F-216F-4409-AAC6-1B4ADCB3AC32'> |
61 | <File Id='qdds' Name='qdds.dll' DiskId='1' Source='../../bin/imageformats/qdds.dll' /> | |
62 | <File Id='qgif' Name='qgif.dll' DiskId='1' Source='../../bin/imageformats/qgif.dll' /> | |
63 | <File Id='qicns' Name='qicns.dll' DiskId='1' Source='../../bin/imageformats/qicns.dll' /> | |
64 | <File Id='qico' Name='qico.dll' DiskId='1' Source='../../bin/imageformats/qico.dll' /> | |
65 | <File Id='qjp2' Name='qjp2.dll' DiskId='1' Source='../../bin/imageformats/qjp2.dll' /> | |
66 | <File Id='qjpeg' Name='qjpeg.dll' DiskId='1' Source='../../bin/imageformats/qjpeg.dll' /> | |
67 | <File Id='qmng' Name='qmng.dll' DiskId='1' Source='../../bin/imageformats/qmng.dll' /> | |
68 | <File Id='qsvg' Name='qsvg.dll' DiskId='1' Source='../../bin/imageformats/qsvg.dll' /> | |
69 | <File Id='qtga' Name='qtga.dll' DiskId='1' Source='../../bin/imageformats/qtga.dll' /> | |
70 | <File Id='qtiff' Name='qtiff.dll' DiskId='1' Source='../../bin/imageformats/qtiff.dll' /> | |
71 | <File Id='qwbmp' Name='qwbmp.dll' DiskId='1' Source='../../bin/imageformats/qwbmp.dll' /> | |
72 | <File Id='qwebp' Name='qwebp.dll' DiskId='1' Source='../../bin/imageformats/qwebp.dll' /> | |
59 | <File Id='qdds' Name='qdds.dll' DiskId='1' Source='Engauge Digitizer/imageformats/qdds.dll' /> | |
60 | <File Id='qgif' Name='qgif.dll' DiskId='1' Source='Engauge Digitizer/imageformats/qgif.dll' /> | |
61 | <File Id='qicns' Name='qicns.dll' DiskId='1' Source='Engauge Digitizer/imageformats/qicns.dll' /> | |
62 | <File Id='qico' Name='qico.dll' DiskId='1' Source='Engauge Digitizer/imageformats/qico.dll' /> | |
63 | <File Id='qjpeg' Name='qjpeg.dll' DiskId='1' Source='Engauge Digitizer/imageformats/qjpeg.dll' /> | |
64 | <File Id='qsvg' Name='qsvg.dll' DiskId='1' Source='Engauge Digitizer/imageformats/qsvg.dll' /> | |
65 | <File Id='qtga' Name='qtga.dll' DiskId='1' Source='Engauge Digitizer/imageformats/qtga.dll' /> | |
66 | <File Id='qtiff' Name='qtiff.dll' DiskId='1' Source='Engauge Digitizer/imageformats/qtiff.dll' /> | |
67 | <File Id='qwbmp' Name='qwbmp.dll' DiskId='1' Source='Engauge Digitizer/imageformats/qwbmp.dll' /> | |
68 | <File Id='qwebp' Name='qwebp.dll' DiskId='1' Source='Engauge Digitizer/imageformats/qwebp.dll' /> | |
73 | 69 | </Component> |
74 | 70 | </Directory> |
75 | 71 | <Directory Id='platforms' Name='platforms'> |
76 | 72 | <Component Id='platforms' Guid='679FF2A9-FB70-47ED-BA76-7CDC68367777'> |
77 | <File Id='win' Name='qwindows.dll' DiskId='1' Source='../../bin/platforms/qwindows.dll' KeyPath='yes' /> | |
73 | <File Id='qminimal' Name='qminimal.dll' DiskId='1' Source='Engauge Digitizer/platforms/qminimal.dll' /> | |
74 | <File Id='qoffscreen' Name='qoffscreen.dll' DiskId='1' Source='Engauge Digitizer/platforms/qoffscreen.dll' /> | |
75 | <File Id='win' Name='qwindows.dll' DiskId='1' Source='Engauge Digitizer/platforms/qwindows.dll' /> | |
78 | 76 | </Component> |
79 | 77 | </Directory> |
80 | 78 | <Directory Id='printsupport' Name='printsupport'> |
81 | 79 | <Component Id='printsupport' Guid='39CBE62C-09FA-4D88-B3F0-1691B91DC5C3'> |
82 | <File Id='winprint' Name='windowsprintersupport.dll' DiskId='1' Source='../../bin/printsupport/windowsprintersupport.dll' KeyPath='yes' /> | |
80 | <File Id='winprint' Name='windowsprintersupport.dll' DiskId='1' Source='Engauge Digitizer/printsupport/windowsprintersupport.dll' KeyPath='yes' /> | |
83 | 81 | </Component> |
84 | 82 | </Directory> |
85 | 83 | <Directory Id='sqldrivers' Name='sqldrivers'> |
86 | 84 | <Component Id='sqldrivers' Guid='642778D3-ED5F-47CA-9978-671DF3B472D0'> |
87 | <File Id='qsqlite' Name='qsqlite.dll' DiskId='1' Source='../../bin/sqldrivers/qsqlite.dll' /> | |
88 | <File Id='qsqlmysql' Name='qsqlmysql.dll' DiskId='1' Source='../../bin/sqldrivers/qsqlmysql.dll' /> | |
89 | <File Id='qsqlodbc' Name='qsqlodbc.dll' DiskId='1' Source='../../bin/sqldrivers/qsqlodbc.dll' /> | |
90 | <File Id='qsqlpsql' Name='qsqlpsql.dll' DiskId='1' Source='../../bin/sqldrivers/qsqlpsql.dll' /> | |
85 | <File Id='qsqlite' Name='qsqlite.dll' DiskId='1' Source='Engauge Digitizer/sqldrivers/qsqlite.dll' /> | |
86 | <File Id='qsqlmysql' Name='qsqlmysql.dll' DiskId='1' Source='Engauge Digitizer/sqldrivers/qsqlmysql.dll' /> | |
87 | <File Id='qsqlodbc' Name='qsqlodbc.dll' DiskId='1' Source='Engauge Digitizer/sqldrivers/qsqlodbc.dll' /> | |
88 | <File Id='qsqlpsql' Name='qsqlpsql.dll' DiskId='1' Source='Engauge Digitizer/sqldrivers/qsqlpsql.dll' /> | |
91 | 89 | </Component> |
92 | 90 | </Directory> |
93 | 91 | <Directory Id='translations' Name='translations'> |
94 | 92 | <Component Id='translations' Guid='A9AD2B5C-8B4F-48E5-819A-D38C4EA11153'> |
95 | <File Id='qt_ca' Name='qt_ca.qm' DiskId='1' Source='../../bin/translations/qt_ca.qm' /> | |
96 | <File Id='qt_cs' Name='qt_cs.qm' DiskId='1' Source='../../bin/translations/qt_cs.qm' /> | |
97 | <File Id='qt_de' Name='qt_de.qm' DiskId='1' Source='../../bin/translations/qt_de.qm' /> | |
98 | <File Id='qt_en' Name='qt_en.qm' DiskId='1' Source='../../bin/translations/qt_en.qm' /> | |
99 | <File Id='qt_fi' Name='qt_fi.qm' DiskId='1' Source='../../bin/translations/qt_fi.qm' /> | |
100 | <File Id='qt_fr' Name='qt_fr.qm' DiskId='1' Source='../../bin/translations/qt_fr.qm' /> | |
101 | <File Id='qt_he' Name='qt_he.qm' DiskId='1' Source='../../bin/translations/qt_he.qm' /> | |
102 | <File Id='qt_hu' Name='qt_hu.qm' DiskId='1' Source='../../bin/translations/qt_hu.qm' /> | |
103 | <File Id='qt_it' Name='qt_it.qm' DiskId='1' Source='../../bin/translations/qt_it.qm' /> | |
104 | <File Id='qt_ja' Name='qt_ja.qm' DiskId='1' Source='../../bin/translations/qt_ja.qm' /> | |
105 | <File Id='qt_ko' Name='qt_ko.qm' DiskId='1' Source='../../bin/translations/qt_ko.qm' /> | |
106 | <File Id='qt_lv' Name='qt_lv.qm' DiskId='1' Source='../../bin/translations/qt_lv.qm' /> | |
107 | <File Id='qt_ru' Name='qt_ru.qm' DiskId='1' Source='../../bin/translations/qt_ru.qm' /> | |
108 | <File Id='qt_sk' Name='qt_sk.qm' DiskId='1' Source='../../bin/translations/qt_sk.qm' /> | |
109 | <File Id='qt_uk' Name='qt_uk.qm' DiskId='1' Source='../../bin/translations/qt_uk.qm' /> | |
93 | <File Id='qt_ar' Name='qt_ar.qm' DiskId='1' Source='../../translations/engauge_ar.qm' /> | |
94 | <File Id='qt_de' Name='qt_de.qm' DiskId='1' Source='../../translations/engauge_de.qm' /> | |
95 | <File Id='qt_en' Name='qt_en.qm' DiskId='1' Source='../../translations/engauge_en.qm' /> | |
96 | <File Id='qt_es' Name='qt_es.qm' DiskId='1' Source='../../translations/engauge_es.qm' /> | |
97 | <File Id='qt_fr' Name='qt_fr.qm' DiskId='1' Source='../../translations/engauge_fr.qm' /> | |
98 | <File Id='qt_hi' Name='qt_hi.qm' DiskId='1' Source='../../translations/engauge_hi.qm' /> | |
99 | <File Id='qt_it' Name='qt_it.qm' DiskId='1' Source='../../translations/engauge_it.qm' /> | |
100 | <File Id='qt_ja' Name='qt_ja.qm' DiskId='1' Source='../../translations/engauge_ja.qm' /> | |
101 | <File Id='qt_kk' Name='qt_kk.qm' DiskId='1' Source='../../translations/engauge_kk.qm' /> | |
102 | <File Id='qt_ko' Name='qt_ko.qm' DiskId='1' Source='../../translations/engauge_ko.qm' /> | |
103 | <File Id='qt_pt' Name='qt_pt.qm' DiskId='1' Source='../../translations/engauge_pt.qm' /> | |
104 | <File Id='qt_ru' Name='qt_ru.qm' DiskId='1' Source='../../translations/engauge_ru.qm' /> | |
105 | <File Id='qt_zh' Name='qt_zh.qm' DiskId='1' Source='../../translations/engauge_zh.qm' /> | |
110 | 106 | </Component> |
111 | 107 | </Directory> |
112 | 108 | </Directory> |
141 | 137 | <ComponentRef Id='sqldrivers' /> |
142 | 138 | <ComponentRef Id='translations' /> |
143 | 139 | </Feature> |
144 | <Icon Id='engauge.ico' SourceFile='../../bin/digitizer.ico' /> | |
140 | <Icon Id='engauge.ico' SourceFile='../../src/img/digitizer.ico' /> | |
145 | 141 | <Property Id='ARPPRODUCTION' Value='engauge.ico' /> |
146 | 142 | <Property Id="WIXUI_INSTALLDIR" Value="MYAPPDIRPROPERTY" /> |
147 | 143 | <UIRef Id="WixUI_InstallDir_NoLicense" /> |
Binary diff not shown
3 | 3 | # 1) This builds 'release' executables by default, to greatly reduce the chances of a 'debug' build getting deployed. |
4 | 4 | # To get a 'debug' build, add 'CONFIG=debug' to the qmake command line: |
5 | 5 | # qmake CONFIG=debug |
6 | # 2) Add 'jpeg2000' to the qmake command line to include support for JPEG2000 input files. Requires JPEG2000_INCLUDE and | |
7 | # JPEG2000_LIB environment variables. At some point, Qt may provide its own support for this format, at which point | |
8 | # this can be skipped | |
6 | # 2) Add 'jpeg2000' to the qmake command line to include support for JPEG2000 input files. Requires: | |
7 | # 1) previous installation of OpenJPEG 2.1 development package | |
8 | # 2) OPENJPEG_INCLUDE environment variable pointing to directory with openjpeg.h | |
9 | # 3) OPENJPEG_LIB environment variable pointing to directory with libopenjp2.so | |
10 | # Sample command lines: | |
9 | 11 | # qmake CONFIG+=jpeg2000 |
10 | 12 | # qmake "CONFIG+=debug jpeg2000" |
11 | # 3) Gratuitous warning about import_qpa_plugin in Fedora is due to 'CONFIG=qt' but that option takes care of | |
12 | # include/library files in an automated and platform-independent manner, so it will not be removed | |
13 | # At some point, Qt may provide its own support for this format, at which point this can be skipped | |
14 | # 3) Add 'pdf' to the qmake command line to include support for PDF input files. Requires | |
15 | # 1) previous installation of the poppler-qt5 development package. Engauge has been tested with versions 0.24.5 and 0.44.0 | |
16 | # 2) POPPLER_INCLUDE environment variable pointing to directory containing Document.h | |
17 | # 3) POPPLER_LIB environment variable pointing to directory containing libpoppler-qt5.so | |
18 | # Sample command lines: | |
19 | # qmake CONFIG+=pdf | |
20 | # qmake "CONFIG+=debug pdf" | |
13 | 21 | # 4) Set environment variable HELPDIR to override the default directory for the help files. On the command line, use |
14 | 22 | # qmake "DEFINES+=HELPDIR=<directory>". The <directory> is absolute or relative to the application executable directory |
23 | # 5) Gratuitous warning about import_qpa_plugin in Fedora is due to 'CONFIG=qt' but that option takes care of | |
24 | # include/library files in an automated and platform-independent manner, so it will not be removed | |
15 | 25 | # |
16 | 26 | # More comments are in the INSTALL file, and below |
17 | 27 | |
195 | 205 | src/Export/ExportAlignLinear.h \ |
196 | 206 | src/Export/ExportAlignLog.h \ |
197 | 207 | src/Export/ExportDelimiter.h \ |
208 | src/Export/ExportImageForRegression.h \ | |
198 | 209 | src/Export/ExportLayoutFunctions.h \ |
199 | 210 | src/Export/ExportPointsIntervalUnits.h \ |
200 | 211 | src/Export/ExportPointsSelectionFunctions.h \ |
269 | 280 | src/Network/NetworkClient.h \ |
270 | 281 | src/Ordinal/OrdinalGenerator.h \ |
271 | 282 | src/Ordinal/OrdinalToGraphicsPoint.h \ |
283 | src/Pdf/PdfResolution.h \ | |
272 | 284 | src/Point/Point.h \ |
273 | 285 | src/Point/PointComparator.h \ |
274 | 286 | src/Point/PointIdentifiers.h \ |
324 | 336 | src/Zoom/ZoomControl.h \ |
325 | 337 | src/Zoom/ZoomFactor.h \ |
326 | 338 | src/Zoom/ZoomFactorInitial.h \ |
327 | src/Zoom/ZoomLabels.h | |
339 | src/Zoom/ZoomLabels.h \ | |
340 | src/util/ZValues.h | |
328 | 341 | |
329 | 342 | SOURCES += \ |
330 | 343 | src/Background/BackgroundImage.cpp \ |
484 | 497 | src/Export/ExportFileFunctions.cpp \ |
485 | 498 | src/Export/ExportFileRelations.cpp \ |
486 | 499 | src/Export/ExportHeader.cpp \ |
500 | src/Export/ExportImageForRegression.cpp \ | |
487 | 501 | src/Export/ExportLayoutFunctions.cpp \ |
488 | 502 | src/Export/ExportOrdinalsSmooth.cpp \ |
489 | 503 | src/Export/ExportOrdinalsStraight.cpp \ |
547 | 561 | src/util/mmsubs.cpp \ |
548 | 562 | src/Network/NetworkClient.cpp \ |
549 | 563 | src/Ordinal/OrdinalGenerator.cpp \ |
564 | src/Pdf/PdfResolution.cpp \ | |
550 | 565 | src/Point/Point.cpp \ |
551 | 566 | src/Point/PointIdentifiers.cpp \ |
552 | 567 | src/Point/PointMatchAlgorithm.cpp \ |
595 | 610 | src/View/ViewProfileScale.cpp \ |
596 | 611 | src/View/ViewSegmentFilter.cpp \ |
597 | 612 | src/util/Xml.cpp \ |
598 | src/Zoom/ZoomLabels.cpp | |
613 | src/Zoom/ZoomLabels.cpp \ | |
614 | src/util/ZValues.cpp | |
599 | 615 | |
600 | 616 | macx-* { |
601 | 617 | CONFIG(debug,debug|release){ |
628 | 644 | |
629 | 645 | win32-* { |
630 | 646 | CONFIG += windows |
631 | QMAKE_LFLAGS += -Wl,--stack,32000000 | |
632 | 647 | } |
633 | 648 | |
634 | 649 | win32-msvc* { |
635 | QMAKE_CXXFLAGS += -EHsc | |
650 | QMAKE_CXXFLAGS += -EHsc /F 32000000 | |
636 | 651 | LIBS += $$(FFTW_HOME)/lib/libfftw3-3.lib $$(LOG4CPP_HOME)/lib/log4cpp.lib shell32.lib |
637 | 652 | } else { |
638 | 653 | win32-g++* { |
639 | 654 | LIBS += -L$$(LOG4CPP_HOME)/lib -L$$(FFTW_HOME)/lib |
655 | QMAKE_LFLAGS += -Wl,--stack,32000000 | |
640 | 656 | } |
641 | 657 | LIBS += -lfftw3 -llog4cpp |
642 | 658 | } |
673 | 689 | src/Mime \ |
674 | 690 | src/Network \ |
675 | 691 | src/Ordinal \ |
692 | src/Pdf \ | |
676 | 693 | src/Plot \ |
677 | 694 | src/Point \ |
678 | 695 | src/Segment \ |
693 | 710 | |
694 | 711 | RESOURCES += src/engauge.qrc |
695 | 712 | |
713 | CONFIG(debug,debug|release) { | |
714 | message("Build type: debug") | |
715 | } else { | |
716 | message("Build type: release") | |
717 | } | |
718 | ||
696 | 719 | jpeg2000 { |
697 | CONFIG(debug,debug|release) { | |
698 | message(Building dynamic debug version with internal support for JPEG2000 files) | |
699 | } else { | |
700 | message(Building static release version with internal support for JPEG2000 files) | |
701 | } | |
720 | message("JPEG2000 support: yes") | |
702 | 721 | _OPENJPEG_INCLUDE = $$(OPENJPEG_INCLUDE) |
703 | 722 | _OPENJPEG_LIB = $$(OPENJPEG_LIB) |
704 | _JPEG2000_INCLUDE = $$(JPEG2000_INCLUDE) | |
705 | _JPEG2000_LIB = $$(JPEG2000_LIB) | |
706 | 723 | isEmpty(_OPENJPEG_INCLUDE) { |
707 | error("OPENJPEG_INCLUDE, OPENJPEG_LIB, JPEG2000_INCLUDE and JPEG2000_LIB environment variables must be defined") | |
724 | error("OPENJPEG_INCLUDE and OPENJPEG_LIB environment variables must be defined") | |
708 | 725 | } else { |
709 | 726 | isEmpty(_OPENJPEG_LIB) { |
710 | error("OPENJPEG_INCLUDE, OPENJPEG_LIB, JPEG2000_INCLUDE and JPEG2000_LIB environment variables must be defined") | |
711 | } else { | |
712 | isEmpty(_JPEG2000_INCLUDE) { | |
713 | error("JPEG_INCLUDE, JPEG_LIB, JPEG2000_INCLUDE and JPEG2000_LIB environment variables must be defined") | |
714 | } else { | |
715 | isEmpty(_JPEG2000_LIB) { | |
716 | error("JPEG_INCLUDE, JPEG_LIB, JPEG2000_INCLUDE and JPEG2000_LIB environment variables must be defined") | |
717 | } | |
718 | } | |
727 | error("OPENJPEG_INCLUDE and OPENJPEG_LIB environment variables must be defined") | |
719 | 728 | } |
720 | 729 | } |
721 | 730 | DEFINES += "ENGAUGE_JPEG2000" |
722 | 731 | INCLUDEPATH += $$(OPENJPEG_INCLUDE) \ |
723 | $$(JPEG2000_INCLUDE) | |
724 | LIBS += -L$$(OPENJPEG_LIB) -L$$(JPEG2000_LIB) -lopenjp2 | |
725 | ||
732 | src/Jpeg2000 | |
733 | LIBS += -L$$(OPENJPEG_LIB) -lopenjp2 | |
726 | 734 | HEADERS += src/Jpeg2000/Jpeg2000.h \ |
727 | 735 | src/Jpeg2000/Jpeg2000Callbacks.h \ |
728 | 736 | src/Jpeg2000/Jpeg2000Color.h \ |
729 | 737 | src/Jpeg2000/Jpeg2000Convert.h \ |
730 | 738 | src/Jpeg2000/Jpeg2000FormatDefs.h |
731 | ||
732 | 739 | SOURCES += src/Jpeg2000/Jpeg2000.cpp \ |
733 | 740 | src/Jpeg2000/Jpeg2000Callbacks.cpp \ |
734 | 741 | src/Jpeg2000/Jpeg2000Color.cpp \ |
735 | 742 | src/Jpeg2000/Jpeg2000Convert.cpp |
743 | QMAKE_LFLAGS += -Wl,-rpath=\'\$\$ORIGIN\' | |
744 | QMAKE_POST_LINK += cp $$(OPENJPEG_LIB)/libopenjp2.so.7 bin | |
736 | 745 | |
737 | 746 | } else { |
738 | CONFIG(debug,debug|release) { | |
739 | message(Building debug version without internal support for JPEG2000 files) | |
747 | message("JPEG2000 support: no") | |
748 | } | |
749 | ||
750 | pdf { | |
751 | message("PDF support: yes") | |
752 | _POPPLER_INCLUDE = $$(POPPLER_INCLUDE) | |
753 | _POPPLER_LIB = $$(POPPLER_LIB) | |
754 | isEmpty(_POPPLER_INCLUDE) { | |
755 | error("POPPLER_INCLUDE and POPPLER_LIB environment variables must be defined") | |
740 | 756 | } else { |
741 | message(Building release version without internal support for JPEG2000 files) | |
757 | isEmpty(_POPPLER_LIB) { | |
758 | error("POPPLER_INCLUDE and POPPLER_LIB environment variables must be defined") | |
759 | } | |
742 | 760 | } |
761 | DEFINES += "ENGAUGE_PDF" | |
762 | LIBS += -L$$(POPPLER_LIB) -lpoppler-qt5 | |
763 | INCLUDEPATH += $$(POPPLER_INCLUDE) | |
764 | HEADERS += src/Dlg/DlgPdfFrame.h \ | |
765 | src/Pdf/Pdf.h \ | |
766 | src/Pdf/PdfFrame.h \ | |
767 | src/Pdf/PdfFrameHandle.h | |
768 | SOURCES += src/Dlg/DlgPdfFrame.cpp \ | |
769 | src/Pdf/Pdf.cpp \ | |
770 | src/Pdf/PdfFrame.cpp \ | |
771 | src/Pdf/PdfFrameHandle.cpp | |
772 | ||
773 | } else { | |
774 | message("PDF support: no") | |
743 | 775 | } |
744 | 776 | |
745 | 777 | # People interested in translating a language can contact the developers for help. |
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
9 | 9 | #include "GraphicsItemType.h" |
10 | 10 | #include "GraphicsScene.h" |
11 | 11 | #include "Logger.h" |
12 | #include "ZValues.h" | |
12 | 13 | |
13 | 14 | BackgroundStateAbstractBase::BackgroundStateAbstractBase(BackgroundStateContext &context, |
14 | 15 | GraphicsScene &scene) : |
20 | 21 | QPixmap dummy; |
21 | 22 | m_imageItem = m_scene.addPixmap (dummy); |
22 | 23 | m_imageItem->setVisible (false); |
24 | m_imageItem->setZValue (Z_VALUE_BACKGROUND); | |
23 | 25 | m_imageItem->setData (DATA_KEY_IDENTIFIER, "view"); |
24 | 26 | m_imageItem->setData (DATA_KEY_GRAPHICS_ITEM_TYPE, GRAPHICS_ITEM_TYPE_IMAGE); |
25 | 27 | } |
12 | 12 | #include <QVariant> |
13 | 13 | #include <QXmlStreamWriter> |
14 | 14 | |
15 | const QString PIPE ("|"); | |
16 | const QString SPACE (" "); | |
17 | const QString TAB ("\t"); | |
18 | ||
15 | 19 | CurveNameList::CurveNameList() |
16 | 20 | { |
17 | 21 | } |
49 | 53 | if (success) { |
50 | 54 | |
51 | 55 | // First test was passed. Second test is to check for duplication |
52 | ||
53 | 56 | for (int row1 = 0; row1 < m_modelCurvesEntries.count(); row1++) { |
54 | 57 | |
55 | 58 | // Use table entry except for the one row that gets overridden |
80 | 83 | } |
81 | 84 | |
82 | 85 | QVariant CurveNameList::data (const QModelIndex &index, |
83 | int role) const | |
86 | int role) const | |
84 | 87 | { |
85 | 88 | LOG4CPP_DEBUG_S ((*mainCat)) << "CurveNameList::data" |
86 | 89 | << " isRoot=" << (index.isValid () ? "no" : "yes") |
118 | 121 | |
119 | 122 | Qt::ItemFlags CurveNameList::flags (const QModelIndex &index) const |
120 | 123 | { |
121 | // Only the root item can accept drops, or else dragging one entry onto another | |
122 | // would result in the drop target getting overwritten | |
123 | ||
124 | 124 | if (index.isValid ()) { |
125 | 125 | |
126 | // Not root item | |
126 | // Not root item. ItemIsDropEnabled is unwanted during dragging since dragged entry would overwrite | |
127 | // another entry if user forgets to drop into the space between successive entries | |
127 | 128 | return QAbstractTableModel::flags (index) | |
128 | 129 | Qt::ItemIsDragEnabled | |
129 | 130 | Qt::ItemIsEnabled | |
139 | 140 | } |
140 | 141 | } |
141 | 142 | |
143 | QModelIndex CurveNameList::indexForValue (const QModelIndex &indexToSkip, | |
144 | const QVariant &value) const | |
145 | { | |
146 | LOG4CPP_INFO_S ((*mainCat)) << "CurveNameList::indexForValue"; | |
147 | ||
148 | for (int row = 0; row < rowCount(); row++) { | |
149 | ||
150 | QModelIndex indexSearch = index (row, 0); | |
151 | ||
152 | if (indexToSkip != indexSearch) { | |
153 | ||
154 | if (data (indexSearch) == value) { | |
155 | ||
156 | return indexSearch; | |
157 | ||
158 | } | |
159 | } | |
160 | } | |
161 | ||
162 | QModelIndex invalid; | |
163 | return invalid; | |
164 | } | |
165 | ||
142 | 166 | bool CurveNameList::insertRows (int row, |
143 | int count, | |
144 | const QModelIndex &parent) | |
167 | int count, | |
168 | const QModelIndex &parent) | |
145 | 169 | { |
146 | 170 | bool skip = (count != 1 || row < 0 || row > rowCount () || parent.isValid()); |
147 | 171 | |
148 | 172 | LOG4CPP_INFO_S ((*mainCat)) << "CurveNameList::insertRows" |
149 | 173 | << " row=" << row |
150 | 174 | << " count=" << count |
175 | << " parentRow=" << parent.row() | |
176 | << " parentCol=" << parent.column() | |
151 | 177 | << " isRoot=" << (parent.isValid () ? "no" : "yes") |
152 | 178 | << " skip=" << (skip ? "yes" : "no"); |
153 | 179 | |
154 | 180 | if (skip) { |
155 | 181 | |
156 | // Parent should be root item which is not valid | |
182 | // Comments: | |
183 | // 1) Row=-1 means the drag is AFTER the last entry. Although this method can deal with that easily by treating it | |
184 | // as a drag to row=rowCount(), the later call to setData will fail since the row gets set to 0 (which is ambiguous | |
185 | // with a drag to the 0th entry) | |
186 | // 2) Valid parent means we are not adding to the root node, which is what we want to do | |
157 | 187 | return false; |
158 | 188 | } |
189 | ||
190 | QString before = m_modelCurvesEntries.join (PIPE).replace (TAB, SPACE); | |
159 | 191 | |
160 | 192 | beginInsertRows (QModelIndex (), |
161 | 193 | row, |
168 | 200 | |
169 | 201 | endInsertRows (); |
170 | 202 | |
203 | QString after = m_modelCurvesEntries.join (PIPE).replace (TAB, SPACE); | |
204 | ||
205 | LOG4CPP_INFO_S ((*mainCat)) << "CurveNameList::insertRows" | |
206 | << " before=" << before.toLatin1().data() | |
207 | << " after=" << after.toLatin1().data(); | |
208 | ||
171 | 209 | return true; |
172 | 210 | } |
173 | 211 | |
174 | 212 | bool CurveNameList::removeRows (int row, |
175 | int count, | |
176 | const QModelIndex &parent) | |
213 | int count, | |
214 | const QModelIndex &parent) | |
177 | 215 | { |
178 | 216 | bool skip = (count != 1 || row < 0 || row > rowCount () || parent.isValid()); |
179 | 217 | |
205 | 243 | return count; |
206 | 244 | } |
207 | 245 | |
246 | bool CurveNameList::rowIsUnpopulated (int row) const | |
247 | { | |
248 | // Special case - in a drag to the white space after the last entry (and NOT to the legal drop line just after | |
249 | // the last entry), our insertRows method has already rejected the insert. In this case, at this | |
250 | // point row=0 so we need to check if variable 'row' points to an empty entry (empty+empty+0) or | |
251 | // to a fully-populated entry (nonempty+maybeEmpty+number) | |
252 | QString fields = m_modelCurvesEntries.at (row); | |
253 | CurveNameListEntry entryAtRow (fields); | |
254 | return entryAtRow.entryHasNotBeenPopulated (); | |
255 | } | |
256 | ||
208 | 257 | bool CurveNameList::setData (const QModelIndex &index, |
209 | 258 | const QVariant &value, |
210 | 259 | int role) |
211 | 260 | { |
212 | 261 | LOG4CPP_INFO_S ((*mainCat)) << "CurveNameList::setData" |
213 | 262 | << " indexRow=" << index.row () |
214 | << " value=" << (value.isValid () ? "valid" : "invalid") | |
263 | << " indexCol=" << index.column () | |
264 | << " indexValid=" << (index.isValid() ? "valid" : "invalid") | |
265 | << " valueValid=" << (value.isValid () ? "valid" : "invalid") | |
266 | << " value=" << value.toString().toLatin1().data() | |
215 | 267 | << " role=" << roleAsString (role).toLatin1 ().data (); |
216 | 268 | |
217 | 269 | bool success = false; |
218 | 270 | |
219 | int row = index.row (); | |
220 | if (row < m_modelCurvesEntries.count ()) { | |
221 | ||
222 | success = true; // This method will be successful except in the rare case when a curve name is a duplicate | |
223 | ||
224 | if (!value.isValid () && (role == Qt::EditRole)) { | |
225 | ||
226 | // Remove the entry | |
227 | m_modelCurvesEntries.removeAt (row); | |
228 | ||
229 | } else { | |
230 | ||
231 | // Modify the entry | |
232 | CurveNameListEntry curvesEntry (m_modelCurvesEntries [row]); // Retrieve entry | |
233 | ||
234 | if (index.column () == 0) { | |
235 | curvesEntry.setCurveNameCurrent (value.toString ()); | |
236 | success = curveNameIsAcceptable (value.toString (), | |
237 | row); | |
238 | } else if (index.column () == 1) { | |
239 | curvesEntry.setCurveNameOriginal (value.toString ()); | |
240 | } else if (index.column () == 2) { | |
241 | curvesEntry.setNumPoints (value.toInt ()); | |
271 | if (index.isValid()) { | |
272 | ||
273 | // Process the new entry | |
274 | int row = index.row (); | |
275 | if (row < m_modelCurvesEntries.count ()) { | |
276 | ||
277 | // Variable 'row' points to an empty entry (created by insertRows) so we populate it here | |
278 | success = true; | |
279 | ||
280 | QString before = m_modelCurvesEntries.join (PIPE).replace (TAB, SPACE); | |
281 | ||
282 | if (!value.isValid () && (role == Qt::EditRole)) { | |
283 | ||
284 | // Remove the entry | |
285 | m_modelCurvesEntries.removeAt (row); | |
286 | ||
242 | 287 | } else { |
243 | ENGAUGE_ASSERT (false); | |
288 | ||
289 | // Modify the entry | |
290 | CurveNameListEntry curvesEntry (m_modelCurvesEntries [row]); // Retrieve entry | |
291 | ||
292 | if (index.column () == 0) { | |
293 | ||
294 | if (role == Qt::EditRole) { | |
295 | ||
296 | // Does new curve name meet the requirements | |
297 | if (curveNameIsAcceptable (value.toString (), | |
298 | row)) { | |
299 | ||
300 | curvesEntry.setCurveNameCurrent (value.toString ()); | |
301 | m_modelCurvesEntries [row] = curvesEntry.toString (); // Save update entry | |
302 | ||
303 | } else { | |
304 | ||
305 | success = false; | |
306 | } | |
307 | ||
308 | } else if ((role == Qt::DisplayRole) || | |
309 | (curveNameIsAcceptable (value.toString(), | |
310 | row))) { | |
311 | ||
312 | // Above we skipped curve name uniqueness check for Qt::DisplayRole since that role is used when dragging | |
313 | // curve from one place to another, since for a short time the new curve name will coexist | |
314 | // with the old curve name (until the old entry is removed) | |
315 | ||
316 | if (rowIsUnpopulated (row)) { | |
317 | success = true; | |
318 | curvesEntry.setCurveNameCurrent (value.toString ()); | |
319 | curvesEntry.setNumPoints (0); | |
320 | m_modelCurvesEntries [row] = curvesEntry.toString (); // Save update entry | |
321 | tryToRemoveOriginalCopy (index, | |
322 | value, | |
323 | role); | |
324 | } else { | |
325 | success = false; | |
326 | } | |
327 | } | |
328 | } else if (index.column () == 1) { | |
329 | curvesEntry.setCurveNameOriginal (value.toString ()); | |
330 | m_modelCurvesEntries [row] = curvesEntry.toString (); // Save update entry | |
331 | } else if (index.column () == 2) { | |
332 | curvesEntry.setNumPoints (value.toInt ()); | |
333 | m_modelCurvesEntries [row] = curvesEntry.toString (); // Save update entry | |
334 | } else { | |
335 | ENGAUGE_ASSERT (false); | |
336 | } | |
337 | ||
338 | if (success) { | |
339 | emit dataChanged (index, | |
340 | index); | |
341 | } | |
342 | ||
343 | QString after = m_modelCurvesEntries.join (PIPE).replace (TAB, SPACE); | |
344 | ||
345 | LOG4CPP_INFO_S ((*mainCat)) << "CurveNameList::setData setting" | |
346 | << " before=" << before.toLatin1().data() | |
347 | << " after=" << after.toLatin1().data(); | |
348 | ||
244 | 349 | } |
245 | ||
246 | if (success) { | |
247 | m_modelCurvesEntries [row] = curvesEntry.toString (); // Save update entry | |
248 | } | |
249 | } | |
250 | ||
251 | if (success) { | |
252 | emit dataChanged (index, | |
253 | index); | |
254 | 350 | } |
255 | 351 | } |
256 | 352 | |
261 | 357 | { |
262 | 358 | return Qt::MoveAction; |
263 | 359 | } |
360 | ||
361 | void CurveNameList::tryToRemoveOriginalCopy (const QModelIndex &index, | |
362 | const QVariant &value, | |
363 | int role) | |
364 | { | |
365 | // After the copy part of a move maneuver, the old entry must be identified and removed | |
366 | if (index.column () == 0 && role == Qt::DisplayRole) { | |
367 | QModelIndex indexToRemove = indexForValue (index, | |
368 | value); // Returns Invalid if no duplicate entry was found | |
369 | if (indexToRemove.isValid()) { | |
370 | ||
371 | QString before = m_modelCurvesEntries.join (PIPE).replace (TAB, SPACE); | |
372 | ||
373 | beginRemoveRows (QModelIndex (), | |
374 | indexToRemove.row(), | |
375 | indexToRemove.row()); | |
376 | m_modelCurvesEntries.removeAt (indexToRemove.row ()); | |
377 | endRemoveRows (); | |
378 | ||
379 | emit dataChanged (indexToRemove, | |
380 | indexToRemove); | |
381 | ||
382 | QString after = m_modelCurvesEntries.join (PIPE).replace (TAB, SPACE); | |
383 | ||
384 | LOG4CPP_INFO_S ((*mainCat)) << "CurveNameList::setData removed" | |
385 | << " indexRow=" << indexToRemove.row () | |
386 | << " indexCol=" << indexToRemove.column () | |
387 | << " before=" << before.toLatin1().data() | |
388 | << " after=" << after.toLatin1().data(); | |
389 | } | |
390 | } | |
391 | } |
54 | 54 | bool curveNameIsAcceptable (const QString &curveNameNew, |
55 | 55 | int row) const; |
56 | 56 | |
57 | /// Search method that finds the first occurrence of the specified value. If value is not found then Invalid is returned | |
58 | QModelIndex indexForValue (const QModelIndex &indexToSkip, | |
59 | const QVariant &value) const; | |
60 | ||
61 | /// Return true if row has not yet been unpopulated | |
62 | bool rowIsUnpopulated (int row) const; | |
63 | ||
64 | /// Remove original copy after it has been replicated as part of a move operation | |
65 | void tryToRemoveOriginalCopy(const QModelIndex &index, | |
66 | const QVariant &value, | |
67 | int role); | |
68 | ||
57 | 69 | /// Store entries as QStrings for easy translation into QVariants. Use CurveNameListEntry to translate |
58 | 70 | QStringList m_modelCurvesEntries; |
59 | 71 | }; |
10 | 10 | #include <QStringList> |
11 | 11 | #include <QXmlStreamWriter> |
12 | 12 | |
13 | const int NUM_POINTS_UNDEFINED = -1; // Negative value indicates row is not yet been populated (since actual range is 0 or more) | |
13 | 14 | const QString DELIMITER ("\t"); |
14 | 15 | |
15 | 16 | CurveNameListEntry:: CurveNameListEntry () : |
16 | 17 | m_curveNameCurrent (""), |
17 | 18 | m_curveNameOriginal (""), |
18 | m_numPoints (0) | |
19 | m_numPoints (NUM_POINTS_UNDEFINED) | |
19 | 20 | { |
20 | 21 | } |
21 | 22 | |
47 | 48 | return m_curveNameOriginal; |
48 | 49 | } |
49 | 50 | |
51 | bool CurveNameListEntry::entryHasNotBeenPopulated () const | |
52 | { | |
53 | return m_numPoints < 0; // See comment about NUM_POINTS_UNDEFINED | |
54 | } | |
55 | ||
50 | 56 | int CurveNameListEntry::numPoints () const |
51 | 57 | { |
52 | 58 | return m_numPoints; |
44 | 44 | /// Original curve name in document. Empty if there was no original curve |
45 | 45 | QString curveNameOriginal () const; |
46 | 46 | |
47 | /// Return true if entry is unpopulated. This is true between insertRows (where added to model) and setData (where fields are set) | |
48 | bool entryHasNotBeenPopulated () const; | |
49 | ||
47 | 50 | /// Number of points in curve. |
48 | 51 | int numPoints () const; |
49 | 52 |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #include "DlgPdfFrame.h" | |
7 | #include "EngaugeAssert.h" | |
8 | #include "Logger.h" | |
9 | #include "MainWindow.h" | |
10 | #include "PdfFrame.h" | |
11 | #include "poppler-qt5.h" | |
12 | #include <QApplication> | |
13 | #include <QGraphicsPixmapItem> | |
14 | #include <QGraphicsScene> | |
15 | #include <QImage> | |
16 | #include <QLabel> | |
17 | #include <QLayout> | |
18 | #include <QPushButton> | |
19 | #include <QSettings> | |
20 | #include <QSpinBox> | |
21 | #include <QTimer> | |
22 | #include "Settings.h" | |
23 | #include "ViewPreview.h" | |
24 | ||
25 | using namespace Poppler; | |
26 | ||
27 | int DlgPdfFrame::MINIMUM_DIALOG_WIDTH = 350; | |
28 | int DlgPdfFrame::MINIMUM_PREVIEW_HEIGHT = 200; | |
29 | const int X_TOP_LEFT = 0, Y_TOP_LEFT = 0; | |
30 | const int WIDTH = -1, HEIGHT = -1; // Negative values give full page | |
31 | const int FIRST_PAGE_1_BASED = 1; | |
32 | const int SMALLEST_DELAY_MS = 500; // Below 500 triggers "double jump" bug in linux | |
33 | ||
34 | DlgPdfFrame::DlgPdfFrame(const Poppler::Document &document, | |
35 | int resolution) : | |
36 | m_document (document), | |
37 | m_resolution (resolution), | |
38 | m_pixmap (0) | |
39 | { | |
40 | LOG4CPP_INFO_S ((*mainCat)) << "DlgPdfFrame::DlgPdfFrame"; | |
41 | ||
42 | setWindowTitle (tr ("PDF Frame")); | |
43 | setModal (true); | |
44 | ||
45 | QWidget *subPanel = new QWidget (); | |
46 | QGridLayout *layout = new QGridLayout (subPanel); | |
47 | subPanel->setLayout (layout); | |
48 | ||
49 | int row = 0; | |
50 | ||
51 | createTimer (); | |
52 | createPageSpinner (layout, row); | |
53 | createPreview (layout, row); | |
54 | finishPanel (subPanel); | |
55 | updatePreview (); | |
56 | ||
57 | // Bring the two middle columns together | |
58 | layout->setColumnStretch (0, 1); | |
59 | layout->setColumnStretch (1, 0); | |
60 | layout->setColumnStretch (2, 0); | |
61 | layout->setColumnStretch (3, 1); | |
62 | } | |
63 | ||
64 | DlgPdfFrame::~DlgPdfFrame() | |
65 | { | |
66 | LOG4CPP_INFO_S ((*mainCat)) << "DlgPdfFrame::~DlgPdfFrame"; | |
67 | } | |
68 | ||
69 | void DlgPdfFrame::createPageSpinner (QGridLayout *layout, | |
70 | int &row) | |
71 | { | |
72 | LOG4CPP_INFO_S ((*mainCat)) << "DlgPdfFrame::createPageSpinner"; | |
73 | ||
74 | const int MIN_WIDTH_SPINNER = 90; | |
75 | ||
76 | QLabel *labelPage = new QLabel (tr ("Page:")); | |
77 | layout->addWidget (labelPage, row, 1, 1, 1); | |
78 | ||
79 | m_spinPage = new QSpinBox; | |
80 | m_spinPage->setMinimumWidth (MIN_WIDTH_SPINNER); | |
81 | m_spinPage->setWhatsThis (tr ("Page number that will be imported")); | |
82 | m_spinPage->setRange (1, m_document.numPages()); | |
83 | layout->addWidget (m_spinPage, row++, 2, 1, 1); | |
84 | connect (m_spinPage, SIGNAL (valueChanged (int)), this, SLOT (slotPage (int))); | |
85 | } | |
86 | ||
87 | void DlgPdfFrame::createPreview (QGridLayout *layout, | |
88 | int &row) | |
89 | { | |
90 | LOG4CPP_INFO_S ((*mainCat)) << "DlgPdfFrame::createPreview"; | |
91 | ||
92 | QLabel *labelPreview = new QLabel (tr ("Preview")); | |
93 | layout->addWidget (labelPreview, row++, 0, 1, 1, Qt::AlignLeft); | |
94 | ||
95 | m_scenePreview = new QGraphicsScene (this); | |
96 | m_viewPreview = new ViewPreview (m_scenePreview, | |
97 | ViewPreview::VIEW_ASPECT_RATIO_ONE_TO_ONE, | |
98 | this); | |
99 | m_viewPreview->setWhatsThis (tr ("Preview window that shows what part of the image will be imported. " | |
100 | "The image portion inside the rectangular frame will be imported from the currently selected page. " | |
101 | "The frame can be moved and resized by dragging the corner handles.")); | |
102 | m_viewPreview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | |
103 | m_viewPreview->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | |
104 | m_viewPreview->setMinimumHeight (MINIMUM_PREVIEW_HEIGHT); | |
105 | layout->addWidget (m_viewPreview, row++, 0, 1, 4); | |
106 | ||
107 | // More preview initialization | |
108 | initializeFrameGeometryAndPixmap (); // Before first call to updatePreview | |
109 | createPdfFrame (); | |
110 | } | |
111 | ||
112 | void DlgPdfFrame::createPdfFrame () | |
113 | { | |
114 | // Create frame that shows what will be included, and what will be excluded, during the import | |
115 | m_pdfFrame = new PdfFrame (*m_scenePreview, | |
116 | *m_viewPreview); | |
117 | } | |
118 | ||
119 | void DlgPdfFrame::createTimer () | |
120 | { | |
121 | m_timer = new QTimer; | |
122 | m_timer->setSingleShot (true); | |
123 | connect (m_timer, SIGNAL (timeout ()), this, SLOT (slotTimeout ())); | |
124 | } | |
125 | ||
126 | void DlgPdfFrame::finishPanel (QWidget *subPanel) | |
127 | { | |
128 | const int STRETCH_OFF = 0, STRETCH_ON = 1; | |
129 | ||
130 | QVBoxLayout *panelLayout = new QVBoxLayout (this); | |
131 | ||
132 | setMinimumWidth (MINIMUM_DIALOG_WIDTH); | |
133 | setLayout (panelLayout); | |
134 | ||
135 | panelLayout->addWidget (subPanel); | |
136 | panelLayout->setStretch (panelLayout->count () - 1, STRETCH_ON); | |
137 | ||
138 | QWidget *panelButtons = new QWidget (this); | |
139 | QHBoxLayout *buttonLayout = new QHBoxLayout (panelButtons); | |
140 | ||
141 | QHBoxLayout *layoutRightSide = new QHBoxLayout; | |
142 | ||
143 | QWidget *widgetRightSide = new QWidget; | |
144 | widgetRightSide->setLayout (layoutRightSide); | |
145 | buttonLayout->addWidget (widgetRightSide); | |
146 | ||
147 | QSpacerItem *spacerExpanding = new QSpacerItem (40, 5, QSizePolicy::Expanding, QSizePolicy::Expanding); | |
148 | layoutRightSide->addItem (spacerExpanding); | |
149 | ||
150 | m_btnOk = new QPushButton (tr ("Ok")); | |
151 | layoutRightSide->addWidget (m_btnOk, 0, Qt::AlignRight); | |
152 | connect (m_btnOk, SIGNAL (released ()), this, SLOT (slotOk ())); | |
153 | ||
154 | QSpacerItem *spacerFixed = new QSpacerItem (40, 5, QSizePolicy::Fixed, QSizePolicy::Fixed); | |
155 | layoutRightSide->addItem (spacerFixed); | |
156 | ||
157 | m_btnCancel = new QPushButton (tr ("Cancel")); | |
158 | layoutRightSide->addWidget (m_btnCancel, 0, Qt::AlignRight); | |
159 | connect (m_btnCancel, SIGNAL (released ()), this, SLOT (slotCancel ())); | |
160 | ||
161 | panelLayout->addWidget (panelButtons, STRETCH_ON); | |
162 | panelLayout->setStretch (panelLayout->count () - 1, STRETCH_OFF); | |
163 | } | |
164 | ||
165 | QImage DlgPdfFrame::image () const | |
166 | { | |
167 | // If the entire page was to be returned, then this method would simply return m_image. However, only the framed | |
168 | // portion is to be returned | |
169 | ENGAUGE_ASSERT (m_pdfFrame != 0); | |
170 | QRectF rectFramePixels = m_pdfFrame->frameRect (); | |
171 | ||
172 | return m_image.copy (rectFramePixels.toRect ()); | |
173 | } | |
174 | ||
175 | void DlgPdfFrame::initializeFrameGeometryAndPixmap () | |
176 | { | |
177 | m_image = loadImage (FIRST_PAGE_1_BASED); | |
178 | QGraphicsPixmapItem *pixmap = new QGraphicsPixmapItem (QPixmap::fromImage (m_image)); | |
179 | m_scenePreview->addItem (pixmap); | |
180 | ||
181 | // Force resize so image fills preview area. We do this only once initially for speed | |
182 | m_viewPreview->setSceneRect (pixmap->boundingRect ()); | |
183 | } | |
184 | ||
185 | QImage DlgPdfFrame::loadImage (int page1Based) const | |
186 | { | |
187 | QImage image; | |
188 | ||
189 | int page0Based = page1Based - 1; | |
190 | Page *page = m_document.page (page0Based); | |
191 | if (page != 0) { | |
192 | ||
193 | image = page->renderToImage (m_resolution, | |
194 | m_resolution, | |
195 | X_TOP_LEFT, | |
196 | Y_TOP_LEFT, | |
197 | WIDTH, | |
198 | HEIGHT); | |
199 | ||
200 | delete page; | |
201 | } | |
202 | ||
203 | return image; | |
204 | } | |
205 | ||
206 | void DlgPdfFrame::saveGeometryToSettings() | |
207 | { | |
208 | // Store the settings for use by showEvent | |
209 | QSettings settings; | |
210 | settings.beginGroup (SETTINGS_GROUP_PDF); | |
211 | settings.setValue (SETTINGS_PDF_POS, saveGeometry ()); | |
212 | settings.endGroup(); | |
213 | } | |
214 | ||
215 | void DlgPdfFrame::showEvent (QShowEvent * /* event */) | |
216 | { | |
217 | QSettings settings; | |
218 | settings.beginGroup (SETTINGS_GROUP_PDF); | |
219 | if (settings.contains (SETTINGS_PDF_POS)) { | |
220 | ||
221 | // Restore the settings that were stored by the last call to saveGeometryToSettings | |
222 | restoreGeometry (settings.value (SETTINGS_PDF_POS).toByteArray ()); | |
223 | } | |
224 | } | |
225 | ||
226 | void DlgPdfFrame::slotCancel () | |
227 | { | |
228 | LOG4CPP_INFO_S ((*mainCat)) << "DlgPdfFrame::slotCancel"; | |
229 | ||
230 | // Restore cursor in case updatePreview has not already completed and then restored it | |
231 | QApplication::restoreOverrideCursor (); | |
232 | ||
233 | setResult (QDialog::Rejected); | |
234 | saveGeometryToSettings(); | |
235 | hide(); | |
236 | } | |
237 | ||
238 | void DlgPdfFrame::slotOk () | |
239 | { | |
240 | LOG4CPP_INFO_S ((*mainCat)) << "DlgPdfFrame::slotOk"; | |
241 | ||
242 | // Restore cursor in case updatePreview has not already completed and then restored it | |
243 | QApplication::restoreOverrideCursor (); | |
244 | ||
245 | setResult (QDialog::Accepted); | |
246 | saveGeometryToSettings(); | |
247 | hide(); | |
248 | } | |
249 | ||
250 | void DlgPdfFrame::slotPage (int page) | |
251 | { | |
252 | LOG4CPP_INFO_S ((*mainCat)) << "DlgPdfFrame::slotPage" | |
253 | << " page=" << page | |
254 | << " stepBy=" << m_spinPage->singleStep (); | |
255 | ||
256 | // Show wait cursor until slow calculations are over | |
257 | QApplication::setOverrideCursor (Qt::WaitCursor); | |
258 | ||
259 | m_timer->start (SMALLEST_DELAY_MS); | |
260 | } | |
261 | ||
262 | void DlgPdfFrame::slotTimeout () | |
263 | { | |
264 | LOG4CPP_INFO_S ((*mainCat)) << "DlgPdfFrame::slotTimeout"; | |
265 | ||
266 | updatePreview (); | |
267 | } | |
268 | ||
269 | void DlgPdfFrame::updatePreview () | |
270 | { | |
271 | LOG4CPP_INFO_S ((*mainCat)) << "DlgPdfFrame::updatePreview"; | |
272 | ||
273 | if (m_pixmap != 0) { | |
274 | m_scenePreview->removeItem (m_pixmap); | |
275 | } | |
276 | ||
277 | m_image = loadImage (m_spinPage->value ()); | |
278 | m_pixmap = new QGraphicsPixmapItem (QPixmap::fromImage (m_image)); | |
279 | m_scenePreview->addItem (m_pixmap); | |
280 | ||
281 | // Calculations for preview updating are now over | |
282 | QApplication::restoreOverrideCursor (); | |
283 | } |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #ifndef DLG_PDF_FRAME_H | |
7 | #define DLG_PDF_FRAME_H | |
8 | ||
9 | #include <QDialog> | |
10 | #include <QImage> | |
11 | #include <QObject> | |
12 | ||
13 | class PdfFrame; | |
14 | namespace Poppler { | |
15 | class Document; | |
16 | } | |
17 | class QGraphicsPixmapItem; | |
18 | class QGridLayout; | |
19 | class QGraphicsScene; | |
20 | class QRectF; | |
21 | class QSpinBox; | |
22 | class QString; | |
23 | class QTimer; | |
24 | class ViewPreview; | |
25 | ||
26 | /// Dialog for selecting a page and frame on that page when importing an image from a pdf file | |
27 | class DlgPdfFrame : public QDialog | |
28 | { | |
29 | Q_OBJECT; | |
30 | ||
31 | public: | |
32 | /// Single constructor. | |
33 | DlgPdfFrame(const Poppler::Document &document, | |
34 | int resolution); | |
35 | virtual ~DlgPdfFrame(); | |
36 | ||
37 | /// Image that was selected. Value is null if loading failed | |
38 | QImage image () const; | |
39 | ||
40 | /// Do preparation before dialog is displayed. | |
41 | virtual void showEvent (QShowEvent *event); | |
42 | ||
43 | private slots: | |
44 | ||
45 | /// Hide dialog. | |
46 | void slotCancel(); | |
47 | ||
48 | /// Save changes entered in dialog. | |
49 | void slotOk (); | |
50 | ||
51 | /// Page number has changed | |
52 | void slotPage (int); | |
53 | ||
54 | /// Slow processing of pdf is performed asynchronously using a timer so event handlers are not slowed down | |
55 | void slotTimeout (); | |
56 | ||
57 | private: | |
58 | DlgPdfFrame(); | |
59 | ||
60 | void createPageSpinner (QGridLayout *layout, | |
61 | int &row); | |
62 | void createPdfFrame (); | |
63 | void createPreview (QGridLayout *layout, | |
64 | int &row); | |
65 | void createTimer (); | |
66 | void finishPanel (QWidget *subPanel); | |
67 | void initializeFrameGeometryAndPixmap (); | |
68 | QImage loadImage (int page1Based) const; | |
69 | ||
70 | /// Dialog layout constant that guarantees every widget has sufficient room | |
71 | static int MINIMUM_DIALOG_WIDTH; | |
72 | ||
73 | /// Dialog layout constant that guarantees preview has sufficent room | |
74 | static int MINIMUM_PREVIEW_HEIGHT; | |
75 | ||
76 | void saveGeometryToSettings (); | |
77 | void updatePreview (); | |
78 | ||
79 | QSpinBox *m_spinPage; | |
80 | QPushButton *m_btnCancel; | |
81 | QPushButton *m_btnOk; | |
82 | ||
83 | QTimer *m_timer; | |
84 | const Poppler::Document &m_document; | |
85 | int m_resolution; | |
86 | QImage m_image; // Needed so it can be passed to external code when this dialog has finished successfully | |
87 | QGraphicsPixmapItem *m_pixmap; // Needed so old image can be removed just before new one gets added | |
88 | ||
89 | QGraphicsScene *m_scenePreview; | |
90 | ViewPreview *m_viewPreview; | |
91 | ||
92 | PdfFrame *m_pdfFrame; | |
93 | }; | |
94 | ||
95 | #endif // DLG_PDF_FRAME_H |
52 | 52 | /// Process slotOk. |
53 | 53 | virtual void handleOk () = 0; |
54 | 54 | |
55 | /// Load settings from Document. | |
56 | virtual void load (CmdMediator &cmdMediator) = 0; | |
57 | ||
55 | 58 | /// Dialog layout constant that guarantees every widget has sufficient room |
56 | 59 | static int MINIMUM_DIALOG_WIDTH; |
57 | 60 | |
58 | 61 | /// Dialog layout constant that guarantees preview has sufficent room |
59 | 62 | static int MINIMUM_PREVIEW_HEIGHT; |
60 | ||
61 | /// Load settings from Document. | |
62 | virtual void load (CmdMediator &cmdMediator) = 0; | |
63 | 63 | |
64 | 64 | /// Get method for MainWindow. |
65 | 65 | MainWindow &mainWindow (); |
80 | 80 | void setDisableOkAtStartup(bool disableOkAtStartup); |
81 | 81 | |
82 | 82 | private slots: |
83 | /// Do preparation before dialog is displayed. | |
84 | virtual void showEvent (QShowEvent *event); | |
85 | 83 | |
86 | 84 | /// Hide dialog. |
87 | 85 | void slotCancel(); |
94 | 92 | |
95 | 93 | void saveGeometryToSettings (); |
96 | 94 | |
95 | /// Do preparation before dialog is displayed. | |
96 | virtual void showEvent (QShowEvent *event); | |
97 | ||
97 | 98 | MainWindow &m_mainWindow; |
98 | 99 | CmdMediator *m_cmdMediator; // Cannot be const since Document gets a command pushed if dialog is ok'ed |
99 | 100 | QPushButton *m_btnCancel; |
19 | 19 | #include <QPushButton> |
20 | 20 | #include <QSettings> |
21 | 21 | #include <QSpacerItem> |
22 | #include <QTableView> | |
22 | 23 | #include "QtToString.h" |
23 | 24 | #include "Settings.h" |
24 | 25 | #include "SettingsForGraph.h" |
26 | ||
27 | const int FIRST_COLUMN = 0; | |
25 | 28 | |
26 | 29 | DlgSettingsCurveAddRemove::DlgSettingsCurveAddRemove(MainWindow &mainWindow) : |
27 | 30 | DlgSettingsAbstractBase (tr ("Curve Add/Remove"), |
83 | 86 | m_curveNameList = new CurveNameList; |
84 | 87 | |
85 | 88 | // There is no Qt::ItemIsEditable flag for QListView, so instead we set that flag for the QListViewItems |
89 | #ifdef DLG_SETTINGS_DEBUG | |
90 | m_listCurves = new QTableView; | |
91 | #else | |
86 | 92 | m_listCurves = new QListView; |
93 | #endif | |
94 | ||
87 | 95 | m_listCurves->setWhatsThis (tr ("List of the curves belonging to this document.\n\n" |
88 | 96 | "Click on a curve name to edit it. Each curve name must be unique.\n\n" |
89 | 97 | "Reorder curves by dragging them around.")); |
90 | 98 | m_listCurves->setMinimumHeight (200); |
91 | m_listCurves->setSelectionMode (QAbstractItemView::ExtendedSelection); | |
99 | m_listCurves->setSelectionMode (QAbstractItemView::SingleSelection); | |
92 | 100 | m_listCurves->setDefaultDropAction (Qt::MoveAction); |
93 | m_listCurves->setDragDropOverwriteMode (true); | |
101 | m_listCurves->setDragDropOverwriteMode (false); | |
94 | 102 | m_listCurves->setDragEnabled (true); |
95 | 103 | m_listCurves->setDropIndicatorShown (true); |
96 | 104 | m_listCurves->setDragDropMode (QAbstractItemView::InternalMove); |
105 | #ifndef DLG_SETTINGS_DEBUG | |
97 | 106 | m_listCurves->setViewMode (QListView::ListMode); |
98 | 107 | m_listCurves->setMovement (QListView::Snap); |
108 | #endif | |
99 | 109 | m_listCurves->setModel (m_curveNameList); |
100 | 110 | layout->addWidget (m_listCurves, row++, 1, 1, 2); |
101 | 111 | connect (m_curveNameList, SIGNAL (dataChanged (const QModelIndex &, const QModelIndex &, const QVector<int> &)), |
112 | 122 | m_btnSaveDefault->setWhatsThis (tr ("Save the curve names for use as defaults for future graph curves.")); |
113 | 123 | connect (m_btnSaveDefault, SIGNAL (released ()), this, SLOT (slotSaveDefault ())); |
114 | 124 | layout->addWidget (m_btnSaveDefault, 0, Qt::AlignLeft); |
125 | ||
126 | m_btnResetDefault = new QPushButton (tr ("Reset Default")); | |
127 | m_btnResetDefault->setWhatsThis (tr ("Reset the defaults for future graph curves to the original settings.")); | |
128 | connect (m_btnResetDefault, SIGNAL (released ()), this, SLOT (slotResetDefault())); | |
129 | layout->addWidget (m_btnResetDefault, 0, Qt::AlignRight); | |
115 | 130 | |
116 | 131 | QSpacerItem *spacer = new QSpacerItem (40, 2); |
117 | 132 | layout->addItem (spacer); |
213 | 228 | cmdMediator.curvesGraphsNumPoints (curveName)); |
214 | 229 | } |
215 | 230 | |
231 | selectCurveName (curveNames.first()); | |
232 | ||
216 | 233 | enableOk (false); // Disable Ok button since there not yet any changes |
217 | 234 | } |
218 | 235 | |
219 | QString DlgSettingsCurveAddRemove::nextCurveName () const | |
220 | { | |
221 | const QString DASH_ONE ("-1"); // Nice value to start a new range at a lower level than the current level | |
222 | ||
223 | ENGAUGE_CHECK_PTR (m_listCurves); | |
224 | ||
236 | int DlgSettingsCurveAddRemove::newIndexFromSelection () const | |
237 | { | |
225 | 238 | int numSelectedItems = m_listCurves->selectionModel ()->selectedIndexes ().count (); |
226 | 239 | int numItems = m_listCurves->model ()->rowCount (); |
227 | 240 | |
228 | 241 | // Determine index where new entry will be inserted |
229 | int currentIndex = -1; | |
242 | int newIndex = -1; | |
230 | 243 | if ((numSelectedItems == 0) && |
231 | 244 | (numItems > 0)) { |
232 | 245 | |
233 | 246 | // Append after list which has at least one entry |
234 | currentIndex = numItems; | |
247 | newIndex = numItems; | |
235 | 248 | |
236 | 249 | } else if (numSelectedItems == 1) { |
237 | 250 | |
238 | // Insert before the selected index | |
239 | currentIndex = m_listCurves->selectionModel ()->selectedIndexes ().at (0).row (); | |
240 | ||
241 | } | |
251 | // Insert after the selected index | |
252 | newIndex = 1 + m_listCurves->selectionModel ()->selectedIndexes ().at (0).row (); | |
253 | ||
254 | } | |
255 | ||
256 | return newIndex; | |
257 | } | |
258 | ||
259 | QString DlgSettingsCurveAddRemove::nextCurveName () const | |
260 | { | |
261 | const QString DASH_ONE ("-1"); // Nice value to start a new range at a lower level than the current level | |
262 | ||
263 | ENGAUGE_CHECK_PTR (m_listCurves); | |
264 | ||
265 | int newIndex = newIndexFromSelection (); | |
266 | int numItems = m_listCurves->model ()->rowCount (); | |
242 | 267 | |
243 | 268 | // Curves names of existing before/after curves |
244 | 269 | QString curveNameBefore, curveNameAfter; |
245 | if (currentIndex > 0) { | |
246 | ||
247 | QModelIndex index = m_curveNameList->index (currentIndex - 1, 0); | |
270 | if (newIndex > 0) { | |
271 | ||
272 | QModelIndex index = m_curveNameList->index (newIndex - 1, 0); | |
248 | 273 | curveNameBefore = m_curveNameList->data (index).toString (); |
249 | 274 | |
250 | 275 | } |
251 | 276 | |
252 | if ((0 <= currentIndex) && (currentIndex < numItems)) { | |
253 | ||
254 | QModelIndex index = m_curveNameList->index (currentIndex, 0); | |
277 | if ((0 <= newIndex) && (newIndex < numItems)) { | |
278 | ||
279 | QModelIndex index = m_curveNameList->index (newIndex, 0); | |
255 | 280 | curveNameAfter = m_curveNameList->data (index).toString (); |
256 | 281 | |
257 | 282 | } |
345 | 370 | { |
346 | 371 | LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsCurveAddRemove::removeSelectedCurves"; |
347 | 372 | |
373 | ENGAUGE_ASSERT (m_listCurves->selectionModel ()->selectedIndexes ().count () > 0); // Also guarantees number of indexes > 0 | |
374 | ||
375 | // Identify the first index after the last selected index | |
376 | QString firstCurveAfter; // Empty case means there was no index afer the last selected index | |
377 | for (int row = m_listCurves->model()->rowCount() - 1; row >= 0; row--) { | |
378 | ||
379 | QModelIndex indexCurrent = m_listCurves->model()->index(row, FIRST_COLUMN); | |
380 | if (indexCurrent == m_listCurves->selectionModel()->selectedIndexes().last()) { | |
381 | ||
382 | // This is the last selected index, which will be removed below. Exit immediately with firstCurveAfter set | |
383 | break; | |
384 | } | |
385 | ||
386 | firstCurveAfter = indexCurrent.data().toString(); | |
387 | } | |
388 | ||
389 | // Delete the selected indexes from last to first | |
348 | 390 | for (int i = m_listCurves->selectionModel ()->selectedIndexes ().count () - 1; i >= 0; i--) { |
349 | 391 | |
350 | 392 | int row = m_listCurves->selectionModel ()->selectedIndexes ().at (i).row (); |
351 | 393 | |
352 | 394 | m_curveNameList->removeRow (row); |
395 | } | |
396 | ||
397 | if (firstCurveAfter.isEmpty ()) { | |
398 | ||
399 | // Select the last remaining curve. These steps seem more complicated than necessary | |
400 | int numItems = m_listCurves->model()->rowCount(); | |
401 | QModelIndex indexLast = m_listCurves->model()->index (numItems - 1, FIRST_COLUMN); | |
402 | firstCurveAfter = m_listCurves->model()->data (indexLast).toString(); | |
403 | ||
404 | } | |
405 | ||
406 | ||
407 | // Select an item | |
408 | selectCurveName(firstCurveAfter); | |
409 | } | |
410 | ||
411 | void DlgSettingsCurveAddRemove::selectCurveName (const QString &curveWanted) | |
412 | { | |
413 | LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsCurveAddRemove::selectCurveName" | |
414 | << " curve=" << curveWanted.toLatin1().data(); | |
415 | ||
416 | for (int row = 0; m_listCurves->model()->rowCount(); row++) { | |
417 | ||
418 | QModelIndex index = m_listCurves->model()->index (row, FIRST_COLUMN); | |
419 | QString curveGot = index.data ().toString (); | |
420 | ||
421 | if (curveWanted == curveGot) { | |
422 | ||
423 | // Found the curve we want to select | |
424 | m_listCurves->setCurrentIndex (index); | |
425 | break; | |
426 | ||
427 | } | |
353 | 428 | } |
354 | 429 | } |
355 | 430 | |
360 | 435 | LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsCurveAddRemove::slotDataChanged" |
361 | 436 | << " topLeft=(" << topLeft.row () << "," << topLeft.column () << ")" |
362 | 437 | << " bottomRight=(" << bottomRight.row () << "," << bottomRight.column () << ")" |
363 | << " roles=" << rolesAsString (roles).toLatin1 ().data (); | |
438 | << " roles=" << rolesAsString (roles).toLatin1 ().data () | |
439 | << " defaultDragOption=" << (m_listCurves->defaultDropAction() == Qt::MoveAction ? "MoveAction" : "CopyAction"); | |
364 | 440 | |
365 | 441 | updateControls (); |
366 | 442 | } |
374 | 450 | |
375 | 451 | QString curveNameSuggestion = nextCurveName (); |
376 | 452 | |
377 | appendCurveName (curveNameSuggestion, | |
453 | int row = newIndexFromSelection(); | |
454 | ||
455 | insertCurveName (row, | |
456 | curveNameSuggestion, | |
378 | 457 | NO_ORIGINAL_CURVE_NAME, |
379 | 458 | NO_POINTS); |
459 | ||
460 | selectCurveName (curveNameSuggestion); | |
380 | 461 | |
381 | 462 | updateControls(); |
382 | 463 | } |
425 | 506 | updateControls(); |
426 | 507 | } |
427 | 508 | |
509 | void DlgSettingsCurveAddRemove::slotResetDefault() | |
510 | { | |
511 | LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsCurveAddRemove::slotResetDefault"; | |
512 | ||
513 | const QString REMOVE_ALL_SETTINGS_IN_GROUP; // Empty string | |
514 | ||
515 | QSettings settings (SETTINGS_ENGAUGE, SETTINGS_DIGITIZER); | |
516 | ||
517 | int indexOneBased = 1; | |
518 | ||
519 | SettingsForGraph settingsForGraph; | |
520 | QString groupName = settingsForGraph.groupNameForNthCurve (indexOneBased); | |
521 | while (settings.childGroups().contains (groupName)) { | |
522 | ||
523 | settings.beginGroup (groupName); | |
524 | settings.remove (REMOVE_ALL_SETTINGS_IN_GROUP); // Remove this group by removing its settings | |
525 | settings.endGroup (); | |
526 | ||
527 | ++indexOneBased; | |
528 | groupName = settingsForGraph.groupNameForNthCurve (indexOneBased); | |
529 | } | |
530 | } | |
531 | ||
428 | 532 | void DlgSettingsCurveAddRemove::slotSaveDefault() |
429 | 533 | { |
430 | 534 | LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsCurveAddRemove::slotSaveDefault"; |
14 | 14 | class QGridLayout; |
15 | 15 | class QListView; |
16 | 16 | class QPushButton; |
17 | class QTableView; | |
17 | 18 | |
18 | 19 | /// Dialog for editing curve names settings. |
20 | /// | |
21 | /// The debug macro DLG_SETTINGS_DEBUG can be temporarily set to see the hidden columns | |
19 | 22 | class DlgSettingsCurveAddRemove : public DlgSettingsAbstractBase |
20 | 23 | { |
21 | 24 | Q_OBJECT; |
35 | 38 | const QVector<int> &roles); |
36 | 39 | void slotNew (); |
37 | 40 | void slotRemove (); |
41 | void slotResetDefault(); | |
38 | 42 | void slotSaveDefault(); |
39 | 43 | void slotSelectionChanged (QItemSelection, QItemSelection); |
40 | 44 | |
53 | 57 | const QString &curveNameNew, |
54 | 58 | const QString &curveNameOriginal, |
55 | 59 | int numPoints); |
60 | int newIndexFromSelection () const; | |
56 | 61 | QString nextCurveName () const; // Pick good curve name to go at currentRow() |
57 | 62 | int numberAtEnd (const QString &str) const; |
58 | 63 | void removeSelectedCurves(); |
64 | void selectCurveName (const QString &curveWanted); | |
59 | 65 | void updateControls (); |
60 | 66 | |
61 | 67 | CurveNameList *m_curveNameList; // Model for m_listCurves |
68 | ||
69 | #ifdef DLG_SETTINGS_DEBUG | |
70 | QTableView *m_listCurves; // While debugging, the 3 columns in each row are visible to make the operations more clear | |
71 | #else | |
62 | 72 | QListView *m_listCurves; // Use QListView instead of QListWidget so validators can be used |
73 | #endif | |
63 | 74 | |
64 | 75 | QPushButton *m_btnAdd; |
65 | 76 | QPushButton *m_btnRemove; |
66 | 77 | QPushButton *m_btnRename; |
67 | 78 | |
79 | QPushButton *m_btnResetDefault; | |
68 | 80 | QPushButton *m_btnSaveDefault; |
69 | 81 | }; |
70 | 82 |
108 | 108 | connect (m_cmbLocale, SIGNAL (currentIndexChanged (int)), this, SLOT (slotLocale (int))); |
109 | 109 | layout->addWidget (m_cmbLocale, row++, 2); |
110 | 110 | |
111 | #ifdef ENGAUGE_PDF | |
112 | QLabel *labelPdfResolution = new QLabel (tr ("Import PDF resolution (dots per inch):")); | |
113 | layout->addWidget (labelPdfResolution, row, 1); | |
114 | ||
115 | m_cmbPdfResolution = new QComboBox; | |
116 | m_cmbPdfResolution->setWhatsThis (tr ("Import PDF Resolution\n\n" | |
117 | "Imported Portable Document Format (PDF) files will be converted to this pixel resolution " | |
118 | "in dots per inch (DPI), where each pixel is one dot. A higher value increases the picture resolution " | |
119 | "and may also improve numeric digitizing accuracy. However, a very high value can make the image so " | |
120 | "large that Engauge will slow down.")); | |
121 | m_cmbPdfResolution->addItem ("75", 75); | |
122 | m_cmbPdfResolution->addItem ("100", 100); | |
123 | m_cmbPdfResolution->addItem ("150", 150); | |
124 | m_cmbPdfResolution->addItem ("200", 200); | |
125 | m_cmbPdfResolution->addItem ("250", 250); | |
126 | m_cmbPdfResolution->addItem ("300", 300); | |
127 | connect (m_cmbPdfResolution, SIGNAL (currentTextChanged (QString)), this, SLOT (slotPdfResolution (QString))); | |
128 | layout->addWidget (m_cmbPdfResolution, row++, 2); | |
129 | #endif | |
130 | ||
111 | 131 | QLabel *labelRecent = new QLabel (tr ("Recent file list:")); |
112 | 132 | layout->addWidget (labelRecent, row, 1); |
113 | 133 | |
197 | 217 | index = m_cmbLocale->findText (locLabel); |
198 | 218 | m_cmbLocale->setCurrentIndex(index); |
199 | 219 | m_chkTitleBarFormat->setChecked (m_modelMainWindowAfter->mainTitleBarFormat() == MAIN_TITLE_BAR_FORMAT_PATH); |
220 | index = m_cmbPdfResolution->findData (m_modelMainWindowAfter->pdfResolution()); | |
221 | m_cmbPdfResolution->setCurrentIndex(index); | |
200 | 222 | |
201 | 223 | updateControls (); |
202 | 224 | enableOk (false); // Disable Ok button since there not yet any changes |
207 | 229 | LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsMainWindow::slotLocale"; |
208 | 230 | |
209 | 231 | m_modelMainWindowAfter->setLocale (m_cmbLocale->itemData (index).toLocale()); |
232 | updateControls(); | |
233 | } | |
234 | ||
235 | void DlgSettingsMainWindow::slotPdfResolution(const QString) | |
236 | { | |
237 | LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsMainWIndow::slotPdfResolution"; | |
238 | ||
239 | m_modelMainWindowAfter->setPdfResolution(m_cmbPdfResolution->currentData().toInt()); | |
210 | 240 | updateControls(); |
211 | 241 | } |
212 | 242 |
37 | 37 | private slots: |
38 | 38 | void slotTitleBarFormat(bool); |
39 | 39 | void slotLocale (int index); |
40 | void slotPdfResolution (const QString); | |
40 | 41 | void slotRecentFileClear (); |
41 | 42 | void slotZoomControl (const QString); |
42 | 43 | void slotZoomFactor (const QString); |
55 | 56 | QComboBox *m_cmbLocale; |
56 | 57 | QPushButton *m_btnRecentClear; |
57 | 58 | QCheckBox *m_chkTitleBarFormat; |
59 | QComboBox *m_cmbPdfResolution; | |
58 | 60 | |
59 | 61 | MainWindowModel *m_modelMainWindowBefore; |
60 | 62 | MainWindowModel *m_modelMainWindowAfter; |
946 | 946 | m_coordSystemContext.setModelSegments (modelSegments); |
947 | 947 | } |
948 | 948 | |
949 | void Document::setPixmap(const QImage &image) | |
950 | { | |
951 | LOG4CPP_INFO_S ((*mainCat)) << "Document::setPixmap"; | |
952 | ||
953 | m_pixmap = QPixmap::fromImage (image); | |
954 | } | |
955 | ||
949 | 956 | void Document::setSelectedCurveName(const QString &selectedCurveName) |
950 | 957 | { |
951 | 958 | m_coordSystemContext.setSelectedCurveName (selectedCurveName); |
282 | 282 | /// Set method for DocumentModelSegments. |
283 | 283 | void setModelSegments(const DocumentModelSegments &modelSegments); |
284 | 284 | |
285 | /// Set method for the background pixmap | |
286 | void setPixmap (const QImage &image); | |
287 | ||
285 | 288 | /// Save curve name that is selected for the current coordinate system, for the next time the coordinate system reappears |
286 | 289 | void setSelectedCurveName (const QString &selectedCurveName); |
287 | 290 |
193 | 193 | { |
194 | 194 | // LOG4CPP_INFO_S ((*mainCat)) << "ExportFileFunctions::linearlyInterpolate"; |
195 | 195 | |
196 | // If point is within the range of the function points then interpolation will be used, otherwise | |
197 | // extrapolation will be used | |
196 | 198 | double yRadius = 0; |
197 | 199 | QPointF posGraphBefore; // Not set until ip=1 |
198 | 200 | bool foundIt = false; |
199 | for (int ip = 0; ip < points.count(); ip++) { | |
201 | for (int ip = 0; !foundIt && (ip < points.count()); ip++) { | |
200 | 202 | |
201 | 203 | const Point &point = points.at (ip); |
202 | 204 | QPointF posGraph; |
203 | 205 | transformation.transformScreenToRawGraph (point.posScreen(), |
204 | posGraph); | |
205 | ||
206 | if (xThetaValue <= posGraph.x()) { | |
206 | posGraph); | |
207 | ||
208 | // Cases where we have found it at this point in the code | |
209 | // (1) interpolation case where (xBefore < xThetaValue < xAfter) | |
210 | // (2) extrapolation case where (xThetaValue < xBefore < xAfter and ip=0) for which we delay finding it until ip=1 so we have | |
211 | // two points for extrapolating. This case is why we have the subtle test for ip>0 in the next line | |
212 | if (xThetaValue <= posGraph.x() && (ip > 0)) { | |
207 | 213 | |
208 | 214 | foundIt = true; |
209 | if (ip == 0) { | |
210 | ||
211 | // Use first point | |
212 | yRadius = posGraph.y(); | |
213 | ||
214 | } else { | |
215 | ||
216 | // Between posGraphBefore and posGraph. Note that if posGraph.x()=posGraphBefore.x() then | |
217 | // previous iteration of loop would have been used for interpolation, and then the loop was exited | |
218 | double s = (xThetaValue - posGraphBefore.x()) / (posGraph.x() - posGraphBefore.x()); | |
219 | yRadius = (1.0 -s) * posGraphBefore.y() + s * posGraph.y(); | |
220 | } | |
215 | ||
216 | // Case 1 comments: xThetaValue is between posGraphBefore and posGraph. Note that if posGraph.x()=posGraphBefore.x() then | |
217 | // previous iteration of loop would have been used for interpolation, and then the loop was exited. Range of s is 0<s<1 | |
218 | // Case 2 comments: Range of s is s<0 | |
219 | double s = (xThetaValue - posGraphBefore.x()) / (posGraph.x() - posGraphBefore.x()); | |
220 | yRadius = (1.0 -s) * posGraphBefore.y() + s * posGraph.y(); | |
221 | 221 | |
222 | 222 | break; |
223 | 223 | } |
227 | 227 | |
228 | 228 | if (!foundIt) { |
229 | 229 | |
230 | // Use last point | |
231 | yRadius = posGraphBefore.y(); | |
232 | ||
230 | if (points.count() > 1) { | |
231 | ||
232 | // Extrapolation will be used since point is out of the range of the function points. Specifically, it is greater than the | |
233 | // last x value in the function. Range of s is 1<s | |
234 | int N = points.count(); | |
235 | const Point &pointLast = points.at (N - 1); | |
236 | const Point &pointBefore = points.at (N - 2); | |
237 | QPointF posGraphLast; | |
238 | transformation.transformScreenToRawGraph (pointLast.posScreen(), | |
239 | posGraphLast); | |
240 | transformation.transformScreenToRawGraph (pointBefore.posScreen(), | |
241 | posGraphBefore); | |
242 | double s = (xThetaValue - posGraphBefore.x()) / (posGraphLast.x() - posGraphBefore.x()); | |
243 | yRadius = (1.0 - s) * posGraphBefore.y() + s * posGraphLast.y(); | |
244 | ||
245 | } else if (points.count() == 1) { | |
246 | ||
247 | // Just use the single point | |
248 | yRadius = posGraphBefore.y(); | |
249 | ||
250 | } else { | |
251 | ||
252 | ENGAUGE_ASSERT (false); | |
253 | ||
254 | } | |
233 | 255 | } |
234 | 256 | |
235 | 257 | return yRadius; |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #include "ExportImageForRegression.h" | |
7 | #include <QFile> | |
8 | #include <QMessageBox> | |
9 | #include <QObject> | |
10 | #include <QPixmap> | |
11 | #include <QString> | |
12 | #include <QTextStream> | |
13 | ||
14 | ExportImageForRegression::ExportImageForRegression (const QPixmap &pixmap) : | |
15 | m_width (pixmap.width ()), | |
16 | m_height (pixmap.height ()) | |
17 | { | |
18 | } | |
19 | ||
20 | void ExportImageForRegression::fileExport (const QString &filename) const | |
21 | { | |
22 | QFile file (filename); | |
23 | if (!file.open (QIODevice::WriteOnly)) { | |
24 | QMessageBox::critical (0, | |
25 | QObject::tr ("Export Image"), | |
26 | QObject::tr ("Cannot export file")); | |
27 | } else { | |
28 | ||
29 | QTextStream str (&file); | |
30 | ||
31 | str << m_width << "x" << m_height << "\n"; | |
32 | ||
33 | file.close (); | |
34 | } | |
35 | } |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #ifndef EXPORT_IMAGE_FOR_REGRESSION_H | |
7 | #define EXPORT_IMAGE_FOR_REGRESSION_H | |
8 | ||
9 | class QPixmap; | |
10 | class QString; | |
11 | ||
12 | /// Class for exporting during regression, when the Transformation has not yet been defined. This class just | |
13 | /// exports the image size | |
14 | class ExportImageForRegression | |
15 | { | |
16 | public: | |
17 | /// Single constructor | |
18 | ExportImageForRegression(const QPixmap &pixmap); | |
19 | ||
20 | /// Export to the specified file. This is called when the Transformation has not been defined | |
21 | void fileExport (const QString &filename) const; | |
22 | ||
23 | private: | |
24 | ExportImageForRegression(); | |
25 | ||
26 | const int m_width; | |
27 | const int m_height; | |
28 | }; | |
29 | ||
30 | #endif // EXPORT_IMAGE_FOR_REGRESSION_H |
9 | 9 | #include "FileCmdSerialize.h" |
10 | 10 | #include "Logger.h" |
11 | 11 | #include "MainWindow.h" |
12 | #include <QDir> | |
12 | 13 | #include <QFile> |
14 | #include <QMessageBox> | |
13 | 15 | #include <QXmlStreamReader> |
14 | 16 | #include "Xml.h" |
15 | 17 | |
16 | 18 | FileCmdScript::FileCmdScript(const QString &fileCmdScriptFile) |
17 | 19 | { |
20 | LOG4CPP_INFO_S ((*mainCat)) << "FileCmdScript::FileCmdScript" | |
21 | << " curDir=" << QDir::currentPath().toLatin1().data(); | |
22 | ||
18 | 23 | // Read commands into stack. The file is known to exist since it was checked in parseCmdLine |
19 | 24 | QFile file (fileCmdScriptFile); |
20 | 25 | |
21 | 26 | QXmlStreamReader reader (&file); |
22 | file.open(QIODevice::ReadOnly | QIODevice::Text); | |
27 | if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { | |
28 | ||
29 | QString msg = QString ("%1 %2 %3 %4") | |
30 | .arg (QObject::tr ("Cannot read script file")) | |
31 | .arg (fileCmdScriptFile) | |
32 | .arg (QObject::tr ("from directory")) | |
33 | .arg (QDir::currentPath()); | |
34 | QMessageBox::critical (0, | |
35 | "Script File", | |
36 | msg); | |
37 | exit (-1); | |
38 | } | |
23 | 39 | |
24 | 40 | // Load commands |
25 | 41 | FileCmdFactory factory; |
21 | 21 | #include "QtToString.h" |
22 | 22 | #include "Spline.h" |
23 | 23 | #include "Transformation.h" |
24 | #include "ZValues.h" | |
24 | 25 | |
25 | 26 | using namespace std; |
26 | 27 | |
29 | 30 | GraphicsLinesForCurve::GraphicsLinesForCurve(const QString &curveName) : |
30 | 31 | m_curveName (curveName) |
31 | 32 | { |
33 | setZValue (Z_VALUE_CURVE); | |
32 | 34 | setData (DATA_KEY_GRAPHICS_ITEM_TYPE, |
33 | 35 | GRAPHICS_ITEM_TYPE_LINE); |
34 | 36 | setData (DATA_KEY_IDENTIFIER, |
19 | 19 | #include <QPen> |
20 | 20 | #include <QTextStream> |
21 | 21 | #include "QtToString.h" |
22 | #include "ZValues.h" | |
22 | 23 | |
23 | 24 | const double ZERO_WIDTH = 0.0; |
24 | const double Z_VALUE = 100.0; // Put on top of Segments in DlgSettingsSegments | |
25 | 25 | |
26 | 26 | GraphicsPoint::GraphicsPoint(QGraphicsScene &scene, |
27 | 27 | const QString &identifier, |
111 | 111 | 2 * radiusSigned + 1)); |
112 | 112 | m_scene.addItem (m_graphicsItemEllipse); |
113 | 113 | |
114 | m_graphicsItemEllipse->setZValue (Z_VALUE); | |
114 | m_graphicsItemEllipse->setZValue (Z_VALUE_POINT); | |
115 | 115 | m_graphicsItemEllipse->setData (DATA_KEY_IDENTIFIER, m_identifier); |
116 | 116 | m_graphicsItemEllipse->setData (DATA_KEY_GRAPHICS_ITEM_TYPE, GRAPHICS_ITEM_TYPE_POINT); |
117 | 117 | m_graphicsItemEllipse->setPos (m_posScreen.x (), |
146 | 146 | polygon); |
147 | 147 | m_scene.addItem (m_graphicsItemPolygon); |
148 | 148 | |
149 | m_graphicsItemPolygon->setZValue (Z_VALUE); | |
149 | m_graphicsItemPolygon->setZValue (Z_VALUE_POINT); | |
150 | 150 | m_graphicsItemPolygon->setData (DATA_KEY_IDENTIFIER, m_identifier); |
151 | 151 | m_graphicsItemPolygon->setData (DATA_KEY_GRAPHICS_ITEM_TYPE, GRAPHICS_ITEM_TYPE_POINT); |
152 | 152 | m_graphicsItemPolygon->setPos (m_posScreen.x (), |
66 | 66 | #endif |
67 | 67 | paths << "/documentation/engauge.qhc"; |
68 | 68 | paths << "/../share/doc/engauge-digitizer/engauge.qhc"; |
69 | paths << "/usr/share/engauge-digitizer-doc/engauge.qhc"; | |
69 | 70 | |
70 | 71 | QStringList::iterator itr; |
71 | 72 | for (itr = paths.begin(); itr != paths.end(); itr++) { |
0 | # Requirements: | |
1 | # 1) LOG4CPP with environment variable LOG4CPP_INCLUDE pointing to that packages include directory. Example: | |
2 | # LOG4CPP=$HOME/log4cpp_null/include | |
3 | # 2) openjpeg with environment variable JPEG_INCLUDE pointing to that packages include directory. Example: | |
4 | # JPEG_INCLUDE=$HOME/openjpeg-version.2.1/usr/local/include/openjpeg-2.1 | |
5 | ||
6 | _JPEG_INCLUDE = $$(JPEG_INCLUDE) | |
7 | _LOG4CPP_HOME = $$(LOG4CPP_HOME) | |
8 | isEmpty(_JPEG_INCLUDE) { | |
9 | error("JPEG_INCLUDE and LOG4CPP_HOME environment variables must be defined") | |
10 | } else { | |
11 | isEmpty(_LOG4CPP_HOME) { | |
12 | error("JPEG_INCLUDE and LOG4CPP_HOME environment variables must be defined") | |
13 | } | |
14 | } | |
15 | ||
16 | TEMPLATE = lib | |
17 | ||
18 | SOURCES += Jpeg2000Callbacks.cpp \ | |
19 | Jpeg2000Color.cpp \ | |
20 | Jpeg2000Convert.cpp \ | |
21 | Jpeg2000.cpp | |
22 | ||
23 | HEADERS += Jpeg2000Callbacks.h \ | |
24 | Jpeg2000Color.h \ | |
25 | Jpeg2000Convert.h \ | |
26 | Jpeg2000FormatDefs.h \ | |
27 | Jpeg2000.h | |
28 | ||
29 | INCLUDEPATH += $$(JPEG_INCLUDE) \ | |
30 | $$(LOG4CPP_HOME)/include \ | |
31 | ../Logger |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #include "DlgPdfFrame.h" | |
7 | #include "Pdf.h" | |
8 | #include "poppler-qt5.h" | |
9 | #include <QImage> | |
10 | #include <QString> | |
11 | ||
12 | using namespace Poppler; | |
13 | ||
14 | const int X_TOP_LEFT = 0, Y_TOP_LEFT = 0; | |
15 | const int WIDTH = -1, HEIGHT = -1; // Negative values give full page | |
16 | const int FIRST_PAGE_1_BASED = 1; | |
17 | ||
18 | Pdf::Pdf () | |
19 | { | |
20 | } | |
21 | ||
22 | PdfReturn Pdf::load (const QString &fileName, | |
23 | QImage &image, | |
24 | int resolution, | |
25 | bool isErrorReportRegressionTest) const | |
26 | { | |
27 | if (isErrorReportRegressionTest) { | |
28 | return loadForTesting (fileName, | |
29 | image, | |
30 | resolution); | |
31 | } else { | |
32 | return loadNotTesting (fileName, | |
33 | image, | |
34 | resolution); | |
35 | } | |
36 | } | |
37 | ||
38 | PdfReturn Pdf::loadForTesting (const QString &fileName, | |
39 | QImage &image, | |
40 | int resolution) const | |
41 | { | |
42 | PdfReturn pdfReturn = PDF_RETURN_FAILED; | |
43 | ||
44 | // Simple check to prevent complaints from poppler code | |
45 | if (fileName.right (4).toLower () == ".pdf") { | |
46 | ||
47 | // Try to read the file | |
48 | Document *document = Document::load (fileName); | |
49 | ||
50 | if (document != 0) { | |
51 | if (!document->isLocked ()) { | |
52 | ||
53 | Page *page = document->page (FIRST_PAGE_1_BASED - 1); | |
54 | if (page != 0) { | |
55 | ||
56 | image = page->renderToImage (resolution, | |
57 | resolution, | |
58 | X_TOP_LEFT, | |
59 | Y_TOP_LEFT, | |
60 | WIDTH, | |
61 | HEIGHT); | |
62 | ||
63 | if (!image.isNull()) { | |
64 | pdfReturn = PDF_RETURN_SUCCESS; | |
65 | } | |
66 | ||
67 | delete page; | |
68 | } | |
69 | } | |
70 | ||
71 | delete document; | |
72 | } | |
73 | } | |
74 | ||
75 | return pdfReturn; | |
76 | } | |
77 | ||
78 | PdfReturn Pdf::loadNotTesting (const QString &fileName, | |
79 | QImage &image, | |
80 | int resolution) const | |
81 | { | |
82 | PdfReturn pdfReturn = PDF_RETURN_FAILED; | |
83 | ||
84 | // Simple check to prevent complaints from poppler code | |
85 | if (fileName.right (4).toLower () == ".pdf") { | |
86 | ||
87 | // Try to read the file | |
88 | Document *document = Document::load (fileName); | |
89 | ||
90 | if (document != 0) { | |
91 | if (!document->isLocked ()) { | |
92 | ||
93 | // Get page and extent | |
94 | DlgPdfFrame dlg (*document, | |
95 | resolution); | |
96 | if (dlg.exec() == QDialog::Accepted) { | |
97 | ||
98 | // Returned image is null if it could not be read | |
99 | image = dlg.image (); | |
100 | ||
101 | if (!image.isNull()) { | |
102 | pdfReturn = PDF_RETURN_SUCCESS; | |
103 | } | |
104 | ||
105 | } else { | |
106 | pdfReturn = PDF_RETURN_CANCELED; | |
107 | } | |
108 | } | |
109 | ||
110 | delete document; | |
111 | } | |
112 | } | |
113 | ||
114 | return pdfReturn; | |
115 | } |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #ifndef PDF_H | |
7 | #define PDF_H | |
8 | ||
9 | class QImage; | |
10 | class QString; | |
11 | ||
12 | /// Return values from load operation | |
13 | enum PdfReturn { | |
14 | PDF_RETURN_CANCELED, | |
15 | PDF_RETURN_FAILED, | |
16 | PDF_RETURN_SUCCESS | |
17 | }; | |
18 | ||
19 | /// Wrapper around the Poppler library. Engauge uses that library to read and import PDF files. | |
20 | /// | |
21 | /// This class is only compiled and linked in when ENGAUGE_PDF is defined, since it links to the optional poppler library. | |
22 | class Pdf | |
23 | { | |
24 | public: | |
25 | /// Single constructor | |
26 | Pdf(); | |
27 | ||
28 | /// Try to load the specified file. Success is indicated in the function return value | |
29 | PdfReturn load (const QString &fileName, | |
30 | QImage &image, | |
31 | int resolution, | |
32 | bool isErrorReportRegressionTest) const; | |
33 | ||
34 | private: | |
35 | ||
36 | PdfReturn loadForTesting (const QString &fileName, | |
37 | QImage &image, | |
38 | int resolution) const; // No dialog is used during testing. Entire first page will be loaded | |
39 | PdfReturn loadNotTesting (const QString &fileName, | |
40 | QImage &image, | |
41 | int resolution) const; // Dialog is used when not testing | |
42 | ||
43 | }; | |
44 | ||
45 | #endif // PDF_H |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #include "Logger.h" | |
7 | #include "PdfFrame.h" | |
8 | #include "PdfFrameHandle.h" | |
9 | #include <QGraphicsRectItem> | |
10 | #include <QGraphicsScene> | |
11 | #include <QRect> | |
12 | #include "QtToString.h" | |
13 | #include "ViewPreview.h" | |
14 | ||
15 | const int Z_BOX = 50; // Under box and over background image | |
16 | const int Z_HANDLE = 100; // Over box and background image | |
17 | ||
18 | PdfFrame::PdfFrame (QGraphicsScene &scene, | |
19 | ViewPreview &view) : | |
20 | m_view (view) | |
21 | { | |
22 | createWidgets (scene); | |
23 | } | |
24 | ||
25 | void PdfFrame::createWidgets(QGraphicsScene &scene) | |
26 | { | |
27 | const double MARGIN_PERCENT = 5.0; | |
28 | const int ZERO_WIDTH_IS_ALWAYS_VISIBLE = 0; | |
29 | ||
30 | int marginHor = scene.width() * MARGIN_PERCENT / 100.0; | |
31 | int marginVer = scene.height() * MARGIN_PERCENT / 100.0; | |
32 | ||
33 | QRect box (scene.sceneRect().left() + marginHor, | |
34 | scene.sceneRect().top() + marginVer, | |
35 | scene.sceneRect().width() - 2 * marginHor, | |
36 | scene.sceneRect().height() - 2 * marginVer); | |
37 | ||
38 | m_handleTL = new PdfFrameHandle (scene, m_view, box.topLeft() , PDF_FRAME_LEFT | PDF_FRAME_TOP , *this, Z_HANDLE); | |
39 | m_handleTR = new PdfFrameHandle (scene, m_view, box.topRight() , PDF_FRAME_RIGHT | PDF_FRAME_TOP , *this, Z_HANDLE); | |
40 | m_handleBR = new PdfFrameHandle (scene, m_view, box.bottomRight(), PDF_FRAME_RIGHT | PDF_FRAME_BOTTOM , *this, Z_HANDLE); | |
41 | m_handleBL = new PdfFrameHandle (scene, m_view, box.bottomLeft() , PDF_FRAME_LEFT | PDF_FRAME_BOTTOM , *this, Z_HANDLE); | |
42 | ||
43 | m_box = new QGraphicsRectItem; | |
44 | m_box->setZValue (Z_BOX); | |
45 | m_box->setPen (QPen (QBrush (Qt::gray), ZERO_WIDTH_IS_ALWAYS_VISIBLE)); | |
46 | scene.addItem (m_box); | |
47 | ||
48 | updateBox (); | |
49 | } | |
50 | ||
51 | void PdfFrame::disableEventsWhileMovingAutomatically () | |
52 | { | |
53 | m_handleTL->setDisableEventsWhileMovingAutomatically (true); | |
54 | m_handleTR->setDisableEventsWhileMovingAutomatically (true); | |
55 | m_handleBR->setDisableEventsWhileMovingAutomatically (true); | |
56 | m_handleBL->setDisableEventsWhileMovingAutomatically (true); | |
57 | } | |
58 | ||
59 | void PdfFrame::enableEventsWhileMovingAutomatically () | |
60 | { | |
61 | m_handleTL->setDisableEventsWhileMovingAutomatically (false); | |
62 | m_handleTR->setDisableEventsWhileMovingAutomatically (false); | |
63 | m_handleBR->setDisableEventsWhileMovingAutomatically (false); | |
64 | m_handleBL->setDisableEventsWhileMovingAutomatically (false); | |
65 | } | |
66 | ||
67 | QRectF PdfFrame::frameRect () const | |
68 | { | |
69 | // The x(), y(), pos(), rect() and boundingRect() will return coordinates assuming origin at the initial position of | |
70 | // each handle. So to get the coordinates in the window reference frame it takes a two step process like | |
71 | // QGraphicsRectItem::mapRectToScene (QGraphicsRectItem::rect()) | |
72 | ||
73 | QRectF rectTL = m_handleTL->mapRectToScene (m_handleTL->boundingRect()); | |
74 | QRectF rectBR = m_handleBR->mapRectToScene (m_handleBR->boundingRect()); | |
75 | ||
76 | QRectF rectUnited = rectTL.united (rectBR); | |
77 | ||
78 | return rectUnited; | |
79 | } | |
80 | ||
81 | void PdfFrame::moveBL (const QPointF &newPos, | |
82 | const QPointF &oldPos) | |
83 | { | |
84 | disableEventsWhileMovingAutomatically(); | |
85 | ||
86 | double deltaX = newPos.x() - oldPos.x(); | |
87 | double deltaY = newPos.y() - oldPos.y(); | |
88 | ||
89 | m_handleTL->moveBy (deltaX, | |
90 | 0); | |
91 | m_handleBR->moveBy (0, | |
92 | deltaY); | |
93 | ||
94 | enableEventsWhileMovingAutomatically(); | |
95 | ||
96 | updateBox(); | |
97 | } | |
98 | ||
99 | void PdfFrame::moveBR (const QPointF &newPos, | |
100 | const QPointF &oldPos) | |
101 | { | |
102 | disableEventsWhileMovingAutomatically(); | |
103 | ||
104 | double deltaX = newPos.x() - oldPos.x(); | |
105 | double deltaY = newPos.y() - oldPos.y(); | |
106 | ||
107 | m_handleBL->moveBy (0, | |
108 | deltaY); | |
109 | m_handleTR->moveBy (deltaX, | |
110 | 0); | |
111 | ||
112 | enableEventsWhileMovingAutomatically(); | |
113 | ||
114 | updateBox(); | |
115 | } | |
116 | ||
117 | void PdfFrame::moveTL (const QPointF &newPos, | |
118 | const QPointF &oldPos) | |
119 | { | |
120 | disableEventsWhileMovingAutomatically(); | |
121 | ||
122 | double deltaX = newPos.x() - oldPos.x(); | |
123 | double deltaY = newPos.y() - oldPos.y(); | |
124 | ||
125 | m_handleBL->moveBy (deltaX, | |
126 | 0); | |
127 | m_handleTR->moveBy (0, | |
128 | deltaY); | |
129 | ||
130 | enableEventsWhileMovingAutomatically(); | |
131 | ||
132 | updateBox(); | |
133 | } | |
134 | ||
135 | void PdfFrame::moveTR (const QPointF &newPos, | |
136 | const QPointF &oldPos) | |
137 | { | |
138 | disableEventsWhileMovingAutomatically(); | |
139 | ||
140 | double deltaX = newPos.x() - oldPos.x(); | |
141 | double deltaY = newPos.y() - oldPos.y(); | |
142 | ||
143 | m_handleTL->moveBy (0, | |
144 | deltaY); | |
145 | m_handleBR->moveBy (deltaX, | |
146 | 0); | |
147 | ||
148 | enableEventsWhileMovingAutomatically(); | |
149 | ||
150 | updateBox(); | |
151 | } | |
152 | ||
153 | void PdfFrame::updateBox () | |
154 | { | |
155 | QRectF rectUnited = frameRect (); | |
156 | ||
157 | // Adjust by one pixel in both horizontal and vertical directions so bottom/right handles end on the box | |
158 | rectUnited.setWidth (rectUnited.width () - 1); | |
159 | rectUnited.setHeight (rectUnited.height () - 1); | |
160 | ||
161 | m_box->setRect (rectUnited); | |
162 | } | |
163 | ||
164 | QSize PdfFrame::windowSize () const | |
165 | { | |
166 | return QSize (m_view.scene()->width(), | |
167 | m_view.scene()->height()); | |
168 | } |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #ifndef PDF_FRAME_H | |
7 | #define PDF_FRAME_H | |
8 | ||
9 | #include <QRect> | |
10 | #include <QSize> | |
11 | ||
12 | class PdfFrameHandle; | |
13 | class QGraphicsRectItem; | |
14 | class QGraphicsScene; | |
15 | class QPointF; | |
16 | class ViewPreview; | |
17 | ||
18 | /// This class shows a frame around the selected portion of the pdf import preview window | |
19 | /// | |
20 | /// Originally there were 4 handles at the corners and 4 handles at the middles of the sides, but dragging | |
21 | /// the corner handles did not result in 1/2 the movement at the middle handles. The middle handles were deemed | |
22 | /// not worth the effort | |
23 | class PdfFrame | |
24 | { | |
25 | public: | |
26 | /// Single constructor | |
27 | PdfFrame(QGraphicsScene &scene, | |
28 | ViewPreview &view); | |
29 | ||
30 | /// Frame rectangle selected by user | |
31 | QRectF frameRect () const; | |
32 | ||
33 | /// Bottom left corner handle was moved | |
34 | void moveBL (const QPointF &newPos, | |
35 | const QPointF &oldPos); | |
36 | ||
37 | /// Bottom right corner handle was moved | |
38 | void moveBR (const QPointF &newPos, | |
39 | const QPointF &oldPos); | |
40 | ||
41 | /// Top left corner handle was moved | |
42 | void moveTL (const QPointF &newPos, | |
43 | const QPointF &oldPos); | |
44 | ||
45 | /// Top right corner handle was moved | |
46 | void moveTR (const QPointF &newPos, | |
47 | const QPointF &oldPos); | |
48 | ||
49 | static const int PDF_FRAME_BOTTOM = 1; ///< Bit flag when handle is aligned with bottom edge at reference point | |
50 | static const int PDF_FRAME_LEFT = 2; ///< Bit flag when handle is aligned with left edge at reference point | |
51 | static const int PDF_FRAME_RIGHT = 4; ///< Bit flag when handle is aligned with right edge at reference point | |
52 | static const int PDF_FRAME_TOP = 8; ///< Bit flag when handle is aligned with top edge at reference point | |
53 | ||
54 | /// Size of window in scene coordinates | |
55 | QSize windowSize () const; | |
56 | ||
57 | private: | |
58 | PdfFrame(); | |
59 | ||
60 | void createWidgets (QGraphicsScene &scene); | |
61 | void disableEventsWhileMovingAutomatically(); | |
62 | void enableEventsWhileMovingAutomatically(); | |
63 | QRectF rectFromTLAndBR () const; | |
64 | void updateBox(); | |
65 | ||
66 | ViewPreview &m_view; | |
67 | ||
68 | // Box | |
69 | QGraphicsRectItem *m_box; | |
70 | ||
71 | // Handles | |
72 | PdfFrameHandle *m_handleTL; | |
73 | PdfFrameHandle *m_handleTR; | |
74 | PdfFrameHandle *m_handleBR; | |
75 | PdfFrameHandle *m_handleBL; | |
76 | ||
77 | }; | |
78 | ||
79 | #endif // PDF_FRAME_H |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #include "PdfFrame.h" | |
7 | #include "PdfFrameHandle.h" | |
8 | #include <QBrush> | |
9 | #include <QGraphicsScene> | |
10 | #include <QGraphicsView> | |
11 | #include <QStyleOptionGraphicsItem> | |
12 | ||
13 | const double HANDLE_SIZE_AS_FRACTION_OF_WINDOW_SIZE = 30; | |
14 | ||
15 | PdfFrameHandle::PdfFrameHandle (QGraphicsScene &scene, | |
16 | QGraphicsView &view, | |
17 | const QPointF &pointReference, | |
18 | int orientationFlags, | |
19 | PdfFrame &pdfFrame, | |
20 | int zValue) : | |
21 | m_pdfFrame (pdfFrame), | |
22 | m_orientationFlags (orientationFlags), | |
23 | m_disableEventsWhileMovingAutomatically (false), | |
24 | m_scene (scene), | |
25 | m_view (view) | |
26 | { | |
27 | const double SUBTLE_OPACITY = 0.2; | |
28 | ||
29 | // Advantages of using ItemIgnoresTransformations: | |
30 | // 1) handles do not get bigger or smaller depending on the size of the image | |
31 | // 2) handles never get ugly when zoomed in | |
32 | // 3) handles never get too tiny when zoomed out | |
33 | // Disadvantages of using ItemIgnoresTransformation: | |
34 | // 1) Resizing the preview window with ItemIgnoresTransformations moves the handles out of position | |
35 | // 2) More conversions back and forth between untransformed and transformed coordinates. This was the deal breaker since | |
36 | // the transformations were undocumented and ultimately too difficult | |
37 | // The solution is to have constant-size handles WITHOUT ItemIgnoresTransformations. This means resizing the window | |
38 | // also involves resizing the handles, but everything else is pretty easy | |
39 | // | |
40 | // ItemIgnoresTransformations flag must agree with the QGraphicsRectItem used for the frame box by PdfFrame | |
41 | setFlags (QGraphicsItem::ItemIsMovable | | |
42 | QGraphicsItem::ItemIsSelectable | | |
43 | QGraphicsItem::ItemSendsScenePositionChanges); | |
44 | ||
45 | // Fill with nice color for better visibility. Note that the pen is disabled by overriding the paint method | |
46 | setBrush (QBrush (Qt::blue)); | |
47 | setVisible (true); | |
48 | setZValue (zValue); | |
49 | setOpacity (SUBTLE_OPACITY); | |
50 | setPos (pointReference); // Point position is handled in scene/view coordinates | |
51 | ||
52 | // Add to scene | |
53 | scene.addItem (this); | |
54 | ||
55 | QSize handleSize = m_pdfFrame.windowSize() / HANDLE_SIZE_AS_FRACTION_OF_WINDOW_SIZE; | |
56 | ||
57 | // Adjust positions of handles that are not at the top left so handles are laid out symmetrically | |
58 | QPointF pointPos = pointReference; | |
59 | if ((orientationFlags && PdfFrame::PDF_FRAME_LEFT) != 0) { | |
60 | pointPos.setX (pointPos.x() - handleSize.width() / 2.0); | |
61 | } else if ((orientationFlags && PdfFrame::PDF_FRAME_RIGHT) != 0) { | |
62 | pointPos.setX (pointPos.x() + handleSize.width() / 2.0); | |
63 | } | |
64 | if ((orientationFlags && PdfFrame::PDF_FRAME_TOP) != 0) { | |
65 | pointPos.setY (pointPos.y() - handleSize.height() / 2.0); | |
66 | } else if ((orientationFlags && PdfFrame::PDF_FRAME_BOTTOM) != 0) { | |
67 | pointPos.setY (pointPos.y() + handleSize.height() / 2.0); | |
68 | } | |
69 | ||
70 | // Start with geometry. Since point positions are handled in scene/view coordinates, we have to convert | |
71 | // to local coordinates for the rectangle | |
72 | QPointF topLeftLocal = mapFromScene (pointPos); | |
73 | ||
74 | setRect (QRectF (topLeftLocal, | |
75 | handleSize)); | |
76 | } | |
77 | ||
78 | QVariant PdfFrameHandle::itemChange (GraphicsItemChange change, | |
79 | const QVariant &value) | |
80 | { | |
81 | QVariant valueFiltered = value; | |
82 | ||
83 | if (change == ItemPositionChange && scene()) { | |
84 | ||
85 | QPointF sizeAsPointF (boundingRect().size().width(), | |
86 | boundingRect().size().height()); | |
87 | ||
88 | // New position is in the value argument | |
89 | QPointF newPos = valueFiltered.toPointF(); | |
90 | QPointF oldPos = pos (); | |
91 | ||
92 | // This sequence is from http://www.qtcentre.org/threads/47248-How-to-efficiently-get-position-of-a-QGraphicsItem-in-view-coordinates | |
93 | QRectF newRectItem (newPos, | |
94 | QSize (boundingRect().size().width(), | |
95 | boundingRect().size().height())); | |
96 | QPolygonF newRectScene = mapToScene (newRectItem); | |
97 | QPolygon newRectView = m_view.mapFromScene (newRectScene.boundingRect()); | |
98 | ||
99 | // Skip moving of this handle if it will go outside of the window | |
100 | QRectF rectWindow = m_scene.sceneRect(); | |
101 | if (!rectWindow.contains (newRectView.boundingRect())) { | |
102 | ||
103 | // Keep the item inside the scene rectangle | |
104 | newPos.setX (qMin (rectWindow.right(), qMax (newPos.x(), rectWindow.left()))); | |
105 | newPos.setY (qMin (rectWindow.bottom(), qMax (newPos.y(), rectWindow.top()))); | |
106 | ||
107 | valueFiltered = (newPos); | |
108 | ||
109 | } | |
110 | ||
111 | // Skip moving of other handles, in response to the move of this handle, if event handling is (temporarily) off, | |
112 | // to prevent an infinite loop | |
113 | if (!m_disableEventsWhileMovingAutomatically) { | |
114 | ||
115 | bool left = ((m_orientationFlags & PdfFrame::PDF_FRAME_LEFT ) != 0); | |
116 | bool right = ((m_orientationFlags & PdfFrame::PDF_FRAME_RIGHT ) != 0); | |
117 | bool top = ((m_orientationFlags & PdfFrame::PDF_FRAME_TOP ) != 0); | |
118 | bool bottom = ((m_orientationFlags & PdfFrame::PDF_FRAME_BOTTOM) != 0); | |
119 | ||
120 | if (left && top) { | |
121 | m_pdfFrame.moveTL (newPos, oldPos); | |
122 | } else if (right && top) { | |
123 | m_pdfFrame.moveTR (newPos, oldPos); | |
124 | } else if (right && bottom) { | |
125 | m_pdfFrame.moveBR (newPos, oldPos); | |
126 | } else if (left && bottom) { | |
127 | m_pdfFrame.moveBL (newPos, oldPos); | |
128 | } | |
129 | } | |
130 | } | |
131 | ||
132 | return QGraphicsItem::itemChange(change, valueFiltered); | |
133 | } | |
134 | ||
135 | void PdfFrameHandle::paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) | |
136 | { | |
137 | // Temporarily remove the selected option | |
138 | QStyleOptionGraphicsItem scrubbed (*option); | |
139 | scrubbed.state &= ~QStyle::State_Selected; | |
140 | QGraphicsRectItem::paint (painter, &scrubbed, widget); | |
141 | } | |
142 | ||
143 | void PdfFrameHandle::setDisableEventsWhileMovingAutomatically (bool disable) | |
144 | { | |
145 | m_disableEventsWhileMovingAutomatically = disable; | |
146 | } |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #ifndef PDF_FRAME_HANDLE_H | |
7 | #define PDF_FRAME_HANDLE_H | |
8 | ||
9 | #include <QGraphicsRectItem> | |
10 | ||
11 | class PdfFrame; | |
12 | class QGraphicsScene; | |
13 | class QGraphicsView; | |
14 | class QPointF; | |
15 | class QRectF; | |
16 | ||
17 | /// This class acts as a single handle for the PdfFrame class | |
18 | class PdfFrameHandle : public QGraphicsRectItem | |
19 | { | |
20 | public: | |
21 | /// Single constructor | |
22 | PdfFrameHandle(QGraphicsScene &scene, | |
23 | QGraphicsView &view, | |
24 | const QPointF &pointReference, | |
25 | int orientationFlags, | |
26 | PdfFrame &pdfFrame, | |
27 | int zValue); | |
28 | ||
29 | /// Intercept the drags and process them, which is the whole point of handles | |
30 | virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); | |
31 | ||
32 | /// Override the paint method so the dashed-border-when-selected can be removed | |
33 | virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); | |
34 | ||
35 | /// Temporarily disable event handling so code can move this object without triggering a cascade of events | |
36 | void setDisableEventsWhileMovingAutomatically (bool disable); | |
37 | ||
38 | private: | |
39 | PdfFrameHandle(); | |
40 | ||
41 | PdfFrame &m_pdfFrame; | |
42 | int m_orientationFlags; // From PdfFrame constants | |
43 | ||
44 | bool m_disableEventsWhileMovingAutomatically; | |
45 | QGraphicsScene &m_scene; | |
46 | QGraphicsView &m_view; | |
47 | }; | |
48 | ||
49 | #endif // PDF_FRAME_HANDLE_H |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #include "Pdf.h" | |
7 | ||
8 | int DEFAULT_IMPORT_PDF_RESOLUTION = 150; // Balance between higher resolution and larger image size |
0 | /****************************************************************************************************** | |
1 | * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #ifndef PDF_RESOLUTION_H | |
7 | #define PDF_RESOLUTION_H | |
8 | ||
9 | // This file is used even when ENGAUGE_PDF is not defined | |
10 | extern int DEFAULT_IMPORT_PDF_RESOLUTION; | |
11 | ||
12 | #endif // PDF_RESOLUTION_H |
11 | 11 | #include <QPen> |
12 | 12 | #include "Segment.h" |
13 | 13 | #include "SegmentLine.h" |
14 | ||
15 | const double ZVALUE_SEGMENT = 50; // Less than z value for GraphicsPoint | |
14 | #include "ZValues.h" | |
16 | 15 | |
17 | 16 | SegmentLine::SegmentLine(QGraphicsScene &scene, |
18 | 17 | const DocumentModelSegments &modelSegments, |
28 | 27 | // Make this transparent now, but always visible so hover events work |
29 | 28 | scene.addItem (this); |
30 | 29 | setPen (QPen (Qt::transparent)); |
31 | setZValue (ZVALUE_SEGMENT); | |
30 | setZValue (Z_VALUE_CURVE); | |
32 | 31 | setVisible (true); |
33 | 32 | setAcceptHoverEvents (true); |
34 | 33 | setHover (false); // Initially the cursor is not hovering over this object. Later a hover event will change this state |
55 | 55 | const QString SETTINGS_GENERAL_EXTRA_PRECISION ("extraPrecision"); |
56 | 56 | const QString SETTINGS_GROUP_GENERAL ("GeneralEngauge"); // "General" group name is reserved for ungrouped settings |
57 | 57 | |
58 | // Import group | |
59 | const QString SETTINGS_IMPORT_PDF_RESOLUTION ("PdfResolution"); | |
60 | const QString SETTINGS_GROUP_IMPORT ("Import"); | |
61 | ||
58 | 62 | // Export group |
59 | 63 | const QString SETTINGS_EXPORT_CURVE_NAMES_NOT_EXPORTED ("curveNamesNotExported"); |
60 | 64 | const QString SETTINGS_EXPORT_DELIMITER ("delimiter"); |
69 | 73 | const QString SETTINGS_EXPORT_POINTS_SELECTION_RELATIONS ("pointsSelectionRelations"); |
70 | 74 | const QString SETTINGS_EXPORT_X_LABEL ("xLabel"); |
71 | 75 | const QString SETTINGS_GROUP_EXPORT ("Export"); |
76 | ||
77 | // Pdf group | |
78 | const QString SETTINGS_PDF_POS ("pos"); | |
79 | const QString SETTINGS_GROUP_PDF ("Pdf"); |
44 | 44 | extern const QString SETTINGS_GROUP_ENVIRONMENT; |
45 | 45 | extern const QString SETTINGS_GROUP_EXPORT; |
46 | 46 | extern const QString SETTINGS_GROUP_GENERAL; |
47 | extern const QString SETTINGS_GROUP_IMPORT; | |
47 | 48 | extern const QString SETTINGS_GROUP_MAIN_WINDOW; |
49 | extern const QString SETTINGS_GROUP_PDF; | |
48 | 50 | extern const QString SETTINGS_HELP_POS; |
49 | 51 | extern const QString SETTINGS_HELP_SIZE; |
52 | extern const QString SETTINGS_IMPORT_PDF_RESOLUTION; | |
50 | 53 | extern const QString SETTINGS_LOCALE_COUNTRY; |
51 | 54 | extern const QString SETTINGS_LOCALE_LANGUAGE; |
52 | 55 | extern const QString SETTINGS_MAIN_TITLE_BAR_FORMAT; |
56 | extern const QString SETTINGS_PDF_POS; | |
53 | 57 | extern const QString SETTINGS_POS; |
54 | 58 | extern const QString SETTINGS_RECENT_FILE_LIST; |
55 | 59 | extern const QString SETTINGS_SIZE; |
120 | 120 | double tLow = m_t[0]; |
121 | 121 | double tHigh = m_t[m_xy.size() - 1]; |
122 | 122 | |
123 | // This method implicitly assumes that the x values are monotonically increasing | |
124 | ||
125 | // Extrapolation that is performed if x is out of bounds. As a starting point, we assume that the t | |
126 | // values and x values behave the same, which is linearly. This assumption works best when user | |
127 | // has set the points so the spline line is linear at the endpoints - which is also preferred since | |
128 | // higher order polynomials are typically unstable and can "explode" off into unwanted directions | |
129 | double x0 = interpolateCoeff (m_t[0]).x(); | |
130 | double xNm1 = interpolateCoeff (m_t[m_xy.size() - 1]).x(); | |
131 | if (x < x0) { | |
132 | ||
133 | // Extrapolate with x < x(0) < x(N-1) which correspond to s, s0 and sNm1 | |
134 | double x1 = interpolateCoeff (m_t[1]).x(); | |
135 | double tStart = (x - x0) / (x1 - x0); // This is less than zero. x=x0 for t=0 and x=x1 for t=1 | |
136 | tLow = 2.0 * tStart; | |
137 | tHigh = 0.0; | |
138 | ||
139 | } else if (xNm1 < x) { | |
140 | ||
141 | // Extrapolate with x(0) < x(N-1) < x which correspond to s0, sNm1 and s | |
142 | double xNm2 = interpolateCoeff (m_t[m_xy.size() - 2]).x(); | |
143 | double tStart = tHigh + (x - xNm1) / (xNm1 - xNm2); // This is greater than one. x=xNm2 for t=0 and x=xNm1 for t=1 | |
144 | tLow = m_xy.size() - 1; | |
145 | tHigh = tHigh + 2.0 * (tStart - tLow); | |
146 | ||
147 | } | |
148 | ||
149 | // Interpolation using bisection search | |
123 | 150 | double tCurrent = (tHigh + tLow) / 2.0; |
124 | 151 | double tDelta = (tHigh - tLow) / 4.0; |
125 | 152 | for (int iteration = 0; iteration < numIterations; iteration++) { |
22 | 22 | QPointF pos = mapToScene (event->pos ()); |
23 | 23 | |
24 | 24 | emit signalMouseMove (pos); |
25 | ||
26 | // Normally we would need to call QGraphicsView::mouseMoveEvent at this point so that the mouse move event could be handled, | |
27 | // but this is unwanted since: | |
28 | // 1) Everywhere, except the pdf import preview, there is nothing to drag | |
29 | // 2) Dragging of PdfFrameHandle objects in the pdf import preview is handled indirectly by PdfFrame | |
30 | QGraphicsView::mouseMoveEvent (event); | |
25 | 31 | } |
26 | 32 | |
27 | 33 | void ViewPreview::resizeEvent(QResizeEvent *event) |
0 | 0 | #!/bin/bash |
1 | 1 | |
2 | # Script that runs command-line tests | |
2 | # Description: Script that runs command-line tests | |
3 | # | |
4 | # Usage: build_and_run_all_cli_tests [jpeg2000] [pdf] | |
5 | # | |
6 | # where: jpeg2000 = run jpeg2000 test(s). Requires CONFIG+=jpeg2000 in qmake build | |
7 | # pdf = run pdf test(s). Requires CONFIG+=pdf in qmake build | |
3 | 8 | |
4 | 9 | # Test names. Specify a single test to run just that test |
5 | 10 | tests=(TestCorrelation TestFormats TestGraphCoords TestProjectedPoint TestSegmentFill TestSpline TestTransformation TestValidators) |
6 | 11 | |
7 | 12 | echo "Available tests: " ${tests[*]} |
13 | ||
14 | # Pass script arguments to qmake | |
15 | CONFIGARGS="" | |
16 | while test $# -gt 0 | |
17 | do | |
18 | case "$1" in | |
19 | jpeg2000) CONFIGARGS="jpeg2000 $CONFIGARGS" | |
20 | ;; | |
21 | pdf) CONFIGARGS="pdf $CONFIGARGS" | |
22 | ;; | |
23 | esac | |
24 | shift | |
25 | done | |
26 | ||
27 | if [ -n "$CONFIGARGS" ]; then | |
28 | CONFIGARGS="CONFIG+=$CONFIGARGS" | |
29 | fi | |
8 | 30 | |
9 | 31 | # Need gcc 4 at /C/cygwin/bin rather than gcc 3 at /usr/bin to prevent 'unrecognized command line |
10 | 32 | # option -fno-keep-inline-dllexport' |
48 | 70 | for t in "${tests[@]}" |
49 | 71 | do |
50 | 72 | sed "s/TEST/$t/g" engauge_test_template.pro >engauge_test.pro |
51 | qmake engauge_test.pro | |
73 | qmake $CONFIGARGS engauge_test.pro | |
52 | 74 | make all 2>>$LOGFILE >/dev/null |
53 | 75 | ../bin/$t |
54 | 76 | if [ $argcount -ne 1 ] |
0 | 0 | #!/bin/bash |
1 | 1 | |
2 | SCRIPTS=../test/*.test.commandline | |
2 | # Description: Script that runs gui tests after the command-line tests have been run | |
3 | # | |
4 | # Usage: build_and_run_all_gui_tests [jpeg2000] [pdf] | |
5 | # | |
6 | # where: jpeg2000 = run jpeg2000 test(s). Requires CONFIG+=jpeg2000 in qmake build | |
7 | # pdf = run pdf test(s). Requires CONFIG+=pdf in qmake build | |
8 | ||
9 | FILTERJPEG2000="skip" | |
10 | FILTERPDF="skip" | |
11 | while test $# -gt 0 | |
12 | do | |
13 | case "$1" in | |
14 | jpeg2000) FILTERJPEG2000="" | |
15 | ;; | |
16 | pdf) FILTERPDF="" | |
17 | ;; | |
18 | esac | |
19 | shift | |
20 | done | |
21 | ||
22 | SCRIPTS=`find ../test -name "*.test.commandline" | sort` | |
3 | 23 | |
4 | 24 | for script in $SCRIPTS |
5 | 25 | do |
6 | # Run regression test | |
7 | commandLine=`cat $script` | |
8 | ../bin/engauge $commandLine | |
9 | 26 | |
10 | # File command scripts do not generate output files so we are done if command line does not have 'errorreport' | |
11 | if [[ $commandLine == *errorreport* ]] | |
12 | then | |
27 | # Skip unwanted tests | |
28 | skip=0 | |
29 | if [[ -n $FILTERJPEG2000 && $script =~ jpeg2000 ]]; then skip=1; fi | |
30 | if [[ -n $FILTERPDF && $script =~ pdf ]]; then skip=1; fi | |
31 | ||
32 | if [ $skip == 0 ]; then | |
33 | ||
34 | # Run regression test | |
35 | commandLine=`cat $script` | |
36 | ../bin/engauge $commandLine | |
13 | 37 | |
14 | 38 | # Compare actual and desired output files. There is one pair for each coordinate system |
15 | root=${script/.test.commandline/} | |
16 | EXPECTED_FILES=../test/$root.csv_expected_* | |
39 | scriptfile=`basename $script` | |
40 | root=${scriptfile/.test.commandline/} | |
41 | EXPECTED_FILES=`find ../test -name "$root.csv_expected_*"` | |
17 | 42 | COUNT=0 |
18 | 43 | COUNTER=1 |
19 | 44 | for EXPECTED in $EXPECTED_FILES |
4 | 4 | TEMPLATE = app |
5 | 5 | |
6 | 6 | # CONFIG comments: |
7 | # 1) Add 'jpeg2000' to the qmake command line to include support for JPEG2000 input files. Requires JPEG2000_INCLUDE | |
8 | # and JPEG2000_LIB environment variables | |
7 | # 1) Add 'jpeg2000' to the qmake command line to include support for JPEG2000 input files. Requires | |
8 | # 1) previous installation of the jpeg2000 development package | |
9 | # 2) JPEG2000_INCLUDE environment variable pointing to directory containing openjpeg.h | |
10 | # 3) JPEG2000_LIB environment variable pointing to directory containing libopenjp2.so | |
11 | # Sample command lines | |
9 | 12 | # qmake CONFIG+=jpeg2000 |
10 | 13 | # qmake "CONFIG+=debug jpeg2000" |
14 | # 2) Add 'pdf' to the qmake command line to include support for PDF input files. Requires | |
15 | # 1) previous installation of the poppler-qt5 development package | |
16 | # 2) POPPLER_INCLUDE environment variable pointing to directory containing Document.h | |
17 | # 3) POPPLER_LIB environment variable pointing to directory containing libpoppler-qt5.so | |
18 | # Sample command lines | |
19 | # qmake CONFIG+=pdf | |
20 | # qmake "CONFIG+=debug pdf" | |
11 | 21 | # 3) Gratuitous warning about import_qpa_plugin in Fedora is due to 'CONFIG=qt' but that option takes care of |
12 | 22 | # include/library files in an automated and platform-independent manner, so it will not be removed |
13 | CONFIG = qt warn_on thread testcase | |
23 | CONFIG += qt warn_on thread testcase | |
14 | 24 | |
15 | 25 | OBJECTS_DIR = .objs_test |
16 | 26 | MOC_DIR = .moc_test |
186 | 196 | Export/ExportFileFunctions.h \ |
187 | 197 | Export/ExportFileRelations.h \ |
188 | 198 | Export/ExportHeader.h \ |
199 | Export/ExportImageForRegression.h \ | |
189 | 200 | Export/ExportOrdinalsSmooth.h \ |
190 | 201 | Export/ExportOrdinalsStraight.h \ |
191 | 202 | Export/ExportToClipboard.h \ |
251 | 262 | Network/NetworkClient.h \ |
252 | 263 | Ordinal/OrdinalGenerator.h \ |
253 | 264 | Ordinal/OrdinalToGraphicsPoint.h \ |
265 | Pdf/PdfResolution.h \ | |
254 | 266 | Point/Point.h \ |
255 | 267 | Point/PointComparator.h \ |
256 | 268 | Point/PointIdentifiers.h \ |
307 | 319 | Zoom/ZoomControl.h \ |
308 | 320 | Zoom/ZoomFactor.h \ |
309 | 321 | Zoom/ZoomFactorInitial.h\ |
310 | Zoom/ZoomLabels.h | |
322 | Zoom/ZoomLabels.h \ | |
323 | util/ZValues.h | |
311 | 324 | |
312 | 325 | SOURCES += \ |
313 | 326 | Background/BackgroundImage.cpp \ |
467 | 480 | Export/ExportFileFunctions.cpp \ |
468 | 481 | Export/ExportFileRelations.cpp \ |
469 | 482 | Export/ExportHeader.cpp \ |
483 | Export/ExportImageForRegression.cpp \ | |
470 | 484 | Export/ExportLayoutFunctions.cpp \ |
471 | 485 | Export/ExportOrdinalsSmooth.cpp \ |
472 | 486 | Export/ExportOrdinalsStraight.cpp \ |
529 | 543 | util/mmsubs.cpp \ |
530 | 544 | Network/NetworkClient.cpp \ |
531 | 545 | Ordinal/OrdinalGenerator.cpp \ |
546 | Pdf/PdfResolution.cpp \ | |
532 | 547 | Point/Point.cpp \ |
533 | 548 | Point/PointIdentifiers.cpp \ |
534 | 549 | Point/PointMatchAlgorithm.cpp \ |
578 | 593 | View/ViewProfileScale.cpp \ |
579 | 594 | View/ViewSegmentFilter.cpp \ |
580 | 595 | util/Xml.cpp \ |
581 | Zoom/ZoomLabels.cpp | |
596 | Zoom/ZoomLabels.cpp \ | |
597 | util/ZValues.cpp | |
582 | 598 | |
583 | 599 | TARGET = ../bin/TEST |
584 | 600 | |
625 | 641 | Mime \ |
626 | 642 | Network \ |
627 | 643 | Ordinal \ |
644 | Pdf \ | |
628 | 645 | Plot \ |
629 | 646 | Point \ |
630 | 647 | Segment \ |
652 | 669 | RESOURCES += \ |
653 | 670 | engauge.qrc |
654 | 671 | |
672 | CONFIG(debug,debug|release) { | |
673 | message("Build type: debug") | |
674 | } else { | |
675 | message("Build type: release") | |
676 | } | |
677 | ||
655 | 678 | jpeg2000 { |
656 | CONFIG(debug,debug|release) { | |
657 | message(Building debug version with internal support for JPEG2000 files) | |
658 | } else { | |
659 | message(Building release version with internal support for JPEG2000 files) | |
660 | } | |
679 | message("JPEG2000 support: yes") | |
661 | 680 | _JPEG2000_INCLUDE = $$(JPEG2000_INCLUDE) |
662 | 681 | _JPEG2000_LIB = $$(JPEG2000_LIB) |
663 | 682 | isEmpty(_JPEG2000_INCLUDE) { |
684 | 703 | Jpeg2000/Jpeg2000Convert.cpp |
685 | 704 | |
686 | 705 | } else { |
687 | CONFIG(debug,debug|release) { | |
688 | message(Building debug version without internal support for JPEG2000 files) | |
706 | message("JPEG2000 support: no") | |
707 | } | |
708 | ||
709 | pdf { | |
710 | message("PDF support: yes") | |
711 | _POPPLER_INCLUDE = $$(POPPLER_INCLUDE) | |
712 | _POPPLER_LIB = $$(POPPLER_LIB) | |
713 | isEmpty(_POPPLER_INCLUDE) { | |
714 | error("POPPLER_INCLUDE and POPPLER_LIB environment variables must be defined") | |
689 | 715 | } else { |
690 | message(Building release version without internal support for JPEG2000 files) | |
716 | isEmpty(_POPPLER_LIB) { | |
717 | error("POPPLER_INCLUDE and POPPLER_LIB environment variables must be defined") | |
718 | } | |
691 | 719 | } |
720 | DEFINES += "ENGAUGE_PDF" | |
721 | INCLUDEPATH += $$(POPPLER_INCLUDE) | |
722 | LIBS += -L$$(POPPLER_LIB) -lpoppler -lpoppler-qt5 | |
723 | HEADERS += Dlg/DlgPdfFrame.h \ | |
724 | Pdf/Pdf.h \ | |
725 | Pdf/PdfFrame.h \ | |
726 | Pdf/PdfFrameHandle.h | |
727 | SOURCES += Dlg/DlgPdfFrame.cpp \ | |
728 | Pdf/Pdf.cpp \ | |
729 | Pdf/PdfFrame.cpp \ | |
730 | Pdf/PdfFrameHandle.cpp | |
731 | ||
732 | } else { | |
733 | message("PDF support: no") | |
692 | 734 | } |
48 | 48 | #include "DocumentSerialize.h" |
49 | 49 | #include "EngaugeAssert.h" |
50 | 50 | #include "EnumsToQt.h" |
51 | #include "ExportImageForRegression.h" | |
51 | 52 | #include "ExportToFile.h" |
52 | 53 | #include "FileCmdScript.h" |
53 | 54 | #include "Ghosts.h" |
65 | 66 | #include "MainTitleBarFormat.h" |
66 | 67 | #include "MainWindow.h" |
67 | 68 | #include "NetworkClient.h" |
69 | #ifdef ENGAUGE_PDF | |
70 | #include "Pdf.h" | |
71 | #endif // ENGAUGE_PDF | |
72 | #include "PdfResolution.h" | |
68 | 73 | #include <QAction> |
69 | 74 | #include <QApplication> |
70 | 75 | #include <QCloseEvent> |
135 | 140 | m_ghosts (0), |
136 | 141 | m_timerRegressionErrorReport(0), |
137 | 142 | m_fileCmdScript (0), |
138 | m_isRegressionTest (isRegressionTest), | |
143 | m_isErrorReportRegressionTest (isRegressionTest), | |
139 | 144 | m_timerRegressionFileCmdScript(0) |
140 | 145 | { |
141 | 146 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::MainWindow" |
148 | 153 | |
149 | 154 | LoggerUpload::bindToMainWindow(this); |
150 | 155 | |
151 | QString initialPath = QDir::currentPath(); | |
156 | m_startupDirectory = QDir::currentPath(); | |
152 | 157 | |
153 | 158 | setCurrentFile (""); |
154 | 159 | createIcons(); |
173 | 178 | createZoomMap (); |
174 | 179 | updateControls (); |
175 | 180 | |
176 | settingsRead (); | |
181 | settingsRead (); // This changes the current directory when not regression testing | |
177 | 182 | setCurrentFile (""); |
178 | 183 | setUnifiedTitleAndToolBarOnMac(true); |
179 | 184 | |
180 | 185 | installEventFilter(this); |
186 | ||
187 | // Start regression scripting if appropriate. Regression scripts assume current directory is the original | |
188 | // current directory, so we temporarily reset the current directory | |
189 | QString originalPath = QDir::currentPath(); | |
190 | QDir::setCurrent (m_startupDirectory); | |
181 | 191 | if (!errorReportFile.isEmpty()) { |
182 | loadErrorReportFile(initialPath, | |
183 | errorReportFile); | |
184 | if (m_isRegressionTest) { | |
185 | startRegressionTestErrorReport(initialPath, | |
186 | errorReportFile); | |
192 | loadErrorReportFile(errorReportFile); | |
193 | if (m_isErrorReportRegressionTest) { | |
194 | startRegressionTestErrorReport(errorReportFile); | |
187 | 195 | } |
188 | 196 | } else if (!fileCmdScriptFile.isEmpty()) { |
189 | 197 | m_fileCmdScript = new FileCmdScript (fileCmdScriptFile); |
194 | 202 | // since only one of the two modes is available at any time, for simplicity |
195 | 203 | m_loadStartupFiles = loadStartupFiles; |
196 | 204 | } |
205 | QDir::setCurrent (originalPath); | |
197 | 206 | } |
198 | 207 | |
199 | 208 | MainWindow::~MainWindow() |
446 | 455 | "Creates a new document by importing an image with support for advanced feaures. In " |
447 | 456 | "advanced mode, there can be multiple coordinate systems and/or floating axes.")); |
448 | 457 | connect (m_actionImportAdvanced, SIGNAL (triggered ()), this, SLOT (slotFileImportAdvanced ())); |
458 | ||
459 | m_actionImportImageReplace = new QAction (tr ("Import (Image Replace)..."), this); | |
460 | m_actionImportImageReplace->setStatusTip (tr ("Imports a new image into the current document, replacing the existing image.")); | |
461 | m_actionImportImageReplace->setWhatsThis (tr ("Import (Image Replace)\n\n" | |
462 | "Imports a new image into the current document. The existing image is replaced, " | |
463 | "and all curves in the document are preserved. This operation is useful for applying " | |
464 | "the axis points and other settings from an existing document to a different image.")); | |
465 | connect (m_actionImportImageReplace, SIGNAL (triggered ()), this, SLOT (slotFileImportImageReplace ())); | |
449 | 466 | |
450 | 467 | m_actionOpen = new QAction(tr ("&Open..."), this); |
451 | 468 | m_actionOpen->setShortcut (QKeySequence::Open); |
909 | 926 | m_menuFile = menuBar()->addMenu(tr("&File")); |
910 | 927 | m_menuFile->addAction (m_actionImport); |
911 | 928 | m_menuFile->addAction (m_actionImportAdvanced); |
929 | m_menuFile->addAction (m_actionImportImageReplace); | |
912 | 930 | m_menuFile->addAction (m_actionOpen); |
913 | 931 | #ifndef OSX_RELEASE |
914 | 932 | m_menuFileOpenRecent = new QMenu (tr ("Open &Recent")); |
1289 | 1307 | } |
1290 | 1308 | |
1291 | 1309 | #ifndef OSX_RELEASE |
1292 | void MainWindow::exportAllCoordinateSystems() | |
1293 | { | |
1294 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::exportAllCoordinateSystems"; | |
1295 | ||
1296 | ExportToFile exportStrategy; | |
1310 | void MainWindow::exportAllCoordinateSystemsAfterRegressionTests() | |
1311 | { | |
1312 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::exportAllCoordinateSystemsAfterRegressionTests curDir=" << QDir::currentPath().toLatin1().data(); | |
1297 | 1313 | |
1298 | 1314 | // Output the regression test results. One file is output for every coordinate system |
1299 | 1315 | for (CoordSystemIndex index = 0; index < m_cmdMediator->document().coordSystemCount(); index++) { |
1303 | 1319 | QString regressionFile = QString ("%1_%2") |
1304 | 1320 | .arg (m_regressionFile) |
1305 | 1321 | .arg (index + 1); // Append the coordinate system index |
1306 | fileExport (regressionFile, | |
1307 | exportStrategy); | |
1322 | ||
1323 | // Normally we just export to a file, but when regression testing the export will fail since coordinates are not defined. To | |
1324 | // get an export file when regression testing, we just output the image size | |
1325 | if (m_isErrorReportRegressionTest && !m_transformation.transformIsDefined()) { | |
1326 | ||
1327 | ExportImageForRegression exportStrategy (m_cmdMediator->pixmap ()); | |
1328 | exportStrategy.fileExport (regressionFile); | |
1329 | ||
1330 | } else { | |
1331 | ||
1332 | ExportToFile exportStrategy; | |
1333 | ||
1334 | fileExport (regressionFile, | |
1335 | exportStrategy); | |
1336 | } | |
1308 | 1337 | } |
1309 | 1338 | } |
1310 | 1339 | #endif |
1315 | 1344 | |
1316 | 1345 | outFileName = outFileName.replace (".xml", ".csv_actual"); // Applies when extension is xml |
1317 | 1346 | outFileName = outFileName.replace (".dig", ".csv_actual"); // Applies when extension is dig |
1347 | outFileName = outFileName.replace (".pdf", ".csv_actual"); // Applies when extension is pdf | |
1318 | 1348 | |
1319 | 1349 | return outFileName; |
1320 | 1350 | } |
1323 | 1353 | ExportToFile exportStrategy) |
1324 | 1354 | { |
1325 | 1355 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::fileExport" |
1356 | << " curDir=" << QDir::currentPath().toLatin1().data() | |
1326 | 1357 | << " fileName=" << fileName.toLatin1().data(); |
1327 | 1358 | |
1328 | 1359 | QFile file (fileName); |
1371 | 1402 | |
1372 | 1403 | if (importType == IMPORT_TYPE_ADVANCED) { |
1373 | 1404 | |
1374 | // Remove any existing points, axes checker(s) and such from the previous Document so they do not appear in setupAfterLoad | |
1405 | // Remove any existing points, axes checker(s) and such from the previous Document so they do not appear in setupAfterLoadNewDocument | |
1375 | 1406 | // when previewing for IMAGE_TYPE_ADVANCED |
1376 | 1407 | slotFileClose(); |
1377 | 1408 | |
1381 | 1412 | |
1382 | 1413 | QImage image; |
1383 | 1414 | bool loaded = false; |
1415 | ||
1384 | 1416 | #ifdef ENGAUGE_JPEG2000 |
1385 | 1417 | Jpeg2000 jpeg2000; |
1386 | 1418 | loaded = jpeg2000.load (fileName, |
1387 | 1419 | image); |
1388 | 1420 | #endif // ENGAUGE_JPEG2000 |
1421 | ||
1422 | #ifdef ENGAUGE_PDF | |
1423 | if (!loaded) { | |
1424 | ||
1425 | Pdf pdf; | |
1426 | PdfReturn pdfReturn = pdf.load (fileName, | |
1427 | image, | |
1428 | m_modelMainWindow.pdfResolution(), | |
1429 | m_isErrorReportRegressionTest); | |
1430 | if (pdfReturn == PDF_RETURN_CANCELED) { | |
1431 | ||
1432 | // User canceled so exit immediately | |
1433 | return; | |
1434 | ||
1435 | } | |
1436 | ||
1437 | loaded = (pdfReturn == PDF_RETURN_SUCCESS); | |
1438 | } | |
1439 | #endif // ENGAUGE_PDF | |
1440 | ||
1389 | 1441 | if (!loaded) { |
1390 | 1442 | loaded = image.load (fileName); |
1391 | 1443 | } |
1392 | 1444 | |
1393 | 1445 | if (!loaded) { |
1446 | QString msg = QString("%1 %2 %3 %4.") | |
1447 | .arg (tr ("Cannot read file")) | |
1448 | .arg (fileName) | |
1449 | .arg (tr ("from directory")) | |
1450 | .arg (QDir::currentPath()); | |
1394 | 1451 | QMessageBox::warning (this, |
1395 | 1452 | engaugeWindowTitle(), |
1396 | QString("%1 %2.") | |
1397 | .arg (tr ("Cannot read file")) | |
1398 | .arg(fileName)); | |
1453 | msg); | |
1399 | 1454 | |
1400 | 1455 | // Reset |
1401 | 1456 | m_originalFile = originalFileOld; |
1432 | 1487 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::fileImportWithPrompts" |
1433 | 1488 | << " importType=" << importType; |
1434 | 1489 | |
1435 | if (maybeSave ()) { | |
1490 | // Skip maybeSave method for IMPORT_TYPE_REPLACE_IMAGE since open file dialog is enough to allow user to cancel the operation, and | |
1491 | // since no information is lost in that case | |
1492 | bool okToContinue = true; | |
1493 | if (importType != IMPORT_TYPE_IMAGE_REPLACE) { | |
1494 | okToContinue = maybeSave (); | |
1495 | } | |
1496 | ||
1497 | if (okToContinue) { | |
1436 | 1498 | |
1437 | 1499 | QString filter; |
1438 | 1500 | QTextStream str (&filter); |
1451 | 1513 | supportedImageFormatStrings << jpeg2000.supportedImageWildcards(); |
1452 | 1514 | #endif // ENGAUGE_JPEG2000 |
1453 | 1515 | |
1516 | #ifdef ENGAUGE_PDF | |
1517 | supportedImageFormatStrings << "*.pdf"; | |
1518 | #endif // ENGAUGE_PDF | |
1519 | ||
1454 | 1520 | supportedImageFormatStrings.sort(); |
1455 | 1521 | |
1456 | 1522 | str << "Image Files (" << supportedImageFormatStrings.join (" ") << ")"; |
1486 | 1552 | |
1487 | 1553 | if (importType == IMPORT_TYPE_ADVANCED) { |
1488 | 1554 | |
1489 | // Remove any existing points, axes checker(s) and such from the previous Document so they do not appear in setupAfterLoad | |
1555 | // Remove any existing points, axes checker(s) and such from the previous Document so they do not appear in setupAfterLoadNewDocument | |
1490 | 1556 | // when previewing for IMAGE_TYPE_ADVANCED |
1491 | 1557 | slotFileClose(); |
1492 | 1558 | |
1505 | 1571 | if (!loaded) { |
1506 | 1572 | QMessageBox::warning (this, |
1507 | 1573 | engaugeWindowTitle(), |
1508 | QString("%1 %2.") | |
1574 | QString("%1 %2 %3 %4.") | |
1509 | 1575 | .arg (tr ("Cannot read file")) |
1510 | .arg(fileName)); | |
1576 | .arg (fileName) | |
1577 | .arg (tr ("from directory")) | |
1578 | .arg (QDir::currentPath ())); | |
1511 | 1579 | |
1512 | 1580 | // Reset |
1513 | 1581 | m_originalFile = originalFileOld; |
1648 | 1716 | } |
1649 | 1717 | |
1650 | 1718 | m_cmdMediator = cmdMediator; |
1651 | setupAfterLoad(fileName, | |
1652 | "File opened", | |
1653 | IMPORT_TYPE_SIMPLE); | |
1719 | setupAfterLoadNewDocument (fileName, | |
1720 | "File opened", | |
1721 | IMPORT_TYPE_SIMPLE); | |
1654 | 1722 | |
1655 | 1723 | // Start select mode |
1656 | 1724 | m_actionDigitizeSelect->setChecked (true); // We assume user wants to first select existing stuff |
1671 | 1739 | |
1672 | 1740 | QMessageBox::warning (this, |
1673 | 1741 | engaugeWindowTitle(), |
1674 | QString("%1 %2:\n%3.") | |
1742 | QString("%1 %2 %3 %4:\n%5.") | |
1675 | 1743 | .arg (tr ("Cannot read file")) |
1676 | .arg(fileName) | |
1744 | .arg (fileName) | |
1745 | .arg (tr ("from directory")) | |
1746 | .arg (QDir::currentPath ()) | |
1677 | 1747 | .arg(cmdMediator->reasonForUnsuccessfulRead ())); |
1678 | 1748 | delete cmdMediator; |
1679 | 1749 | |
1680 | 1750 | } |
1681 | 1751 | } |
1682 | 1752 | |
1683 | void MainWindow::loadErrorReportFile(const QString &initialPath, | |
1684 | const QString &errorReportFile) | |
1753 | void MainWindow::loadErrorReportFile(const QString &errorReportFile) | |
1685 | 1754 | { |
1686 | 1755 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::loadErrorReportFile" |
1687 | << " path=" << initialPath.toLatin1().data() | |
1688 | 1756 | << " file=" << errorReportFile.toLatin1().data(); |
1689 | ||
1690 | // The default path has been changed from its original executable-based initial value to the last directory used | |
1691 | // according to the settings. Since the executable-based directory is much more stable, and we want a predictable | |
1692 | // directory in the likely event that the error report file has a relative path, we temporarily switch the default path | |
1693 | // back to the executable-based initial value | |
1694 | QString originalPath = QDir::currentPath(); | |
1695 | QDir::setCurrent(initialPath); | |
1696 | 1757 | |
1697 | 1758 | QFile file (errorReportFile); |
1698 | 1759 | if (!file.exists()) { |
1717 | 1778 | reader); |
1718 | 1779 | file.close(); |
1719 | 1780 | |
1720 | // Reset the original path now that the error report file has been read in | |
1721 | QDir::setCurrent(originalPath); | |
1722 | ||
1723 | setupAfterLoad(errorReportFile, | |
1724 | "Error report opened", | |
1725 | IMPORT_TYPE_SIMPLE); | |
1781 | setupAfterLoadNewDocument (errorReportFile, | |
1782 | "Error report opened", | |
1783 | IMPORT_TYPE_SIMPLE); | |
1726 | 1784 | |
1727 | 1785 | // Start select mode |
1728 | 1786 | m_actionDigitizeSelect->setChecked (true); // We assume user wants to first select existing stuff |
1738 | 1796 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::loadImage" |
1739 | 1797 | << " fileName=" << fileName.toLatin1 ().data () |
1740 | 1798 | << " importType=" << importType; |
1799 | ||
1800 | bool success; | |
1801 | if (importType == IMPORT_TYPE_IMAGE_REPLACE) { | |
1802 | success = loadImageReplacingImage (fileName, | |
1803 | image, | |
1804 | importType); | |
1805 | } else { | |
1806 | success = loadImageNewDocument (fileName, | |
1807 | image, | |
1808 | importType); | |
1809 | } | |
1810 | ||
1811 | return success; | |
1812 | } | |
1813 | ||
1814 | bool MainWindow::loadImageNewDocument (const QString &fileName, | |
1815 | const QImage &image, | |
1816 | ImportType importType) | |
1817 | { | |
1818 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::loadImageNewDocument" | |
1819 | << " fileName=" << fileName.toLatin1 ().data () | |
1820 | << " importType=" << importType; | |
1821 | ||
1822 | ENGAUGE_ASSERT (importType != IMPORT_TYPE_IMAGE_REPLACE); | |
1741 | 1823 | |
1742 | 1824 | QApplication::setOverrideCursor(Qt::WaitCursor); |
1743 | 1825 | CmdMediator *cmdMediator = new CmdMediator (*this, |
1754 | 1836 | } |
1755 | 1837 | |
1756 | 1838 | m_cmdMediator = cmdMediator; |
1757 | bool accepted = setupAfterLoad(fileName, | |
1758 | tr ("File imported"), | |
1759 | importType); | |
1839 | bool accepted = setupAfterLoadNewDocument (fileName, | |
1840 | tr ("File imported"), | |
1841 | importType); | |
1760 | 1842 | |
1761 | 1843 | if (accepted) { |
1762 | 1844 | |
1800 | 1882 | |
1801 | 1883 | updateControls (); |
1802 | 1884 | } |
1885 | ||
1886 | return accepted; | |
1887 | } | |
1888 | ||
1889 | bool MainWindow::loadImageReplacingImage (const QString &fileName, | |
1890 | const QImage &image, | |
1891 | ImportType importType) | |
1892 | { | |
1893 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::loadImageReplacingImage" | |
1894 | << " fileName=" << fileName.toLatin1 ().data () | |
1895 | << " importType=" << importType; | |
1896 | ||
1897 | ENGAUGE_ASSERT (importType == IMPORT_TYPE_IMAGE_REPLACE); | |
1898 | ||
1899 | setCurrentPathFromFile (fileName); | |
1900 | // We do not call rebuildRecentFileListForCurrentFile for an image file, so only proper Engauge document files appear in the recent file list | |
1901 | m_engaugeFile = EMPTY_FILENAME; // Forces first Save to be treated as Save As | |
1902 | ||
1903 | ENGAUGE_ASSERT (m_cmdMediator != 0); // Menu option should only be available when a document is currently open | |
1904 | ||
1905 | m_cmdMediator->document().setPixmap (image); | |
1906 | ||
1907 | bool accepted = setupAfterLoadReplacingImage (fileName, | |
1908 | tr ("File imported"), | |
1909 | importType); | |
1910 | ||
1911 | // No checklist guide wizard is displayed when just replacing the image | |
1803 | 1912 | |
1804 | 1913 | return accepted; |
1805 | 1914 | } |
1977 | 2086 | { |
1978 | 2087 | // Skip if currently performing a regression test - in which case the preferred behavior is to let the current test fail and |
1979 | 2088 | // continue on to execute the remaining tests |
1980 | if ((m_cmdMediator != 0) && !m_isRegressionTest) { | |
2089 | if ((m_cmdMediator != 0) && !m_isErrorReportRegressionTest) { | |
1981 | 2090 | |
1982 | 2091 | QString report = saveErrorReportFileAndExitXml (context, |
1983 | 2092 | file, |
2171 | 2280 | } |
2172 | 2281 | } |
2173 | 2282 | |
2174 | void MainWindow::setPixmap (const QPixmap &pixmap) | |
2283 | void MainWindow::setPixmap (const QString &curveSelected, | |
2284 | const QPixmap &pixmap) | |
2175 | 2285 | { |
2176 | 2286 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::setPixmap"; |
2177 | 2287 | |
2178 | 2288 | m_digitizeStateContext->setImageIsLoaded (m_cmdMediator, |
2179 | 2289 | true); |
2290 | ||
2291 | // We cannot reliably use m_cmbCurve->currentText below for the selected curve since that control | |
2292 | // can be pointing to a curve that no longer exists so this method requires curveSelected as an argument | |
2180 | 2293 | m_backgroundStateContext->setPixmap (m_transformation, |
2181 | 2294 | m_cmdMediator->document().modelGridRemoval(), |
2182 | 2295 | m_cmdMediator->document().modelColorFilter(), |
2183 | 2296 | pixmap, |
2184 | m_cmbCurve->currentText()); | |
2297 | curveSelected); | |
2185 | 2298 | } |
2186 | 2299 | |
2187 | 2300 | void MainWindow::settingsRead () |
2309 | 2422 | QVariant (ZOOM_CONTROL_MENU_WHEEL_PLUSMINUS)).toInt()); |
2310 | 2423 | m_modelMainWindow.setMainTitleBarFormat ((MainTitleBarFormat) settings.value (SETTINGS_MAIN_TITLE_BAR_FORMAT, |
2311 | 2424 | QVariant (MAIN_TITLE_BAR_FORMAT_PATH)).toInt()); |
2425 | m_modelMainWindow.setPdfResolution (settings.value (SETTINGS_IMPORT_PDF_RESOLUTION, | |
2426 | QVariant (DEFAULT_IMPORT_PDF_RESOLUTION)).toInt ()); | |
2427 | ||
2312 | 2428 | updateSettingsMainWindow(); |
2313 | 2429 | |
2314 | 2430 | settings.endGroup(); |
2340 | 2456 | |
2341 | 2457 | } |
2342 | 2458 | settings.setValue (SETTINGS_CHECKLIST_GUIDE_WIZARD, m_actionHelpChecklistGuideWizard->isChecked ()); |
2459 | settings.setValue (SETTINGS_IMPORT_PDF_RESOLUTION, m_modelMainWindow.pdfResolution ()); | |
2343 | 2460 | settings.setValue (SETTINGS_LOCALE_LANGUAGE, m_modelMainWindow.locale().language()); |
2344 | 2461 | settings.setValue (SETTINGS_LOCALE_COUNTRY, m_modelMainWindow.locale().country()); |
2345 | 2462 | settings.setValue (SETTINGS_VIEW_BACKGROUND_TOOLBAR, m_actionViewBackground->isChecked()); |
2356 | 2473 | settings.endGroup (); |
2357 | 2474 | } |
2358 | 2475 | |
2359 | bool MainWindow::setupAfterLoad (const QString &fileName, | |
2360 | const QString &temporaryMessage , | |
2361 | ImportType importType) | |
2362 | { | |
2363 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::setupAfterLoad" | |
2476 | bool MainWindow::setupAfterLoadNewDocument (const QString &fileName, | |
2477 | const QString &temporaryMessage , | |
2478 | ImportType importType) | |
2479 | { | |
2480 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::setupAfterLoadNewDocument" | |
2364 | 2481 | << " file=" << fileName.toLatin1().data() |
2365 | 2482 | << " message=" << temporaryMessage.toLatin1().data() |
2366 | 2483 | << " importType=" << importType; |
2484 | ||
2485 | // The steps in this method should theoretically be a superset of the steps in setupAfterLoadNewDocument. Therefore, any | |
2486 | // changes to this method should be considered for application to the other method also | |
2367 | 2487 | |
2368 | 2488 | const QString EMPTY_CURVE_NAME_TO_SKIP_BACKGROUND_PROCESSING; // For bootstrapping the preview |
2369 | 2489 | |
2374 | 2494 | m_cmdMediator->document().modelGridRemoval(), |
2375 | 2495 | m_cmdMediator->document().modelColorFilter(), |
2376 | 2496 | EMPTY_CURVE_NAME_TO_SKIP_BACKGROUND_PROCESSING); // Before setPixmap |
2377 | setPixmap (m_cmdMediator->pixmap ()); // Set background immediately so it is visible as a preview when any dialogs are displayed | |
2497 | setPixmap (m_cmdMediator->document().curvesGraphsNames().first(), | |
2498 | m_cmdMediator->pixmap ()); // Set background immediately so it is visible as a preview when any dialogs are displayed | |
2378 | 2499 | |
2379 | 2500 | // Image is visible now so the user can refer to it when we ask for the number of coordinate systems. Note that the Document |
2380 | 2501 | // may already have multiple CoordSystem if user loaded a file that had multiple CoordSystem entries |
2420 | 2541 | m_cmdMediator->document().modelGridRemoval(), |
2421 | 2542 | m_cmdMediator->document().modelColorFilter(), |
2422 | 2543 | m_cmbCurve->currentText ()); |
2544 | m_backgroundStateContext->setBackgroundImage ((BackgroundImage) m_cmbBackground->currentIndex ()); | |
2545 | ||
2546 | applyZoomFactorAfterLoad(); // Zoom factor must be reapplied after background image is set, to have any effect | |
2547 | ||
2548 | setCurrentFile(fileName); | |
2549 | m_statusBar->showTemporaryMessage (temporaryMessage); | |
2550 | m_statusBar->wakeUp (); | |
2551 | ||
2552 | saveStartingDocumentSnapshot(); | |
2553 | ||
2554 | updateAfterCommand(); // Replace stale points by points in new Document | |
2555 | ||
2556 | return true; | |
2557 | } | |
2558 | ||
2559 | bool MainWindow::setupAfterLoadReplacingImage (const QString &fileName, | |
2560 | const QString &temporaryMessage , | |
2561 | ImportType importType) | |
2562 | { | |
2563 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::setupAfterLoadReplacingImage" | |
2564 | << " file=" << fileName.toLatin1().data() | |
2565 | << " message=" << temporaryMessage.toLatin1().data() | |
2566 | << " importType=" << importType; | |
2567 | ||
2568 | // The steps in this method should theoretically be just a subset of the steps in setupAfterLoadNewDocument | |
2569 | ||
2570 | // After this point there should be no commands in CmdMediator, since we effectively have a new document | |
2571 | m_cmdMediator->clear(); | |
2572 | ||
2573 | setPixmap (m_cmdMediator->document().curvesGraphsNames().first(), | |
2574 | m_cmdMediator->pixmap ()); // Set background immediately so it is visible as a preview when any dialogs are displayed | |
2575 | ||
2576 | m_isDocumentExported = false; | |
2577 | ||
2423 | 2578 | m_backgroundStateContext->setBackgroundImage ((BackgroundImage) m_cmbBackground->currentIndex ()); |
2424 | 2579 | |
2425 | 2580 | applyZoomFactorAfterLoad(); // Zoom factor must be reapplied after background image is set, to have any effect |
2821 | 2976 | IMPORT_TYPE_SIMPLE); |
2822 | 2977 | } |
2823 | 2978 | |
2979 | void MainWindow::slotFileImportImageReplace () | |
2980 | { | |
2981 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::slotFileImportImageReplace"; | |
2982 | ||
2983 | fileImportWithPrompts (IMPORT_TYPE_IMAGE_REPLACE); | |
2984 | } | |
2985 | ||
2824 | 2986 | void MainWindow::slotFileOpen() |
2825 | 2987 | { |
2826 | 2988 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::slotFileOpen"; |
3205 | 3367 | |
3206 | 3368 | if (m_cmdStackShadow->canRedo()) { |
3207 | 3369 | |
3370 | // Always reset current directory before the command. This guarantees the upcoming redo step will work | |
3371 | QDir::setCurrent (m_startupDirectory); | |
3372 | ||
3208 | 3373 | m_cmdStackShadow->slotRedo(); |
3209 | 3374 | |
3375 | // Always reset current directory after the command. This guarantees the final export to file will work | |
3376 | QDir::setCurrent (m_startupDirectory); | |
3377 | ||
3210 | 3378 | } else { |
3211 | 3379 | |
3212 | 3380 | #ifndef OSX_RELEASE |
3213 | exportAllCoordinateSystems (); | |
3381 | exportAllCoordinateSystemsAfterRegressionTests (); | |
3214 | 3382 | #endif |
3215 | 3383 | |
3216 | 3384 | // Regression test has finished so exit. We unset the dirty flag so there is no prompt |
3226 | 3394 | |
3227 | 3395 | if (m_fileCmdScript->canRedo()) { |
3228 | 3396 | |
3397 | // Always reset current directory before the command. This guarantees the upcoming redo step will work | |
3398 | QDir::setCurrent (m_startupDirectory); | |
3399 | ||
3229 | 3400 | m_fileCmdScript->redo(*this); |
3401 | ||
3402 | // Always reset current directory after the command. This guarantees the final export to file will work | |
3403 | QDir::setCurrent (m_startupDirectory); | |
3230 | 3404 | |
3231 | 3405 | } else { |
3232 | 3406 | |
3234 | 3408 | if (m_cmdMediator != 0) { |
3235 | 3409 | |
3236 | 3410 | #ifndef OSX_RELEASE |
3237 | exportAllCoordinateSystems (); | |
3411 | exportAllCoordinateSystemsAfterRegressionTests (); | |
3238 | 3412 | #endif |
3239 | 3413 | |
3240 | 3414 | // We unset the dirty flag so there is no "Save changes?" prompt |
3708 | 3882 | } |
3709 | 3883 | } |
3710 | 3884 | |
3711 | void MainWindow::startRegressionTestErrorReport(const QString &initialPath, | |
3712 | const QString ®ressionInputFile) | |
3885 | void MainWindow::startRegressionTestErrorReport(const QString ®ressionInputFile) | |
3713 | 3886 | { |
3714 | 3887 | LOG4CPP_INFO_S ((*mainCat)) << "MainWindow::startRegressionTestErrorReport"; |
3715 | 3888 | |
3719 | 3892 | // 2) before running any commands since those commands implicitly assume the index is zero |
3720 | 3893 | Point::setIdentifierIndex(0); |
3721 | 3894 | |
3722 | // Need absolute path since QDir::currentPath has been changed already so the | |
3723 | // current path is not predictable | |
3724 | QString absoluteRegressionInputFile = QString ("%1/%2") | |
3725 | .arg (initialPath) | |
3726 | .arg (regressionInputFile); | |
3727 | ||
3728 | 3895 | // Save output/export file name |
3729 | m_regressionFile = exportFilenameFromInputFilename (absoluteRegressionInputFile); | |
3896 | m_regressionFile = exportFilenameFromInputFilename (regressionInputFile); | |
3730 | 3897 | |
3731 | 3898 | m_timerRegressionErrorReport = new QTimer(); |
3732 | 3899 | m_timerRegressionErrorReport->setSingleShot(false); |
3840 | 4007 | |
3841 | 4008 | m_cmbBackground->setEnabled (!m_currentFile.isEmpty ()); |
3842 | 4009 | |
4010 | m_actionImportImageReplace->setEnabled (m_cmdMediator != 0); | |
3843 | 4011 | #ifndef OSX_RELEASE |
3844 | 4012 | m_menuFileOpenRecent->setEnabled ((m_actionRecentFiles.count () > 0) && |
3845 | 4013 | (m_actionRecentFiles.at(0)->isVisible ())); // Need at least one visible recent file entry |
252 | 252 | void slotFileImportDraggedImage(QImage); |
253 | 253 | void slotFileImportDraggedImageUrl(QUrl); |
254 | 254 | void slotFileImportImage(QString, QImage); |
255 | void slotFileImportImageReplace(); | |
255 | 256 | void slotFileOpen(); |
256 | 257 | void slotFileOpenDraggedDigFile (QString); |
257 | 258 | void slotFilePrint(); |
320 | 321 | |
321 | 322 | enum ImportType { |
322 | 323 | IMPORT_TYPE_SIMPLE, |
323 | IMPORT_TYPE_ADVANCED | |
324 | IMPORT_TYPE_ADVANCED, | |
325 | IMPORT_TYPE_IMAGE_REPLACE | |
324 | 326 | }; |
325 | 327 | |
326 | 328 | void applyZoomFactorAfterLoad(); |
350 | 352 | void createZoomMap (); |
351 | 353 | ZoomFactor currentZoomFactor () const; |
352 | 354 | #ifndef OSX_RELEASE |
353 | void exportAllCoordinateSystems(); | |
355 | void exportAllCoordinateSystemsAfterRegressionTests(); | |
354 | 356 | #endif |
355 | 357 | QString exportFilenameFromInputFilename (const QString &fileName) const; |
356 | 358 | void fileExport(const QString &fileName, |
364 | 366 | void loadCoordSystemListFromCmdMediator(); /// Update the combobox that has the CoordSystem list |
365 | 367 | void loadCurveListFromCmdMediator(); /// Update the combobox that has the curve names. |
366 | 368 | void loadDocumentFile (const QString &fileName); |
367 | void loadErrorReportFile(const QString &initialPath, | |
368 | const QString &errorReportFile); | |
369 | void loadErrorReportFile(const QString &errorReportFile); | |
369 | 370 | bool loadImage (const QString &fileName, |
370 | 371 | const QImage &image, |
371 | 372 | ImportType ImportType); |
373 | bool loadImageNewDocument (const QString &fileName, | |
374 | const QImage &image, | |
375 | ImportType ImportType); | |
376 | bool loadImageReplacingImage (const QString &fileName, | |
377 | const QImage &image, | |
378 | ImportType ImportType); | |
372 | 379 | void loadInputFileForErrorReport(QDomDocument &domInputFile) const; |
373 | 380 | void loadToolTips (); |
374 | 381 | bool maybeSave(); |
384 | 391 | void saveStartingDocumentSnapshot(); |
385 | 392 | void setCurrentFile(const QString &fileName); |
386 | 393 | void setCurrentPathFromFile (const QString &fileName); |
387 | void setPixmap (const QPixmap &pixmap); | |
394 | void setPixmap (const QString &curveSelected, | |
395 | const QPixmap &pixmap); | |
388 | 396 | void settingsRead (); |
389 | 397 | void settingsReadEnvironment (QSettings &settings); |
390 | 398 | void settingsReadMainWindow (QSettings &settings); |
391 | 399 | void settingsWrite (); |
392 | bool setupAfterLoad (const QString &fileName, | |
393 | const QString &temporaryMessage, | |
394 | ImportType ImportType); | |
395 | void startRegressionTestErrorReport (const QString &initialPath, | |
396 | const QString ®ressionInputFile); | |
400 | bool setupAfterLoadNewDocument (const QString &fileName, | |
401 | const QString &temporaryMessage, | |
402 | ImportType ImportType); | |
403 | bool setupAfterLoadReplacingImage (const QString &fileName, | |
404 | const QString &temporaryMessage, | |
405 | ImportType ImportType); | |
406 | void startRegressionTestErrorReport (const QString ®ressionInputFile); | |
397 | 407 | void startRegressionTestFileCmdScript (); |
398 | 408 | void updateAfterCommandStatusBarCoords (); |
399 | 409 | void updateControls (); // Update the widgets (typically in terms of show/hide state) depending on the application state. |
417 | 427 | QMenu *m_menuFile; |
418 | 428 | QAction *m_actionImport; |
419 | 429 | QAction *m_actionImportAdvanced; |
430 | QAction *m_actionImportImageReplace; | |
420 | 431 | QAction *m_actionOpen; |
421 | 432 | QMenu *m_menuFileOpenRecent; |
422 | 433 | QList<QAction*> m_actionRecentFiles; |
579 | 590 | // from the command stack getting executed |
580 | 591 | QTimer *m_timerRegressionErrorReport; |
581 | 592 | FileCmdScript *m_fileCmdScript; |
582 | bool m_isRegressionTest; | |
593 | bool m_isErrorReportRegressionTest; | |
583 | 594 | QTimer *m_timerRegressionFileCmdScript; |
584 | 595 | QString m_regressionFile; |
596 | QString m_startupDirectory; // Used to restore original directory just before outputing regression test results, since | |
597 | // directory changes when settings are read, and also when files are opened or imported. | |
598 | // Restoring the directory means relative paths in the regression scripts will work consistently | |
585 | 599 | |
586 | 600 | // Grid lines |
587 | 601 | GridLines m_gridLines; |
7 | 7 | #include "DocumentSerialize.h" |
8 | 8 | #include "Logger.h" |
9 | 9 | #include "MainWindowModel.h" |
10 | #include "PdfResolution.h" | |
10 | 11 | #include <QLocale> |
11 | 12 | #include <QObject> |
12 | 13 | #include <QTextStream> |
21 | 22 | MainWindowModel::MainWindowModel() : |
22 | 23 | m_zoomControl (ZOOM_CONTROL_MENU_WHEEL_PLUSMINUS), |
23 | 24 | m_zoomFactorInitial (DEFAULT_ZOOM_FACTOR_INITIAL), |
24 | m_mainTitleBarFormat (MAIN_TITLE_BAR_FORMAT_PATH) | |
25 | m_mainTitleBarFormat (MAIN_TITLE_BAR_FORMAT_PATH), | |
26 | m_pdfResolution (DEFAULT_IMPORT_PDF_RESOLUTION) | |
25 | 27 | { |
26 | 28 | // Locale member variable m_locale is initialized to default locale when default constructor is called |
27 | 29 | } |
30 | 32 | m_locale (other.locale()), |
31 | 33 | m_zoomControl (other.zoomControl()), |
32 | 34 | m_zoomFactorInitial (other.zoomFactorInitial()), |
33 | m_mainTitleBarFormat (other.mainTitleBarFormat()) | |
35 | m_mainTitleBarFormat (other.mainTitleBarFormat()), | |
36 | m_pdfResolution (other.pdfResolution()) | |
34 | 37 | { |
35 | 38 | } |
36 | 39 | |
40 | 43 | m_zoomControl = other.zoomControl(); |
41 | 44 | m_zoomFactorInitial = other.zoomFactorInitial(); |
42 | 45 | m_mainTitleBarFormat = other.mainTitleBarFormat(); |
46 | m_pdfResolution = other.pdfResolution(); | |
43 | 47 | |
44 | 48 | return *this; |
45 | 49 | } |
75 | 79 | return m_mainTitleBarFormat; |
76 | 80 | } |
77 | 81 | |
82 | int MainWindowModel::pdfResolution() const | |
83 | { | |
84 | return m_pdfResolution; | |
85 | } | |
86 | ||
78 | 87 | void MainWindowModel::printStream(QString indentation, |
79 | 88 | QTextStream &str) const |
80 | 89 | { |
87 | 96 | str << indentation << "zoomFactorInitial=" << m_zoomFactorInitial << "\n"; |
88 | 97 | str << indentation << "mainWindowTitleBarFormat=" << (m_mainTitleBarFormat == MAIN_TITLE_BAR_FORMAT_NO_PATH ? |
89 | 98 | "NoPath" : |
90 | "Path"); | |
99 | "Path") << "\n"; | |
100 | str << indentation << "pdfResolution=" << m_pdfResolution << "\n"; | |
91 | 101 | } |
92 | 102 | |
93 | 103 | void MainWindowModel::saveXml(QXmlStreamWriter &writer) const |
119 | 129 | m_mainTitleBarFormat = mainTitleBarFormat; |
120 | 130 | } |
121 | 131 | |
132 | void MainWindowModel::setPdfResolution(int resolution) | |
133 | { | |
134 | m_pdfResolution = resolution; | |
135 | } | |
136 | ||
122 | 137 | void MainWindowModel::setZoomControl (ZoomControl zoomControl) |
123 | 138 | { |
124 | 139 | m_zoomControl = zoomControl; |
39 | 39 | /// Get method for MainWindow titlebar filename format |
40 | 40 | MainTitleBarFormat mainTitleBarFormat () const; |
41 | 41 | |
42 | /// Get method for resolution of imported PDF files, in dots per inch | |
43 | int pdfResolution () const; | |
44 | ||
42 | 45 | /// Debugging method that supports print method of this class and printStream method of some other class(es) |
43 | 46 | void printStream (QString indentation, |
44 | 47 | QTextStream &str) const; |
54 | 57 | |
55 | 58 | /// Set method for MainWindow titlebar filename format |
56 | 59 | void setMainTitleBarFormat (MainTitleBarFormat mainTitleBarFormat); |
60 | ||
61 | /// Set method for resolution of imported PDF files, in dots per inch | |
62 | void setPdfResolution (int resolution); | |
57 | 63 | |
58 | 64 | /// Set method for zoom control |
59 | 65 | void setZoomControl (ZoomControl zoomControl); |
73 | 79 | ZoomControl m_zoomControl; |
74 | 80 | ZoomFactorInitial m_zoomFactorInitial; |
75 | 81 | MainTitleBarFormat m_mainTitleBarFormat; |
82 | int m_pdfResolution; | |
76 | 83 | |
77 | 84 | }; |
78 | 85 |
43 | 43 | bool &isDebug, |
44 | 44 | QString &errorReportFile, |
45 | 45 | QString &fileCmdScriptFile, |
46 | bool &isRegressionTest, | |
46 | bool &isErrorReportRegressionTest, | |
47 | 47 | bool &isGnuplot, |
48 | 48 | QStringList &loadStartupFiles); |
49 | 49 | |
104 | 104 | TranslatorContainer translatorContainer (app); // Must exist until execution terminates |
105 | 105 | |
106 | 106 | // Command line |
107 | bool isDebug, isGnuplot, isRegressionTest; | |
107 | bool isDebug, isGnuplot, isErrorReportRegressionTest; | |
108 | 108 | QString errorReportFile, fileCmdScriptFile; |
109 | 109 | QStringList loadStartupFiles; |
110 | 110 | parseCmdLine (argc, |
112 | 112 | isDebug, |
113 | 113 | errorReportFile, |
114 | 114 | fileCmdScriptFile, |
115 | isRegressionTest, | |
115 | isErrorReportRegressionTest, | |
116 | 116 | isGnuplot, |
117 | 117 | loadStartupFiles); |
118 | 118 | |
125 | 125 | // Create and show main window |
126 | 126 | MainWindow w (errorReportFile, |
127 | 127 | fileCmdScriptFile, |
128 | isRegressionTest, | |
128 | isErrorReportRegressionTest, | |
129 | 129 | isGnuplot, |
130 | 130 | loadStartupFiles); |
131 | 131 | w.show(); |
139 | 139 | bool &isDebug, |
140 | 140 | QString &errorReportFile, |
141 | 141 | QString &fileCmdScriptFile, |
142 | bool &isRegressionTest, | |
142 | bool &isErrorReportRegressionTest, | |
143 | 143 | bool &isGnuplot, |
144 | 144 | QStringList &loadStartupFiles) |
145 | 145 | { |
154 | 154 | isDebug = false; |
155 | 155 | errorReportFile = ""; |
156 | 156 | fileCmdScriptFile = ""; |
157 | isRegressionTest = false; | |
157 | isErrorReportRegressionTest = false; | |
158 | 158 | isGnuplot = false; |
159 | 159 | |
160 | 160 | for (int i = 1; i < argc; i++) { |
178 | 178 | } else if (strcmp (argv [i], DASH_HELP.toLatin1().data()) == 0) { |
179 | 179 | showUsage = true; // User requested help |
180 | 180 | } else if (strcmp (argv [i], DASH_REGRESSION.toLatin1().data()) == 0) { |
181 | isRegressionTest = true; | |
181 | isErrorReportRegressionTest = true; | |
182 | 182 | } else if (strncmp (argv [i], DASH.toLatin1().data(), 1) == 0) { |
183 | 183 | showUsage = true; // User entered an unrecognized token |
184 | 184 | } else { |
18 | 18 | QString str = QString ("(%1, %2)") |
19 | 19 | .arg (pos.x ()) |
20 | 20 | .arg (pos.y ()); |
21 | ||
22 | return str; | |
23 | } | |
24 | ||
25 | QString QRectFToString (const QRectF &rectF) | |
26 | { | |
27 | QString str = QString ("(%1x%2+%3+%4)") | |
28 | .arg (rectF.width()) | |
29 | .arg (rectF.height()) | |
30 | .arg (rectF.x()) | |
31 | .arg (rectF.y()); | |
21 | 32 | |
22 | 33 | return str; |
23 | 34 | } |
15 | 15 | class QPointF; |
16 | 16 | class QTransform; |
17 | 17 | |
18 | extern QString QLocaleToString (const QLocale &locale); | |
18 | 19 | extern QString QPointFToString (const QPointF &pos); |
19 | extern QString QLocaleToString (const QLocale &locale); | |
20 | extern QString QRectFToString (const QRectF &rectF); | |
20 | 21 | extern QString QtCursorToString (Qt::CursorShape cursorShape); |
21 | 22 | extern QString QTransformToString (const QTransform &transform); |
22 | 23 | extern QString QXmlStreamReaderTokenTypeToString (QXmlStreamReader::TokenType tokenType); |
5 | 5 | |
6 | 6 | #include "Version.h" |
7 | 7 | |
8 | const char *VERSION_NUMBER = "8.2"; | |
8 | const char *VERSION_NUMBER = "8.3"; | |
9 | 9 | |
10 | 10 | QString engaugeWindowTitle() |
11 | 11 | { |
0 | /****************************************************************************************************** | |
1 | * (C) 2016 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #include "ZValues.h" | |
7 | ||
8 | const int Z_VALUE_BACKGROUND = 0; | |
9 | const int Z_VALUE_GRID_LINE = 100; | |
10 | const int Z_VALUE_CURVE = 200; | |
11 | const int Z_VALUE_POINT = 300; | |
12 |
0 | /****************************************************************************************************** | |
1 | * (C) 2016 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * | |
2 | * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * | |
3 | * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * | |
4 | ******************************************************************************************************/ | |
5 | ||
6 | #ifndef Z_VALUES_H | |
7 | #define Z_VALUES_H | |
8 | ||
9 | /// Z values for ordering of the various graphics layers, with background at the bottom | |
10 | extern const int Z_VALUE_BACKGROUND; | |
11 | extern const int Z_VALUE_CURVE; | |
12 | extern const int Z_VALUE_GRID; | |
13 | extern const int Z_VALUE_POINT; | |
14 | ||
15 | #endif // Z_VALUES_H |
0 | x,green,blue | |
1 | -3.9725,-1.375,-4.022 | |
2 | -2.996,-1.022,-3.019 | |
3 | -2.9882,-1.019,-3.011 | |
4 | -1.9915,-0.659,-2.016 | |
5 | -1.9862,-0.658,-2.011 | |
6 | -0.9902,-0.342,-1.011 | |
7 | -0.9869,-0.341,-1.008 | |
8 | -0.0059,-3e-10,-0.0009 | |
9 | 0.0058,0.005,0.011 | |
10 | 1.002,0.395,1 | |
11 | 1.0043,0.396,1.002 | |
12 | 1.9922,0.667,1.989 | |
13 | 2.0033,0.67,2 | |
14 | 2.9882,0.985,3 | |
15 | 3.002,0.989,3.014 | |
16 | 3.9951,1.253,4.022 | |
17 | 4.9936,1.626,5.016 | |
18 | 5.9863,2.011,5.962 |
0 | -errorreport ../test/extrapolate_functions_smooth.xml -regression |
0 | <ErrorReport> | |
1 | <Application VersionNumber="8.2"/> | |
2 | <Document VersionNumber="8.2" AxesPointsRequired="0"> | |
3 | <Image Height="252" Width="1221"><![CDATA[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]]></Image> | |
4 | <CoordSystem> | |
5 | <General CursorSize="3" ExtraPrecision="1"/> | |
6 | <Coords ScaleXThetaString="Linear" UnitsRadius="0" UnitsDateString="YYYY/MM/DD" UnitsTheta="0" UnitsRadiusString="Number" ScaleYRadius="0" ScaleXTheta="0" UnitsTimeString="HH:MM:SS" TypeString="Cartesian" UnitsThetaString="Degrees (DDD.DDDDD)" UnitsDate="3" UnitsX="0" UnitsY="0" Type="0" Coords="0" ScaleYRadiusString="Linear" UnitsYString="Number" UnitsXString="Number" UnitsTime="2"/> | |
7 | <DigitizeCurve CursorInnerRadius="5" CursorStandardCross="True" CursorLineWidth="2" CursorSize="1"/> | |
8 | <Export PointsSelectionFunctions="3" PointsSelectionFunctionsString="Raw" LayoutFunctionsString="OnePerLine" LayoutFunctions="1" PointsIntervalFunctions="10" PointsSelectionRelations="3" DelimiterString="Commas" PointsIntervalRelations="1" PointsIntervalUnitsFunctions="1" XLabel="x" PointsSelectionRelationsString="Unknown" Delimiter="0" HeaderString="Simple" PointsIntervalUnitsRelations="1" OverrideCsvTsv="True" Header="1"> | |
9 | <CurveNamesNotExported/> | |
10 | </Export> | |
11 | <AxesChecker LineColor="6" Mode="1" Seconds="3"/> | |
12 | <GridDisplay Stable="False" CountX="2" StartX="0" StepX="1" CountY="2" StartY="0" StepY="1" Color="0" ColorString="Black" StopX="1" DisableX="0" StopY="1" DisableY="0"/> | |
13 | <GridRemoval CoordDisableXString="Count" CloseDistance="10" Stable="False" CountX="2" StartX="0" StepX="0" CountY="2" StartY="0" StepY="0" DefinedGridLines="False" StopX="0" StopY="0" CoordDisableX="0" CoordDisableY="0" CoordDisableYString="Count"/> | |
14 | <PointMatch ColorCandidateString="Yellow" ColorRejectedString="Red" ColorCandidate="7" PointSize="48" ColorRejected="6" ColorAccepted="4" ColorAcceptedString="Green"/> | |
15 | <Segments PointSeparation="25" LineColor="4" MinLength="2" LineWidth="4" FillCorners="False" LineColorString="Green"/> | |
16 | <Curve CurveName="Axes"> | |
17 | <ColorFilter IntensityLow="0" CurveName="Axes" SaturationHigh="100" ValueLow="0" Mode="2" ModeString="Intensity" HueHigh="360" ValueHigh="50" SaturationLow="50" HueLow="180" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10"/> | |
18 | <CurveStyle CurveName="Axes"> | |
19 | <LineStyle ConnectAs="4" Color="8" Width="0" ColorString="Transparent" ConnectAsString="ConnectSkipForAxisCurve"/> | |
20 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="6" ShapeString="Cross" ColorString="Red"/> | |
21 | </CurveStyle> | |
22 | <CurvePoints/> | |
23 | </Curve> | |
24 | <CurvesGraphs> | |
25 | <Curve CurveName="Curve1"> | |
26 | <ColorFilter IntensityLow="0" CurveName="Curve1" SaturationHigh="100" ValueLow="0" Mode="2" ModeString="Intensity" HueHigh="360" ValueHigh="50" SaturationLow="50" HueLow="180" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10"/> | |
27 | <CurveStyle CurveName="Curve1"> | |
28 | <LineStyle ConnectAs="0" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionSmooth"/> | |
29 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="1" ShapeString="Cross" ColorString="Blue"/> | |
30 | </CurveStyle> | |
31 | <CurvePoints/> | |
32 | </Curve> | |
33 | </CurvesGraphs> | |
34 | </CoordSystem> | |
35 | <OperatingSystem Endian="LittleEndian" WordSize="32"/> | |
36 | <File Imported="True"/> | |
37 | <CmdMediator> | |
38 | <Cmd Type="CmdSettingsCurveAddRemove" Description="Curve add/remove"> | |
39 | <CurvesGraphs> | |
40 | <Curve CurveName="Curve1"> | |
41 | <ColorFilter IntensityLow="0" CurveName="Curve1" SaturationHigh="100" ValueLow="0" Mode="2" ModeString="Intensity" HueHigh="360" ValueHigh="50" SaturationLow="50" HueLow="180" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10"/> | |
42 | <CurveStyle CurveName="Curve1"> | |
43 | <LineStyle ConnectAs="0" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionSmooth"/> | |
44 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="1" ShapeString="Cross" ColorString="Blue"/> | |
45 | </CurveStyle> | |
46 | <CurvePoints/> | |
47 | </Curve> | |
48 | </CurvesGraphs> | |
49 | <CurvesGraphs> | |
50 | <Curve CurveName="green"> | |
51 | <ColorFilter IntensityLow="0" CurveName="green" SaturationHigh="100" ValueLow="0" Mode="2" ModeString="Intensity" HueHigh="360" ValueHigh="50" SaturationLow="50" HueLow="180" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10"/> | |
52 | <CurveStyle CurveName="green"> | |
53 | <LineStyle ConnectAs="0" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionSmooth"/> | |
54 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="1" ShapeString="Cross" ColorString="Blue"/> | |
55 | </CurveStyle> | |
56 | <CurvePoints/> | |
57 | </Curve> | |
58 | <Curve CurveName="blue"> | |
59 | <ColorFilter IntensityLow="0" CurveName="blue" SaturationHigh="100" ValueLow="0" Mode="2" ModeString="Intensity" HueHigh="360" ValueHigh="50" SaturationLow="50" HueLow="180" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10"/> | |
60 | <CurveStyle CurveName="blue"> | |
61 | <LineStyle ConnectAs="0" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionSmooth"/> | |
62 | <PointStyle Radius="10" Shape="5" LineWidth="1" Color="1" ShapeString="X" ColorString="Blue"/> | |
63 | </CurveStyle> | |
64 | <CurvePoints/> | |
65 | </Curve> | |
66 | </CurvesGraphs> | |
67 | </Cmd> | |
68 | <Cmd Type="CmdSettingsCurveProperties" Description="Curve Properties settings"> | |
69 | <CurveStyles> | |
70 | <CurveStyle CurveName="green"> | |
71 | <LineStyle ConnectAs="0" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionSmooth"/> | |
72 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="1" ShapeString="Cross" ColorString="Blue"/> | |
73 | </CurveStyle> | |
74 | <CurveStyle CurveName="blue"> | |
75 | <LineStyle ConnectAs="0" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionSmooth"/> | |
76 | <PointStyle Radius="10" Shape="5" LineWidth="1" Color="1" ShapeString="X" ColorString="Blue"/> | |
77 | </CurveStyle> | |
78 | <CurveStyle CurveName="Axes"> | |
79 | <LineStyle ConnectAs="4" Color="8" Width="0" ColorString="Transparent" ConnectAsString="ConnectSkipForAxisCurve"/> | |
80 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="6" ShapeString="Cross" ColorString="Red"/> | |
81 | </CurveStyle> | |
82 | </CurveStyles> | |
83 | <CurveStyles> | |
84 | <CurveStyle CurveName="green"> | |
85 | <LineStyle ConnectAs="0" Color="4" Width="1" ColorString="Green" ConnectAsString="FunctionSmooth"/> | |
86 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="4" ShapeString="Cross" ColorString="Green"/> | |
87 | </CurveStyle> | |
88 | <CurveStyle CurveName="blue"> | |
89 | <LineStyle ConnectAs="0" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionSmooth"/> | |
90 | <PointStyle Radius="10" Shape="5" LineWidth="1" Color="1" ShapeString="X" ColorString="Blue"/> | |
91 | </CurveStyle> | |
92 | <CurveStyle CurveName="Axes"> | |
93 | <LineStyle ConnectAs="4" Color="8" Width="0" ColorString="Transparent" ConnectAsString="ConnectSkipForAxisCurve"/> | |
94 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="6" ShapeString="Cross" ColorString="Red"/> | |
95 | </CurveStyle> | |
96 | </CurveStyles> | |
97 | </Cmd> | |
98 | <Cmd ScreenX="492.709" ScreenY="110.209" Type="CmdAddPointAxis" Ordinal="1" Identifier="Axes	point	1" GraphX="0" Description="Add axis point" GraphY="0" IsXOnly="False"/> | |
99 | <Cmd ScreenX="1201.54" ScreenY="110.209" Type="CmdAddPointAxis" Ordinal="2" Identifier="Axes	point	3" GraphX="6" Description="Add axis point" GraphY="0" IsXOnly="False"/> | |
100 | <Cmd ScreenX="494.098" ScreenY="20.3969" Type="CmdAddPointAxis" Ordinal="3" Identifier="Axes	point	5" GraphX="0" Description="Add axis point" GraphY="3" IsXOnly="False"/> | |
101 | <Cmd Type="CmdSettingsExport" Description="Export settings"> | |
102 | <Export PointsSelectionFunctions="3" PointsSelectionFunctionsString="Raw" LayoutFunctionsString="OnePerLine" LayoutFunctions="1" PointsIntervalFunctions="10" PointsSelectionRelations="3" DelimiterString="Commas" PointsIntervalRelations="1" PointsIntervalUnitsFunctions="1" XLabel="x" PointsSelectionRelationsString="Unknown" Delimiter="0" HeaderString="Simple" PointsIntervalUnitsRelations="1" OverrideCsvTsv="True" Header="1"> | |
103 | <CurveNamesNotExported/> | |
104 | </Export> | |
105 | <Export PointsSelectionFunctions="0" PointsSelectionFunctionsString="InterpolateAllCurves" LayoutFunctionsString="AllPerLine" LayoutFunctions="0" PointsIntervalFunctions="10" PointsSelectionRelations="3" DelimiterString="Commas" PointsIntervalRelations="1" PointsIntervalUnitsFunctions="1" XLabel="x" PointsSelectionRelationsString="Unknown" Delimiter="0" HeaderString="Simple" PointsIntervalUnitsRelations="1" OverrideCsvTsv="True" Header="1"> | |
106 | <CurveNamesNotExported/> | |
107 | </Export> | |
108 | </Cmd> | |
109 | <Cmd ScreenX="138.292" CurveName="green" ScreenY="140.804" Type="CmdAddPointGraph" Ordinal="1" Identifier="green	point	6" Description="Add graph point"/> | |
110 | <Cmd ScreenX="257.126" CurveName="green" ScreenY="129.948" Type="CmdAddPointGraph" Ordinal="1" Identifier="green	point	7" Description="Add graph point"/> | |
111 | <Cmd ScreenX="375.96" CurveName="green" ScreenY="120.407" Type="CmdAddPointGraph" Ordinal="2.5" Identifier="green	point	8" Description="Add graph point"/> | |
112 | <Cmd ScreenX="492.014" CurveName="green" ScreenY="110.209" Type="CmdAddPointGraph" Ordinal="3.5" Identifier="green	point	9" Description="Add graph point"/> | |
113 | <Cmd ScreenX="611.542" CurveName="green" ScreenY="98.3655" Type="CmdAddPointGraph" Ordinal="4.5" Identifier="green	point	10" Description="Add graph point"/> | |
114 | <Cmd ScreenX="729.681" CurveName="green" ScreenY="90.141" Type="CmdAddPointGraph" Ordinal="5.5" Identifier="green	point	11" Description="Add graph point"/> | |
115 | <Cmd ScreenX="847.82" CurveName="green" ScreenY="80.6005" Type="CmdAddPointGraph" Ordinal="6.5" Identifier="green	point	12" Description="Add graph point"/> | |
116 | <Cmd ScreenX="965.264" CurveName="green" ScreenY="72.705" Type="CmdAddPointGraph" Ordinal="7.5" Identifier="green	point	13" Description="Add graph point"/> | |
117 | <Cmd ScreenX="1083.4" CurveName="green" ScreenY="61.5196" Type="CmdAddPointGraph" Ordinal="8.5" Identifier="green	point	14" Description="Add graph point"/> | |
118 | <Cmd ScreenX="1200.85" CurveName="green" ScreenY="50.0052" Type="CmdAddPointGraph" Ordinal="9.5" Identifier="green	point	15" Description="Add graph point"/> | |
119 | <Cmd ScreenX="21.543" CurveName="blue" ScreenY="230.616" Type="CmdAddPointGraph" Ordinal="1" Identifier="blue	point	16" Description="Add graph point"/> | |
120 | <Cmd ScreenX="138.292" CurveName="blue" ScreenY="200.35" Type="CmdAddPointGraph" Ordinal="1" Identifier="blue	point	17" Description="Add graph point"/> | |
121 | <Cmd ScreenX="257.126" CurveName="blue" ScreenY="170.413" Type="CmdAddPointGraph" Ordinal="2.5" Identifier="blue	point	18" Description="Add graph point"/> | |
122 | <Cmd ScreenX="375.265" CurveName="blue" ScreenY="140.475" Type="CmdAddPointGraph" Ordinal="3.5" Identifier="blue	point	19" Description="Add graph point"/> | |
123 | <Cmd ScreenX="493.404" CurveName="blue" ScreenY="109.88" Type="CmdAddPointGraph" Ordinal="4.5" Identifier="blue	point	20" Description="Add graph point"/> | |
124 | <Cmd ScreenX="611.542" CurveName="blue" ScreenY="80.2715" Type="CmdAddPointGraph" Ordinal="5.5" Identifier="blue	point	21" Description="Add graph point"/> | |
125 | <Cmd ScreenX="728.986" CurveName="blue" ScreenY="50.6632" Type="CmdAddPointGraph" Ordinal="6.5" Identifier="blue	point	22" Description="Add graph point"/> | |
126 | <Cmd ScreenX="847.125" CurveName="blue" ScreenY="20.3969" Type="CmdAddPointGraph" Ordinal="7.5" Identifier="blue	point	23" Description="Add graph point"/> | |
127 | </CmdMediator> | |
128 | <Error Context="Shift+Control+E" Comment="userTriggered" File="src/main/MainWindow.cpp" Line="1292"/> | |
129 | </Document> | |
130 | </ErrorReport> |
0 | x,green,blue | |
1 | -3.9725,-1.374,-4.022 | |
2 | -2.996,-1.022,-3.019 | |
3 | -2.9882,-1.019,-3.011 | |
4 | -1.9915,-0.659,-2.016 | |
5 | -1.9862,-0.658,-2.011 | |
6 | -0.9902,-0.342,-1.011 | |
7 | -0.9869,-0.341,-1.008 | |
8 | -0.006,0.0003,-0.001 | |
9 | 0.0058,0.005,0.011 | |
10 | 1.002,0.395,1 | |
11 | 1.0043,0.396,1.002 | |
12 | 1.9922,0.667,1.989 | |
13 | 2.0033,0.67,2 | |
14 | 2.9882,0.985,3 | |
15 | 3.002,0.989,3.014 | |
16 | 3.9951,1.253,4.022 | |
17 | 4.9936,1.626,5.035 | |
18 | 5.9863,2.011,6.043 |
0 | -errorreport ../test/extrapolate_functions_straight.xml -regression |
0 | <ErrorReport> | |
1 | <Application VersionNumber="8.2"/> | |
2 | <Document VersionNumber="8.2" AxesPointsRequired="0"> | |
3 | <Image Height="252" Width="1221"><![CDATA[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]]></Image> | |
4 | <CoordSystem> | |
5 | <General CursorSize="3" ExtraPrecision="1"/> | |
6 | <Coords ScaleXThetaString="Linear" UnitsRadius="0" UnitsDateString="YYYY/MM/DD" UnitsTheta="0" UnitsRadiusString="Number" ScaleYRadius="0" ScaleXTheta="0" UnitsTimeString="HH:MM:SS" TypeString="Cartesian" UnitsThetaString="Degrees (DDD.DDDDD)" UnitsDate="3" UnitsX="0" UnitsY="0" Type="0" Coords="0" ScaleYRadiusString="Linear" UnitsYString="Number" UnitsXString="Number" UnitsTime="2"/> | |
7 | <DigitizeCurve CursorInnerRadius="5" CursorStandardCross="True" CursorLineWidth="2" CursorSize="1"/> | |
8 | <Export PointsSelectionFunctions="3" PointsSelectionFunctionsString="Raw" LayoutFunctionsString="OnePerLine" LayoutFunctions="1" PointsIntervalFunctions="10" PointsSelectionRelations="3" DelimiterString="Commas" PointsIntervalRelations="1" PointsIntervalUnitsFunctions="1" XLabel="x" PointsSelectionRelationsString="Unknown" Delimiter="0" HeaderString="Simple" PointsIntervalUnitsRelations="1" OverrideCsvTsv="True" Header="1"> | |
9 | <CurveNamesNotExported/> | |
10 | </Export> | |
11 | <AxesChecker LineColor="6" Mode="1" Seconds="3"/> | |
12 | <GridDisplay Stable="False" CountX="2" StartX="0" StepX="1" CountY="2" StartY="0" StepY="1" Color="0" ColorString="Black" StopX="1" DisableX="0" StopY="1" DisableY="0"/> | |
13 | <GridRemoval CoordDisableXString="Count" CloseDistance="10" Stable="False" CountX="2" StartX="0" StepX="0" CountY="2" StartY="0" StepY="0" DefinedGridLines="False" StopX="0" StopY="0" CoordDisableX="0" CoordDisableY="0" CoordDisableYString="Count"/> | |
14 | <PointMatch ColorCandidateString="Yellow" ColorRejectedString="Red" ColorCandidate="7" PointSize="48" ColorRejected="6" ColorAccepted="4" ColorAcceptedString="Green"/> | |
15 | <Segments PointSeparation="25" LineColor="4" MinLength="2" LineWidth="4" FillCorners="False" LineColorString="Green"/> | |
16 | <Curve CurveName="Axes"> | |
17 | <ColorFilter IntensityLow="0" CurveName="Axes" SaturationHigh="100" ValueLow="0" Mode="2" ModeString="Intensity" HueHigh="360" ValueHigh="50" SaturationLow="50" HueLow="180" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10"/> | |
18 | <CurveStyle CurveName="Axes"> | |
19 | <LineStyle ConnectAs="4" Color="8" Width="0" ColorString="Transparent" ConnectAsString="ConnectSkipForAxisCurve"/> | |
20 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="6" ShapeString="Cross" ColorString="Red"/> | |
21 | </CurveStyle> | |
22 | <CurvePoints/> | |
23 | </Curve> | |
24 | <CurvesGraphs> | |
25 | <Curve CurveName="Curve1"> | |
26 | <ColorFilter IntensityLow="0" CurveName="Curve1" SaturationHigh="100" ValueLow="0" Mode="2" ModeString="Intensity" HueHigh="360" ValueHigh="50" SaturationLow="50" HueLow="180" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10"/> | |
27 | <CurveStyle CurveName="Curve1"> | |
28 | <LineStyle ConnectAs="1" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionStraight"/> | |
29 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="1" ShapeString="Cross" ColorString="Blue"/> | |
30 | </CurveStyle> | |
31 | <CurvePoints/> | |
32 | </Curve> | |
33 | </CurvesGraphs> | |
34 | </CoordSystem> | |
35 | <OperatingSystem Endian="LittleEndian" WordSize="32"/> | |
36 | <File Imported="True"/> | |
37 | <CmdMediator> | |
38 | <Cmd Type="CmdSettingsCurveAddRemove" Description="Curve add/remove"> | |
39 | <CurvesGraphs> | |
40 | <Curve CurveName="Curve1"> | |
41 | <ColorFilter IntensityLow="0" CurveName="Curve1" SaturationHigh="100" ValueLow="0" Mode="2" ModeString="Intensity" HueHigh="360" ValueHigh="50" SaturationLow="50" HueLow="180" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10"/> | |
42 | <CurveStyle CurveName="Curve1"> | |
43 | <LineStyle ConnectAs="1" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionStraight"/> | |
44 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="1" ShapeString="Cross" ColorString="Blue"/> | |
45 | </CurveStyle> | |
46 | <CurvePoints/> | |
47 | </Curve> | |
48 | </CurvesGraphs> | |
49 | <CurvesGraphs> | |
50 | <Curve CurveName="green"> | |
51 | <ColorFilter IntensityLow="0" CurveName="green" SaturationHigh="100" ValueLow="0" Mode="2" ModeString="Intensity" HueHigh="360" ValueHigh="50" SaturationLow="50" HueLow="180" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10"/> | |
52 | <CurveStyle CurveName="green"> | |
53 | <LineStyle ConnectAs="1" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionStraight"/> | |
54 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="1" ShapeString="Cross" ColorString="Blue"/> | |
55 | </CurveStyle> | |
56 | <CurvePoints/> | |
57 | </Curve> | |
58 | <Curve CurveName="blue"> | |
59 | <ColorFilter IntensityLow="0" CurveName="blue" SaturationHigh="100" ValueLow="0" Mode="2" ModeString="Intensity" HueHigh="360" ValueHigh="50" SaturationLow="50" HueLow="180" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10"/> | |
60 | <CurveStyle CurveName="blue"> | |
61 | <LineStyle ConnectAs="1" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionStraight"/> | |
62 | <PointStyle Radius="10" Shape="5" LineWidth="1" Color="1" ShapeString="X" ColorString="Blue"/> | |
63 | </CurveStyle> | |
64 | <CurvePoints/> | |
65 | </Curve> | |
66 | </CurvesGraphs> | |
67 | </Cmd> | |
68 | <Cmd Type="CmdSettingsCurveProperties" Description="Curve Properties settings"> | |
69 | <CurveStyles> | |
70 | <CurveStyle CurveName="green"> | |
71 | <LineStyle ConnectAs="1" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionStraight"/> | |
72 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="1" ShapeString="Cross" ColorString="Blue"/> | |
73 | </CurveStyle> | |
74 | <CurveStyle CurveName="blue"> | |
75 | <LineStyle ConnectAs="1" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionStraight"/> | |
76 | <PointStyle Radius="10" Shape="5" LineWidth="1" Color="1" ShapeString="X" ColorString="Blue"/> | |
77 | </CurveStyle> | |
78 | <CurveStyle CurveName="Axes"> | |
79 | <LineStyle ConnectAs="4" Color="8" Width="0" ColorString="Transparent" ConnectAsString="ConnectSkipForAxisCurve"/> | |
80 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="6" ShapeString="Cross" ColorString="Red"/> | |
81 | </CurveStyle> | |
82 | </CurveStyles> | |
83 | <CurveStyles> | |
84 | <CurveStyle CurveName="green"> | |
85 | <LineStyle ConnectAs="1" Color="4" Width="1" ColorString="Green" ConnectAsString="FunctionStraight"/> | |
86 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="4" ShapeString="Cross" ColorString="Green"/> | |
87 | </CurveStyle> | |
88 | <CurveStyle CurveName="blue"> | |
89 | <LineStyle ConnectAs="1" Color="1" Width="1" ColorString="Blue" ConnectAsString="FunctionStraight"/> | |
90 | <PointStyle Radius="10" Shape="5" LineWidth="1" Color="1" ShapeString="X" ColorString="Blue"/> | |
91 | </CurveStyle> | |
92 | <CurveStyle CurveName="Axes"> | |
93 | <LineStyle ConnectAs="4" Color="8" Width="0" ColorString="Transparent" ConnectAsString="ConnectSkipForAxisCurve"/> | |
94 | <PointStyle Radius="10" Shape="1" LineWidth="1" Color="6" ShapeString="Cross" ColorString="Red"/> | |
95 | </CurveStyle> | |
96 | </CurveStyles> | |
97 | </Cmd> | |
98 | <Cmd ScreenX="492.709" ScreenY="110.209" Type="CmdAddPointAxis" Ordinal="1" Identifier="Axes	point	1" GraphX="0" Description="Add axis point" GraphY="0" IsXOnly="False"/> | |
99 | <Cmd ScreenX="1201.54" ScreenY="110.209" Type="CmdAddPointAxis" Ordinal="2" Identifier="Axes	point	3" GraphX="6" Description="Add axis point" GraphY="0" IsXOnly="False"/> | |
100 | <Cmd ScreenX="494.098" ScreenY="20.3969" Type="CmdAddPointAxis" Ordinal="3" Identifier="Axes	point	5" GraphX="0" Description="Add axis point" GraphY="3" IsXOnly="False"/> | |
101 | <Cmd Type="CmdSettingsExport" Description="Export settings"> | |
102 | <Export PointsSelectionFunctions="3" PointsSelectionFunctionsString="Raw" LayoutFunctionsString="OnePerLine" LayoutFunctions="1" PointsIntervalFunctions="10" PointsSelectionRelations="3" DelimiterString="Commas" PointsIntervalRelations="1" PointsIntervalUnitsFunctions="1" XLabel="x" PointsSelectionRelationsString="Unknown" Delimiter="0" HeaderString="Simple" PointsIntervalUnitsRelations="1" OverrideCsvTsv="True" Header="1"> | |
103 | <CurveNamesNotExported/> | |
104 | </Export> | |
105 | <Export PointsSelectionFunctions="0" PointsSelectionFunctionsString="InterpolateAllCurves" LayoutFunctionsString="AllPerLine" LayoutFunctions="0" PointsIntervalFunctions="10" PointsSelectionRelations="3" DelimiterString="Commas" PointsIntervalRelations="1" PointsIntervalUnitsFunctions="1" XLabel="x" PointsSelectionRelationsString="Unknown" Delimiter="0" HeaderString="Simple" PointsIntervalUnitsRelations="1" OverrideCsvTsv="True" Header="1"> | |
106 | <CurveNamesNotExported/> | |
107 | </Export> | |
108 | </Cmd> | |
109 | <Cmd ScreenX="138.292" CurveName="green" ScreenY="140.804" Type="CmdAddPointGraph" Ordinal="1" Identifier="green	point	6" Description="Add graph point"/> | |
110 | <Cmd ScreenX="257.126" CurveName="green" ScreenY="129.948" Type="CmdAddPointGraph" Ordinal="1" Identifier="green	point	7" Description="Add graph point"/> | |
111 | <Cmd ScreenX="375.96" CurveName="green" ScreenY="120.407" Type="CmdAddPointGraph" Ordinal="2.5" Identifier="green	point	8" Description="Add graph point"/> | |
112 | <Cmd ScreenX="492.0" CurveName="green" ScreenY="110.2" Type="CmdAddPointGraph" Ordinal="3.5" Identifier="green	point	9" Description="Add graph point"/> | |
113 | <Cmd ScreenX="611.542" CurveName="green" ScreenY="98.3655" Type="CmdAddPointGraph" Ordinal="4.5" Identifier="green	point	10" Description="Add graph point"/> | |
114 | <Cmd ScreenX="729.681" CurveName="green" ScreenY="90.141" Type="CmdAddPointGraph" Ordinal="5.5" Identifier="green	point	11" Description="Add graph point"/> | |
115 | <Cmd ScreenX="847.82" CurveName="green" ScreenY="80.6005" Type="CmdAddPointGraph" Ordinal="6.5" Identifier="green	point	12" Description="Add graph point"/> | |
116 | <Cmd ScreenX="965.264" CurveName="green" ScreenY="72.705" Type="CmdAddPointGraph" Ordinal="7.5" Identifier="green	point	13" Description="Add graph point"/> | |
117 | <Cmd ScreenX="1083.4" CurveName="green" ScreenY="61.5196" Type="CmdAddPointGraph" Ordinal="8.5" Identifier="green	point	14" Description="Add graph point"/> | |
118 | <Cmd ScreenX="1200.85" CurveName="green" ScreenY="50.0052" Type="CmdAddPointGraph" Ordinal="9.5" Identifier="green	point	15" Description="Add graph point"/> | |
119 | <Cmd ScreenX="21.543" CurveName="blue" ScreenY="230.616" Type="CmdAddPointGraph" Ordinal="1" Identifier="blue	point	16" Description="Add graph point"/> | |
120 | <Cmd ScreenX="138.292" CurveName="blue" ScreenY="200.35" Type="CmdAddPointGraph" Ordinal="1" Identifier="blue	point	17" Description="Add graph point"/> | |
121 | <Cmd ScreenX="257.126" CurveName="blue" ScreenY="170.413" Type="CmdAddPointGraph" Ordinal="2.5" Identifier="blue	point	18" Description="Add graph point"/> | |
122 | <Cmd ScreenX="375.265" CurveName="blue" ScreenY="140.475" Type="CmdAddPointGraph" Ordinal="3.5" Identifier="blue	point	19" Description="Add graph point"/> | |
123 | <Cmd ScreenX="493.404" CurveName="blue" ScreenY="109.88" Type="CmdAddPointGraph" Ordinal="4.5" Identifier="blue	point	20" Description="Add graph point"/> | |
124 | <Cmd ScreenX="611.542" CurveName="blue" ScreenY="80.2715" Type="CmdAddPointGraph" Ordinal="5.5" Identifier="blue	point	21" Description="Add graph point"/> | |
125 | <Cmd ScreenX="728.986" CurveName="blue" ScreenY="50.6632" Type="CmdAddPointGraph" Ordinal="6.5" Identifier="blue	point	22" Description="Add graph point"/> | |
126 | <Cmd ScreenX="847.125" CurveName="blue" ScreenY="20.3969" Type="CmdAddPointGraph" Ordinal="7.5" Identifier="blue	point	23" Description="Add graph point"/> | |
127 | </CmdMediator> | |
128 | <Error Context="Shift+Control+E" Comment="userTriggered" File="src/main/MainWindow.cpp" Line="1292"/> | |
129 | </Document> | |
130 | </ErrorReport> |
0 | x,red | |
1 | -3.0033,-1.026 | |
2 | -2.9948,-1.023 | |
3 | -2.9862,-1.02 | |
4 | -2.9775,-1.017 | |
5 | -2.9688,-1.014 | |
6 | -2.9601,-1.01 | |
7 | -2.9513,-1.007 | |
8 | -2.9425,-1.004 | |
9 | -2.9336,-1.001 | |
10 | -2.9247,-0.997 | |
11 | -2.9159,-0.994 | |
12 | -2.907,-0.991 | |
13 | -2.898,-0.987 | |
14 | -2.8935,-0.986 | |
15 | -2.8851,-0.983 | |
16 | -2.8766,-0.979 | |
17 | -2.8679,-0.976 | |
18 | -2.8593,-0.973 | |
19 | -2.8506,-0.97 | |
20 | -2.8418,-0.967 | |
21 | -2.833,-0.963 | |
22 | -2.8242,-0.96 | |
23 | -2.8153,-0.957 | |
24 | -2.8065,-0.954 | |
25 | -2.7976,-0.95 | |
26 | -2.7887,-0.947 | |
27 | -2.7798,-0.944 | |
28 | -2.7753,-0.942 | |
29 | -2.7669,-0.939 | |
30 | -2.7583,-0.936 | |
31 | -2.7497,-0.933 | |
32 | -2.741,-0.929 | |
33 | -2.7323,-0.926 | |
34 | -2.7235,-0.923 | |
35 | -2.7148,-0.92 | |
36 | -2.7059,-0.916 | |
37 | -2.6971,-0.913 | |
38 | -2.6882,-0.91 | |
39 | -2.6793,-0.907 | |
40 | -2.6704,-0.903 | |
41 | -2.6615,-0.9 | |
42 | -2.657,-0.899 | |
43 | -2.6486,-0.895 | |
44 | -2.6401,-0.892 | |
45 | -2.6315,-0.889 | |
46 | -2.6228,-0.886 | |
47 | -2.6141,-0.883 | |
48 | -2.6053,-0.88 | |
49 | -2.5965,-0.876 | |
50 | -2.5877,-0.873 | |
51 | -2.5789,-0.87 | |
52 | -2.57,-0.867 | |
53 | -2.5611,-0.863 | |
54 | -2.5522,-0.86 | |
55 | -2.5433,-0.857 | |
56 | -2.5388,-0.855 | |
57 | -2.5304,-0.852 | |
58 | -2.5219,-0.849 | |
59 | -2.5133,-0.846 | |
60 | -2.5046,-0.843 | |
61 | -2.4959,-0.84 | |
62 | -2.4871,-0.836 | |
63 | -2.4784,-0.833 | |
64 | -2.4695,-0.83 | |
65 | -2.4607,-0.827 | |
66 | -2.4519,-0.824 | |
67 | -2.443,-0.82 | |
68 | -2.4341,-0.817 | |
69 | -2.4252,-0.814 | |
70 | -2.4163,-0.811 | |
71 | -2.4119,-0.809 | |
72 | -2.4037,-0.806 | |
73 | -2.3951,-0.803 | |
74 | -2.3864,-0.8 | |
75 | -2.3777,-0.797 | |
76 | -2.369,-0.794 | |
77 | -2.3602,-0.79 | |
78 | -2.3514,-0.787 | |
79 | -2.3426,-0.784 | |
80 | -2.3338,-0.781 | |
81 | -2.3249,-0.778 | |
82 | -2.316,-0.774 | |
83 | -2.3071,-0.771 | |
84 | -2.2982,-0.768 | |
85 | -2.2938,-0.767 | |
86 | -2.2855,-0.764 | |
87 | -2.2769,-0.76 | |
88 | -2.2683,-0.757 | |
89 | -2.2596,-0.754 | |
90 | -2.2509,-0.751 | |
91 | -2.2422,-0.748 | |
92 | -2.2334,-0.745 | |
93 | -2.2246,-0.742 | |
94 | -2.2158,-0.739 | |
95 | -2.2069,-0.736 | |
96 | -2.1981,-0.732 | |
97 | -2.1892,-0.729 | |
98 | -2.1803,-0.726 | |
99 | -2.1714,-0.723 | |
100 | -2.167,-0.721 | |
101 | -2.1587,-0.718 | |
102 | -2.1501,-0.715 | |
103 | -2.1415,-0.712 | |
104 | -2.1328,-0.709 | |
105 | -2.1241,-0.706 | |
106 | -2.1154,-0.703 | |
107 | -2.1066,-0.7 | |
108 | -2.0978,-0.697 | |
109 | -2.089,-0.694 | |
110 | -2.0802,-0.691 | |
111 | -2.0713,-0.688 | |
112 | -2.0625,-0.685 | |
113 | -2.0536,-0.681 | |
114 | -2.0447,-0.678 | |
115 | -2.0403,-0.677 | |
116 | -2.032,-0.674 | |
117 | -2.0234,-0.671 | |
118 | -2.0148,-0.668 | |
119 | -2.0062,-0.665 | |
120 | -1.9975,-0.662 | |
121 | -1.9887,-0.659 | |
122 | -1.98,-0.656 | |
123 | -1.9712,-0.653 | |
124 | -1.9624,-0.65 | |
125 | -1.9536,-0.647 | |
126 | -1.9447,-0.644 | |
127 | -1.9359,-0.641 | |
128 | -1.927,-0.638 | |
129 | -1.9182,-0.635 | |
130 | -1.9137,-0.633 | |
131 | -1.9053,-0.63 | |
132 | -1.8968,-0.627 | |
133 | -1.8882,-0.624 | |
134 | -1.8795,-0.621 | |
135 | -1.8709,-0.618 | |
136 | -1.8622,-0.616 | |
137 | -1.8534,-0.613 | |
138 | -1.8447,-0.61 | |
139 | -1.8359,-0.607 | |
140 | -1.8271,-0.604 | |
141 | -1.8183,-0.601 | |
142 | -1.8094,-0.598 | |
143 | -1.8006,-0.595 | |
144 | -1.7917,-0.592 | |
145 | -1.7829,-0.589 | |
146 | -1.7784,-0.587 | |
147 | -1.7701,-0.584 | |
148 | -1.7615,-0.581 | |
149 | -1.7529,-0.579 | |
150 | -1.7443,-0.576 | |
151 | -1.7356,-0.573 | |
152 | -1.7269,-0.57 | |
153 | -1.7182,-0.567 | |
154 | -1.7094,-0.564 | |
155 | -1.7007,-0.561 | |
156 | -1.6919,-0.558 | |
157 | -1.6831,-0.555 | |
158 | -1.6742,-0.552 | |
159 | -1.6654,-0.549 | |
160 | -1.6565,-0.546 | |
161 | -1.6477,-0.543 | |
162 | -1.6432,-0.542 | |
163 | -1.6349,-0.539 | |
164 | -1.6263,-0.536 | |
165 | -1.6177,-0.533 | |
166 | -1.6091,-0.53 | |
167 | -1.6004,-0.528 | |
168 | -1.5917,-0.525 | |
169 | -1.583,-0.522 | |
170 | -1.5742,-0.519 | |
171 | -1.5655,-0.516 | |
172 | -1.5567,-0.513 | |
173 | -1.5479,-0.51 | |
174 | -1.539,-0.507 | |
175 | -1.5302,-0.504 | |
176 | -1.5214,-0.501 | |
177 | -1.5125,-0.499 | |
178 | -1.508,-0.497 | |
179 | -1.4996,-0.494 | |
180 | -1.4911,-0.491 | |
181 | -1.4825,-0.489 | |
182 | -1.4739,-0.486 | |
183 | -1.4652,-0.483 | |
184 | -1.4565,-0.48 | |
185 | -1.4478,-0.477 | |
186 | -1.439,-0.474 | |
187 | -1.4303,-0.471 | |
188 | -1.4215,-0.469 | |
189 | -1.4127,-0.466 | |
190 | -1.4038,-0.463 | |
191 | -1.395,-0.46 | |
192 | -1.3861,-0.457 | |
193 | -1.3773,-0.454 | |
194 | -1.3728,-0.453 | |
195 | -1.3644,-0.45 | |
196 | -1.3559,-0.447 | |
197 | -1.3473,-0.444 | |
198 | -1.3386,-0.442 | |
199 | -1.33,-0.439 | |
200 | -1.3213,-0.436 | |
201 | -1.3125,-0.433 | |
202 | -1.3038,-0.43 | |
203 | -1.295,-0.427 | |
204 | -1.2862,-0.424 | |
205 | -1.2773,-0.422 | |
206 | -1.2685,-0.419 | |
207 | -1.2597,-0.416 | |
208 | -1.2508,-0.413 | |
209 | -1.2419,-0.41 | |
210 | -1.2375,-0.409 | |
211 | -1.2291,-0.406 | |
212 | -1.2206,-0.403 | |
213 | -1.212,-0.4 | |
214 | -1.2033,-0.397 | |
215 | -1.1946,-0.395 | |
216 | -1.1859,-0.392 | |
217 | -1.1771,-0.389 | |
218 | -1.1684,-0.386 | |
219 | -1.1596,-0.383 | |
220 | -1.1507,-0.38 | |
221 | -1.1419,-0.378 | |
222 | -1.133,-0.375 | |
223 | -1.1242,-0.372 | |
224 | -1.1153,-0.369 | |
225 | -1.1108,-0.367 | |
226 | -1.1024,-0.365 | |
227 | -1.0938,-0.362 | |
228 | -1.0852,-0.359 | |
229 | -1.0766,-0.356 | |
230 | -1.0679,-0.353 | |
231 | -1.0591,-0.351 | |
232 | -1.0504,-0.348 | |
233 | -1.0416,-0.345 | |
234 | -1.0328,-0.342 | |
235 | -1.0239,-0.339 | |
236 | -1.0151,-0.336 | |
237 | -1.0062,-0.333 | |
238 | -0.9973,-0.331 | |
239 | -0.9884,-0.328 | |
240 | -0.9839,-0.326 | |
241 | -0.9756,-0.324 | |
242 | -0.967,-0.321 | |
243 | -0.9584,-0.318 | |
244 | -0.9497,-0.315 | |
245 | -0.941,-0.312 | |
246 | -0.9322,-0.309 | |
247 | -0.9235,-0.307 | |
248 | -0.9146,-0.304 | |
249 | -0.9058,-0.301 | |
250 | -0.8969,-0.298 | |
251 | -0.8881,-0.295 | |
252 | -0.8792,-0.292 | |
253 | -0.8702,-0.289 | |
254 | -0.8657,-0.288 | |
255 | -0.8572,-0.285 | |
256 | -0.8487,-0.282 | |
257 | -0.8401,-0.279 | |
258 | -0.8314,-0.277 | |
259 | -0.8227,-0.274 | |
260 | -0.814,-0.271 | |
261 | -0.8052,-0.268 | |
262 | -0.7964,-0.265 | |
263 | -0.7875,-0.262 | |
264 | -0.7787,-0.259 | |
265 | -0.7698,-0.256 | |
266 | -0.7609,-0.254 | |
267 | -0.7519,-0.251 | |
268 | -0.743,-0.248 | |
269 | -0.7386,-0.246 | |
270 | -0.7304,-0.244 | |
271 | -0.7218,-0.241 | |
272 | -0.7131,-0.238 | |
273 | -0.7044,-0.235 | |
274 | -0.6956,-0.232 | |
275 | -0.6868,-0.229 | |
276 | -0.678,-0.226 | |
277 | -0.6692,-0.223 | |
278 | -0.6603,-0.22 | |
279 | -0.6514,-0.217 | |
280 | -0.6425,-0.215 | |
281 | -0.6336,-0.212 | |
282 | -0.629,-0.21 | |
283 | -0.6206,-0.207 | |
284 | -0.612,-0.204 | |
285 | -0.6034,-0.202 | |
286 | -0.5947,-0.199 | |
287 | -0.586,-0.196 | |
288 | -0.5773,-0.193 | |
289 | -0.5685,-0.19 | |
290 | -0.5596,-0.187 | |
291 | -0.5508,-0.184 | |
292 | -0.5419,-0.181 | |
293 | -0.533,-0.178 | |
294 | -0.5241,-0.175 | |
295 | -0.5152,-0.172 | |
296 | -0.5107,-0.171 | |
297 | -0.5023,-0.168 | |
298 | -0.4937,-0.165 | |
299 | -0.4851,-0.162 | |
300 | -0.4764,-0.159 | |
301 | -0.4677,-0.156 | |
302 | -0.4589,-0.153 | |
303 | -0.4501,-0.15 | |
304 | -0.4413,-0.147 | |
305 | -0.4325,-0.144 | |
306 | -0.4236,-0.141 | |
307 | -0.4147,-0.138 | |
308 | -0.4058,-0.135 | |
309 | -0.3969,-0.132 | |
310 | -0.3924,-0.13 | |
311 | -0.384,-0.128 | |
312 | -0.3754,-0.125 | |
313 | -0.3668,-0.122 | |
314 | -0.3581,-0.119 | |
315 | -0.3494,-0.116 | |
316 | -0.3407,-0.113 | |
317 | -0.3319,-0.11 | |
318 | -0.3231,-0.107 | |
319 | -0.3143,-0.104 | |
320 | -0.3054,-0.1 | |
321 | -0.2965,-0.097 | |
322 | -0.2876,-0.094 | |
323 | -0.2787,-0.091 | |
324 | -0.2698,-0.088 | |
325 | -0.2654,-0.087 | |
326 | -0.2572,-0.084 | |
327 | -0.2486,-0.081 | |
328 | -0.2399,-0.078 | |
329 | -0.2313,-0.075 | |
330 | -0.2225,-0.071 | |
331 | -0.2138,-0.068 | |
332 | -0.205,-0.065 | |
333 | -0.1962,-0.062 | |
334 | -0.1874,-0.059 | |
335 | -0.1785,-0.056 | |
336 | -0.1697,-0.053 | |
337 | -0.1608,-0.05 | |
338 | -0.1519,-0.046 | |
339 | -0.1431,-0.043 | |
340 | -0.1387,-0.042 | |
341 | -0.1304,-0.039 | |
342 | -0.1219,-0.036 | |
343 | -0.1132,-0.032 | |
344 | -0.1046,-0.029 | |
345 | -0.0959,-0.026 | |
346 | -0.0871,-0.023 | |
347 | -0.0784,-0.02 | |
348 | -0.0696,-0.017 | |
349 | -0.0608,-0.013 | |
350 | -0.052,-0.01 | |
351 | -0.0432,-0.007 | |
352 | -0.0343,-0.004 | |
353 | -0.0255,-0.0005 | |
354 | -0.0167,0.003 | |
355 | -0.0122,0.004 | |
356 | -0.0038,0.007 | |
357 | 0.0047,0.011 | |
358 | 0.0133,0.014 | |
359 | 0.0219,0.017 | |
360 | 0.0306,0.02 | |
361 | 0.0392,0.023 | |
362 | 0.0479,0.027 | |
363 | 0.0567,0.03 | |
364 | 0.0654,0.033 | |
365 | 0.0742,0.037 | |
366 | 0.0829,0.04 | |
367 | 0.0917,0.043 | |
368 | 0.1005,0.047 | |
369 | 0.1093,0.05 | |
370 | 0.1181,0.053 | |
371 | 0.127,0.057 | |
372 | 0.1314,0.058 | |
373 | 0.1397,0.061 | |
374 | 0.1482,0.065 | |
375 | 0.1568,0.068 | |
376 | 0.1654,0.071 | |
377 | 0.174,0.075 | |
378 | 0.1827,0.078 | |
379 | 0.1914,0.081 | |
380 | 0.2001,0.085 | |
381 | 0.2088,0.088 | |
382 | 0.2175,0.091 | |
383 | 0.2262,0.095 | |
384 | 0.235,0.098 | |
385 | 0.2438,0.101 | |
386 | 0.2525,0.105 | |
387 | 0.2613,0.108 | |
388 | 0.2701,0.112 | |
389 | 0.2789,0.115 | |
390 | 0.2833,0.117 | |
391 | 0.2917,0.12 | |
392 | 0.3002,0.123 | |
393 | 0.3087,0.127 | |
394 | 0.3173,0.13 | |
395 | 0.3259,0.133 | |
396 | 0.3345,0.137 | |
397 | 0.3432,0.14 | |
398 | 0.3519,0.143 | |
399 | 0.3605,0.147 | |
400 | 0.3692,0.15 | |
401 | 0.378,0.154 | |
402 | 0.3867,0.157 | |
403 | 0.3954,0.16 | |
404 | 0.4042,0.164 | |
405 | 0.4129,0.167 | |
406 | 0.4217,0.171 | |
407 | 0.4305,0.174 | |
408 | 0.4392,0.177 | |
409 | 0.4436,0.179 | |
410 | 0.452,0.182 | |
411 | 0.4605,0.186 | |
412 | 0.4691,0.189 | |
413 | 0.4776,0.192 | |
414 | 0.4862,0.196 | |
415 | 0.4948,0.199 | |
416 | 0.5035,0.202 | |
417 | 0.5121,0.206 | |
418 | 0.5208,0.209 | |
419 | 0.5295,0.213 | |
420 | 0.5382,0.216 | |
421 | 0.5469,0.219 | |
422 | 0.5556,0.223 | |
423 | 0.5644,0.226 | |
424 | 0.5731,0.229 | |
425 | 0.5819,0.233 | |
426 | 0.5906,0.236 | |
427 | 0.5994,0.24 | |
428 | 0.6082,0.243 | |
429 | 0.6125,0.245 | |
430 | 0.6209,0.248 | |
431 | 0.6294,0.251 | |
432 | 0.6379,0.255 | |
433 | 0.6465,0.258 | |
434 | 0.6551,0.261 | |
435 | 0.6637,0.264 | |
436 | 0.6724,0.268 | |
437 | 0.681,0.271 | |
438 | 0.6897,0.274 | |
439 | 0.6984,0.278 | |
440 | 0.7071,0.281 | |
441 | 0.7158,0.284 | |
442 | 0.7246,0.288 | |
443 | 0.7333,0.291 | |
444 | 0.7421,0.294 | |
445 | 0.7508,0.298 | |
446 | 0.7596,0.301 | |
447 | 0.7684,0.304 | |
448 | 0.7728,0.306 | |
449 | 0.7813,0.309 | |
450 | 0.7898,0.312 | |
451 | 0.7983,0.315 | |
452 | 0.8069,0.319 | |
453 | 0.8155,0.322 | |
454 | 0.8241,0.325 | |
455 | 0.8327,0.328 | |
456 | 0.8414,0.331 | |
457 | 0.8501,0.335 | |
458 | 0.8588,0.338 | |
459 | 0.8675,0.341 | |
460 | 0.8763,0.344 | |
461 | 0.885,0.348 | |
462 | 0.8938,0.351 | |
463 | 0.9025,0.354 | |
464 | 0.9113,0.357 | |
465 | 0.9201,0.36 | |
466 | 0.9289,0.363 | |
467 | 0.9333,0.365 | |
468 | 0.9417,0.368 | |
469 | 0.9502,0.371 | |
470 | 0.9588,0.374 | |
471 | 0.9674,0.377 | |
472 | 0.976,0.38 | |
473 | 0.9847,0.383 | |
474 | 0.9933,0.387 | |
475 | 1.0021,0.39 | |
476 | 1.0108,0.393 | |
477 | 1.0195,0.396 | |
478 | 1.0283,0.399 | |
479 | 1.0371,0.402 | |
480 | 1.0458,0.405 | |
481 | 1.0546,0.408 | |
482 | 1.0635,0.411 | |
483 | 1.0723,0.414 | |
484 | 1.0811,0.417 | |
485 | 1.0855,0.419 | |
486 | 1.0938,0.421 | |
487 | 1.1024,0.424 | |
488 | 1.111,0.427 | |
489 | 1.1196,0.43 | |
490 | 1.1282,0.433 | |
491 | 1.1369,0.436 | |
492 | 1.1457,0.439 | |
493 | 1.1544,0.442 | |
494 | 1.1632,0.445 | |
495 | 1.1719,0.448 | |
496 | 1.1807,0.451 | |
497 | 1.1896,0.454 | |
498 | 1.1984,0.456 | |
499 | 1.2072,0.459 | |
500 | 1.2161,0.462 | |
501 | 1.2206,0.464 | |
502 | 1.229,0.467 | |
503 | 1.2375,0.469 | |
504 | 1.2461,0.472 | |
505 | 1.2547,0.475 | |
506 | 1.2634,0.478 | |
507 | 1.2721,0.481 | |
508 | 1.2808,0.483 | |
509 | 1.2896,0.486 | |
510 | 1.2983,0.489 | |
511 | 1.3071,0.492 | |
512 | 1.3159,0.495 | |
513 | 1.3248,0.497 | |
514 | 1.3336,0.5 | |
515 | 1.3425,0.503 | |
516 | 1.3513,0.506 | |
517 | 1.3558,0.507 | |
518 | 1.3643,0.51 | |
519 | 1.3728,0.513 | |
520 | 1.3814,0.515 | |
521 | 1.39,0.518 | |
522 | 1.3987,0.521 | |
523 | 1.4074,0.523 | |
524 | 1.4161,0.526 | |
525 | 1.4249,0.529 | |
526 | 1.4337,0.532 | |
527 | 1.4425,0.534 | |
528 | 1.4513,0.537 | |
529 | 1.4602,0.54 | |
530 | 1.469,0.542 | |
531 | 1.4779,0.545 | |
532 | 1.4868,0.548 | |
533 | 1.4912,0.549 | |
534 | 1.4996,0.552 | |
535 | 1.5081,0.554 | |
536 | 1.5168,0.557 | |
537 | 1.5254,0.56 | |
538 | 1.5341,0.562 | |
539 | 1.5428,0.565 | |
540 | 1.5516,0.568 | |
541 | 1.5604,0.57 | |
542 | 1.5692,0.573 | |
543 | 1.578,0.575 | |
544 | 1.5869,0.578 | |
545 | 1.5957,0.581 | |
546 | 1.6046,0.583 | |
547 | 1.6135,0.586 | |
548 | 1.618,0.587 | |
549 | 1.6264,0.59 | |
550 | 1.635,0.592 | |
551 | 1.6436,0.595 | |
552 | 1.6522,0.598 | |
553 | 1.6609,0.6 | |
554 | 1.6696,0.603 | |
555 | 1.6784,0.605 | |
556 | 1.6872,0.608 | |
557 | 1.696,0.61 | |
558 | 1.7048,0.613 | |
559 | 1.7136,0.616 | |
560 | 1.7225,0.618 | |
561 | 1.7314,0.621 | |
562 | 1.7403,0.623 | |
563 | 1.7492,0.626 | |
564 | 1.7535,0.627 | |
565 | 1.7618,0.63 | |
566 | 1.7704,0.632 | |
567 | 1.779,0.635 | |
568 | 1.7877,0.637 | |
569 | 1.7964,0.64 | |
570 | 1.8052,0.642 | |
571 | 1.8139,0.645 | |
572 | 1.8227,0.647 | |
573 | 1.8316,0.65 | |
574 | 1.8404,0.652 | |
575 | 1.8493,0.655 | |
576 | 1.8581,0.657 | |
577 | 1.867,0.66 | |
578 | 1.8759,0.663 | |
579 | 1.8803,0.664 | |
580 | 1.8886,0.666 | |
581 | 1.8972,0.669 | |
582 | 1.9058,0.671 | |
583 | 1.9145,0.674 | |
584 | 1.9232,0.676 | |
585 | 1.9319,0.679 | |
586 | 1.9407,0.681 | |
587 | 1.9495,0.684 | |
588 | 1.9583,0.686 | |
589 | 1.9671,0.689 | |
590 | 1.9759,0.691 | |
591 | 1.9848,0.694 | |
592 | 1.9937,0.696 | |
593 | 2.0025,0.699 | |
594 | 2.007,0.7 | |
595 | 2.0155,0.702 | |
596 | 2.024,0.705 | |
597 | 2.0326,0.707 | |
598 | 2.0413,0.71 | |
599 | 2.0499,0.712 | |
600 | 2.0586,0.715 | |
601 | 2.0674,0.717 | |
602 | 2.0761,0.72 | |
603 | 2.0849,0.722 | |
604 | 2.0937,0.725 | |
605 | 2.1025,0.727 | |
606 | 2.1114,0.73 | |
607 | 2.1202,0.732 | |
608 | 2.1291,0.735 | |
609 | 2.1379,0.737 | |
610 | 2.1424,0.738 | |
611 | 2.1509,0.741 | |
612 | 2.1594,0.743 | |
613 | 2.168,0.746 | |
614 | 2.1766,0.748 | |
615 | 2.1853,0.751 | |
616 | 2.194,0.753 | |
617 | 2.2027,0.756 | |
618 | 2.2114,0.758 | |
619 | 2.2202,0.761 | |
620 | 2.229,0.763 | |
621 | 2.2378,0.766 | |
622 | 2.2466,0.768 | |
623 | 2.2555,0.771 | |
624 | 2.2643,0.773 | |
625 | 2.2732,0.776 | |
626 | 2.2821,0.778 | |
627 | 2.2864,0.779 | |
628 | 2.2947,0.782 | |
629 | 2.3033,0.784 | |
630 | 2.3119,0.787 | |
631 | 2.3206,0.789 | |
632 | 2.3292,0.792 | |
633 | 2.338,0.794 | |
634 | 2.3467,0.797 | |
635 | 2.3555,0.799 | |
636 | 2.3643,0.802 | |
637 | 2.3731,0.804 | |
638 | 2.3819,0.807 | |
639 | 2.3907,0.809 | |
640 | 2.3996,0.812 | |
641 | 2.4084,0.814 | |
642 | 2.4173,0.817 | |
643 | 2.4217,0.818 | |
644 | 2.43,0.821 | |
645 | 2.4386,0.823 | |
646 | 2.4472,0.826 | |
647 | 2.4558,0.828 | |
648 | 2.4645,0.831 | |
649 | 2.4732,0.833 | |
650 | 2.482,0.836 | |
651 | 2.4907,0.838 | |
652 | 2.4995,0.841 | |
653 | 2.5083,0.844 | |
654 | 2.5171,0.846 | |
655 | 2.5259,0.849 | |
656 | 2.5348,0.851 | |
657 | 2.5436,0.854 | |
658 | 2.5525,0.857 | |
659 | 2.557,0.858 | |
660 | 2.5654,0.86 | |
661 | 2.5739,0.863 | |
662 | 2.5825,0.865 | |
663 | 2.5911,0.868 | |
664 | 2.5998,0.871 | |
665 | 2.6085,0.873 | |
666 | 2.6172,0.876 | |
667 | 2.626,0.879 | |
668 | 2.6348,0.881 | |
669 | 2.6436,0.884 | |
670 | 2.6524,0.886 | |
671 | 2.6612,0.889 | |
672 | 2.6701,0.892 | |
673 | 2.6789,0.894 | |
674 | 2.6878,0.897 | |
675 | 2.6923,0.899 | |
676 | 2.7007,0.901 | |
677 | 2.7092,0.904 | |
678 | 2.7178,0.906 | |
679 | 2.7265,0.909 | |
680 | 2.7351,0.912 | |
681 | 2.7438,0.914 | |
682 | 2.7526,0.917 | |
683 | 2.7614,0.92 | |
684 | 2.7702,0.923 | |
685 | 2.779,0.925 | |
686 | 2.7878,0.928 | |
687 | 2.7966,0.931 | |
688 | 2.8055,0.934 | |
689 | 2.8144,0.936 | |
690 | 2.8233,0.939 | |
691 | 2.8277,0.941 | |
692 | 2.836,0.943 | |
693 | 2.8446,0.946 | |
694 | 2.8532,0.949 | |
695 | 2.8618,0.951 | |
696 | 2.8705,0.954 | |
697 | 2.8793,0.957 | |
698 | 2.8881,0.96 | |
699 | 2.8969,0.963 | |
700 | 2.9057,0.965 | |
701 | 2.9145,0.968 | |
702 | 2.9234,0.971 | |
703 | 2.9322,0.974 | |
704 | 2.9411,0.977 | |
705 | 2.95,0.98 | |
706 | 2.9545,0.981 | |
707 | 2.9628,0.984 | |
708 | 2.9713,0.987 | |
709 | 2.98,0.99 | |
710 | 2.9886,0.993 | |
711 | 2.9974,0.995 | |
712 | 3.0061,0.998 | |
713 | 3.0149,1.001 | |
714 | 3.0237,1.004 | |
715 | 3.0325,1.007 | |
716 | 3.0414,1.01 | |
717 | 3.0503,1.013 | |
718 | 3.0592,1.016 | |
719 | 3.0681,1.019 | |
720 | 3.0726,1.021 | |
721 | 3.0811,1.024 | |
722 | 3.0896,1.027 | |
723 | 3.0982,1.029 | |
724 | 3.1069,1.032 | |
725 | 3.1156,1.035 | |
726 | 3.1243,1.038 | |
727 | 3.1331,1.041 | |
728 | 3.1419,1.044 | |
729 | 3.1507,1.048 | |
730 | 3.1596,1.051 | |
731 | 3.1685,1.054 | |
732 | 3.1774,1.057 | |
733 | 3.1863,1.06 | |
734 | 3.1952,1.063 | |
735 | 3.1996,1.065 | |
736 | 3.2079,1.068 | |
737 | 3.2165,1.071 | |
738 | 3.2251,1.074 | |
739 | 3.2338,1.077 | |
740 | 3.2426,1.08 | |
741 | 3.2514,1.083 | |
742 | 3.2602,1.086 | |
743 | 3.269,1.089 | |
744 | 3.2779,1.092 | |
745 | 3.2868,1.095 | |
746 | 3.2957,1.099 | |
747 | 3.3046,1.102 | |
748 | 3.3092,1.103 | |
749 | 3.3176,1.107 | |
750 | 3.3261,1.11 | |
751 | 3.3348,1.113 | |
752 | 3.3434,1.116 | |
753 | 3.3521,1.119 | |
754 | 3.3609,1.122 | |
755 | 3.3697,1.125 | |
756 | 3.3785,1.129 | |
757 | 3.3874,1.132 | |
758 | 3.3963,1.135 | |
759 | 3.4051,1.138 | |
760 | 3.4141,1.141 | |
761 | 3.423,1.145 | |
762 | 3.4275,1.146 | |
763 | 3.4359,1.149 | |
764 | 3.4444,1.153 | |
765 | 3.453,1.156 | |
766 | 3.4617,1.159 | |
767 | 3.4705,1.162 | |
768 | 3.4792,1.165 | |
769 | 3.488,1.169 | |
770 | 3.4968,1.172 | |
771 | 3.5057,1.175 | |
772 | 3.5146,1.178 | |
773 | 3.5235,1.182 | |
774 | 3.5324,1.185 | |
775 | 3.5413,1.188 | |
776 | 3.5458,1.19 | |
777 | 3.5541,1.193 | |
778 | 3.5627,1.196 | |
779 | 3.5713,1.199 | |
780 | 3.58,1.202 | |
781 | 3.5887,1.206 | |
782 | 3.5975,1.209 | |
783 | 3.6063,1.212 | |
784 | 3.6151,1.216 | |
785 | 3.6239,1.219 | |
786 | 3.6328,1.222 | |
787 | 3.6417,1.225 | |
788 | 3.6506,1.229 | |
789 | 3.6595,1.232 | |
790 | 3.664,1.234 | |
791 | 3.6723,1.237 | |
792 | 3.6809,1.24 | |
793 | 3.6895,1.243 | |
794 | 3.6982,1.246 | |
795 | 3.7069,1.25 | |
796 | 3.7156,1.253 | |
797 | 3.7244,1.256 | |
798 | 3.7332,1.26 | |
799 | 3.7421,1.263 | |
800 | 3.7509,1.266 | |
801 | 3.7598,1.269 | |
802 | 3.7686,1.273 | |
803 | 3.7775,1.276 | |
804 | 3.7864,1.279 | |
805 | 3.7908,1.281 | |
806 | 3.799,1.284 | |
807 | 3.8076,1.287 | |
808 | 3.8163,1.29 | |
809 | 3.8249,1.294 | |
810 | 3.8337,1.297 | |
811 | 3.8424,1.3 | |
812 | 3.8512,1.303 | |
813 | 3.86,1.307 | |
814 | 3.8688,1.31 | |
815 | 3.8776,1.313 | |
816 | 3.8865,1.317 | |
817 | 3.8953,1.32 | |
818 | 3.9042,1.323 | |
819 | 3.9131,1.327 | |
820 | 3.9174,1.328 | |
821 | 3.9257,1.331 | |
822 | 3.9343,1.334 | |
823 | 3.9429,1.338 | |
824 | 3.9515,1.341 | |
825 | 3.9602,1.344 | |
826 | 3.9689,1.347 | |
827 | 3.9777,1.35 | |
828 | 3.9864,1.354 | |
829 | 3.9952,1.357 | |
830 | 4.004,1.36 | |
831 | 4.0128,1.363 | |
832 | 4.0217,1.367 | |
833 | 4.0305,1.37 | |
834 | 4.0393,1.373 | |
835 | 4.0482,1.376 | |
836 | 4.0525,1.378 | |
837 | 4.0608,1.381 | |
838 | 4.0693,1.384 | |
839 | 4.0779,1.387 | |
840 | 4.0866,1.391 | |
841 | 4.0952,1.394 | |
842 | 4.1039,1.397 | |
843 | 4.1126,1.4 | |
844 | 4.1213,1.403 | |
845 | 4.1301,1.406 | |
846 | 4.1388,1.41 | |
847 | 4.1476,1.413 | |
848 | 4.1564,1.416 | |
849 | 4.1652,1.419 | |
850 | 4.174,1.422 | |
851 | 4.1828,1.426 | |
852 | 4.1916,1.429 | |
853 | 4.196,1.43 | |
854 | 4.2043,1.433 | |
855 | 4.2129,1.436 | |
856 | 4.2214,1.44 | |
857 | 4.23,1.443 | |
858 | 4.2386,1.446 | |
859 | 4.2473,1.449 | |
860 | 4.256,1.452 | |
861 | 4.2647,1.455 | |
862 | 4.2734,1.458 | |
863 | 4.2821,1.461 | |
864 | 4.2908,1.465 | |
865 | 4.2996,1.468 | |
866 | 4.3083,1.471 | |
867 | 4.3171,1.474 | |
868 | 4.3259,1.477 | |
869 | 4.3346,1.48 | |
870 | 4.3434,1.483 | |
871 | 4.3522,1.486 | |
872 | 4.3566,1.488 | |
873 | 4.3648,1.491 | |
874 | 4.3734,1.494 | |
875 | 4.3819,1.497 | |
876 | 4.3905,1.5 | |
877 | 4.3991,1.503 | |
878 | 4.4078,1.506 | |
879 | 4.4164,1.509 | |
880 | 4.4251,1.512 | |
881 | 4.4338,1.515 | |
882 | 4.4425,1.518 | |
883 | 4.4512,1.521 | |
884 | 4.46,1.524 | |
885 | 4.4687,1.527 | |
886 | 4.4774,1.531 | |
887 | 4.4862,1.534 | |
888 | 4.495,1.537 | |
889 | 4.5037,1.54 | |
890 | 4.5125,1.543 | |
891 | 4.5169,1.544 | |
892 | 4.5253,1.547 | |
893 | 4.5338,1.55 | |
894 | 4.5424,1.553 | |
895 | 4.5509,1.556 | |
896 | 4.5595,1.559 | |
897 | 4.5682,1.562 | |
898 | 4.5768,1.565 | |
899 | 4.5854,1.568 | |
900 | 4.5941,1.571 | |
901 | 4.6028,1.574 | |
902 | 4.6115,1.577 | |
903 | 4.6202,1.58 | |
904 | 4.629,1.583 | |
905 | 4.6377,1.586 | |
906 | 4.6464,1.589 | |
907 | 4.6552,1.592 | |
908 | 4.664,1.595 | |
909 | 4.6727,1.598 | |
910 | 4.6815,1.601 | |
911 | 4.6859,1.602 | |
912 | 4.6943,1.605 | |
913 | 4.7028,1.608 | |
914 | 4.7114,1.611 | |
915 | 4.7199,1.614 | |
916 | 4.7285,1.617 | |
917 | 4.7372,1.619 | |
918 | 4.7458,1.622 | |
919 | 4.7545,1.625 | |
920 | 4.7631,1.628 | |
921 | 4.7718,1.631 | |
922 | 4.7806,1.634 | |
923 | 4.7893,1.637 | |
924 | 4.798,1.64 | |
925 | 4.8068,1.643 | |
926 | 4.8155,1.645 | |
927 | 4.8243,1.648 | |
928 | 4.8331,1.651 | |
929 | 4.8418,1.654 | |
930 | 4.8506,1.657 | |
931 | 4.855,1.659 | |
932 | 4.8634,1.661 | |
933 | 4.8719,1.664 | |
934 | 4.8805,1.667 | |
935 | 4.889,1.67 | |
936 | 4.8977,1.672 | |
937 | 4.9063,1.675 | |
938 | 4.915,1.678 | |
939 | 4.9237,1.681 | |
940 | 4.9324,1.684 | |
941 | 4.9411,1.687 | |
942 | 4.9498,1.689 | |
943 | 4.9586,1.692 | |
944 | 4.9673,1.695 | |
945 | 4.9761,1.698 | |
946 | 4.9849,1.701 | |
947 | 4.9937,1.703 | |
948 | 5.0025,1.706 | |
949 | 5.0113,1.709 | |
950 | 5.0157,1.71 | |
951 | 5.024,1.713 | |
952 | 5.0325,1.716 | |
953 | 5.0411,1.719 | |
954 | 5.0497,1.721 | |
955 | 5.0584,1.724 | |
956 | 5.0671,1.727 | |
957 | 5.0758,1.729 | |
958 | 5.0845,1.732 | |
959 | 5.0932,1.735 | |
960 | 5.102,1.738 | |
961 | 5.1108,1.74 | |
962 | 5.1196,1.743 | |
963 | 5.1284,1.746 | |
964 | 5.1372,1.749 | |
965 | 5.146,1.751 | |
966 | 5.1548,1.754 | |
967 | 5.1593,1.756 | |
968 | 5.1677,1.758 | |
969 | 5.1762,1.761 | |
970 | 5.1848,1.763 | |
971 | 5.1934,1.766 | |
972 | 5.2021,1.769 | |
973 | 5.2108,1.771 | |
974 | 5.2195,1.774 | |
975 | 5.2282,1.777 | |
976 | 5.237,1.779 | |
977 | 5.2457,1.782 | |
978 | 5.2545,1.785 | |
979 | 5.2633,1.787 | |
980 | 5.2722,1.79 | |
981 | 5.281,1.793 | |
982 | 5.2899,1.796 | |
983 | 5.2987,1.798 | |
984 | 5.3031,1.8 | |
985 | 5.3115,1.802 | |
986 | 5.32,1.805 | |
987 | 5.3286,1.807 | |
988 | 5.3373,1.81 | |
989 | 5.346,1.812 | |
990 | 5.3547,1.815 | |
991 | 5.3634,1.818 | |
992 | 5.3722,1.82 | |
993 | 5.3809,1.823 | |
994 | 5.3898,1.826 | |
995 | 5.3986,1.828 | |
996 | 5.4074,1.831 | |
997 | 5.4163,1.834 | |
998 | 5.4251,1.836 | |
999 | 5.434,1.839 | |
1000 | 5.4384,1.84 | |
1001 | 5.4468,1.843 | |
1002 | 5.4553,1.845 | |
1003 | 5.464,1.848 | |
1004 | 5.4726,1.85 | |
1005 | 5.4813,1.853 | |
1006 | 5.49,1.855 | |
1007 | 5.4988,1.858 | |
1008 | 5.5075,1.861 | |
1009 | 5.5163,1.863 | |
1010 | 5.5252,1.866 | |
1011 | 5.534,1.868 | |
1012 | 5.5429,1.871 | |
1013 | 5.5517,1.874 | |
1014 | 5.5606,1.876 | |
1015 | 5.5695,1.879 | |
1016 | 5.5739,1.88 | |
1017 | 5.5822,1.883 | |
1018 | 5.5907,1.885 | |
1019 | 5.5994,1.888 | |
1020 | 5.608,1.89 | |
1021 | 5.6168,1.893 | |
1022 | 5.6255,1.895 | |
1023 | 5.6343,1.898 | |
1024 | 5.6431,1.9 | |
1025 | 5.6519,1.903 | |
1026 | 5.6607,1.906 | |
1027 | 5.6696,1.908 | |
1028 | 5.6785,1.911 | |
1029 | 5.6874,1.913 | |
1030 | 5.6963,1.916 | |
1031 | 5.7007,1.917 | |
1032 | 5.709,1.92 | |
1033 | 5.7176,1.922 | |
1034 | 5.7262,1.925 | |
1035 | 5.7349,1.927 | |
1036 | 5.7436,1.93 | |
1037 | 5.7523,1.932 | |
1038 | 5.7611,1.935 | |
1039 | 5.7699,1.937 | |
1040 | 5.7787,1.94 | |
1041 | 5.7876,1.942 | |
1042 | 5.7964,1.945 | |
1043 | 5.8053,1.948 | |
1044 | 5.8142,1.95 | |
1045 | 5.8231,1.953 | |
1046 | 5.8276,1.954 | |
1047 | 5.8359,1.956 | |
1048 | 5.8445,1.959 | |
1049 | 5.8531,1.961 | |
1050 | 5.8618,1.964 | |
1051 | 5.8705,1.966 | |
1052 | 5.8792,1.969 | |
1053 | 5.888,1.971 | |
1054 | 5.8968,1.974 | |
1055 | 5.9056,1.977 | |
1056 | 5.9145,1.979 | |
1057 | 5.9233,1.982 | |
1058 | 5.9322,1.984 | |
1059 | 5.9411,1.987 | |
1060 | 5.95,1.989 | |
1061 | 5.9545,1.991 | |
1062 | 5.9628,1.993 | |
1063 | 5.9713,1.995 | |
1064 | 5.98,1.998 | |
1065 | 5.9887,2 | |
1066 | 5.9974,2.003 | |
1067 | x,green | |
1068 | -3.9967,-4.04 | |
1069 | -3.9893,-4.033 | |
1070 | -3.9819,-4.025 | |
1071 | -3.9743,-4.017 | |
1072 | -3.9665,-4.01 | |
1073 | -3.955,-3.998 | |
1074 | -3.9476,-3.99 | |
1075 | -3.9402,-3.983 | |
1076 | -3.9327,-3.975 | |
1077 | -3.9251,-3.967 | |
1078 | -3.9173,-3.959 | |
1079 | -3.9059,-3.948 | |
1080 | -3.8985,-3.94 | |
1081 | -3.8911,-3.933 | |
1082 | -3.8836,-3.925 | |
1083 | -3.8759,-3.917 | |
1084 | -3.8681,-3.909 | |
1085 | -3.8567,-3.898 | |
1086 | -3.8494,-3.89 | |
1087 | -3.8419,-3.882 | |
1088 | -3.8344,-3.875 | |
1089 | -3.8267,-3.867 | |
1090 | -3.8189,-3.859 | |
1091 | -3.8076,-3.847 | |
1092 | -3.8002,-3.84 | |
1093 | -3.7928,-3.832 | |
1094 | -3.7852,-3.825 | |
1095 | -3.7775,-3.817 | |
1096 | -3.7696,-3.809 | |
1097 | -3.7585,-3.797 | |
1098 | -3.7511,-3.79 | |
1099 | -3.7436,-3.782 | |
1100 | -3.736,-3.775 | |
1101 | -3.7283,-3.767 | |
1102 | -3.7167,-3.755 | |
1103 | -3.7094,-3.747 | |
1104 | -3.702,-3.74 | |
1105 | -3.6945,-3.732 | |
1106 | -3.6869,-3.724 | |
1107 | -3.6791,-3.716 | |
1108 | -3.6676,-3.705 | |
1109 | -3.6602,-3.697 | |
1110 | -3.6528,-3.69 | |
1111 | -3.6453,-3.682 | |
1112 | -3.6377,-3.674 | |
1113 | -3.6299,-3.666 | |
1114 | -3.6184,-3.655 | |
1115 | -3.6111,-3.647 | |
1116 | -3.6036,-3.64 | |
1117 | -3.5961,-3.632 | |
1118 | -3.5885,-3.624 | |
1119 | -3.5806,-3.616 | |
1120 | -3.5693,-3.605 | |
1121 | -3.5619,-3.597 | |
1122 | -3.5545,-3.59 | |
1123 | -3.5469,-3.582 | |
1124 | -3.5392,-3.574 | |
1125 | -3.5314,-3.566 | |
1126 | -3.5201,-3.555 | |
1127 | -3.5127,-3.547 | |
1128 | -3.5053,-3.54 | |
1129 | -3.4977,-3.532 | |
1130 | -3.49,-3.524 | |
1131 | -3.4821,-3.516 | |
1132 | -3.471,-3.505 | |
1133 | -3.4636,-3.497 | |
1134 | -3.4561,-3.489 | |
1135 | -3.4485,-3.482 | |
1136 | -3.4408,-3.474 | |
1137 | -3.4291,-3.462 | |
1138 | -3.4218,-3.455 | |
1139 | -3.4144,-3.447 | |
1140 | -3.4069,-3.439 | |
1141 | -3.3993,-3.432 | |
1142 | -3.3915,-3.424 | |
1143 | -3.3799,-3.412 | |
1144 | -3.3726,-3.405 | |
1145 | -3.3651,-3.397 | |
1146 | -3.3576,-3.389 | |
1147 | -3.35,-3.382 | |
1148 | -3.3423,-3.374 | |
1149 | -3.3307,-3.362 | |
1150 | -3.3234,-3.355 | |
1151 | -3.3159,-3.347 | |
1152 | -3.3084,-3.339 | |
1153 | -3.3008,-3.332 | |
1154 | -3.293,-3.324 | |
1155 | -3.2815,-3.312 | |
1156 | -3.2741,-3.305 | |
1157 | -3.2667,-3.297 | |
1158 | -3.2592,-3.29 | |
1159 | -3.2515,-3.282 | |
1160 | -3.2437,-3.274 | |
1161 | -3.2323,-3.262 | |
1162 | -3.2249,-3.255 | |
1163 | -3.2174,-3.247 | |
1164 | -3.2099,-3.24 | |
1165 | -3.2023,-3.232 | |
1166 | -3.1944,-3.224 | |
1167 | -3.183,-3.212 | |
1168 | -3.1756,-3.205 | |
1169 | -3.1682,-3.197 | |
1170 | -3.1606,-3.19 | |
1171 | -3.153,-3.182 | |
1172 | -3.1451,-3.174 | |
1173 | -3.1337,-3.162 | |
1174 | -3.1263,-3.155 | |
1175 | -3.1189,-3.147 | |
1176 | -3.1113,-3.14 | |
1177 | -3.1037,-3.132 | |
1178 | -3.0958,-3.124 | |
1179 | -3.0844,-3.113 | |
1180 | -3.077,-3.105 | |
1181 | -3.0696,-3.098 | |
1182 | -3.062,-3.09 | |
1183 | -3.0544,-3.082 | |
1184 | -3.0465,-3.074 | |
1185 | -3.0351,-3.063 | |
1186 | -3.0277,-3.055 | |
1187 | -3.0203,-3.048 | |
1188 | -3.0127,-3.04 | |
1189 | -3.005,-3.032 | |
1190 | -2.9972,-3.024 | |
1191 | -2.9858,-3.013 | |
1192 | -2.9784,-3.005 | |
1193 | -2.9709,-2.998 | |
1194 | -2.9634,-2.99 | |
1195 | -2.9557,-2.983 | |
1196 | -2.9479,-2.975 | |
1197 | -2.9364,-2.963 | |
1198 | -2.929,-2.956 | |
1199 | -2.9216,-2.948 | |
1200 | -2.914,-2.941 | |
1201 | -2.9064,-2.933 | |
1202 | -2.8985,-2.925 | |
1203 | -2.8871,-2.913 | |
1204 | -2.8797,-2.906 | |
1205 | -2.8722,-2.898 | |
1206 | -2.8647,-2.891 | |
1207 | -2.857,-2.883 | |
1208 | -2.8492,-2.875 | |
1209 | -2.8377,-2.864 | |
1210 | -2.8303,-2.856 | |
1211 | -2.8228,-2.849 | |
1212 | -2.8153,-2.841 | |
1213 | -2.8076,-2.833 | |
1214 | -2.7998,-2.826 | |
1215 | -2.7883,-2.814 | |
1216 | -2.7809,-2.807 | |
1217 | -2.7734,-2.799 | |
1218 | -2.7659,-2.791 | |
1219 | -2.7583,-2.784 | |
1220 | -2.7505,-2.776 | |
1221 | -2.7388,-2.764 | |
1222 | -2.7315,-2.757 | |
1223 | -2.724,-2.749 | |
1224 | -2.7165,-2.742 | |
1225 | -2.7089,-2.734 | |
1226 | -2.7011,-2.726 | |
1227 | -2.6894,-2.715 | |
1228 | -2.682,-2.707 | |
1229 | -2.6746,-2.7 | |
1230 | -2.6671,-2.692 | |
1231 | -2.6595,-2.685 | |
1232 | -2.6517,-2.677 | |
1233 | -2.6438,-2.669 | |
1234 | -2.6326,-2.658 | |
1235 | -2.6252,-2.65 | |
1236 | -2.6177,-2.643 | |
1237 | -2.6101,-2.635 | |
1238 | -2.6023,-2.627 | |
1239 | -2.5944,-2.619 | |
1240 | -2.5831,-2.608 | |
1241 | -2.5757,-2.601 | |
1242 | -2.5682,-2.593 | |
1243 | -2.5606,-2.586 | |
1244 | -2.5529,-2.578 | |
1245 | -2.5451,-2.57 | |
1246 | -2.5337,-2.559 | |
1247 | -2.5263,-2.551 | |
1248 | -2.5188,-2.544 | |
1249 | -2.5112,-2.536 | |
1250 | -2.5035,-2.529 | |
1251 | -2.4957,-2.521 | |
1252 | -2.4843,-2.509 | |
1253 | -2.4768,-2.502 | |
1254 | -2.4694,-2.494 | |
1255 | -2.4618,-2.487 | |
1256 | -2.4541,-2.479 | |
1257 | -2.4463,-2.471 | |
1258 | -2.4348,-2.46 | |
1259 | -2.4274,-2.452 | |
1260 | -2.4199,-2.445 | |
1261 | -2.4124,-2.437 | |
1262 | -2.4047,-2.43 | |
1263 | -2.3969,-2.422 | |
1264 | -2.3854,-2.411 | |
1265 | -2.378,-2.403 | |
1266 | -2.3705,-2.396 | |
1267 | -2.363,-2.388 | |
1268 | -2.3553,-2.381 | |
1269 | -2.3475,-2.373 | |
1270 | -2.3359,-2.361 | |
1271 | -2.3285,-2.354 | |
1272 | -2.3211,-2.346 | |
1273 | -2.3135,-2.339 | |
1274 | -2.3059,-2.331 | |
1275 | -2.2981,-2.324 | |
1276 | -2.2865,-2.312 | |
1277 | -2.2791,-2.305 | |
1278 | -2.2717,-2.297 | |
1279 | -2.2641,-2.29 | |
1280 | -2.2565,-2.282 | |
1281 | -2.2488,-2.275 | |
1282 | -2.2371,-2.263 | |
1283 | -2.2297,-2.256 | |
1284 | -2.2222,-2.248 | |
1285 | -2.2147,-2.241 | |
1286 | -2.2071,-2.233 | |
1287 | -2.1994,-2.225 | |
1288 | -2.1877,-2.214 | |
1289 | -2.1803,-2.206 | |
1290 | -2.1728,-2.199 | |
1291 | -2.1653,-2.192 | |
1292 | -2.1577,-2.184 | |
1293 | -2.15,-2.176 | |
1294 | -2.1383,-2.165 | |
1295 | -2.1309,-2.157 | |
1296 | -2.1235,-2.15 | |
1297 | -2.116,-2.143 | |
1298 | -2.1084,-2.135 | |
1299 | -2.1006,-2.127 | |
1300 | -2.0889,-2.116 | |
1301 | -2.0815,-2.108 | |
1302 | -2.0741,-2.101 | |
1303 | -2.0666,-2.094 | |
1304 | -2.059,-2.086 | |
1305 | -2.0512,-2.079 | |
1306 | -2.0395,-2.067 | |
1307 | -2.0322,-2.06 | |
1308 | -2.0247,-2.052 | |
1309 | -2.0172,-2.045 | |
1310 | -2.0096,-2.037 | |
1311 | -2.0019,-2.03 | |
1312 | -1.9902,-2.018 | |
1313 | -1.9828,-2.011 | |
1314 | -1.9754,-2.003 | |
1315 | -1.9679,-1.996 | |
1316 | -1.9603,-1.989 | |
1317 | -1.9525,-1.981 | |
1318 | -1.9409,-1.969 | |
1319 | -1.9335,-1.962 | |
1320 | -1.9261,-1.955 | |
1321 | -1.9186,-1.947 | |
1322 | -1.911,-1.94 | |
1323 | -1.9032,-1.932 | |
1324 | -1.8916,-1.921 | |
1325 | -1.8842,-1.913 | |
1326 | -1.8768,-1.906 | |
1327 | -1.8693,-1.899 | |
1328 | -1.8616,-1.891 | |
1329 | -1.8538,-1.883 | |
1330 | -1.8423,-1.872 | |
1331 | -1.8349,-1.865 | |
1332 | -1.8275,-1.857 | |
1333 | -1.82,-1.85 | |
1334 | -1.8123,-1.842 | |
1335 | -1.8045,-1.835 | |
1336 | -1.7931,-1.823 | |
1337 | -1.7857,-1.816 | |
1338 | -1.7782,-1.809 | |
1339 | -1.7707,-1.801 | |
1340 | -1.763,-1.794 | |
1341 | -1.7552,-1.786 | |
1342 | -1.7438,-1.775 | |
1343 | -1.7364,-1.767 | |
1344 | -1.729,-1.76 | |
1345 | -1.7214,-1.753 | |
1346 | -1.7137,-1.745 | |
1347 | -1.7058,-1.737 | |
1348 | -1.6946,-1.726 | |
1349 | -1.6872,-1.719 | |
1350 | -1.6797,-1.712 | |
1351 | -1.6721,-1.704 | |
1352 | -1.6644,-1.696 | |
1353 | -1.6527,-1.685 | |
1354 | -1.6454,-1.678 | |
1355 | -1.638,-1.67 | |
1356 | -1.6305,-1.663 | |
1357 | -1.6229,-1.655 | |
1358 | -1.6151,-1.648 | |
1359 | -1.6035,-1.636 | |
1360 | -1.5962,-1.629 | |
1361 | -1.5887,-1.622 | |
1362 | -1.5812,-1.614 | |
1363 | -1.5736,-1.607 | |
1364 | -1.5658,-1.599 | |
1365 | -1.5543,-1.588 | |
1366 | -1.547,-1.58 | |
1367 | -1.5395,-1.573 | |
1368 | -1.532,-1.566 | |
1369 | -1.5243,-1.558 | |
1370 | -1.5165,-1.55 | |
1371 | -1.5052,-1.539 | |
1372 | -1.4978,-1.532 | |
1373 | -1.4903,-1.524 | |
1374 | -1.4828,-1.517 | |
1375 | -1.4751,-1.509 | |
1376 | -1.4672,-1.501 | |
1377 | -1.456,-1.49 | |
1378 | -1.4486,-1.483 | |
1379 | -1.4411,-1.475 | |
1380 | -1.4335,-1.468 | |
1381 | -1.4258,-1.46 | |
1382 | -1.4142,-1.449 | |
1383 | -1.4068,-1.441 | |
1384 | -1.3994,-1.434 | |
1385 | -1.3919,-1.427 | |
1386 | -1.3843,-1.419 | |
1387 | -1.3765,-1.411 | |
1388 | -1.365,-1.4 | |
1389 | -1.3576,-1.393 | |
1390 | -1.3502,-1.385 | |
1391 | -1.3427,-1.378 | |
1392 | -1.3351,-1.37 | |
1393 | -1.3272,-1.362 | |
1394 | -1.3158,-1.351 | |
1395 | -1.3085,-1.344 | |
1396 | -1.301,-1.336 | |
1397 | -1.2935,-1.329 | |
1398 | -1.2858,-1.321 | |
1399 | -1.2779,-1.313 | |
1400 | -1.2667,-1.302 | |
1401 | -1.2593,-1.294 | |
1402 | -1.2518,-1.287 | |
1403 | -1.2443,-1.279 | |
1404 | -1.2366,-1.272 | |
1405 | -1.2286,-1.264 | |
1406 | -1.2175,-1.253 | |
1407 | -1.2101,-1.245 | |
1408 | -1.2026,-1.238 | |
1409 | -1.195,-1.23 | |
1410 | -1.1873,-1.222 | |
1411 | -1.1757,-1.211 | |
1412 | -1.1683,-1.203 | |
1413 | -1.1609,-1.196 | |
1414 | -1.1534,-1.188 | |
1415 | -1.1458,-1.181 | |
1416 | -1.138,-1.173 | |
1417 | -1.1265,-1.161 | |
1418 | -1.1192,-1.154 | |
1419 | -1.1117,-1.146 | |
1420 | -1.1042,-1.139 | |
1421 | -1.0966,-1.131 | |
1422 | -1.0888,-1.123 | |
1423 | -1.0773,-1.112 | |
1424 | -1.07,-1.104 | |
1425 | -1.0625,-1.097 | |
1426 | -1.055,-1.089 | |
1427 | -1.0473,-1.081 | |
1428 | -1.0395,-1.074 | |
1429 | -1.0282,-1.062 | |
1430 | -1.0208,-1.055 | |
1431 | -1.0133,-1.047 | |
1432 | -1.0058,-1.039 | |
1433 | -0.9981,-1.032 | |
1434 | -0.9902,-1.024 | |
1435 | -0.979,-1.012 | |
1436 | -0.9716,-1.005 | |
1437 | -0.9641,-0.997 | |
1438 | -0.9566,-0.989 | |
1439 | -0.9489,-0.982 | |
1440 | -0.941,-0.973 | |
1441 | -0.9298,-0.962 | |
1442 | -0.9224,-0.955 | |
1443 | -0.9149,-0.947 | |
1444 | -0.9073,-0.939 | |
1445 | -0.8996,-0.931 | |
1446 | -0.8879,-0.919 | |
1447 | -0.8806,-0.912 | |
1448 | -0.8732,-0.904 | |
1449 | -0.8657,-0.897 | |
1450 | -0.8581,-0.889 | |
1451 | -0.8504,-0.881 | |
1452 | -0.8387,-0.869 | |
1453 | -0.8314,-0.861 | |
1454 | -0.824,-0.854 | |
1455 | -0.8165,-0.846 | |
1456 | -0.8089,-0.838 | |
1457 | -0.8011,-0.83 | |
1458 | -0.7895,-0.818 | |
1459 | -0.7822,-0.811 | |
1460 | -0.7747,-0.803 | |
1461 | -0.7672,-0.796 | |
1462 | -0.7596,-0.788 | |
1463 | -0.7519,-0.78 | |
1464 | -0.7403,-0.768 | |
1465 | -0.7329,-0.76 | |
1466 | -0.7255,-0.753 | |
1467 | -0.718,-0.745 | |
1468 | -0.7104,-0.737 | |
1469 | -0.7027,-0.729 | |
1470 | -0.6911,-0.717 | |
1471 | -0.6837,-0.71 | |
1472 | -0.6763,-0.702 | |
1473 | -0.6688,-0.694 | |
1474 | -0.6612,-0.686 | |
1475 | -0.6534,-0.678 | |
1476 | -0.6419,-0.666 | |
1477 | -0.6345,-0.659 | |
1478 | -0.6271,-0.651 | |
1479 | -0.6196,-0.643 | |
1480 | -0.612,-0.636 | |
1481 | -0.6042,-0.628 | |
1482 | -0.5927,-0.616 | |
1483 | -0.5853,-0.608 | |
1484 | -0.5779,-0.6 | |
1485 | -0.5704,-0.593 | |
1486 | -0.5627,-0.585 | |
1487 | -0.555,-0.577 | |
1488 | -0.5435,-0.565 | |
1489 | -0.5361,-0.557 | |
1490 | -0.5287,-0.549 | |
1491 | -0.5211,-0.542 | |
1492 | -0.5135,-0.534 | |
1493 | -0.5057,-0.526 | |
1494 | -0.4942,-0.514 | |
1495 | -0.4869,-0.506 | |
1496 | -0.4794,-0.499 | |
1497 | -0.4719,-0.491 | |
1498 | -0.4643,-0.483 | |
1499 | -0.4565,-0.475 | |
1500 | -0.4451,-0.463 | |
1501 | -0.4377,-0.455 | |
1502 | -0.4302,-0.448 | |
1503 | -0.4227,-0.44 | |
1504 | -0.4151,-0.432 | |
1505 | -0.4073,-0.424 | |
1506 | -0.3959,-0.412 | |
1507 | -0.3885,-0.405 | |
1508 | -0.381,-0.397 | |
1509 | -0.3735,-0.389 | |
1510 | -0.3659,-0.381 | |
1511 | -0.358,-0.373 | |
1512 | -0.3467,-0.361 | |
1513 | -0.3393,-0.354 | |
1514 | -0.3319,-0.346 | |
1515 | -0.3243,-0.338 | |
1516 | -0.3167,-0.331 | |
1517 | -0.3088,-0.322 | |
1518 | -0.2975,-0.311 | |
1519 | -0.2901,-0.303 | |
1520 | -0.2827,-0.295 | |
1521 | -0.2751,-0.288 | |
1522 | -0.2674,-0.28 | |
1523 | -0.2596,-0.272 | |
1524 | -0.2483,-0.26 | |
1525 | -0.241,-0.253 | |
1526 | -0.2335,-0.245 | |
1527 | -0.2259,-0.237 | |
1528 | -0.2182,-0.229 | |
1529 | -0.2104,-0.221 | |
1530 | -0.1992,-0.21 | |
1531 | -0.1918,-0.202 | |
1532 | -0.1843,-0.194 | |
1533 | -0.1768,-0.187 | |
1534 | -0.169,-0.179 | |
1535 | -0.1574,-0.167 | |
1536 | -0.1501,-0.159 | |
1537 | -0.1427,-0.152 | |
1538 | -0.1352,-0.144 | |
1539 | -0.1276,-0.136 | |
1540 | -0.1198,-0.128 | |
1541 | -0.1083,-0.116 | |
1542 | -0.1009,-0.109 | |
1543 | -0.0935,-0.101 | |
1544 | -0.086,-0.094 | |
1545 | -0.0784,-0.086 | |
1546 | -0.0706,-0.078 | |
1547 | -0.0592,-0.066 | |
1548 | -0.0518,-0.059 | |
1549 | -0.0444,-0.051 | |
1550 | -0.0369,-0.043 | |
1551 | -0.0292,-0.036 | |
1552 | -0.0214,-0.028 | |
1553 | -0.0101,-0.016 | |
1554 | -0.0027,-0.009 | |
1555 | 0.0047,-0.001 | |
1556 | 0.0123,0.006 | |
1557 | 0.0199,0.014 | |
1558 | 0.0278,0.022 | |
1559 | 0.039,0.034 | |
1560 | 0.0463,0.041 | |
1561 | 0.0538,0.049 | |
1562 | 0.0614,0.056 | |
1563 | 0.0691,0.064 | |
1564 | 0.0807,0.076 | |
1565 | 0.088,0.083 | |
1566 | 0.0954,0.091 | |
1567 | 0.1029,0.098 | |
1568 | 0.1105,0.106 | |
1569 | 0.1183,0.114 | |
1570 | 0.1297,0.125 | |
1571 | 0.1371,0.133 | |
1572 | 0.1445,0.14 | |
1573 | 0.152,0.148 | |
1574 | 0.1597,0.155 | |
1575 | 0.1676,0.163 | |
1576 | 0.1787,0.175 | |
1577 | 0.1861,0.182 | |
1578 | 0.1935,0.189 | |
1579 | 0.2011,0.197 | |
1580 | 0.2089,0.205 | |
1581 | 0.2204,0.216 | |
1582 | 0.2277,0.224 | |
1583 | 0.2351,0.231 | |
1584 | 0.2426,0.239 | |
1585 | 0.2503,0.246 | |
1586 | 0.2581,0.254 | |
1587 | 0.2694,0.265 | |
1588 | 0.2767,0.273 | |
1589 | 0.2842,0.28 | |
1590 | 0.2917,0.288 | |
1591 | 0.2994,0.295 | |
1592 | 0.311,0.307 | |
1593 | 0.3183,0.314 | |
1594 | 0.3257,0.322 | |
1595 | 0.3332,0.329 | |
1596 | 0.3408,0.337 | |
1597 | 0.3486,0.345 | |
1598 | 0.36,0.356 | |
1599 | 0.3673,0.363 | |
1600 | 0.3748,0.371 | |
1601 | 0.3823,0.378 | |
1602 | 0.39,0.386 | |
1603 | 0.3978,0.394 | |
1604 | 0.409,0.405 | |
1605 | 0.4163,0.412 | |
1606 | 0.4238,0.42 | |
1607 | 0.4314,0.427 | |
1608 | 0.4391,0.435 | |
1609 | 0.4506,0.446 | |
1610 | 0.4579,0.454 | |
1611 | 0.4653,0.461 | |
1612 | 0.4728,0.468 | |
1613 | 0.4805,0.476 | |
1614 | 0.4883,0.484 | |
1615 | 0.4995,0.495 | |
1616 | 0.5069,0.502 | |
1617 | 0.5144,0.51 | |
1618 | 0.5219,0.517 | |
1619 | 0.5297,0.525 | |
1620 | 0.5412,0.536 | |
1621 | 0.5485,0.544 | |
1622 | 0.5559,0.551 | |
1623 | 0.5634,0.558 | |
1624 | 0.571,0.566 | |
1625 | 0.5789,0.574 | |
1626 | 0.5901,0.585 | |
1627 | 0.5975,0.592 | |
1628 | 0.6049,0.6 | |
1629 | 0.6125,0.607 | |
1630 | 0.6202,0.615 | |
1631 | 0.6318,0.627 | |
1632 | 0.6391,0.634 | |
1633 | 0.6465,0.641 | |
1634 | 0.654,0.649 | |
1635 | 0.6616,0.656 | |
1636 | 0.6694,0.664 | |
1637 | 0.6807,0.675 | |
1638 | 0.6881,0.683 | |
1639 | 0.6955,0.69 | |
1640 | 0.7031,0.697 | |
1641 | 0.7107,0.705 | |
1642 | 0.7224,0.717 | |
1643 | 0.7297,0.724 | |
1644 | 0.7371,0.731 | |
1645 | 0.7446,0.739 | |
1646 | 0.7522,0.746 | |
1647 | 0.7599,0.754 | |
1648 | 0.7714,0.765 | |
1649 | 0.7787,0.773 | |
1650 | 0.7861,0.78 | |
1651 | 0.7937,0.788 | |
1652 | 0.8013,0.795 | |
1653 | 0.8092,0.803 | |
1654 | 0.8204,0.814 | |
1655 | 0.8277,0.822 | |
1656 | 0.8352,0.829 | |
1657 | 0.8428,0.837 | |
1658 | 0.8505,0.844 | |
1659 | 0.862,0.856 | |
1660 | 0.8694,0.863 | |
1661 | 0.8768,0.871 | |
1662 | 0.8843,0.878 | |
1663 | 0.8919,0.886 | |
1664 | 0.8997,0.894 | |
1665 | 0.9111,0.905 | |
1666 | 0.9184,0.912 | |
1667 | 0.9258,0.92 | |
1668 | 0.9334,0.927 | |
1669 | 0.9411,0.935 | |
1670 | 0.9489,0.943 | |
1671 | 0.9601,0.954 | |
1672 | 0.9675,0.962 | |
1673 | 0.9749,0.969 | |
1674 | 0.9825,0.977 | |
1675 | 0.9903,0.985 | |
1676 | 1.0018,0.996 | |
1677 | 1.0092,1.004 | |
1678 | 1.0166,1.011 | |
1679 | 1.0241,1.019 | |
1680 | 1.0317,1.026 | |
1681 | 1.0395,1.034 | |
1682 | 1.0509,1.046 | |
1683 | 1.0582,1.053 | |
1684 | 1.0657,1.061 | |
1685 | 1.0732,1.068 | |
1686 | 1.0809,1.076 | |
1687 | 1.0887,1.084 | |
1688 | 1.1,1.095 | |
1689 | 1.1073,1.103 | |
1690 | 1.1148,1.11 | |
1691 | 1.1224,1.118 | |
1692 | 1.1301,1.126 | |
1693 | 1.1417,1.137 | |
1694 | 1.1491,1.145 | |
1695 | 1.1565,1.152 | |
1696 | 1.164,1.16 | |
1697 | 1.1715,1.168 | |
1698 | 1.1793,1.176 | |
1699 | 1.1909,1.187 | |
1700 | 1.1982,1.195 | |
1701 | 1.2056,1.202 | |
1702 | 1.2131,1.21 | |
1703 | 1.2207,1.218 | |
1704 | 1.2285,1.225 | |
1705 | 1.24,1.237 | |
1706 | 1.2474,1.245 | |
1707 | 1.2548,1.252 | |
1708 | 1.2623,1.26 | |
1709 | 1.2699,1.268 | |
1710 | 1.2778,1.276 | |
1711 | 1.2891,1.287 | |
1712 | 1.2965,1.295 | |
1713 | 1.304,1.302 | |
1714 | 1.3115,1.31 | |
1715 | 1.3192,1.318 | |
1716 | 1.327,1.326 | |
1717 | 1.3383,1.337 | |
1718 | 1.3457,1.345 | |
1719 | 1.3532,1.352 | |
1720 | 1.3607,1.36 | |
1721 | 1.3684,1.368 | |
1722 | 1.3763,1.376 | |
1723 | 1.3875,1.387 | |
1724 | 1.3949,1.395 | |
1725 | 1.4024,1.402 | |
1726 | 1.4099,1.41 | |
1727 | 1.4176,1.418 | |
1728 | 1.4255,1.426 | |
1729 | 1.4367,1.437 | |
1730 | 1.4441,1.445 | |
1731 | 1.4516,1.453 | |
1732 | 1.4591,1.46 | |
1733 | 1.4669,1.468 | |
1734 | 1.4785,1.48 | |
1735 | 1.4859,1.488 | |
1736 | 1.4933,1.495 | |
1737 | 1.5008,1.503 | |
1738 | 1.5084,1.511 | |
1739 | 1.5161,1.519 | |
1740 | 1.5277,1.53 | |
1741 | 1.5351,1.538 | |
1742 | 1.5425,1.545 | |
1743 | 1.55,1.553 | |
1744 | 1.5576,1.561 | |
1745 | 1.5654,1.569 | |
1746 | 1.577,1.581 | |
1747 | 1.5843,1.588 | |
1748 | 1.5917,1.596 | |
1749 | 1.5992,1.603 | |
1750 | 1.6069,1.611 | |
1751 | 1.6146,1.619 | |
1752 | 1.6262,1.631 | |
1753 | 1.6335,1.638 | |
1754 | 1.641,1.646 | |
1755 | 1.6485,1.654 | |
1756 | 1.6561,1.661 | |
1757 | 1.6639,1.669 | |
1758 | 1.6754,1.681 | |
1759 | 1.6828,1.689 | |
1760 | 1.6902,1.696 | |
1761 | 1.6977,1.704 | |
1762 | 1.7054,1.712 | |
1763 | 1.7132,1.72 | |
1764 | 1.7246,1.731 | |
1765 | 1.732,1.739 | |
1766 | 1.7394,1.746 | |
1767 | 1.747,1.754 | |
1768 | 1.7546,1.762 | |
1769 | 1.7624,1.77 | |
1770 | 1.7739,1.781 | |
1771 | 1.7812,1.789 | |
1772 | 1.7887,1.796 | |
1773 | 1.7962,1.804 | |
1774 | 1.8039,1.812 | |
1775 | 1.8117,1.82 | |
1776 | 1.8231,1.831 | |
1777 | 1.8305,1.839 | |
1778 | 1.8379,1.847 | |
1779 | 1.8455,1.854 | |
1780 | 1.8531,1.862 | |
1781 | 1.861,1.87 | |
1782 | 1.8723,1.882 | |
1783 | 1.8797,1.889 | |
1784 | 1.8872,1.897 | |
1785 | 1.8947,1.904 | |
1786 | 1.9024,1.912 | |
1787 | 1.9103,1.92 | |
1788 | 1.9216,1.931 | |
1789 | 1.929,1.939 | |
1790 | 1.9364,1.947 | |
1791 | 1.944,1.954 | |
1792 | 1.9517,1.962 | |
1793 | 1.9595,1.97 | |
1794 | 1.9708,1.981 | |
1795 | 1.9782,1.989 | |
1796 | 1.9857,1.996 | |
1797 | 1.9932,2.004 | |
1798 | 2.0009,2.012 | |
1799 | 2.0088,2.02 | |
1800 | 2.02,2.031 | |
1801 | 2.0274,2.039 | |
1802 | 2.0349,2.046 | |
1803 | 2.0425,2.054 | |
1804 | 2.0502,2.061 | |
1805 | 2.0619,2.073 | |
1806 | 2.0693,2.081 | |
1807 | 2.0767,2.088 | |
1808 | 2.0842,2.096 | |
1809 | 2.0918,2.103 | |
1810 | 2.0995,2.111 | |
1811 | 2.1111,2.123 | |
1812 | 2.1185,2.13 | |
1813 | 2.1259,2.138 | |
1814 | 2.1334,2.145 | |
1815 | 2.141,2.153 | |
1816 | 2.1488,2.161 | |
1817 | 2.1604,2.172 | |
1818 | 2.1677,2.18 | |
1819 | 2.1751,2.187 | |
1820 | 2.1827,2.195 | |
1821 | 2.1903,2.202 | |
1822 | 2.1981,2.21 | |
1823 | 2.2096,2.222 | |
1824 | 2.2169,2.229 | |
1825 | 2.2244,2.236 | |
1826 | 2.2319,2.244 | |
1827 | 2.2395,2.252 | |
1828 | 2.2474,2.259 | |
1829 | 2.2588,2.271 | |
1830 | 2.2662,2.278 | |
1831 | 2.2736,2.286 | |
1832 | 2.2812,2.293 | |
1833 | 2.2888,2.301 | |
1834 | 2.2967,2.309 | |
1835 | 2.308,2.32 | |
1836 | 2.3154,2.327 | |
1837 | 2.3228,2.335 | |
1838 | 2.3304,2.342 | |
1839 | 2.3381,2.35 | |
1840 | 2.346,2.358 | |
1841 | 2.3572,2.369 | |
1842 | 2.3646,2.376 | |
1843 | 2.3721,2.384 | |
1844 | 2.3797,2.391 | |
1845 | 2.3874,2.399 | |
1846 | 2.3991,2.411 | |
1847 | 2.4064,2.418 | |
1848 | 2.4138,2.425 | |
1849 | 2.4213,2.433 | |
1850 | 2.4289,2.44 | |
1851 | 2.4367,2.448 | |
1852 | 2.4483,2.46 | |
1853 | 2.4556,2.467 | |
1854 | 2.4631,2.474 | |
1855 | 2.4706,2.482 | |
1856 | 2.4782,2.489 | |
1857 | 2.486,2.497 | |
1858 | 2.4975,2.508 | |
1859 | 2.5048,2.516 | |
1860 | 2.5123,2.523 | |
1861 | 2.5198,2.531 | |
1862 | 2.5274,2.538 | |
1863 | 2.5353,2.546 | |
1864 | 2.5467,2.557 | |
1865 | 2.5541,2.565 | |
1866 | 2.5615,2.572 | |
1867 | 2.569,2.579 | |
1868 | 2.5767,2.587 | |
1869 | 2.5846,2.595 | |
1870 | 2.5959,2.606 | |
1871 | 2.6033,2.613 | |
1872 | 2.6107,2.621 | |
1873 | 2.6183,2.628 | |
1874 | 2.626,2.636 | |
1875 | 2.6339,2.644 | |
1876 | 2.6451,2.655 | |
1877 | 2.6525,2.662 | |
1878 | 2.66,2.669 | |
1879 | 2.6676,2.677 | |
1880 | 2.6753,2.685 | |
1881 | 2.6869,2.696 | |
1882 | 2.6943,2.703 | |
1883 | 2.7017,2.711 | |
1884 | 2.7092,2.718 | |
1885 | 2.7168,2.726 | |
1886 | 2.7246,2.733 | |
1887 | 2.7361,2.745 | |
1888 | 2.7435,2.752 | |
1889 | 2.7509,2.759 | |
1890 | 2.7584,2.767 | |
1891 | 2.7661,2.774 | |
1892 | 2.7739,2.782 | |
1893 | 2.7853,2.793 | |
1894 | 2.7927,2.801 | |
1895 | 2.8001,2.808 | |
1896 | 2.8077,2.815 | |
1897 | 2.8154,2.823 | |
1898 | 2.8232,2.831 | |
1899 | 2.8345,2.842 | |
1900 | 2.8419,2.849 | |
1901 | 2.8494,2.857 | |
1902 | 2.8569,2.864 | |
1903 | 2.8646,2.872 | |
1904 | 2.8763,2.883 | |
1905 | 2.8837,2.891 | |
1906 | 2.8911,2.898 | |
1907 | 2.8986,2.905 | |
1908 | 2.9062,2.913 | |
1909 | 2.9139,2.92 | |
1910 | 2.9255,2.932 | |
1911 | 2.9329,2.939 | |
1912 | 2.9403,2.946 | |
1913 | 2.9478,2.954 | |
1914 | 2.9555,2.961 | |
1915 | 2.9633,2.969 | |
1916 | 2.9747,2.98 | |
1917 | 2.9821,2.988 | |
1918 | 2.9895,2.995 | |
1919 | 2.9971,3.002 | |
1920 | 3.0047,3.01 |
0 | -errorreport ../test/extrapolate_relations_smooth.xml -regression |
0 | <ErrorReport> | |
1 | <Application VersionNumber="8.2"/> | |
2 | <Document AxesPointsRequired="0" VersionNumber="8.2"> | |
3 | <Image Height="252" Width="1221"><![CDATA[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]]></Image> | |
4 | <CoordSystem> | |
5 | <General ExtraPrecision="1" CursorSize="3"/> | |
6 | <Coords ScaleYRadiusString="Linear" ScaleYRadius="0" UnitsDate="3" UnitsDateString="YYYY/MM/DD" UnitsRadius="0" UnitsThetaString="Degrees (DDD.DDDDD)" UnitsTimeString="HH:MM:SS" ScaleXThetaString="Linear" UnitsX="0" UnitsY="0" Coords="0" UnitsRadiusString="Number" Type="0" UnitsTime="2" ScaleXTheta="0" UnitsTheta="0" UnitsYString="Number" TypeString="Cartesian" UnitsXString="Number"/> | |
7 | <DigitizeCurve CursorInnerRadius="5" CursorStandardCross="True" CursorSize="1" CursorLineWidth="2"/> | |
8 | <Export DelimiterString="Commas" LayoutFunctionsString="OnePerLine" PointsIntervalRelations="1" Header="1" HeaderString="Simple" PointsSelectionRelationsString="Unknown" PointsSelectionFunctions="3" PointsIntervalUnitsFunctions="1" PointsSelectionFunctionsString="Raw" OverrideCsvTsv="True" LayoutFunctions="1" PointsIntervalFunctions="10" PointsSelectionRelations="3" PointsIntervalUnitsRelations="1" Delimiter="0" XLabel="x"> | |
9 | <CurveNamesNotExported/> | |
10 | </Export> | |
11 | <AxesChecker LineColor="6" Mode="1" Seconds="3"/> | |
12 | <GridDisplay ColorString="Black" Stable="False" DisableX="0" StepX="1" DisableY="0" StepY="1" CountX="2" StartX="0" Color="0" CountY="2" StartY="0" StopX="1" StopY="1"/> | |
13 | <GridRemoval CoordDisableYString="Count" CoordDisableXString="Count" Stable="False" StepX="0" DefinedGridLines="False" StepY="0" CoordDisableX="0" CountX="2" StartX="0" CoordDisableY="0" CountY="2" StartY="0" StopX="0" CloseDistance="10" StopY="0"/> | |
14 | <PointMatch ColorCandidateString="Yellow" ColorAcceptedString="Green" ColorCandidate="7" ColorRejectedString="Red" PointSize="48" ColorRejected="6" ColorAccepted="4"/> | |
15 | <Segments FillCorners="False" LineColor="4" MinLength="2" LineWidth="4" LineColorString="Green" PointSeparation="25"/> | |
16 | <Curve CurveName="Axes"> | |
17 | <ColorFilter CurveName="Axes" HueHigh="360" Mode="2" IntensityLow="0" SaturationLow="50" ForegroundLow="0" ModeString="Intensity" IntensityHigh="50" ValueHigh="50" ForegroundHigh="10" ValueLow="0" HueLow="180" SaturationHigh="100"/> | |
18 | <CurveStyle CurveName="Axes"> | |
19 | <LineStyle ColorString="Transparent" ConnectAsString="ConnectSkipForAxisCurve" ConnectAs="4" Color="8" Width="0"/> | |
20 | <PointStyle ShapeString="Cross" ColorString="Red" LineWidth="1" Shape="1" Radius="10" Color="6"/> | |
21 | </CurveStyle> | |
22 | <CurvePoints/> | |
23 | </Curve> | |
24 | <CurvesGraphs> | |
25 | <Curve CurveName="Curve1"> | |
26 | <ColorFilter CurveName="Curve1" HueHigh="360" Mode="2" IntensityLow="0" SaturationLow="50" ForegroundLow="0" ModeString="Intensity" IntensityHigh="50" ValueHigh="50" ForegroundHigh="10" ValueLow="0" HueLow="180" SaturationHigh="100"/> | |
27 | <CurveStyle CurveName="Curve1"> | |
28 | <LineStyle ColorString="Blue" ConnectAsString="FunctionSmooth" ConnectAs="0" Color="1" Width="1"/> | |
29 | <PointStyle ShapeString="Cross" ColorString="Blue" LineWidth="1" Shape="1" Radius="10" Color="1"/> | |
30 | </CurveStyle> | |
31 | <CurvePoints/> | |
32 | </Curve> | |
33 | </CurvesGraphs> | |
34 | </CoordSystem> | |
35 | <OperatingSystem WordSize="32" Endian="LittleEndian"/> | |
36 | <File Imported="True"/> | |
37 | <CmdMediator> | |
38 | <Cmd Description="Curve add/remove" Type="CmdSettingsCurveAddRemove"> | |
39 | <CurvesGraphs> | |
40 | <Curve CurveName="Curve1"> | |
41 | <ColorFilter CurveName="Curve1" HueHigh="360" Mode="2" IntensityLow="0" SaturationLow="50" ForegroundLow="0" ModeString="Intensity" IntensityHigh="50" ValueHigh="50" ForegroundHigh="10" ValueLow="0" HueLow="180" SaturationHigh="100"/> | |
42 | <CurveStyle CurveName="Curve1"> | |
43 | <LineStyle ColorString="Blue" ConnectAsString="FunctionSmooth" ConnectAs="0" Color="1" Width="1"/> | |
44 | <PointStyle ShapeString="Cross" ColorString="Blue" LineWidth="1" Shape="1" Radius="10" Color="1"/> | |
45 | </CurveStyle> | |
46 | <CurvePoints/> | |
47 | </Curve> | |
48 | </CurvesGraphs> | |
49 | <CurvesGraphs> | |
50 | <Curve CurveName="red"> | |
51 | <ColorFilter CurveName="red" HueHigh="360" Mode="2" IntensityLow="0" SaturationLow="50" ForegroundLow="0" ModeString="Intensity" IntensityHigh="50" ValueHigh="50" ForegroundHigh="10" ValueLow="0" HueLow="180" SaturationHigh="100"/> | |
52 | <CurveStyle CurveName="red"> | |
53 | <LineStyle ColorString="Blue" ConnectAsString="FunctionSmooth" ConnectAs="0" Color="1" Width="1"/> | |
54 | <PointStyle ShapeString="Cross" ColorString="Blue" LineWidth="1" Shape="1" Radius="10" Color="1"/> | |
55 | </CurveStyle> | |
56 | <CurvePoints/> | |
57 | </Curve> | |
58 | <Curve CurveName="green"> | |
59 | <ColorFilter CurveName="green" HueHigh="360" Mode="2" IntensityLow="0" SaturationLow="50" ForegroundLow="0" ModeString="Intensity" IntensityHigh="50" ValueHigh="50" ForegroundHigh="10" ValueLow="0" HueLow="180" SaturationHigh="100"/> | |
60 | <CurveStyle CurveName="green"> | |
61 | <LineStyle ColorString="Blue" ConnectAsString="FunctionSmooth" ConnectAs="0" Color="1" Width="1"/> | |
62 | <PointStyle ShapeString="X" ColorString="Blue" LineWidth="1" Shape="5" Radius="10" Color="1"/> | |
63 | </CurveStyle> | |
64 | <CurvePoints/> | |
65 | </Curve> | |
66 | </CurvesGraphs> | |
67 | </Cmd> | |
68 | <Cmd Description="Curve Properties settings" Type="CmdSettingsCurveProperties"> | |
69 | <CurveStyles> | |
70 | <CurveStyle CurveName="green"> | |
71 | <LineStyle ColorString="Blue" ConnectAsString="FunctionSmooth" ConnectAs="0" Color="1" Width="1"/> | |
72 | <PointStyle ShapeString="X" ColorString="Blue" LineWidth="1" Shape="5" Radius="10" Color="1"/> | |
73 | </CurveStyle> | |
74 | <CurveStyle CurveName="red"> | |
75 | <LineStyle ColorString="Blue" ConnectAsString="FunctionSmooth" ConnectAs="0" Color="1" Width="1"/> | |
76 | <PointStyle ShapeString="Cross" ColorString="Blue" LineWidth="1" Shape="1" Radius="10" Color="1"/> | |
77 | </CurveStyle> | |
78 | <CurveStyle CurveName="Axes"> | |
79 | <LineStyle ColorString="Transparent" ConnectAsString="ConnectSkipForAxisCurve" ConnectAs="4" Color="8" Width="0"/> | |
80 | <PointStyle ShapeString="Cross" ColorString="Red" LineWidth="1" Shape="1" Radius="10" Color="6"/> | |
81 | </CurveStyle> | |
82 | </CurveStyles> | |
83 | <CurveStyles> | |
84 | <CurveStyle CurveName="green"> | |
85 | <LineStyle ColorString="Green" ConnectAsString="RelationSmooth" ConnectAs="2" Color="4" Width="1"/> | |
86 | <PointStyle ShapeString="X" ColorString="Green" LineWidth="1" Shape="5" Radius="10" Color="4"/> | |
87 | </CurveStyle> | |
88 | <CurveStyle CurveName="red"> | |
89 | <LineStyle ColorString="Red" ConnectAsString="RelationSmooth" ConnectAs="2" Color="6" Width="1"/> | |
90 | <PointStyle ShapeString="Cross" ColorString="Red" LineWidth="1" Shape="1" Radius="10" Color="6"/> | |
91 | </CurveStyle> | |
92 | <CurveStyle CurveName="Axes"> | |
93 | <LineStyle ColorString="Transparent" ConnectAsString="ConnectSkipForAxisCurve" ConnectAs="4" Color="8" Width="0"/> | |
94 | <PointStyle ShapeString="Cross" ColorString="Red" LineWidth="1" Shape="1" Radius="10" Color="6"/> | |
95 | </CurveStyle> | |
96 | </CurveStyles> | |
97 | </Cmd> | |
98 | <Cmd Description="Add axis point" Ordinal="1" IsXOnly="False" Type="CmdAddPointAxis" Identifier="Axes	point	1" ScreenX="493.404" GraphX="0" ScreenY="109.88" GraphY="0"/> | |
99 | <Cmd Description="Add axis point" Ordinal="2" IsXOnly="False" Type="CmdAddPointAxis" Identifier="Axes	point	3" ScreenX="1200.85" GraphX="6" ScreenY="109.88" GraphY="0"/> | |
100 | <Cmd Description="Add axis point" Ordinal="3" IsXOnly="False" Type="CmdAddPointAxis" Identifier="Axes	point	5" ScreenX="493.404" GraphX="0" ScreenY="20.7258" GraphY="3"/> | |
101 | <Cmd Description="Add graph point" Ordinal="1" CurveName="red" Type="CmdAddPointGraph" Identifier="red	point	6" ScreenX="138.292" ScreenY="140.475"/> | |
102 | <Cmd Description="Add graph point" Ordinal="1" CurveName="red" Type="CmdAddPointGraph" Identifier="red	point	7" ScreenX="257.126" ScreenY="129.619"/> | |
103 | <Cmd Description="Add graph point" Ordinal="2.5" CurveName="red" Type="CmdAddPointGraph" Identifier="red	point	8" ScreenX="375.265" ScreenY="119.749"/> | |
104 | <Cmd Description="Add graph point" Ordinal="3.5" CurveName="red" Type="CmdAddPointGraph" Identifier="red	point	9" ScreenX="494.098" ScreenY="109.551"/> | |
105 | <Cmd Description="Add graph point" Ordinal="4.5" CurveName="red" Type="CmdAddPointGraph" Identifier="red	point	10" ScreenX="610.847" ScreenY="98.3655"/> | |
106 | <Cmd Description="Add graph point" Ordinal="5.5" CurveName="red" Type="CmdAddPointGraph" Identifier="red	point	11" ScreenX="728.986" ScreenY="89.154"/> | |
107 | <Cmd Description="Add graph point" Ordinal="6.5" CurveName="red" Type="CmdAddPointGraph" Identifier="red	point	12" ScreenX="847.125" ScreenY="80.2715"/> | |
108 | <Cmd Description="Add graph point" Ordinal="7.5" CurveName="red" Type="CmdAddPointGraph" Identifier="red	point	13" ScreenX="965.959" ScreenY="69.4151"/> | |
109 | <Cmd Description="Add graph point" Ordinal="8.5" CurveName="red" Type="CmdAddPointGraph" Identifier="red	point	14" ScreenX="1082.71" ScreenY="59.2167"/> | |
110 | <Cmd Description="Add graph point" Ordinal="9.5" CurveName="red" Type="CmdAddPointGraph" Identifier="red	point	15" ScreenX="1200.85" ScreenY="50.3342"/> | |
111 | <Cmd Description="Add graph point" Ordinal="1" CurveName="green" Type="CmdAddPointGraph" Identifier="green	point	16" ScreenX="20.848" ScreenY="230.287"/> | |
112 | <Cmd Description="Add graph point" Ordinal="1" CurveName="green" Type="CmdAddPointGraph" Identifier="green	point	17" ScreenX="138.987" ScreenY="200.021"/> | |
113 | <Cmd Description="Add graph point" Ordinal="2.5" CurveName="green" Type="CmdAddPointGraph" Identifier="green	point	18" ScreenX="257.821" ScreenY="170.084"/> | |
114 | <Cmd Description="Add graph point" Ordinal="3.5" CurveName="green" Type="CmdAddPointGraph" Identifier="green	point	19" ScreenX="375.96" ScreenY="140.475"/> | |
115 | <Cmd Description="Add graph point" Ordinal="4.5" CurveName="green" Type="CmdAddPointGraph" Identifier="green	point	20" ScreenX="494.098" ScreenY="109.88"/> | |
116 | <Cmd Description="Add graph point" Ordinal="5.5" CurveName="green" Type="CmdAddPointGraph" Identifier="green	point	21" ScreenX="611.542" ScreenY="80.2715"/> | |
117 | <Cmd Description="Add graph point" Ordinal="6.5" CurveName="green" Type="CmdAddPointGraph" Identifier="green	point	22" ScreenX="729.681" ScreenY="50.0052"/> | |
118 | <Cmd Description="Add graph point" Ordinal="7.5" CurveName="green" Type="CmdAddPointGraph" Identifier="green	point	23" ScreenX="847.82" ScreenY="20.3969"/> | |
119 | </CmdMediator> | |
120 | <Error Line="1292" Context="Shift+Control+E" Comment="userTriggered" File="src/main/MainWindow.cpp"/> | |
121 | </Document> | |
122 | </ErrorReport> |
0 | x,red,x,green | |
1 | -2.9716,-0.996,-3.9765,-3.996 | |
2 | -2.9632,-0.994,-3.9683,-3.988 | |
3 | -2.9548,-0.991,-3.9601,-3.98 | |
4 | -2.9463,-0.988,-3.952,-3.972 | |
5 | -2.9379,-0.985,-3.9438,-3.964 | |
6 | -2.9295,-0.983,-3.9356,-3.956 | |
7 | -2.9211,-0.98,-3.9274,-3.948 | |
8 | -2.9127,-0.977,-3.9192,-3.939 | |
9 | -2.9042,-0.975,-3.911,-3.931 | |
10 | -2.8958,-0.972,-3.9029,-3.923 | |
11 | -2.8874,-0.969,-3.8947,-3.915 | |
12 | -2.879,-0.966,-3.8865,-3.907 | |
13 | -2.8705,-0.964,-3.8783,-3.899 | |
14 | -2.8621,-0.961,-3.8701,-3.891 | |
15 | -2.8537,-0.958,-3.8619,-3.883 | |
16 | -2.8453,-0.955,-3.8538,-3.874 | |
17 | -2.8369,-0.953,-3.8456,-3.866 | |
18 | -2.8284,-0.95,-3.8374,-3.858 | |
19 | -2.82,-0.947,-3.8292,-3.85 | |
20 | -2.8116,-0.945,-3.821,-3.842 | |
21 | -2.8032,-0.942,-3.8128,-3.834 | |
22 | -2.7947,-0.939,-3.8046,-3.826 | |
23 | -2.7863,-0.936,-3.7965,-3.817 | |
24 | -2.7779,-0.934,-3.7883,-3.809 | |
25 | -2.7695,-0.931,-3.7801,-3.801 | |
26 | -2.761,-0.928,-3.7719,-3.793 | |
27 | -2.7526,-0.925,-3.7637,-3.785 | |
28 | -2.7442,-0.923,-3.7555,-3.777 | |
29 | -2.7358,-0.92,-3.7474,-3.769 | |
30 | -2.7274,-0.917,-3.7392,-3.761 | |
31 | -2.7189,-0.915,-3.731,-3.752 | |
32 | -2.7105,-0.912,-3.7228,-3.744 | |
33 | -2.7021,-0.909,-3.7146,-3.736 | |
34 | -2.6937,-0.906,-3.7064,-3.728 | |
35 | -2.6852,-0.904,-3.6983,-3.72 | |
36 | -2.6768,-0.901,-3.6901,-3.712 | |
37 | -2.6684,-0.898,-3.6819,-3.704 | |
38 | -2.66,-0.895,-3.6737,-3.696 | |
39 | -2.6516,-0.893,-3.6655,-3.687 | |
40 | -2.6431,-0.89,-3.6573,-3.679 | |
41 | -2.6347,-0.887,-3.6491,-3.671 | |
42 | -2.6263,-0.885,-3.641,-3.663 | |
43 | -2.6179,-0.882,-3.6328,-3.655 | |
44 | -2.6094,-0.879,-3.6246,-3.647 | |
45 | -2.601,-0.876,-3.6164,-3.639 | |
46 | -2.5926,-0.874,-3.6082,-3.63 | |
47 | -2.5842,-0.871,-3.6,-3.622 | |
48 | -2.5758,-0.868,-3.5919,-3.614 | |
49 | -2.5673,-0.865,-3.5837,-3.606 | |
50 | -2.5589,-0.863,-3.5755,-3.598 | |
51 | -2.5505,-0.86,-3.5673,-3.59 | |
52 | -2.5421,-0.857,-3.5591,-3.582 | |
53 | -2.5336,-0.855,-3.5509,-3.574 | |
54 | -2.5252,-0.852,-3.5428,-3.565 | |
55 | -2.5168,-0.849,-3.5346,-3.557 | |
56 | -2.5084,-0.846,-3.5264,-3.549 | |
57 | -2.4999,-0.844,-3.5182,-3.541 | |
58 | -2.4915,-0.841,-3.51,-3.533 | |
59 | -2.4831,-0.838,-3.5018,-3.525 | |
60 | -2.4747,-0.835,-3.4936,-3.517 | |
61 | -2.4663,-0.833,-3.4855,-3.509 | |
62 | -2.4578,-0.83,-3.4773,-3.5 | |
63 | -2.4494,-0.827,-3.4691,-3.492 | |
64 | -2.441,-0.825,-3.4609,-3.484 | |
65 | -2.4326,-0.822,-3.4527,-3.476 | |
66 | -2.4241,-0.819,-3.4445,-3.468 | |
67 | -2.4157,-0.816,-3.4364,-3.46 | |
68 | -2.4073,-0.814,-3.4282,-3.452 | |
69 | -2.3989,-0.811,-3.42,-3.443 | |
70 | -2.3905,-0.808,-3.4118,-3.435 | |
71 | -2.382,-0.805,-3.4036,-3.427 | |
72 | -2.3736,-0.803,-3.3954,-3.419 | |
73 | -2.3652,-0.8,-3.3873,-3.411 | |
74 | -2.3568,-0.797,-3.3791,-3.403 | |
75 | -2.3483,-0.795,-3.3709,-3.395 | |
76 | -2.3399,-0.792,-3.3627,-3.387 | |
77 | -2.3315,-0.789,-3.3545,-3.378 | |
78 | -2.3231,-0.786,-3.3463,-3.37 | |
79 | -2.3147,-0.784,-3.3381,-3.362 | |
80 | -2.3062,-0.781,-3.33,-3.354 | |
81 | -2.2978,-0.778,-3.3218,-3.346 | |
82 | -2.2894,-0.775,-3.3136,-3.338 | |
83 | -2.281,-0.773,-3.3054,-3.33 | |
84 | -2.2725,-0.77,-3.2972,-3.322 | |
85 | -2.2641,-0.767,-3.289,-3.313 | |
86 | -2.2557,-0.765,-3.2809,-3.305 | |
87 | -2.2473,-0.762,-3.2727,-3.297 | |
88 | -2.2388,-0.759,-3.2645,-3.289 | |
89 | -2.2304,-0.756,-3.2563,-3.281 | |
90 | -2.222,-0.754,-3.2481,-3.273 | |
91 | -2.2136,-0.751,-3.2399,-3.265 | |
92 | -2.2052,-0.748,-3.2318,-3.256 | |
93 | -2.1967,-0.745,-3.2236,-3.248 | |
94 | -2.1883,-0.743,-3.2154,-3.24 | |
95 | -2.1799,-0.74,-3.2072,-3.232 | |
96 | -2.1715,-0.737,-3.199,-3.224 | |
97 | -2.163,-0.735,-3.1908,-3.216 | |
98 | -2.1546,-0.732,-3.1826,-3.208 | |
99 | -2.1462,-0.729,-3.1745,-3.2 | |
100 | -2.1378,-0.726,-3.1663,-3.191 | |
101 | -2.1294,-0.724,-3.1581,-3.183 | |
102 | -2.1209,-0.721,-3.1499,-3.175 | |
103 | -2.1125,-0.718,-3.1417,-3.167 | |
104 | -2.1041,-0.715,-3.1335,-3.159 | |
105 | -2.0957,-0.713,-3.1254,-3.151 | |
106 | -2.0872,-0.71,-3.1172,-3.143 | |
107 | -2.0788,-0.707,-3.109,-3.135 | |
108 | -2.0704,-0.705,-3.1008,-3.126 | |
109 | -2.062,-0.702,-3.0926,-3.118 | |
110 | -2.0536,-0.699,-3.0844,-3.11 | |
111 | -2.0451,-0.696,-3.0763,-3.102 | |
112 | -2.0367,-0.694,-3.0681,-3.094 | |
113 | -2.0283,-0.691,-3.0599,-3.086 | |
114 | -2.0199,-0.688,-3.0517,-3.078 | |
115 | -2.0114,-0.686,-3.0435,-3.069 | |
116 | -2.003,-0.683,-3.0353,-3.061 | |
117 | -1.9946,-0.68,-3.0271,-3.053 | |
118 | -1.9862,-0.677,-3.019,-3.045 | |
119 | -1.9777,-0.675,-3.0108,-3.037 | |
120 | -1.9693,-0.672,-3.0026,-3.029 | |
121 | -1.9609,-0.669,-2.9944,-3.021 | |
122 | -1.9525,-0.667,-2.9862,-3.013 | |
123 | -1.9441,-0.664,-2.978,-3.004 | |
124 | -1.9356,-0.661,-2.9699,-2.996 | |
125 | -1.9272,-0.659,-2.9617,-2.988 | |
126 | -1.9188,-0.656,-2.9535,-2.98 | |
127 | -1.9104,-0.653,-2.9453,-2.972 | |
128 | -1.9019,-0.651,-2.9371,-2.964 | |
129 | -1.8935,-0.648,-2.9289,-2.956 | |
130 | -1.8851,-0.645,-2.9208,-2.947 | |
131 | -1.8767,-0.643,-2.9126,-2.939 | |
132 | -1.8682,-0.64,-2.9044,-2.931 | |
133 | -1.8598,-0.637,-2.8962,-2.923 | |
134 | -1.8514,-0.635,-2.888,-2.915 | |
135 | -1.843,-0.632,-2.8798,-2.907 | |
136 | -1.8345,-0.629,-2.8717,-2.899 | |
137 | -1.8261,-0.627,-2.8635,-2.891 | |
138 | -1.8177,-0.624,-2.8553,-2.882 | |
139 | -1.8093,-0.621,-2.8471,-2.874 | |
140 | -1.8008,-0.619,-2.8389,-2.866 | |
141 | -1.7924,-0.616,-2.8307,-2.858 | |
142 | -1.784,-0.613,-2.8225,-2.85 | |
143 | -1.7756,-0.611,-2.8144,-2.842 | |
144 | -1.7671,-0.608,-2.8062,-2.834 | |
145 | -1.7587,-0.605,-2.798,-2.825 | |
146 | -1.7503,-0.603,-2.7898,-2.817 | |
147 | -1.7419,-0.6,-2.7816,-2.809 | |
148 | -1.7335,-0.597,-2.7734,-2.801 | |
149 | -1.725,-0.595,-2.7653,-2.793 | |
150 | -1.7166,-0.592,-2.7571,-2.785 | |
151 | -1.7082,-0.589,-2.7489,-2.777 | |
152 | -1.6998,-0.587,-2.7407,-2.769 | |
153 | -1.6913,-0.584,-2.7325,-2.76 | |
154 | -1.6829,-0.581,-2.7243,-2.752 | |
155 | -1.6745,-0.579,-2.7162,-2.744 | |
156 | -1.6661,-0.576,-2.708,-2.736 | |
157 | -1.6576,-0.573,-2.6998,-2.728 | |
158 | -1.6492,-0.571,-2.6916,-2.72 | |
159 | -1.6408,-0.568,-2.6834,-2.712 | |
160 | -1.6324,-0.565,-2.6752,-2.703 | |
161 | -1.6239,-0.563,-2.6671,-2.695 | |
162 | -1.6155,-0.56,-2.6589,-2.687 | |
163 | -1.6071,-0.558,-2.6507,-2.679 | |
164 | -1.5987,-0.555,-2.6425,-2.671 | |
165 | -1.5902,-0.552,-2.6343,-2.663 | |
166 | -1.5818,-0.55,-2.6261,-2.655 | |
167 | -1.5734,-0.547,-2.618,-2.646 | |
168 | -1.565,-0.544,-2.6098,-2.638 | |
169 | -1.5565,-0.542,-2.6016,-2.63 | |
170 | -1.5481,-0.539,-2.5934,-2.622 | |
171 | -1.5397,-0.536,-2.5852,-2.614 | |
172 | -1.5313,-0.534,-2.577,-2.606 | |
173 | -1.5229,-0.531,-2.5688,-2.598 | |
174 | -1.5144,-0.528,-2.5607,-2.59 | |
175 | -1.506,-0.526,-2.5525,-2.581 | |
176 | -1.4976,-0.523,-2.5443,-2.573 | |
177 | -1.4892,-0.52,-2.5361,-2.565 | |
178 | -1.4807,-0.518,-2.5279,-2.557 | |
179 | -1.4723,-0.515,-2.5197,-2.549 | |
180 | -1.4639,-0.512,-2.5116,-2.541 | |
181 | -1.4555,-0.51,-2.5034,-2.533 | |
182 | -1.447,-0.507,-2.4952,-2.524 | |
183 | -1.4386,-0.504,-2.487,-2.516 | |
184 | -1.4302,-0.502,-2.4788,-2.508 | |
185 | -1.4218,-0.499,-2.4706,-2.5 | |
186 | -1.4133,-0.496,-2.4625,-2.492 | |
187 | -1.4049,-0.494,-2.4543,-2.484 | |
188 | -1.3965,-0.491,-2.4461,-2.476 | |
189 | -1.3881,-0.488,-2.4379,-2.467 | |
190 | -1.3796,-0.486,-2.4297,-2.459 | |
191 | -1.3712,-0.483,-2.4215,-2.451 | |
192 | -1.3628,-0.48,-2.4134,-2.443 | |
193 | -1.3544,-0.478,-2.4052,-2.435 | |
194 | -1.3459,-0.475,-2.397,-2.427 | |
195 | -1.3375,-0.472,-2.3888,-2.419 | |
196 | -1.3291,-0.47,-2.3806,-2.411 | |
197 | -1.3207,-0.467,-2.3724,-2.402 | |
198 | -1.3123,-0.464,-2.3643,-2.394 | |
199 | -1.3038,-0.462,-2.3561,-2.386 | |
200 | -1.2954,-0.459,-2.3479,-2.378 | |
201 | -1.287,-0.456,-2.3397,-2.37 | |
202 | -1.2786,-0.454,-2.3315,-2.362 | |
203 | -1.2701,-0.451,-2.3233,-2.354 | |
204 | -1.2617,-0.448,-2.3151,-2.345 | |
205 | -1.2533,-0.446,-2.307,-2.337 | |
206 | -1.2449,-0.443,-2.2988,-2.329 | |
207 | -1.2364,-0.44,-2.2906,-2.321 | |
208 | -1.228,-0.438,-2.2824,-2.313 | |
209 | -1.2196,-0.435,-2.2742,-2.305 | |
210 | -1.2112,-0.432,-2.266,-2.297 | |
211 | -1.2027,-0.43,-2.2579,-2.289 | |
212 | -1.1943,-0.427,-2.2497,-2.28 | |
213 | -1.1859,-0.424,-2.2415,-2.272 | |
214 | -1.1775,-0.422,-2.2333,-2.264 | |
215 | -1.169,-0.419,-2.2251,-2.256 | |
216 | -1.1606,-0.416,-2.2169,-2.248 | |
217 | -1.1522,-0.414,-2.2088,-2.24 | |
218 | -1.1438,-0.411,-2.2006,-2.232 | |
219 | -1.1353,-0.408,-2.1924,-2.223 | |
220 | -1.1269,-0.406,-2.1842,-2.215 | |
221 | -1.1185,-0.403,-2.176,-2.207 | |
222 | -1.1101,-0.4,-2.1678,-2.199 | |
223 | -1.1017,-0.398,-2.1597,-2.191 | |
224 | -1.0932,-0.395,-2.1515,-2.183 | |
225 | -1.0848,-0.392,-2.1433,-2.175 | |
226 | -1.0764,-0.39,-2.1351,-2.166 | |
227 | -1.068,-0.387,-2.1269,-2.158 | |
228 | -1.0595,-0.384,-2.1187,-2.15 | |
229 | -1.0511,-0.382,-2.1106,-2.142 | |
230 | -1.0427,-0.379,-2.1024,-2.134 | |
231 | -1.0343,-0.376,-2.0942,-2.126 | |
232 | -1.0258,-0.374,-2.086,-2.118 | |
233 | -1.0174,-0.371,-2.0778,-2.11 | |
234 | -1.009,-0.368,-2.0696,-2.101 | |
235 | -1.0006,-0.366,-2.0614,-2.093 | |
236 | -0.9921,-0.363,-2.0533,-2.085 | |
237 | -0.9837,-0.36,-2.0451,-2.077 | |
238 | -0.9753,-0.357,-2.0369,-2.069 | |
239 | -0.9669,-0.354,-2.0287,-2.061 | |
240 | -0.9585,-0.351,-2.0205,-2.053 | |
241 | -0.9501,-0.348,-2.0123,-2.044 | |
242 | -0.9416,-0.345,-2.0042,-2.036 | |
243 | -0.9332,-0.342,-1.996,-2.028 | |
244 | -0.9248,-0.339,-1.9878,-2.02 | |
245 | -0.9164,-0.336,-1.9796,-2.012 | |
246 | -0.908,-0.333,-1.9714,-2.004 | |
247 | -0.8996,-0.33,-1.9633,-1.995 | |
248 | -0.8912,-0.327,-1.9551,-1.987 | |
249 | -0.8827,-0.324,-1.9469,-1.979 | |
250 | -0.8743,-0.32,-1.9387,-1.971 | |
251 | -0.8659,-0.317,-1.9305,-1.963 | |
252 | -0.8575,-0.314,-1.9224,-1.954 | |
253 | -0.8491,-0.311,-1.9142,-1.946 | |
254 | -0.8407,-0.308,-1.906,-1.938 | |
255 | -0.8323,-0.305,-1.8978,-1.93 | |
256 | -0.8238,-0.302,-1.8896,-1.922 | |
257 | -0.8154,-0.299,-1.8815,-1.913 | |
258 | -0.807,-0.296,-1.8733,-1.905 | |
259 | -0.7986,-0.293,-1.8651,-1.897 | |
260 | -0.7902,-0.29,-1.8569,-1.889 | |
261 | -0.7818,-0.287,-1.8488,-1.88 | |
262 | -0.7734,-0.284,-1.8406,-1.872 | |
263 | -0.7649,-0.281,-1.8324,-1.864 | |
264 | -0.7565,-0.278,-1.8242,-1.856 | |
265 | -0.7481,-0.274,-1.816,-1.848 | |
266 | -0.7397,-0.271,-1.8079,-1.839 | |
267 | -0.7313,-0.268,-1.7997,-1.831 | |
268 | -0.7229,-0.265,-1.7915,-1.823 | |
269 | -0.7145,-0.262,-1.7833,-1.815 | |
270 | -0.706,-0.259,-1.7751,-1.806 | |
271 | -0.6976,-0.256,-1.767,-1.798 | |
272 | -0.6892,-0.253,-1.7588,-1.79 | |
273 | -0.6808,-0.25,-1.7506,-1.782 | |
274 | -0.6724,-0.247,-1.7424,-1.774 | |
275 | -0.664,-0.244,-1.7343,-1.765 | |
276 | -0.6556,-0.241,-1.7261,-1.757 | |
277 | -0.6471,-0.238,-1.7179,-1.749 | |
278 | -0.6387,-0.235,-1.7097,-1.741 | |
279 | -0.6303,-0.232,-1.7015,-1.733 | |
280 | -0.6219,-0.229,-1.6934,-1.724 | |
281 | -0.6135,-0.225,-1.6852,-1.716 | |
282 | -0.6051,-0.222,-1.677,-1.708 | |
283 | -0.5967,-0.219,-1.6688,-1.7 | |
284 | -0.5882,-0.216,-1.6606,-1.691 | |
285 | -0.5798,-0.213,-1.6525,-1.683 | |
286 | -0.5714,-0.21,-1.6443,-1.675 | |
287 | -0.563,-0.207,-1.6361,-1.667 | |
288 | -0.5546,-0.204,-1.6279,-1.659 | |
289 | -0.5462,-0.201,-1.6198,-1.65 | |
290 | -0.5378,-0.198,-1.6116,-1.642 | |
291 | -0.5293,-0.195,-1.6034,-1.634 | |
292 | -0.5209,-0.192,-1.5952,-1.626 | |
293 | -0.5125,-0.189,-1.587,-1.618 | |
294 | -0.5041,-0.186,-1.5789,-1.609 | |
295 | -0.4957,-0.183,-1.5707,-1.601 | |
296 | -0.4873,-0.18,-1.5625,-1.593 | |
297 | -0.4789,-0.176,-1.5543,-1.585 | |
298 | -0.4704,-0.173,-1.5461,-1.576 | |
299 | -0.462,-0.17,-1.538,-1.568 | |
300 | -0.4536,-0.167,-1.5298,-1.56 | |
301 | -0.4452,-0.164,-1.5216,-1.552 | |
302 | -0.4368,-0.161,-1.5134,-1.544 | |
303 | -0.4284,-0.158,-1.5053,-1.535 | |
304 | -0.4199,-0.155,-1.4971,-1.527 | |
305 | -0.4115,-0.152,-1.4889,-1.519 | |
306 | -0.4031,-0.149,-1.4807,-1.511 | |
307 | -0.3947,-0.146,-1.4725,-1.503 | |
308 | -0.3863,-0.143,-1.4644,-1.494 | |
309 | -0.3779,-0.14,-1.4562,-1.486 | |
310 | -0.3695,-0.137,-1.448,-1.478 | |
311 | -0.361,-0.134,-1.4398,-1.47 | |
312 | -0.3526,-0.131,-1.4316,-1.461 | |
313 | -0.3442,-0.127,-1.4235,-1.453 | |
314 | -0.3358,-0.124,-1.4153,-1.445 | |
315 | -0.3274,-0.121,-1.4071,-1.437 | |
316 | -0.319,-0.118,-1.3989,-1.429 | |
317 | -0.3106,-0.115,-1.3908,-1.42 | |
318 | -0.3021,-0.112,-1.3826,-1.412 | |
319 | -0.2937,-0.109,-1.3744,-1.404 | |
320 | -0.2853,-0.106,-1.3662,-1.396 | |
321 | -0.2769,-0.103,-1.358,-1.388 | |
322 | -0.2685,-0.1,-1.3499,-1.379 | |
323 | -0.2601,-0.097,-1.3417,-1.371 | |
324 | -0.2517,-0.094,-1.3335,-1.363 | |
325 | -0.2432,-0.091,-1.3253,-1.355 | |
326 | -0.2348,-0.088,-1.3171,-1.346 | |
327 | -0.2264,-0.085,-1.309,-1.338 | |
328 | -0.218,-0.082,-1.3008,-1.33 | |
329 | -0.2096,-0.078,-1.2926,-1.322 | |
330 | -0.2012,-0.075,-1.2844,-1.314 | |
331 | -0.1928,-0.072,-1.2763,-1.305 | |
332 | -0.1843,-0.069,-1.2681,-1.297 | |
333 | -0.1759,-0.066,-1.2599,-1.289 | |
334 | -0.1675,-0.063,-1.2517,-1.281 | |
335 | -0.1591,-0.06,-1.2435,-1.273 | |
336 | -0.1507,-0.057,-1.2354,-1.264 | |
337 | -0.1423,-0.054,-1.2272,-1.256 | |
338 | -0.1339,-0.051,-1.219,-1.248 | |
339 | -0.1254,-0.048,-1.2108,-1.24 | |
340 | -0.117,-0.045,-1.2026,-1.231 | |
341 | -0.1086,-0.042,-1.1945,-1.223 | |
342 | -0.1002,-0.039,-1.1863,-1.215 | |
343 | -0.0918,-0.036,-1.1781,-1.207 | |
344 | -0.0834,-0.032,-1.1699,-1.199 | |
345 | -0.075,-0.029,-1.1618,-1.19 | |
346 | -0.0665,-0.026,-1.1536,-1.182 | |
347 | -0.0581,-0.023,-1.1454,-1.174 | |
348 | -0.0497,-0.02,-1.1372,-1.166 | |
349 | -0.0413,-0.017,-1.129,-1.158 | |
350 | -0.0329,-0.014,-1.1209,-1.149 | |
351 | -0.0245,-0.011,-1.1127,-1.141 | |
352 | -0.0161,-0.008,-1.1045,-1.133 | |
353 | -0.0076,-0.005,-1.0963,-1.125 | |
354 | 0.0008,-0.002,-1.0881,-1.116 | |
355 | 0.0092,0.001,-1.08,-1.108 | |
356 | 0.0176,0.005,-1.0718,-1.1 | |
357 | 0.026,0.008,-1.0636,-1.092 | |
358 | 0.0344,0.012,-1.0554,-1.084 | |
359 | 0.0428,0.015,-1.0472,-1.075 | |
360 | 0.0512,0.019,-1.0391,-1.067 | |
361 | 0.0596,0.022,-1.0309,-1.059 | |
362 | 0.068,0.026,-1.0227,-1.051 | |
363 | 0.0764,0.029,-1.0145,-1.043 | |
364 | 0.0848,0.033,-1.0064,-1.034 | |
365 | 0.0932,0.036,-0.9982,-1.026 | |
366 | 0.1016,0.04,-0.99,-1.018 | |
367 | 0.11,0.043,-0.9818,-1.01 | |
368 | 0.1184,0.047,-0.9736,-1.001 | |
369 | 0.1268,0.05,-0.9655,-0.993 | |
370 | 0.1352,0.054,-0.9573,-0.985 | |
371 | 0.1436,0.057,-0.9491,-0.977 | |
372 | 0.152,0.061,-0.941,-0.968 | |
373 | 0.1604,0.064,-0.9328,-0.96 | |
374 | 0.1688,0.068,-0.9246,-0.952 | |
375 | 0.1772,0.071,-0.9164,-0.943 | |
376 | 0.1856,0.074,-0.9083,-0.935 | |
377 | 0.1941,0.078,-0.9001,-0.927 | |
378 | 0.2025,0.081,-0.8919,-0.918 | |
379 | 0.2109,0.085,-0.8837,-0.91 | |
380 | 0.2193,0.088,-0.8756,-0.902 | |
381 | 0.2277,0.092,-0.8674,-0.893 | |
382 | 0.2361,0.095,-0.8592,-0.885 | |
383 | 0.2445,0.099,-0.8511,-0.877 | |
384 | 0.2529,0.102,-0.8429,-0.869 | |
385 | 0.2613,0.106,-0.8347,-0.86 | |
386 | 0.2697,0.109,-0.8265,-0.852 | |
387 | 0.2781,0.113,-0.8184,-0.844 | |
388 | 0.2865,0.116,-0.8102,-0.835 | |
389 | 0.2949,0.12,-0.802,-0.827 | |
390 | 0.3033,0.123,-0.7939,-0.819 | |
391 | 0.3117,0.127,-0.7857,-0.81 | |
392 | 0.3201,0.13,-0.7775,-0.802 | |
393 | 0.3285,0.134,-0.7693,-0.794 | |
394 | 0.3369,0.137,-0.7612,-0.785 | |
395 | 0.3453,0.141,-0.753,-0.777 | |
396 | 0.3537,0.144,-0.7448,-0.769 | |
397 | 0.3621,0.148,-0.7366,-0.761 | |
398 | 0.3705,0.151,-0.7285,-0.752 | |
399 | 0.3789,0.155,-0.7203,-0.744 | |
400 | 0.3873,0.158,-0.7121,-0.736 | |
401 | 0.3957,0.162,-0.704,-0.727 | |
402 | 0.4041,0.165,-0.6958,-0.719 | |
403 | 0.4125,0.169,-0.6876,-0.711 | |
404 | 0.4209,0.172,-0.6794,-0.702 | |
405 | 0.4293,0.175,-0.6713,-0.694 | |
406 | 0.4377,0.179,-0.6631,-0.686 | |
407 | 0.4461,0.182,-0.6549,-0.678 | |
408 | 0.4545,0.186,-0.6467,-0.669 | |
409 | 0.463,0.189,-0.6386,-0.661 | |
410 | 0.4714,0.193,-0.6304,-0.653 | |
411 | 0.4798,0.196,-0.6222,-0.644 | |
412 | 0.4882,0.2,-0.6141,-0.636 | |
413 | 0.4966,0.203,-0.6059,-0.628 | |
414 | 0.505,0.207,-0.5977,-0.619 | |
415 | 0.5134,0.21,-0.5895,-0.611 | |
416 | 0.5218,0.214,-0.5814,-0.603 | |
417 | 0.5302,0.217,-0.5732,-0.594 | |
418 | 0.5386,0.221,-0.565,-0.586 | |
419 | 0.547,0.224,-0.5568,-0.578 | |
420 | 0.5554,0.228,-0.5487,-0.57 | |
421 | 0.5638,0.231,-0.5405,-0.561 | |
422 | 0.5722,0.235,-0.5323,-0.553 | |
423 | 0.5806,0.238,-0.5242,-0.545 | |
424 | 0.589,0.242,-0.516,-0.536 | |
425 | 0.5974,0.245,-0.5078,-0.528 | |
426 | 0.6058,0.249,-0.4996,-0.52 | |
427 | 0.6142,0.252,-0.4915,-0.511 | |
428 | 0.6226,0.256,-0.4833,-0.503 | |
429 | 0.631,0.259,-0.4751,-0.495 | |
430 | 0.6394,0.263,-0.4669,-0.486 | |
431 | 0.6478,0.266,-0.4588,-0.478 | |
432 | 0.6562,0.269,-0.4506,-0.47 | |
433 | 0.6646,0.273,-0.4424,-0.462 | |
434 | 0.673,0.276,-0.4343,-0.453 | |
435 | 0.6814,0.28,-0.4261,-0.445 | |
436 | 0.6898,0.283,-0.4179,-0.437 | |
437 | 0.6982,0.287,-0.4097,-0.428 | |
438 | 0.7066,0.29,-0.4016,-0.42 | |
439 | 0.715,0.294,-0.3934,-0.412 | |
440 | 0.7234,0.297,-0.3852,-0.403 | |
441 | 0.7319,0.301,-0.3771,-0.395 | |
442 | 0.7403,0.304,-0.3689,-0.387 | |
443 | 0.7487,0.308,-0.3607,-0.379 | |
444 | 0.7571,0.311,-0.3525,-0.37 | |
445 | 0.7655,0.315,-0.3444,-0.362 | |
446 | 0.7739,0.318,-0.3362,-0.354 | |
447 | 0.7823,0.322,-0.328,-0.345 | |
448 | 0.7907,0.325,-0.3198,-0.337 | |
449 | 0.7991,0.329,-0.3117,-0.329 | |
450 | 0.8075,0.332,-0.3035,-0.32 | |
451 | 0.8159,0.336,-0.2953,-0.312 | |
452 | 0.8243,0.339,-0.2872,-0.304 | |
453 | 0.8327,0.343,-0.279,-0.295 | |
454 | 0.8411,0.346,-0.2708,-0.287 | |
455 | 0.8495,0.35,-0.2626,-0.279 | |
456 | 0.8579,0.353,-0.2545,-0.271 | |
457 | 0.8663,0.357,-0.2463,-0.262 | |
458 | 0.8747,0.36,-0.2381,-0.254 | |
459 | 0.8831,0.363,-0.2299,-0.246 | |
460 | 0.8915,0.367,-0.2218,-0.237 | |
461 | 0.8999,0.37,-0.2136,-0.229 | |
462 | 0.9083,0.374,-0.2054,-0.221 | |
463 | 0.9167,0.377,-0.1973,-0.212 | |
464 | 0.9251,0.381,-0.1891,-0.204 | |
465 | 0.9335,0.384,-0.1809,-0.196 | |
466 | 0.9419,0.388,-0.1727,-0.187 | |
467 | 0.9503,0.391,-0.1646,-0.179 | |
468 | 0.9587,0.395,-0.1564,-0.171 | |
469 | 0.9671,0.398,-0.1482,-0.163 | |
470 | 0.9755,0.402,-0.14,-0.154 | |
471 | 0.9839,0.405,-0.1319,-0.146 | |
472 | 0.9923,0.409,-0.1237,-0.138 | |
473 | 1.0008,0.412,-0.1155,-0.129 | |
474 | 1.0092,0.416,-0.1074,-0.121 | |
475 | 1.0176,0.418,-0.0992,-0.113 | |
476 | 1.026,0.42,-0.091,-0.104 | |
477 | 1.0345,0.423,-0.0828,-0.096 | |
478 | 1.0429,0.425,-0.0747,-0.088 | |
479 | 1.0513,0.427,-0.0665,-0.08 | |
480 | 1.0598,0.429,-0.0583,-0.071 | |
481 | 1.0682,0.431,-0.0501,-0.063 | |
482 | 1.0766,0.434,-0.042,-0.055 | |
483 | 1.0851,0.436,-0.0338,-0.046 | |
484 | 1.0935,0.438,-0.0256,-0.038 | |
485 | 1.1019,0.44,-0.0175,-0.03 | |
486 | 1.1103,0.442,-0.0093,-0.021 | |
487 | 1.1188,0.445,-0.0011,-0.013 | |
488 | 1.1272,0.447,0.0071,-0.005 | |
489 | 1.1356,0.449,0.0152,0.003 | |
490 | 1.1441,0.451,0.0234,0.012 | |
491 | 1.1525,0.454,0.0316,0.02 | |
492 | 1.1609,0.456,0.0398,0.028 | |
493 | 1.1694,0.458,0.048,0.036 | |
494 | 1.1778,0.46,0.0562,0.044 | |
495 | 1.1862,0.462,0.0643,0.052 | |
496 | 1.1947,0.465,0.0725,0.06 | |
497 | 1.2031,0.467,0.0807,0.069 | |
498 | 1.2115,0.469,0.0889,0.077 | |
499 | 1.22,0.471,0.0971,0.085 | |
500 | 1.2284,0.474,0.1053,0.093 | |
501 | 1.2368,0.476,0.1134,0.101 | |
502 | 1.2453,0.478,0.1216,0.109 | |
503 | 1.2537,0.48,0.1298,0.117 | |
504 | 1.2621,0.482,0.138,0.125 | |
505 | 1.2706,0.485,0.1462,0.134 | |
506 | 1.279,0.487,0.1544,0.142 | |
507 | 1.2874,0.489,0.1626,0.15 | |
508 | 1.2959,0.491,0.1707,0.158 | |
509 | 1.3043,0.494,0.1789,0.166 | |
510 | 1.3127,0.496,0.1871,0.174 | |
511 | 1.3212,0.498,0.1953,0.182 | |
512 | 1.3296,0.5,0.2035,0.19 | |
513 | 1.338,0.502,0.2117,0.199 | |
514 | 1.3465,0.505,0.2198,0.207 | |
515 | 1.3549,0.507,0.228,0.215 | |
516 | 1.3633,0.509,0.2362,0.223 | |
517 | 1.3718,0.511,0.2444,0.231 | |
518 | 1.3802,0.514,0.2526,0.239 | |
519 | 1.3886,0.516,0.2608,0.247 | |
520 | 1.3971,0.518,0.2689,0.256 | |
521 | 1.4055,0.52,0.2771,0.264 | |
522 | 1.4139,0.522,0.2853,0.272 | |
523 | 1.4224,0.525,0.2935,0.28 | |
524 | 1.4308,0.527,0.3017,0.288 | |
525 | 1.4392,0.529,0.3099,0.296 | |
526 | 1.4477,0.531,0.3181,0.304 | |
527 | 1.4561,0.533,0.3262,0.312 | |
528 | 1.4645,0.536,0.3344,0.321 | |
529 | 1.473,0.538,0.3426,0.329 | |
530 | 1.4814,0.54,0.3508,0.337 | |
531 | 1.4898,0.542,0.359,0.345 | |
532 | 1.4983,0.545,0.3672,0.353 | |
533 | 1.5067,0.547,0.3753,0.361 | |
534 | 1.5151,0.549,0.3835,0.369 | |
535 | 1.5236,0.551,0.3917,0.377 | |
536 | 1.532,0.553,0.3999,0.386 | |
537 | 1.5404,0.556,0.4081,0.394 | |
538 | 1.5489,0.558,0.4163,0.402 | |
539 | 1.5573,0.56,0.4244,0.41 | |
540 | 1.5657,0.562,0.4326,0.418 | |
541 | 1.5742,0.565,0.4408,0.426 | |
542 | 1.5826,0.567,0.449,0.434 | |
543 | 1.591,0.569,0.4572,0.443 | |
544 | 1.5995,0.571,0.4654,0.451 | |
545 | 1.6079,0.573,0.4736,0.459 | |
546 | 1.6163,0.576,0.4817,0.467 | |
547 | 1.6248,0.578,0.4899,0.475 | |
548 | 1.6332,0.58,0.4981,0.483 | |
549 | 1.6416,0.582,0.5063,0.491 | |
550 | 1.6501,0.585,0.5145,0.499 | |
551 | 1.6585,0.587,0.5227,0.508 | |
552 | 1.6669,0.589,0.5308,0.516 | |
553 | 1.6754,0.591,0.539,0.524 | |
554 | 1.6838,0.593,0.5472,0.532 | |
555 | 1.6922,0.596,0.5554,0.54 | |
556 | 1.7007,0.598,0.5636,0.548 | |
557 | 1.7091,0.6,0.5718,0.556 | |
558 | 1.7175,0.602,0.5799,0.564 | |
559 | 1.726,0.604,0.5881,0.573 | |
560 | 1.7344,0.607,0.5963,0.581 | |
561 | 1.7428,0.609,0.6045,0.589 | |
562 | 1.7513,0.611,0.6127,0.597 | |
563 | 1.7597,0.613,0.6209,0.605 | |
564 | 1.7681,0.616,0.6291,0.613 | |
565 | 1.7766,0.618,0.6372,0.621 | |
566 | 1.785,0.62,0.6454,0.63 | |
567 | 1.7934,0.622,0.6536,0.638 | |
568 | 1.8019,0.624,0.6618,0.646 | |
569 | 1.8103,0.627,0.67,0.654 | |
570 | 1.8187,0.629,0.6782,0.662 | |
571 | 1.8272,0.631,0.6863,0.67 | |
572 | 1.8356,0.633,0.6945,0.678 | |
573 | 1.844,0.636,0.7027,0.686 | |
574 | 1.8525,0.638,0.7109,0.695 | |
575 | 1.8609,0.64,0.7191,0.703 | |
576 | 1.8693,0.642,0.7273,0.711 | |
577 | 1.8778,0.644,0.7354,0.719 | |
578 | 1.8862,0.647,0.7436,0.727 | |
579 | 1.8946,0.649,0.7518,0.735 | |
580 | 1.9031,0.651,0.76,0.743 | |
581 | 1.9115,0.653,0.7682,0.751 | |
582 | 1.9199,0.656,0.7764,0.76 | |
583 | 1.9284,0.658,0.7846,0.768 | |
584 | 1.9368,0.66,0.7927,0.776 | |
585 | 1.9452,0.662,0.8009,0.784 | |
586 | 1.9537,0.664,0.8091,0.792 | |
587 | 1.9621,0.667,0.8173,0.8 | |
588 | 1.9705,0.669,0.8255,0.808 | |
589 | 1.979,0.671,0.8337,0.817 | |
590 | 1.9874,0.673,0.8418,0.825 | |
591 | 1.9958,0.676,0.85,0.833 | |
592 | 2.0043,0.678,0.8582,0.841 | |
593 | 2.0127,0.68,0.8664,0.849 | |
594 | 2.0211,0.683,0.8746,0.857 | |
595 | 2.0295,0.685,0.8828,0.865 | |
596 | 2.038,0.688,0.8909,0.873 | |
597 | 2.0464,0.691,0.8991,0.882 | |
598 | 2.0548,0.693,0.9073,0.89 | |
599 | 2.0632,0.696,0.9155,0.898 | |
600 | 2.0717,0.698,0.9237,0.906 | |
601 | 2.0801,0.701,0.9319,0.914 | |
602 | 2.0885,0.704,0.9401,0.922 | |
603 | 2.0969,0.706,0.9482,0.93 | |
604 | 2.1054,0.709,0.9564,0.938 | |
605 | 2.1138,0.712,0.9646,0.947 | |
606 | 2.1222,0.714,0.9728,0.955 | |
607 | 2.1306,0.717,0.981,0.963 | |
608 | 2.1391,0.719,0.9892,0.971 | |
609 | 2.1475,0.722,0.9973,0.979 | |
610 | 2.1559,0.725,1.0055,0.987 | |
611 | 2.1643,0.727,1.0137,0.995 | |
612 | 2.1728,0.73,1.0219,1.003 | |
613 | 2.1812,0.733,1.0301,1.011 | |
614 | 2.1896,0.735,1.0383,1.019 | |
615 | 2.198,0.738,1.0465,1.027 | |
616 | 2.2065,0.74,1.0547,1.035 | |
617 | 2.2149,0.743,1.0629,1.043 | |
618 | 2.2233,0.746,1.0711,1.051 | |
619 | 2.2317,0.748,1.0792,1.059 | |
620 | 2.2402,0.751,1.0874,1.067 | |
621 | 2.2486,0.753,1.0956,1.075 | |
622 | 2.257,0.756,1.1038,1.083 | |
623 | 2.2654,0.759,1.112,1.091 | |
624 | 2.2739,0.761,1.1202,1.099 | |
625 | 2.2823,0.764,1.1284,1.107 | |
626 | 2.2907,0.767,1.1366,1.115 | |
627 | 2.2991,0.769,1.1448,1.123 | |
628 | 2.3076,0.772,1.153,1.131 | |
629 | 2.316,0.774,1.1612,1.139 | |
630 | 2.3244,0.777,1.1694,1.148 | |
631 | 2.3328,0.78,1.1776,1.156 | |
632 | 2.3413,0.782,1.1857,1.164 | |
633 | 2.3497,0.785,1.1939,1.172 | |
634 | 2.3581,0.787,1.2021,1.18 | |
635 | 2.3665,0.79,1.2103,1.188 | |
636 | 2.375,0.793,1.2185,1.196 | |
637 | 2.3834,0.795,1.2267,1.204 | |
638 | 2.3918,0.798,1.2349,1.212 | |
639 | 2.4002,0.801,1.2431,1.22 | |
640 | 2.4087,0.803,1.2513,1.228 | |
641 | 2.4171,0.806,1.2595,1.236 | |
642 | 2.4255,0.808,1.2677,1.244 | |
643 | 2.4339,0.811,1.2759,1.252 | |
644 | 2.4424,0.814,1.2841,1.26 | |
645 | 2.4508,0.816,1.2922,1.268 | |
646 | 2.4592,0.819,1.3004,1.276 | |
647 | 2.4676,0.822,1.3086,1.284 | |
648 | 2.4761,0.824,1.3168,1.292 | |
649 | 2.4845,0.827,1.325,1.3 | |
650 | 2.4929,0.829,1.3332,1.308 | |
651 | 2.5013,0.832,1.3414,1.316 | |
652 | 2.5098,0.835,1.3496,1.324 | |
653 | 2.5182,0.837,1.3578,1.332 | |
654 | 2.5266,0.84,1.366,1.34 | |
655 | 2.535,0.842,1.3742,1.348 | |
656 | 2.5435,0.845,1.3824,1.356 | |
657 | 2.5519,0.848,1.3906,1.364 | |
658 | 2.5603,0.85,1.3987,1.372 | |
659 | 2.5687,0.853,1.4069,1.38 | |
660 | 2.5772,0.856,1.4151,1.388 | |
661 | 2.5856,0.858,1.4233,1.396 | |
662 | 2.594,0.861,1.4315,1.404 | |
663 | 2.6024,0.863,1.4397,1.412 | |
664 | 2.6109,0.866,1.4479,1.42 | |
665 | 2.6193,0.869,1.4561,1.428 | |
666 | 2.6277,0.871,1.4643,1.436 | |
667 | 2.6361,0.874,1.4725,1.444 | |
668 | 2.6446,0.876,1.4807,1.452 | |
669 | 2.653,0.879,1.4889,1.46 | |
670 | 2.6614,0.882,1.4971,1.468 | |
671 | 2.6698,0.884,1.5052,1.476 | |
672 | 2.6783,0.887,1.5134,1.484 | |
673 | 2.6867,0.89,1.5216,1.492 | |
674 | 2.6951,0.892,1.5298,1.5 | |
675 | 2.7035,0.895,1.538,1.508 | |
676 | 2.712,0.897,1.5462,1.516 | |
677 | 2.7204,0.9,1.5544,1.524 | |
678 | 2.7288,0.903,1.5626,1.532 | |
679 | 2.7372,0.905,1.5708,1.54 | |
680 | 2.7457,0.908,1.579,1.548 | |
681 | 2.7541,0.911,1.5872,1.556 | |
682 | 2.7625,0.913,1.5954,1.564 | |
683 | 2.7709,0.916,1.6036,1.572 | |
684 | 2.7794,0.918,1.6117,1.58 | |
685 | 2.7878,0.921,1.6199,1.588 | |
686 | 2.7962,0.924,1.6281,1.596 | |
687 | 2.8046,0.926,1.6363,1.604 | |
688 | 2.8131,0.929,1.6445,1.612 | |
689 | 2.8215,0.931,1.6527,1.62 | |
690 | 2.8299,0.934,1.6609,1.628 | |
691 | 2.8383,0.937,1.6691,1.636 | |
692 | 2.8468,0.939,1.6773,1.644 | |
693 | 2.8552,0.942,1.6855,1.652 | |
694 | 2.8636,0.945,1.6937,1.66 | |
695 | 2.872,0.947,1.7019,1.668 | |
696 | 2.8805,0.95,1.7101,1.676 | |
697 | 2.8889,0.952,1.7182,1.684 | |
698 | 2.8973,0.955,1.7264,1.692 | |
699 | 2.9057,0.958,1.7346,1.7 | |
700 | 2.9142,0.96,1.7428,1.708 | |
701 | 2.9226,0.963,1.751,1.716 | |
702 | 2.931,0.965,1.7592,1.724 | |
703 | 2.9394,0.968,1.7674,1.732 | |
704 | 2.9479,0.971,1.7756,1.74 | |
705 | 2.9563,0.973,1.7838,1.748 | |
706 | 2.9647,0.976,1.792,1.756 | |
707 | 2.9731,0.979,1.8002,1.764 | |
708 | 2.9816,0.981,1.8084,1.772 | |
709 | 2.99,0.984,1.8166,1.78 | |
710 | 2.9984,0.987,1.8247,1.788 | |
711 | 3.0068,0.99,1.8329,1.796 | |
712 | 3.0152,0.993,1.8411,1.804 | |
713 | 3.0236,0.996,1.8493,1.812 | |
714 | 3.0321,0.999,1.8575,1.82 | |
715 | 3.0405,1.003,1.8657,1.828 | |
716 | 3.0489,1.006,1.8739,1.836 | |
717 | 3.0573,1.009,1.8821,1.844 | |
718 | 3.0657,1.012,1.8903,1.852 | |
719 | 3.0741,1.016,1.8985,1.86 | |
720 | 3.0825,1.019,1.9067,1.868 | |
721 | 3.0909,1.022,1.9149,1.876 | |
722 | 3.0993,1.025,1.9231,1.884 | |
723 | 3.1078,1.028,1.9312,1.892 | |
724 | 3.1162,1.032,1.9394,1.9 | |
725 | 3.1246,1.035,1.9476,1.908 | |
726 | 3.133,1.038,1.9558,1.916 | |
727 | 3.1414,1.041,1.964,1.924 | |
728 | 3.1498,1.044,1.9722,1.932 | |
729 | 3.1582,1.048,1.9804,1.94 | |
730 | 3.1666,1.051,1.9886,1.948 | |
731 | 3.175,1.054,1.9968,1.956 | |
732 | 3.1835,1.057,2.005,1.964 | |
733 | 3.1919,1.06,2.0132,1.972 | |
734 | 3.2003,1.064,2.0213,1.98 | |
735 | 3.2087,1.067,2.0295,1.989 | |
736 | 3.2171,1.07,2.0377,1.997 | |
737 | 3.2255,1.073,2.0459,2.005 | |
738 | 3.2339,1.077,2.054,2.014 | |
739 | 3.2423,1.08,2.0622,2.022 | |
740 | 3.2507,1.083,2.0704,2.03 | |
741 | 3.2591,1.086,2.0785,2.039 | |
742 | 3.2676,1.089,2.0867,2.047 | |
743 | 3.276,1.093,2.0949,2.055 | |
744 | 3.2844,1.096,2.1031,2.064 | |
745 | 3.2928,1.099,2.1112,2.072 | |
746 | 3.3012,1.102,2.1194,2.08 | |
747 | 3.3096,1.105,2.1276,2.088 | |
748 | 3.318,1.109,2.1358,2.097 | |
749 | 3.3264,1.112,2.1439,2.105 | |
750 | 3.3348,1.115,2.1521,2.113 | |
751 | 3.3433,1.118,2.1603,2.122 | |
752 | 3.3517,1.121,2.1684,2.13 | |
753 | 3.3601,1.125,2.1766,2.138 | |
754 | 3.3685,1.128,2.1848,2.147 | |
755 | 3.3769,1.131,2.193,2.155 | |
756 | 3.3853,1.134,2.2011,2.163 | |
757 | 3.3937,1.138,2.2093,2.172 | |
758 | 3.4021,1.141,2.2175,2.18 | |
759 | 3.4105,1.144,2.2257,2.188 | |
760 | 3.419,1.147,2.2338,2.196 | |
761 | 3.4274,1.15,2.242,2.205 | |
762 | 3.4358,1.154,2.2502,2.213 | |
763 | 3.4442,1.157,2.2583,2.221 | |
764 | 3.4526,1.16,2.2665,2.23 | |
765 | 3.461,1.163,2.2747,2.238 | |
766 | 3.4694,1.166,2.2829,2.246 | |
767 | 3.4778,1.17,2.291,2.255 | |
768 | 3.4862,1.173,2.2992,2.263 | |
769 | 3.4946,1.176,2.3074,2.271 | |
770 | 3.5031,1.179,2.3156,2.279 | |
771 | 3.5115,1.182,2.3237,2.288 | |
772 | 3.5199,1.186,2.3319,2.296 | |
773 | 3.5283,1.189,2.3401,2.304 | |
774 | 3.5367,1.192,2.3482,2.313 | |
775 | 3.5451,1.195,2.3564,2.321 | |
776 | 3.5535,1.198,2.3646,2.329 | |
777 | 3.5619,1.202,2.3728,2.338 | |
778 | 3.5703,1.205,2.3809,2.346 | |
779 | 3.5788,1.208,2.3891,2.354 | |
780 | 3.5872,1.211,2.3973,2.363 | |
781 | 3.5956,1.215,2.4055,2.371 | |
782 | 3.604,1.218,2.4136,2.379 | |
783 | 3.6124,1.221,2.4218,2.387 | |
784 | 3.6208,1.224,2.43,2.396 | |
785 | 3.6292,1.227,2.4381,2.404 | |
786 | 3.6376,1.231,2.4463,2.412 | |
787 | 3.646,1.234,2.4545,2.421 | |
788 | 3.6544,1.237,2.4627,2.429 | |
789 | 3.6629,1.24,2.4708,2.437 | |
790 | 3.6713,1.243,2.479,2.446 | |
791 | 3.6797,1.247,2.4872,2.454 | |
792 | 3.6881,1.25,2.4953,2.462 | |
793 | 3.6965,1.253,2.5035,2.471 | |
794 | 3.7049,1.256,2.5117,2.479 | |
795 | 3.7133,1.259,2.5199,2.487 | |
796 | 3.7217,1.263,2.528,2.495 | |
797 | 3.7301,1.266,2.5362,2.504 | |
798 | 3.7386,1.269,2.5444,2.512 | |
799 | 3.747,1.272,2.5526,2.52 | |
800 | 3.7554,1.276,2.5607,2.529 | |
801 | 3.7638,1.279,2.5689,2.537 | |
802 | 3.7722,1.282,2.5771,2.545 | |
803 | 3.7806,1.285,2.5852,2.554 | |
804 | 3.789,1.288,2.5934,2.562 | |
805 | 3.7974,1.292,2.6016,2.57 | |
806 | 3.8058,1.295,2.6098,2.578 | |
807 | 3.8143,1.298,2.6179,2.587 | |
808 | 3.8227,1.301,2.6261,2.595 | |
809 | 3.8311,1.304,2.6343,2.603 | |
810 | 3.8395,1.308,2.6425,2.612 | |
811 | 3.8479,1.311,2.6506,2.62 | |
812 | 3.8563,1.314,2.6588,2.628 | |
813 | 3.8647,1.317,2.667,2.637 | |
814 | 3.8731,1.32,2.6751,2.645 | |
815 | 3.8815,1.324,2.6833,2.653 | |
816 | 3.8899,1.327,2.6915,2.662 | |
817 | 3.8984,1.33,2.6997,2.67 | |
818 | 3.9068,1.333,2.7078,2.678 | |
819 | 3.9152,1.337,2.716,2.686 | |
820 | 3.9236,1.34,2.7242,2.695 | |
821 | 3.932,1.343,2.7324,2.703 | |
822 | 3.9404,1.346,2.7405,2.711 | |
823 | 3.9488,1.349,2.7487,2.72 | |
824 | 3.9572,1.353,2.7569,2.728 | |
825 | 3.9656,1.356,2.765,2.736 | |
826 | 3.9741,1.359,2.7732,2.745 | |
827 | 3.9825,1.362,2.7814,2.753 | |
828 | 3.9909,1.365,2.7896,2.761 | |
829 | 3.9993,1.369,2.7977,2.77 | |
830 | 4.0077,1.371,2.8059,2.778 | |
831 | 4.0161,1.374,2.8141,2.786 | |
832 | 4.0246,1.377,2.8222,2.794 | |
833 | 4.033,1.379,2.8304,2.803 | |
834 | 4.0414,1.382,2.8386,2.811 | |
835 | 4.0498,1.385,2.8468,2.819 | |
836 | 4.0583,1.387,2.8549,2.828 | |
837 | 4.0667,1.39,2.8631,2.836 | |
838 | 4.0751,1.393,2.8713,2.844 | |
839 | 4.0835,1.395,2.8795,2.853 | |
840 | 4.0919,1.398,2.8876,2.861 | |
841 | 4.1004,1.401,2.8958,2.869 | |
842 | 4.1088,1.403,2.904,2.877 | |
843 | 4.1172,1.406,2.9121,2.886 | |
844 | 4.1256,1.409,2.9203,2.894 | |
845 | 4.1341,1.411,2.9285,2.902 | |
846 | 4.1425,1.414,2.9367,2.911 | |
847 | 4.1509,1.417,2.9448,2.919 | |
848 | 4.1593,1.419,2.953,2.927 | |
849 | 4.1678,1.422,2.9612,2.936 | |
850 | 4.1762,1.425,2.9694,2.944 | |
851 | 4.1846,1.427,2.9775,2.952 | |
852 | 4.193,1.43,2.9857,2.961 | |
853 | 4.2015,1.433,2.9939,2.969 | |
854 | 4.2099,1.435,3.002,2.977 | |
855 | 4.2183,1.438,, | |
856 | 4.2267,1.441,, | |
857 | 4.2352,1.443,, | |
858 | 4.2436,1.446,, | |
859 | 4.252,1.449,, | |
860 | 4.2604,1.451,, | |
861 | 4.2689,1.454,, | |
862 | 4.2773,1.457,, | |
863 | 4.2857,1.459,, | |
864 | 4.2941,1.462,, | |
865 | 4.3025,1.464,, | |
866 | 4.311,1.467,, | |
867 | 4.3194,1.47,, | |
868 | 4.3278,1.472,, | |
869 | 4.3362,1.475,, | |
870 | 4.3447,1.478,, | |
871 | 4.3531,1.48,, | |
872 | 4.3615,1.483,, | |
873 | 4.3699,1.486,, | |
874 | 4.3784,1.488,, | |
875 | 4.3868,1.491,, | |
876 | 4.3952,1.494,, | |
877 | 4.4036,1.496,, | |
878 | 4.4121,1.499,, | |
879 | 4.4205,1.502,, | |
880 | 4.4289,1.504,, | |
881 | 4.4373,1.507,, | |
882 | 4.4458,1.51,, | |
883 | 4.4542,1.512,, | |
884 | 4.4626,1.515,, | |
885 | 4.471,1.518,, | |
886 | 4.4795,1.52,, | |
887 | 4.4879,1.523,, | |
888 | 4.4963,1.526,, | |
889 | 4.5047,1.528,, | |
890 | 4.5131,1.531,, | |
891 | 4.5216,1.534,, | |
892 | 4.53,1.536,, | |
893 | 4.5384,1.539,, | |
894 | 4.5468,1.542,, | |
895 | 4.5553,1.544,, | |
896 | 4.5637,1.547,, | |
897 | 4.5721,1.55,, | |
898 | 4.5805,1.552,, | |
899 | 4.589,1.555,, | |
900 | 4.5974,1.558,, | |
901 | 4.6058,1.56,, | |
902 | 4.6142,1.563,, | |
903 | 4.6227,1.566,, | |
904 | 4.6311,1.568,, | |
905 | 4.6395,1.571,, | |
906 | 4.6479,1.574,, | |
907 | 4.6564,1.576,, | |
908 | 4.6648,1.579,, | |
909 | 4.6732,1.582,, | |
910 | 4.6816,1.584,, | |
911 | 4.6901,1.587,, | |
912 | 4.6985,1.59,, | |
913 | 4.7069,1.592,, | |
914 | 4.7153,1.595,, | |
915 | 4.7237,1.598,, | |
916 | 4.7322,1.6,, | |
917 | 4.7406,1.603,, | |
918 | 4.749,1.606,, | |
919 | 4.7574,1.608,, | |
920 | 4.7659,1.611,, | |
921 | 4.7743,1.614,, | |
922 | 4.7827,1.616,, | |
923 | 4.7911,1.619,, | |
924 | 4.7996,1.622,, | |
925 | 4.808,1.624,, | |
926 | 4.8164,1.627,, | |
927 | 4.8248,1.63,, | |
928 | 4.8333,1.632,, | |
929 | 4.8417,1.635,, | |
930 | 4.8501,1.638,, | |
931 | 4.8585,1.64,, | |
932 | 4.867,1.643,, | |
933 | 4.8754,1.646,, | |
934 | 4.8838,1.648,, | |
935 | 4.8922,1.651,, | |
936 | 4.9007,1.654,, | |
937 | 4.9091,1.656,, | |
938 | 4.9175,1.659,, | |
939 | 4.9259,1.662,, | |
940 | 4.9343,1.664,, | |
941 | 4.9428,1.667,, | |
942 | 4.9512,1.67,, | |
943 | 4.9596,1.672,, | |
944 | 4.968,1.675,, | |
945 | 4.9765,1.678,, | |
946 | 4.9849,1.68,, | |
947 | 4.9933,1.683,, | |
948 | 5.0017,1.686,, | |
949 | 5.0102,1.688,, | |
950 | 5.0186,1.691,, | |
951 | 5.027,1.693,, | |
952 | 5.0354,1.696,, | |
953 | 5.0439,1.698,, | |
954 | 5.0523,1.701,, | |
955 | 5.0607,1.703,, | |
956 | 5.0692,1.706,, | |
957 | 5.0776,1.708,, | |
958 | 5.086,1.711,, | |
959 | 5.0944,1.713,, | |
960 | 5.1029,1.716,, | |
961 | 5.1113,1.718,, | |
962 | 5.1197,1.721,, | |
963 | 5.1281,1.723,, | |
964 | 5.1366,1.726,, | |
965 | 5.145,1.729,, | |
966 | 5.1534,1.731,, | |
967 | 5.1619,1.734,, | |
968 | 5.1703,1.736,, | |
969 | 5.1787,1.739,, | |
970 | 5.1871,1.741,, | |
971 | 5.1956,1.744,, | |
972 | 5.204,1.746,, | |
973 | 5.2124,1.749,, | |
974 | 5.2208,1.751,, | |
975 | 5.2293,1.754,, | |
976 | 5.2377,1.756,, | |
977 | 5.2461,1.759,, | |
978 | 5.2546,1.761,, | |
979 | 5.263,1.764,, | |
980 | 5.2714,1.766,, | |
981 | 5.2798,1.769,, | |
982 | 5.2883,1.771,, | |
983 | 5.2967,1.774,, | |
984 | 5.3051,1.776,, | |
985 | 5.3135,1.779,, | |
986 | 5.322,1.782,, | |
987 | 5.3304,1.784,, | |
988 | 5.3388,1.787,, | |
989 | 5.3472,1.789,, | |
990 | 5.3557,1.792,, | |
991 | 5.3641,1.794,, | |
992 | 5.3725,1.797,, | |
993 | 5.381,1.799,, | |
994 | 5.3894,1.802,, | |
995 | 5.3978,1.804,, | |
996 | 5.4062,1.807,, | |
997 | 5.4147,1.809,, | |
998 | 5.4231,1.812,, | |
999 | 5.4315,1.814,, | |
1000 | 5.4399,1.817,, | |
1001 | 5.4484,1.819,, | |
1002 | 5.4568,1.822,, | |
1003 | 5.4652,1.824,, | |
1004 | 5.4737,1.827,, | |
1005 | 5.4821,1.829,, | |
1006 | 5.4905,1.832,, | |
1007 | 5.4989,1.835,, | |
1008 | 5.5074,1.837,, | |
1009 | 5.5158,1.84,, | |
1010 | 5.5242,1.842,, | |
1011 | 5.5326,1.845,, | |
1012 | 5.5411,1.847,, | |
1013 | 5.5495,1.85,, | |
1014 | 5.5579,1.852,, | |
1015 | 5.5664,1.855,, | |
1016 | 5.5748,1.857,, | |
1017 | 5.5832,1.86,, | |
1018 | 5.5916,1.862,, | |
1019 | 5.6001,1.865,, | |
1020 | 5.6085,1.867,, | |
1021 | 5.6169,1.87,, | |
1022 | 5.6253,1.872,, | |
1023 | 5.6338,1.875,, | |
1024 | 5.6422,1.877,, | |
1025 | 5.6506,1.88,, | |
1026 | 5.659,1.883,, | |
1027 | 5.6675,1.885,, | |
1028 | 5.6759,1.888,, | |
1029 | 5.6843,1.89,, | |
1030 | 5.6928,1.893,, | |
1031 | 5.7012,1.895,, | |
1032 | 5.7096,1.898,, | |
1033 | 5.718,1.9,, | |
1034 | 5.7265,1.903,, | |
1035 | 5.7349,1.905,, | |
1036 | 5.7433,1.908,, | |
1037 | 5.7517,1.91,, | |
1038 | 5.7602,1.913,, | |
1039 | 5.7686,1.915,, | |
1040 | 5.777,1.918,, | |
1041 | 5.7855,1.92,, | |
1042 | 5.7939,1.923,, | |
1043 | 5.8023,1.925,, | |
1044 | 5.8107,1.928,, | |
1045 | 5.8192,1.93,, | |
1046 | 5.8276,1.933,, | |
1047 | 5.836,1.936,, | |
1048 | 5.8444,1.938,, | |
1049 | 5.8529,1.941,, | |
1050 | 5.8613,1.943,, | |
1051 | 5.8697,1.946,, | |
1052 | 5.8782,1.948,, | |
1053 | 5.8866,1.951,, | |
1054 | 5.895,1.953,, | |
1055 | 5.9034,1.956,, | |
1056 | 5.9119,1.958,, | |
1057 | 5.9203,1.961,, | |
1058 | 5.9287,1.963,, | |
1059 | 5.9371,1.966,, | |
1060 | 5.9456,1.968,, | |
1061 | 5.954,1.971,, | |
1062 | 5.9624,1.973,, | |
1063 | 5.9709,1.976,, | |
1064 | 5.9793,1.978,, | |
1065 | 5.9877,1.981,, |
0 | -errorreport ../test/extrapolate_relations_straight.xml -regression |
0 | <ErrorReport> | |
1 | <Application VersionNumber="8.2"/> | |
2 | <Document VersionNumber="8.2" AxesPointsRequired="0"> | |
3 | <Image Width="1221" Height="252"><![CDATA[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]]></Image> | |
4 | <CoordSystem> | |
5 | <General ExtraPrecision="1" CursorSize="3"/> | |
6 | <Coords UnitsTimeString="HH:MM:SS" UnitsX="0" UnitsTheta="0" UnitsY="0" Type="0" ScaleYRadius="0" UnitsDate="3" Coords="0" ScaleXThetaString="Linear" TypeString="Cartesian" UnitsRadiusString="Number" UnitsRadius="0" UnitsTime="2" UnitsThetaString="Degrees (DDD.DDDDD)" UnitsYString="Number" ScaleYRadiusString="Linear" UnitsXString="Number" ScaleXTheta="0" UnitsDateString="YYYY/MM/DD"/> | |
7 | <DigitizeCurve CursorStandardCross="True" CursorInnerRadius="5" CursorSize="1" CursorLineWidth="2"/> | |
8 | <Export XLabel="x" PointsIntervalUnitsRelations="1" LayoutFunctionsString="OnePerLine" Delimiter="0" PointsSelectionRelations="3" Header="1" PointsIntervalFunctions="10" HeaderString="Simple" LayoutFunctions="1" PointsSelectionRelationsString="Unknown" PointsIntervalRelations="1" OverrideCsvTsv="True" PointsIntervalUnitsFunctions="1" PointsSelectionFunctions="3" DelimiterString="Commas" PointsSelectionFunctionsString="Raw"> | |
9 | <CurveNamesNotExported/> | |
10 | </Export> | |
11 | <AxesChecker LineColor="6" Seconds="3" Mode="1"/> | |
12 | <GridDisplay StopX="1" StopY="1" Stable="False" ColorString="Black" DisableX="0" CountX="2" StartX="0" DisableY="0" CountY="2" StartY="0" StepX="1" StepY="1" Color="0"/> | |
13 | <GridRemoval CoordDisableXString="Count" StopX="0" StopY="0" Stable="False" DefinedGridLines="False" CoordDisableX="0" CoordDisableY="0" CountX="2" StartX="0" CountY="2" StartY="0" CloseDistance="10" StepX="0" StepY="0" CoordDisableYString="Count"/> | |
14 | <PointMatch ColorAcceptedString="Green" ColorCandidateString="Yellow" ColorCandidate="7" ColorRejectedString="Red" ColorRejected="6" ColorAccepted="4" PointSize="48"/> | |
15 | <Segments LineColorString="Green" LineColor="4" MinLength="2" FillCorners="False" LineWidth="4" PointSeparation="25"/> | |
16 | <Curve CurveName="Axes"> | |
17 | <ColorFilter ValueLow="0" CurveName="Axes" SaturationLow="50" ModeString="Intensity" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10" IntensityLow="0" HueHigh="360" SaturationHigh="100" ValueHigh="50" Mode="2" HueLow="180"/> | |
18 | <CurveStyle CurveName="Axes"> | |
19 | <LineStyle Width="0" ConnectAsString="ConnectSkipForAxisCurve" ColorString="Transparent" ConnectAs="4" Color="8"/> | |
20 | <PointStyle Radius="10" ShapeString="Cross" LineWidth="1" ColorString="Red" Shape="1" Color="6"/> | |
21 | </CurveStyle> | |
22 | <CurvePoints/> | |
23 | </Curve> | |
24 | <CurvesGraphs> | |
25 | <Curve CurveName="Curve1"> | |
26 | <ColorFilter ValueLow="0" CurveName="Curve1" SaturationLow="50" ModeString="Intensity" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10" IntensityLow="0" HueHigh="360" SaturationHigh="100" ValueHigh="50" Mode="2" HueLow="180"/> | |
27 | <CurveStyle CurveName="Curve1"> | |
28 | <LineStyle Width="1" ConnectAsString="FunctionSmooth" ColorString="Blue" ConnectAs="0" Color="1"/> | |
29 | <PointStyle Radius="10" ShapeString="Cross" LineWidth="1" ColorString="Blue" Shape="1" Color="1"/> | |
30 | </CurveStyle> | |
31 | <CurvePoints/> | |
32 | </Curve> | |
33 | </CurvesGraphs> | |
34 | </CoordSystem> | |
35 | <OperatingSystem Endian="LittleEndian" WordSize="32"/> | |
36 | <File Imported="True"/> | |
37 | <CmdMediator> | |
38 | <Cmd ScreenX="492.014" ScreenY="110.209" Description="Add axis point" Identifier="Axes	point	1" Ordinal="1" GraphX="0" GraphY="0" Type="CmdAddPointAxis" IsXOnly="False"/> | |
39 | <Cmd ScreenX="1201.54" ScreenY="110.209" Description="Add axis point" Identifier="Axes	point	3" Ordinal="2" GraphX="6" GraphY="0" Type="CmdAddPointAxis" IsXOnly="False"/> | |
40 | <Cmd ScreenX="492.709" ScreenY="20.0679" Description="Add axis point" Identifier="Axes	point	5" Ordinal="3" GraphX="0" GraphY="3" Type="CmdAddPointAxis" IsXOnly="False"/> | |
41 | <Cmd Description="Curve add/remove" Type="CmdSettingsCurveAddRemove"> | |
42 | <CurvesGraphs> | |
43 | <Curve CurveName="Curve1"> | |
44 | <ColorFilter ValueLow="0" CurveName="Curve1" SaturationLow="50" ModeString="Intensity" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10" IntensityLow="0" HueHigh="360" SaturationHigh="100" ValueHigh="50" Mode="2" HueLow="180"/> | |
45 | <CurveStyle CurveName="Curve1"> | |
46 | <LineStyle Width="1" ConnectAsString="FunctionSmooth" ColorString="Blue" ConnectAs="0" Color="1"/> | |
47 | <PointStyle Radius="10" ShapeString="Cross" LineWidth="1" ColorString="Blue" Shape="1" Color="1"/> | |
48 | </CurveStyle> | |
49 | <CurvePoints/> | |
50 | </Curve> | |
51 | </CurvesGraphs> | |
52 | <CurvesGraphs> | |
53 | <Curve CurveName="red"> | |
54 | <ColorFilter ValueLow="0" CurveName="red" SaturationLow="50" ModeString="Intensity" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10" IntensityLow="0" HueHigh="360" SaturationHigh="100" ValueHigh="50" Mode="2" HueLow="180"/> | |
55 | <CurveStyle CurveName="red"> | |
56 | <LineStyle Width="1" ConnectAsString="FunctionSmooth" ColorString="Blue" ConnectAs="0" Color="1"/> | |
57 | <PointStyle Radius="10" ShapeString="Cross" LineWidth="1" ColorString="Blue" Shape="1" Color="1"/> | |
58 | </CurveStyle> | |
59 | <CurvePoints/> | |
60 | </Curve> | |
61 | <Curve CurveName="green"> | |
62 | <ColorFilter ValueLow="0" CurveName="green" SaturationLow="50" ModeString="Intensity" ForegroundLow="0" IntensityHigh="50" ForegroundHigh="10" IntensityLow="0" HueHigh="360" SaturationHigh="100" ValueHigh="50" Mode="2" HueLow="180"/> | |
63 | <CurveStyle CurveName="green"> | |
64 | <LineStyle Width="1" ConnectAsString="FunctionSmooth" ColorString="Blue" ConnectAs="0" Color="1"/> | |
65 | <PointStyle Radius="10" ShapeString="X" LineWidth="1" ColorString="Blue" Shape="5" Color="1"/> | |
66 | </CurveStyle> | |
67 | <CurvePoints/> | |
68 | </Curve> | |
69 | </CurvesGraphs> | |
70 | </Cmd> | |
71 | <Cmd Description="Curve Properties settings" Type="CmdSettingsCurveProperties"> | |
72 | <CurveStyles> | |
73 | <CurveStyle CurveName="red"> | |
74 | <LineStyle Width="1" ConnectAsString="FunctionSmooth" ColorString="Blue" ConnectAs="0" Color="1"/> | |
75 | <PointStyle Radius="10" ShapeString="Cross" LineWidth="1" ColorString="Blue" Shape="1" Color="1"/> | |
76 | </CurveStyle> | |
77 | <CurveStyle CurveName="Axes"> | |
78 | <LineStyle Width="0" ConnectAsString="ConnectSkipForAxisCurve" ColorString="Transparent" ConnectAs="4" Color="8"/> | |
79 | <PointStyle Radius="10" ShapeString="Cross" LineWidth="1" ColorString="Red" Shape="1" Color="6"/> | |
80 | </CurveStyle> | |
81 | <CurveStyle CurveName="green"> | |
82 | <LineStyle Width="1" ConnectAsString="FunctionSmooth" ColorString="Blue" ConnectAs="0" Color="1"/> | |
83 | <PointStyle Radius="10" ShapeString="X" LineWidth="1" ColorString="Blue" Shape="5" Color="1"/> | |
84 | </CurveStyle> | |
85 | </CurveStyles> | |
86 | <CurveStyles> | |
87 | <CurveStyle CurveName="red"> | |
88 | <LineStyle Width="1" ConnectAsString="RelationStraight" ColorString="Red" ConnectAs="3" Color="6"/> | |
89 | <PointStyle Radius="10" ShapeString="Cross" LineWidth="1" ColorString="Red" Shape="1" Color="6"/> | |
90 | </CurveStyle> | |
91 | <CurveStyle CurveName="Axes"> | |
92 | <LineStyle Width="0" ConnectAsString="ConnectSkipForAxisCurve" ColorString="Transparent" ConnectAs="4" Color="8"/> | |
93 | <PointStyle Radius="10" ShapeString="Cross" LineWidth="1" ColorString="Red" Shape="1" Color="6"/> | |
94 | </CurveStyle> | |
95 | <CurveStyle CurveName="green"> | |
96 | <LineStyle Width="1" ConnectAsString="RelationStraight" ColorString="Green" ConnectAs="3" Color="4"/> | |
97 | <PointStyle Radius="10" ShapeString="X" LineWidth="1" ColorString="Green" Shape="5" Color="4"/> | |
98 | </CurveStyle> | |
99 | </CurveStyles> | |
100 | </Cmd> | |
101 | <Cmd ScreenX="140.377" ScreenY="140.146" Description="Add graph point" CurveName="red" Identifier="red	point	6" Ordinal="1" Type="CmdAddPointGraph"/> | |
102 | <Cmd ScreenX="256.431" ScreenY="130.606" Description="Add graph point" CurveName="red" Identifier="red	point	7" Ordinal="1" Type="CmdAddPointGraph"/> | |
103 | <Cmd ScreenX="375.265" ScreenY="121.065" Description="Add graph point" CurveName="red" Identifier="red	point	8" Ordinal="2.5" Type="CmdAddPointGraph"/> | |
104 | <Cmd ScreenX="492.709" ScreenY="110.209" Description="Add graph point" CurveName="red" Identifier="red	point	9" Ordinal="3.5" Type="CmdAddPointGraph"/> | |
105 | <Cmd ScreenX="611.542" ScreenY="97.7076" Description="Add graph point" CurveName="red" Identifier="red	point	10" Ordinal="4.5" Type="CmdAddPointGraph"/> | |
106 | <Cmd ScreenX="729.681" ScreenY="89.812" Description="Add graph point" CurveName="red" Identifier="red	point	11" Ordinal="5.5" Type="CmdAddPointGraph"/> | |
107 | <Cmd ScreenX="846.43" ScreenY="80.6005" Description="Add graph point" CurveName="red" Identifier="red	point	12" Ordinal="6.5" Type="CmdAddPointGraph"/> | |
108 | <Cmd ScreenX="965.264" ScreenY="69.0862" Description="Add graph point" CurveName="red" Identifier="red	point	13" Ordinal="7.5" Type="CmdAddPointGraph"/> | |
109 | <Cmd ScreenX="1084.1" ScreenY="59.5457" Description="Add graph point" CurveName="red" Identifier="red	point	14" Ordinal="8.5" Type="CmdAddPointGraph"/> | |
110 | <Cmd ScreenX="1200.85" ScreenY="50.6632" Description="Add graph point" CurveName="red" Identifier="red	point	15" Ordinal="9.5" Type="CmdAddPointGraph"/> | |
111 | <Cmd ScreenX="20.848" ScreenY="230.287" Description="Add graph point" CurveName="green" Identifier="green	point	16" Ordinal="1" Type="CmdAddPointGraph"/> | |
112 | <Cmd ScreenX="139.682" ScreenY="200.35" Description="Add graph point" CurveName="green" Identifier="green	point	17" Ordinal="1" Type="CmdAddPointGraph"/> | |
113 | <Cmd ScreenX="257.126" ScreenY="170.742" Description="Add graph point" CurveName="green" Identifier="green	point	18" Ordinal="2.5" Type="CmdAddPointGraph"/> | |
114 | <Cmd ScreenX="375.96" ScreenY="140.475" Description="Add graph point" CurveName="green" Identifier="green	point	19" Ordinal="3.5" Type="CmdAddPointGraph"/> | |
115 | <Cmd ScreenX="493.404" ScreenY="110.209" Description="Add graph point" CurveName="green" Identifier="green	point	20" Ordinal="4.5" Type="CmdAddPointGraph"/> | |
116 | <Cmd ScreenX="612.237" ScreenY="80.2715" Description="Add graph point" CurveName="green" Identifier="green	point	21" Ordinal="5.5" Type="CmdAddPointGraph"/> | |
117 | <Cmd ScreenX="730.376" ScreenY="50.9922" Description="Add graph point" CurveName="green" Identifier="green	point	22" Ordinal="6.5" Type="CmdAddPointGraph"/> | |
118 | <Cmd ScreenX="847.82" ScreenY="20.7258" Description="Add graph point" CurveName="green" Identifier="green	point	23" Ordinal="7.5" Type="CmdAddPointGraph"/> | |
119 | <Cmd Description="Export settings" Type="CmdSettingsExport"> | |
120 | <Export XLabel="x" PointsIntervalUnitsRelations="1" LayoutFunctionsString="OnePerLine" Delimiter="0" PointsSelectionRelations="3" Header="1" PointsIntervalFunctions="10" HeaderString="Simple" LayoutFunctions="1" PointsSelectionRelationsString="Unknown" PointsIntervalRelations="1" OverrideCsvTsv="True" PointsIntervalUnitsFunctions="1" PointsSelectionFunctions="3" DelimiterString="Commas" PointsSelectionFunctionsString="Raw"> | |
121 | <CurveNamesNotExported/> | |
122 | </Export> | |
123 | <Export XLabel="x" PointsIntervalUnitsRelations="1" LayoutFunctionsString="AllPerLine" Delimiter="0" PointsSelectionRelations="3" Header="1" PointsIntervalFunctions="10" HeaderString="Simple" LayoutFunctions="0" PointsSelectionRelationsString="Unknown" PointsIntervalRelations="1" OverrideCsvTsv="True" PointsIntervalUnitsFunctions="1" PointsSelectionFunctions="3" DelimiterString="Commas" PointsSelectionFunctionsString="Raw"> | |
124 | <CurveNamesNotExported/> | |
125 | </Export> | |
126 | </Cmd> | |
127 | </CmdMediator> | |
128 | <Error File="src/main/MainWindow.cpp" Line="1292" Context="Shift+Control+E" Comment="userTriggered"/> | |
129 | </Document> | |
130 | </ErrorReport> |
0 | # x, red | |
1 | -9.961, -1.833 | |
2 | -9.852, -1.444 | |
3 | -9.721, -1.039 | |
4 | -9.613, -0.65 | |
5 | -9.482, -0.244 | |
6 | -9.351, 0.145 | |
7 | -9.22, 0.534 | |
8 | -9.09, 0.923 | |
9 | -8.959, 1.328 | |
10 | -8.828, 1.717 | |
11 | -8.676, 2.106 | |
12 | -8.523, 2.495 | |
13 | -8.349, 2.884 | |
14 | -8.174, 3.257 | |
15 | -8, 3.646 | |
16 | -7.782, 4.019 | |
17 | -7.542, 4.376 | |
18 | -7.302, 4.749 | |
19 | -6.974, 5.073 | |
20 | -6.581, 5.333 | |
21 | -6.057, 5.447 | |
22 | -5.379, 5.253 | |
23 | -4.986, 4.978 | |
24 | -4.657, 4.654 | |
25 | -4.351, 4.314 | |
26 | -4.067, 3.974 | |
27 | -3.804, 3.618 | |
28 | -3.541, 3.261 | |
29 | -3.279, 2.905 | |
30 | -3.016, 2.549 | |
31 | -2.775, 2.192 | |
32 | -2.491, 1.836 | |
33 | -2.207, 1.496 | |
34 | -1.922, 1.14 | |
35 | -1.594, 0.832 | |
36 | -1.244, 0.508 | |
37 | -0.85, 0.233 | |
38 | 0.395, 0.056 | |
39 | 0.876, 0.251 | |
40 | 1.269, 0.527 | |
41 | 1.618, 0.835 | |
42 | 1.946, 1.159 | |
43 | 2.23, 1.516 | |
44 | 2.492, 1.856 | |
45 | 2.775, 2.213 | |
46 | 3.037, 2.57 | |
47 | 3.277, 2.927 | |
48 | 3.539, 3.283 | |
49 | 3.801, 3.64 | |
50 | 4.063, 3.997 | |
51 | 4.346, 4.338 | |
52 | 4.674, 4.678 | |
53 | 5.001, 4.986 | |
54 | 5.897, 5.457 | |
55 | 6.421, 5.409 | |
56 | 6.859, 5.166 | |
57 | 7.209, 4.859 | |
58 | 7.471, 4.502 | |
59 | 7.712, 4.13 | |
60 | 7.931, 3.773 | |
61 | 8.128, 3.385 | |
62 | 8.303, 3.012 | |
63 | 8.479, 2.623 | |
64 | 8.632, 2.234 | |
65 | 8.785, 1.846 | |
66 | 8.917, 1.457 | |
67 | 9.048, 1.068 | |
68 | 9.18, 0.663 | |
69 | 9.311, 0.274 | |
70 | 9.443, -0.115 | |
71 | 9.574, -0.52 | |
72 | 9.706, -0.909 | |
73 | 9.816, -1.297 | |
74 | 9.925, -1.703 | |
75 | ||
76 | ||
77 | # x, green | |
78 | -9.969, 5.995 | |
79 | -9.707, 6.351 | |
80 | -9.38, 6.676 | |
81 | -9.03, 6.984 | |
82 | -8.572, 7.195 | |
83 | -8.047, 7.277 | |
84 | -7.523, 7.164 | |
85 | -7.085, 6.937 | |
86 | -6.976, 6.872 | |
87 | -6.604, 6.581 | |
88 | -6.276, 6.257 | |
89 | -5.948, 5.933 | |
90 | -5.664, 5.577 | |
91 | -5.379, 5.237 | |
92 | -5.095, 4.881 | |
93 | -4.854, 4.524 | |
94 | -4.591, 4.168 | |
95 | -4.329, 3.828 | |
96 | -4.066, 3.455 | |
97 | -3.825, 3.099 | |
98 | -3.563, 2.743 | |
99 | -3.278, 2.403 | |
100 | -3.016, 2.046 | |
101 | -2.709, 1.706 | |
102 | -2.403, 1.366 | |
103 | -2.075, 1.042 | |
104 | -1.725, 0.735 | |
105 | -1.353, 0.459 | |
106 | -0.916, 0.201 | |
107 | 0.636, 0.105 | |
108 | 1.116, 0.3 | |
109 | 1.509, 0.559 | |
110 | 1.903, 0.867 | |
111 | 2.23, 1.176 | |
112 | 2.536, 1.516 | |
113 | 2.841, 1.857 | |
114 | 3.125, 2.197 | |
115 | 3.387, 2.554 | |
116 | 3.671, 2.895 | |
117 | 3.911, 3.268 | |
118 | 4.172, 3.624 | |
119 | 4.434, 3.981 | |
120 | 4.696, 4.338 | |
121 | 4.958, 4.695 | |
122 | 5.198, 5.051 | |
123 | 5.504, 5.392 | |
124 | 5.765, 5.749 | |
125 | 6.071, 6.073 | |
126 | 6.399, 6.397 | |
127 | 6.748, 6.722 | |
128 | 7.032, 6.917 | |
129 | 7.469, 7.16 | |
130 | 7.971, 7.29 | |
131 | 8.496, 7.226 | |
132 | 8.955, 7.032 | |
133 | 9.348, 6.74 | |
134 | 9.655, 6.416 | |
135 | 9.939, 6.06 | |
136 | ||
137 | ||
138 | # x, blue | |
139 | -9.972, 9.09 | |
140 | -9.448, 8.961 | |
141 | -8.989, 8.75 | |
142 | -8.573, 8.492 | |
143 | -8.223, 8.2 | |
144 | -7.873, 7.876 | |
145 | -7.545, 7.552 | |
146 | -7.261, 7.212 | |
147 | -6.976, 6.856 | |
148 | -6.692, 6.516 | |
149 | -6.429, 6.16 | |
150 | -6.166, 5.803 | |
151 | -5.904, 5.447 | |
152 | -5.641, 5.091 | |
153 | -5.379, 4.734 | |
154 | -5.138, 4.378 | |
155 | -4.875, 4.022 | |
156 | -4.613, 3.666 | |
157 | -4.35, 3.309 | |
158 | -4.066, 2.969 | |
159 | -3.803, 2.613 | |
160 | -3.519, 2.273 | |
161 | -3.212, 1.933 | |
162 | -2.906, 1.593 | |
163 | -2.578, 1.269 | |
164 | -2.228, 0.961 | |
165 | -1.856, 0.67 | |
166 | -1.441, 0.411 | |
167 | -0.981, 0.201 | |
168 | -0.479, 0.055 | |
169 | 0.068, 0.007 | |
170 | 0.592, 0.072 | |
171 | 1.095, 0.235 | |
172 | 1.531, 0.462 | |
173 | 1.946, 0.738 | |
174 | 2.318, 1.03 | |
175 | 2.667, 1.354 | |
176 | 2.972, 1.679 | |
177 | 3.278, 2.019 | |
178 | 3.584, 2.344 | |
179 | 3.867, 2.7 | |
180 | 4.129, 3.057 | |
181 | 4.391, 3.398 | |
182 | 4.675, 3.754 | |
183 | 4.915, 4.111 | |
184 | 5.177, 4.468 | |
185 | 5.439, 4.825 | |
186 | 5.7, 5.181 | |
187 | 5.962, 5.538 | |
188 | 6.224, 5.895 | |
189 | 6.486, 6.252 | |
190 | 6.748, 6.608 | |
191 | 7.032, 6.949 | |
192 | 7.315, 7.306 | |
193 | 7.621, 7.646 | |
194 | 7.948, 7.971 | |
195 | 8.276, 8.279 | |
196 | 8.647, 8.571 | |
197 | 9.062, 8.814 | |
198 | 9.521, 9.009 |
0 | -errorreport ../test/gnuplot_format.xml -regression |
0 | <ErrorReport> | |
1 | <Application VersionNumber="8.2"/> | |
2 | <Document VersionNumber="8.2" AxesPointsRequired="0"> | |
3 | <Image Height="800" Width="1000"><![CDATA[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]]></Image> | |
4 | <CoordSystem> | |
5 | <General ExtraPrecision="1" CursorSize="3"/> | |
6 | <Coords UnitsDateString="YYYY/MM/DD" TypeString="Cartesian" ScaleXThetaString="Linear" UnitsX="0" UnitsY="0" UnitsTimeString="HH:MM:SS" UnitsThetaString="Degrees (DDD.DDDDD)" Type="0" UnitsRadiusString="Number" UnitsYString="Number" UnitsXString="Number" UnitsDate="3" UnitsRadius="0" Coords="0" ScaleYRadius="0" ScaleXTheta="0" UnitsTime="2" UnitsTheta="0" ScaleYRadiusString="Linear"/> | |
7 | <DigitizeCurve CursorStandardCross="True" CursorLineWidth="2" CursorInnerRadius="5" CursorSize="1"/> | |
8 | <Export PointsIntervalFunctions="10" PointsSelectionRelationsString="Unknown" PointsIntervalUnitsRelations="1" LayoutFunctions="1" LayoutFunctionsString="OnePerLine" XLabel="x" PointsSelectionFunctions="3" PointsSelectionFunctionsString="Raw" PointsIntervalRelations="1" DelimiterString="Commas" Delimiter="0" Header="1" HeaderString="Simple" PointsSelectionRelations="3" PointsIntervalUnitsFunctions="1" OverrideCsvTsv="True"> | |
9 | <CurveNamesNotExported/> | |
10 | </Export> | |
11 | <AxesChecker Seconds="3" Mode="1" LineColor="6"/> | |
12 | <GridDisplay StartX="0" CountX="2" StartY="0" CountY="2" DisableX="0" DisableY="0" StepX="1" StepY="1" Color="0" ColorString="Black" StopX="1" Stable="False" StopY="1"/> | |
13 | <GridRemoval StartX="0" CoordDisableXString="Count" CountX="2" StartY="0" CountY="2" DefinedGridLines="False" CoordDisableX="0" StepX="0" CoordDisableY="0" StepY="0" CloseDistance="10" StopX="0" Stable="False" StopY="0" CoordDisableYString="Count"/> | |
14 | <PointMatch ColorAcceptedString="Green" PointSize="48" ColorRejected="6" ColorRejectedString="Red" ColorAccepted="4" ColorCandidate="7" ColorCandidateString="Yellow"/> | |
15 | <Segments PointSeparation="25" FillCorners="False" LineColor="4" LineColorString="Green" MinLength="2" LineWidth="4"/> | |
16 | <Curve CurveName="Axes"> | |
17 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="Axes" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
18 | <CurveStyle CurveName="Axes"> | |
19 | <LineStyle ConnectAs="4" Color="8" ColorString="Transparent" Width="0" ConnectAsString="ConnectSkipForAxisCurve"/> | |
20 | <PointStyle Shape="1" ShapeString="Cross" Color="6" ColorString="Red" Radius="10" LineWidth="1"/> | |
21 | </CurveStyle> | |
22 | <CurvePoints/> | |
23 | </Curve> | |
24 | <CurvesGraphs> | |
25 | <Curve CurveName="Curve1"> | |
26 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="Curve1" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
27 | <CurveStyle CurveName="Curve1"> | |
28 | <LineStyle ConnectAs="0" Color="1" ColorString="Blue" Width="1" ConnectAsString="FunctionSmooth"/> | |
29 | <PointStyle Shape="1" ShapeString="Cross" Color="1" ColorString="Blue" Radius="10" LineWidth="1"/> | |
30 | </CurveStyle> | |
31 | <CurvePoints/> | |
32 | </Curve> | |
33 | </CurvesGraphs> | |
34 | </CoordSystem> | |
35 | <OperatingSystem Endian="LittleEndian" WordSize="32"/> | |
36 | <File Imported="True"/> | |
37 | <CmdMediator> | |
38 | <Cmd ScreenY="760.313" GraphX="-10" GraphY="-2" Ordinal="1" Description="Add axis point" IsXOnly="False" Identifier="Axes	point	1" Type="CmdAddPointAxis" ScreenX="55.2077"/> | |
39 | <Cmd ScreenY="761.358" GraphX="10" GraphY="-2" Ordinal="2" Description="Add axis point" IsXOnly="False" Identifier="Axes	point	3" Type="CmdAddPointAxis" ScreenX="970.404"/> | |
40 | <Cmd ScreenY="19.8433" GraphX="-10" GraphY="10" Ordinal="3" Description="Add axis point" IsXOnly="False" Identifier="Axes	point	5" Type="CmdAddPointAxis" ScreenX="55.7769"/> | |
41 | <Cmd Description="Curve add/remove" Type="CmdSettingsCurveAddRemove"> | |
42 | <CurvesGraphs> | |
43 | <Curve CurveName="Curve1"> | |
44 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="Curve1" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
45 | <CurveStyle CurveName="Curve1"> | |
46 | <LineStyle ConnectAs="0" Color="1" ColorString="Blue" Width="1" ConnectAsString="FunctionSmooth"/> | |
47 | <PointStyle Shape="1" ShapeString="Cross" Color="1" ColorString="Blue" Radius="10" LineWidth="1"/> | |
48 | </CurveStyle> | |
49 | <CurvePoints/> | |
50 | </Curve> | |
51 | </CurvesGraphs> | |
52 | <CurvesGraphs> | |
53 | <Curve CurveName="red"> | |
54 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="red" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
55 | <CurveStyle CurveName="red"> | |
56 | <LineStyle ConnectAs="0" Color="1" ColorString="Blue" Width="1" ConnectAsString="FunctionSmooth"/> | |
57 | <PointStyle Shape="1" ShapeString="Cross" Color="1" ColorString="Blue" Radius="10" LineWidth="1"/> | |
58 | </CurveStyle> | |
59 | <CurvePoints/> | |
60 | </Curve> | |
61 | <Curve CurveName="green"> | |
62 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="green" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
63 | <CurveStyle CurveName="green"> | |
64 | <LineStyle ConnectAs="0" Color="1" ColorString="Blue" Width="1" ConnectAsString="FunctionSmooth"/> | |
65 | <PointStyle Shape="5" ShapeString="X" Color="1" ColorString="Blue" Radius="10" LineWidth="1"/> | |
66 | </CurveStyle> | |
67 | <CurvePoints/> | |
68 | </Curve> | |
69 | <Curve CurveName="blue"> | |
70 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="blue" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
71 | <CurveStyle CurveName="blue"> | |
72 | <LineStyle ConnectAs="0" Color="1" ColorString="Blue" Width="1" ConnectAsString="FunctionSmooth"/> | |
73 | <PointStyle Shape="2" ShapeString="Diamond" Color="1" ColorString="Blue" Radius="10" LineWidth="1"/> | |
74 | </CurveStyle> | |
75 | <CurvePoints/> | |
76 | </Curve> | |
77 | </CurvesGraphs> | |
78 | </Cmd> | |
79 | <Cmd Description="Curve Properties settings" Type="CmdSettingsCurveProperties"> | |
80 | <CurveStyles> | |
81 | <CurveStyle CurveName="green"> | |
82 | <LineStyle ConnectAs="0" Color="1" ColorString="Blue" Width="1" ConnectAsString="FunctionSmooth"/> | |
83 | <PointStyle Shape="5" ShapeString="X" Color="1" ColorString="Blue" Radius="10" LineWidth="1"/> | |
84 | </CurveStyle> | |
85 | <CurveStyle CurveName="Axes"> | |
86 | <LineStyle ConnectAs="4" Color="8" ColorString="Transparent" Width="0" ConnectAsString="ConnectSkipForAxisCurve"/> | |
87 | <PointStyle Shape="1" ShapeString="Cross" Color="6" ColorString="Red" Radius="10" LineWidth="1"/> | |
88 | </CurveStyle> | |
89 | <CurveStyle CurveName="blue"> | |
90 | <LineStyle ConnectAs="0" Color="1" ColorString="Blue" Width="1" ConnectAsString="FunctionSmooth"/> | |
91 | <PointStyle Shape="2" ShapeString="Diamond" Color="1" ColorString="Blue" Radius="10" LineWidth="1"/> | |
92 | </CurveStyle> | |
93 | <CurveStyle CurveName="red"> | |
94 | <LineStyle ConnectAs="0" Color="1" ColorString="Blue" Width="1" ConnectAsString="FunctionSmooth"/> | |
95 | <PointStyle Shape="1" ShapeString="Cross" Color="1" ColorString="Blue" Radius="10" LineWidth="1"/> | |
96 | </CurveStyle> | |
97 | </CurveStyles> | |
98 | <CurveStyles> | |
99 | <CurveStyle CurveName="green"> | |
100 | <LineStyle ConnectAs="0" Color="4" ColorString="Green" Width="1" ConnectAsString="FunctionSmooth"/> | |
101 | <PointStyle Shape="5" ShapeString="X" Color="4" ColorString="Green" Radius="10" LineWidth="1"/> | |
102 | </CurveStyle> | |
103 | <CurveStyle CurveName="Axes"> | |
104 | <LineStyle ConnectAs="4" Color="8" ColorString="Transparent" Width="0" ConnectAsString="ConnectSkipForAxisCurve"/> | |
105 | <PointStyle Shape="1" ShapeString="Cross" Color="6" ColorString="Red" Radius="10" LineWidth="1"/> | |
106 | </CurveStyle> | |
107 | <CurveStyle CurveName="blue"> | |
108 | <LineStyle ConnectAs="0" Color="1" ColorString="Blue" Width="1" ConnectAsString="FunctionSmooth"/> | |
109 | <PointStyle Shape="2" ShapeString="Diamond" Color="1" ColorString="Blue" Radius="10" LineWidth="1"/> | |
110 | </CurveStyle> | |
111 | <CurveStyle CurveName="red"> | |
112 | <LineStyle ConnectAs="0" Color="6" ColorString="Red" Width="1" ConnectAsString="FunctionSmooth"/> | |
113 | <PointStyle Shape="1" ShapeString="Cross" Color="6" ColorString="Red" Radius="10" LineWidth="1"/> | |
114 | </CurveStyle> | |
115 | </CurveStyles> | |
116 | </Cmd> | |
117 | <Cmd Description="Filter settings" Type="CmdSettingsColorFilter"> | |
118 | <Filter> | |
119 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="green" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
120 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="Axes" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
121 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="blue" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
122 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="red" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
123 | </Filter> | |
124 | <Filter> | |
125 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="green" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
126 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="Axes" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
127 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="blue" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
128 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="0" ValueHigh="50" IntensityHigh="50" HueHigh="3" ValueLow="0" CurveName="red" Mode="1" ModeString="Hue" IntensityLow="0" ForegroundHigh="10"/> | |
129 | </Filter> | |
130 | </Cmd> | |
131 | <Cmd Description="Add graph points" CurveName="red" Type="CmdAddPointsGraph"> | |
132 | <Point ScreenY="750" Ordinal="1" Identifier="red	point	6" ScreenX="57"/> | |
133 | <Point ScreenY="726" Ordinal="1" Identifier="red	point	7" ScreenX="62"/> | |
134 | <Point ScreenY="701" Ordinal="1" Identifier="red	point	8" ScreenX="68"/> | |
135 | <Point ScreenY="677" Ordinal="1" Identifier="red	point	9" ScreenX="73"/> | |
136 | <Point ScreenY="652" Ordinal="1" Identifier="red	point	10" ScreenX="79"/> | |
137 | <Point ScreenY="628" Ordinal="1" Identifier="red	point	11" ScreenX="85"/> | |
138 | <Point ScreenY="604" Ordinal="1" Identifier="red	point	12" ScreenX="91"/> | |
139 | <Point ScreenY="580" Ordinal="1" Identifier="red	point	13" ScreenX="97"/> | |
140 | <Point ScreenY="555" Ordinal="1" Identifier="red	point	14" ScreenX="103"/> | |
141 | <Point ScreenY="531" Ordinal="1" Identifier="red	point	15" ScreenX="109"/> | |
142 | <Point ScreenY="507" Ordinal="1" Identifier="red	point	16" ScreenX="116"/> | |
143 | <Point ScreenY="483" Ordinal="1" Identifier="red	point	17" ScreenX="123"/> | |
144 | <Point ScreenY="459" Ordinal="1" Identifier="red	point	18" ScreenX="131"/> | |
145 | <Point ScreenY="436" Ordinal="1" Identifier="red	point	19" ScreenX="139"/> | |
146 | <Point ScreenY="412" Ordinal="1" Identifier="red	point	20" ScreenX="147"/> | |
147 | <Point ScreenY="389" Ordinal="1" Identifier="red	point	21" ScreenX="157"/> | |
148 | <Point ScreenY="367" Ordinal="1" Identifier="red	point	22" ScreenX="168"/> | |
149 | <Point ScreenY="344" Ordinal="1" Identifier="red	point	23" ScreenX="179"/> | |
150 | <Point ScreenY="324" Ordinal="1" Identifier="red	point	24" ScreenX="194"/> | |
151 | <Point ScreenY="308" Ordinal="1" Identifier="red	point	25" ScreenX="212"/> | |
152 | <Point ScreenY="301" Ordinal="1" Identifier="red	point	26" ScreenX="236"/> | |
153 | </Cmd> | |
154 | <Cmd Description="Add graph points" CurveName="red" Type="CmdAddPointsGraph"> | |
155 | <Point ScreenY="313" Ordinal="21.5" Identifier="red	point	27" ScreenX="267"/> | |
156 | <Point ScreenY="330" Ordinal="21.5" Identifier="red	point	28" ScreenX="285"/> | |
157 | <Point ScreenY="350" Ordinal="21.5" Identifier="red	point	29" ScreenX="300"/> | |
158 | <Point ScreenY="371" Ordinal="21.5" Identifier="red	point	30" ScreenX="314"/> | |
159 | <Point ScreenY="392" Ordinal="21.5" Identifier="red	point	31" ScreenX="327"/> | |
160 | <Point ScreenY="414" Ordinal="21.5" Identifier="red	point	32" ScreenX="339"/> | |
161 | <Point ScreenY="436" Ordinal="21.5" Identifier="red	point	33" ScreenX="351"/> | |
162 | <Point ScreenY="458" Ordinal="21.5" Identifier="red	point	34" ScreenX="363"/> | |
163 | <Point ScreenY="480" Ordinal="21.5" Identifier="red	point	35" ScreenX="375"/> | |
164 | <Point ScreenY="502" Ordinal="21.5" Identifier="red	point	36" ScreenX="386"/> | |
165 | <Point ScreenY="524" Ordinal="13.5" Identifier="red	point	37" ScreenX="399"/> | |
166 | <Point ScreenY="545" Ordinal="13.5" Identifier="red	point	38" ScreenX="412"/> | |
167 | <Point ScreenY="567" Ordinal="12.5" Identifier="red	point	39" ScreenX="425"/> | |
168 | <Point ScreenY="586" Ordinal="11.5" Identifier="red	point	40" ScreenX="440"/> | |
169 | <Point ScreenY="606" Ordinal="11.5" Identifier="red	point	41" ScreenX="456"/> | |
170 | <Point ScreenY="623" Ordinal="10.5" Identifier="red	point	42" ScreenX="474"/> | |
171 | </Cmd> | |
172 | <Cmd Description="Add graph points" CurveName="red" Type="CmdAddPointsGraph"> | |
173 | <Point ScreenY="634" Ordinal="37.5" Identifier="red	point	43" ScreenX="531"/> | |
174 | <Point ScreenY="622" Ordinal="37.5" Identifier="red	point	44" ScreenX="553"/> | |
175 | <Point ScreenY="605" Ordinal="37.5" Identifier="red	point	45" ScreenX="571"/> | |
176 | <Point ScreenY="586" Ordinal="37.5" Identifier="red	point	46" ScreenX="587"/> | |
177 | <Point ScreenY="566" Ordinal="37.5" Identifier="red	point	47" ScreenX="602"/> | |
178 | <Point ScreenY="544" Ordinal="37.5" Identifier="red	point	48" ScreenX="615"/> | |
179 | <Point ScreenY="523" Ordinal="37.5" Identifier="red	point	49" ScreenX="627"/> | |
180 | <Point ScreenY="501" Ordinal="37.5" Identifier="red	point	50" ScreenX="640"/> | |
181 | <Point ScreenY="479" Ordinal="37.5" Identifier="red	point	51" ScreenX="652"/> | |
182 | <Point ScreenY="457" Ordinal="37.5" Identifier="red	point	52" ScreenX="663"/> | |
183 | <Point ScreenY="435" Ordinal="37.5" Identifier="red	point	53" ScreenX="675"/> | |
184 | <Point ScreenY="413" Ordinal="37.5" Identifier="red	point	54" ScreenX="687"/> | |
185 | <Point ScreenY="391" Ordinal="37.5" Identifier="red	point	55" ScreenX="699"/> | |
186 | <Point ScreenY="370" Ordinal="33.5" Identifier="red	point	56" ScreenX="712"/> | |
187 | <Point ScreenY="349" Ordinal="32.5" Identifier="red	point	57" ScreenX="727"/> | |
188 | <Point ScreenY="330" Ordinal="32.5" Identifier="red	point	58" ScreenX="742"/> | |
189 | </Cmd> | |
190 | <Cmd Description="Add graph points" CurveName="red" Type="CmdAddPointsGraph"> | |
191 | <Point ScreenY="301" Ordinal="53.5" Identifier="red	point	59" ScreenX="783"/> | |
192 | <Point ScreenY="304" Ordinal="53.5" Identifier="red	point	60" ScreenX="807"/> | |
193 | <Point ScreenY="319" Ordinal="53.5" Identifier="red	point	61" ScreenX="827"/> | |
194 | <Point ScreenY="338" Ordinal="53.5" Identifier="red	point	62" ScreenX="843"/> | |
195 | <Point ScreenY="360" Ordinal="53.5" Identifier="red	point	63" ScreenX="855"/> | |
196 | <Point ScreenY="383" Ordinal="53.5" Identifier="red	point	64" ScreenX="866"/> | |
197 | <Point ScreenY="405" Ordinal="53.5" Identifier="red	point	65" ScreenX="876"/> | |
198 | <Point ScreenY="429" Ordinal="53.5" Identifier="red	point	66" ScreenX="885"/> | |
199 | <Point ScreenY="452" Ordinal="52.5" Identifier="red	point	67" ScreenX="893"/> | |
200 | <Point ScreenY="476" Ordinal="52.5" Identifier="red	point	68" ScreenX="901"/> | |
201 | <Point ScreenY="500" Ordinal="51.5" Identifier="red	point	69" ScreenX="908"/> | |
202 | <Point ScreenY="524" Ordinal="49.5" Identifier="red	point	70" ScreenX="915"/> | |
203 | <Point ScreenY="548" Ordinal="48.5" Identifier="red	point	71" ScreenX="921"/> | |
204 | <Point ScreenY="572" Ordinal="48.5" Identifier="red	point	72" ScreenX="927"/> | |
205 | <Point ScreenY="597" Ordinal="47.5" Identifier="red	point	73" ScreenX="933"/> | |
206 | <Point ScreenY="621" Ordinal="46.5" Identifier="red	point	74" ScreenX="939"/> | |
207 | <Point ScreenY="645" Ordinal="45.5" Identifier="red	point	75" ScreenX="945"/> | |
208 | <Point ScreenY="670" Ordinal="45.5" Identifier="red	point	76" ScreenX="951"/> | |
209 | <Point ScreenY="694" Ordinal="44.5" Identifier="red	point	77" ScreenX="957"/> | |
210 | <Point ScreenY="718" Ordinal="43.5" Identifier="red	point	78" ScreenX="962"/> | |
211 | <Point ScreenY="743" Ordinal="43.5" Identifier="red	point	79" ScreenX="967"/> | |
212 | </Cmd> | |
213 | <Cmd Description="Filter settings" Type="CmdSettingsColorFilter"> | |
214 | <Filter> | |
215 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="green" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
216 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="Axes" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
217 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="blue" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
218 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="0" ValueHigh="50" IntensityHigh="50" HueHigh="3" ValueLow="0" CurveName="red" Mode="1" ModeString="Hue" IntensityLow="0" ForegroundHigh="10"/> | |
219 | </Filter> | |
220 | <Filter> | |
221 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="115" ValueHigh="50" IntensityHigh="50" HueHigh="122" ValueLow="0" CurveName="green" Mode="1" ModeString="Hue" IntensityLow="0" ForegroundHigh="10"/> | |
222 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="Axes" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
223 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="blue" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
224 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="0" ValueHigh="50" IntensityHigh="50" HueHigh="3" ValueLow="0" CurveName="red" Mode="1" ModeString="Hue" IntensityLow="0" ForegroundHigh="10"/> | |
225 | </Filter> | |
226 | </Cmd> | |
227 | <Cmd Description="Add graph points" CurveName="green" Type="CmdAddPointsGraph"> | |
228 | <Point ScreenY="267" Ordinal="1" Identifier="green	point	80" ScreenX="57"/> | |
229 | <Point ScreenY="245" Ordinal="1" Identifier="green	point	81" ScreenX="69"/> | |
230 | <Point ScreenY="225" Ordinal="1" Identifier="green	point	82" ScreenX="84"/> | |
231 | <Point ScreenY="206" Ordinal="1" Identifier="green	point	83" ScreenX="100"/> | |
232 | <Point ScreenY="193" Ordinal="1" Identifier="green	point	84" ScreenX="121"/> | |
233 | <Point ScreenY="188" Ordinal="1" Identifier="green	point	85" ScreenX="145"/> | |
234 | <Point ScreenY="195" Ordinal="1" Identifier="green	point	86" ScreenX="169"/> | |
235 | <Point ScreenY="209" Ordinal="1" Identifier="green	point	87" ScreenX="189"/> | |
236 | </Cmd> | |
237 | <Cmd Description="Add graph points" CurveName="green" Type="CmdAddPointsGraph"> | |
238 | <Point ScreenY="213" Ordinal="8.5" Identifier="green	point	88" ScreenX="194"/> | |
239 | <Point ScreenY="231" Ordinal="8.5" Identifier="green	point	89" ScreenX="211"/> | |
240 | <Point ScreenY="251" Ordinal="8.5" Identifier="green	point	90" ScreenX="226"/> | |
241 | <Point ScreenY="271" Ordinal="8.5" Identifier="green	point	91" ScreenX="241"/> | |
242 | <Point ScreenY="293" Ordinal="8.5" Identifier="green	point	92" ScreenX="254"/> | |
243 | <Point ScreenY="314" Ordinal="8.5" Identifier="green	point	93" ScreenX="267"/> | |
244 | <Point ScreenY="336" Ordinal="8.5" Identifier="green	point	94" ScreenX="280"/> | |
245 | <Point ScreenY="358" Ordinal="8.5" Identifier="green	point	95" ScreenX="291"/> | |
246 | <Point ScreenY="380" Ordinal="8.5" Identifier="green	point	96" ScreenX="303"/> | |
247 | <Point ScreenY="401" Ordinal="8.5" Identifier="green	point	97" ScreenX="315"/> | |
248 | <Point ScreenY="424" Ordinal="8.5" Identifier="green	point	98" ScreenX="327"/> | |
249 | <Point ScreenY="446" Ordinal="8.5" Identifier="green	point	99" ScreenX="338"/> | |
250 | <Point ScreenY="468" Ordinal="8.5" Identifier="green	point	100" ScreenX="350"/> | |
251 | <Point ScreenY="489" Ordinal="8.5" Identifier="green	point	101" ScreenX="363"/> | |
252 | <Point ScreenY="511" Ordinal="8.5" Identifier="green	point	102" ScreenX="375"/> | |
253 | <Point ScreenY="532" Ordinal="8.5" Identifier="green	point	103" ScreenX="389"/> | |
254 | <Point ScreenY="553" Ordinal="8.5" Identifier="green	point	104" ScreenX="403"/> | |
255 | <Point ScreenY="573" Ordinal="8.5" Identifier="green	point	105" ScreenX="418"/> | |
256 | <Point ScreenY="592" Ordinal="8.5" Identifier="green	point	106" ScreenX="434"/> | |
257 | <Point ScreenY="609" Ordinal="8.5" Identifier="green	point	107" ScreenX="451"/> | |
258 | <Point ScreenY="625" Ordinal="8.5" Identifier="green	point	108" ScreenX="471"/> | |
259 | </Cmd> | |
260 | <Cmd Description="Add graph points" CurveName="green" Type="CmdAddPointsGraph"> | |
261 | <Point ScreenY="631" Ordinal="29.5" Identifier="green	point	109" ScreenX="542"/> | |
262 | <Point ScreenY="619" Ordinal="29.5" Identifier="green	point	110" ScreenX="564"/> | |
263 | <Point ScreenY="603" Ordinal="29.5" Identifier="green	point	111" ScreenX="582"/> | |
264 | <Point ScreenY="584" Ordinal="29.5" Identifier="green	point	112" ScreenX="600"/> | |
265 | <Point ScreenY="565" Ordinal="29.5" Identifier="green	point	113" ScreenX="615"/> | |
266 | <Point ScreenY="544" Ordinal="29.5" Identifier="green	point	114" ScreenX="629"/> | |
267 | <Point ScreenY="523" Ordinal="29.5" Identifier="green	point	115" ScreenX="643"/> | |
268 | <Point ScreenY="502" Ordinal="29.5" Identifier="green	point	116" ScreenX="656"/> | |
269 | <Point ScreenY="480" Ordinal="29.5" Identifier="green	point	117" ScreenX="668"/> | |
270 | <Point ScreenY="459" Ordinal="29.5" Identifier="green	point	118" ScreenX="681"/> | |
271 | <Point ScreenY="436" Ordinal="29.5" Identifier="green	point	119" ScreenX="692"/> | |
272 | <Point ScreenY="414" Ordinal="29.5" Identifier="green	point	120" ScreenX="704"/> | |
273 | <Point ScreenY="392" Ordinal="29.5" Identifier="green	point	121" ScreenX="716"/> | |
274 | <Point ScreenY="370" Ordinal="29.5" Identifier="green	point	122" ScreenX="728"/> | |
275 | <Point ScreenY="348" Ordinal="29.5" Identifier="green	point	123" ScreenX="740"/> | |
276 | <Point ScreenY="326" Ordinal="29.5" Identifier="green	point	124" ScreenX="751"/> | |
277 | <Point ScreenY="305" Ordinal="29.5" Identifier="green	point	125" ScreenX="765"/> | |
278 | <Point ScreenY="283" Ordinal="29.5" Identifier="green	point	126" ScreenX="777"/> | |
279 | <Point ScreenY="263" Ordinal="29.5" Identifier="green	point	127" ScreenX="791"/> | |
280 | <Point ScreenY="243" Ordinal="21.5" Identifier="green	point	128" ScreenX="806"/> | |
281 | <Point ScreenY="223" Ordinal="21.5" Identifier="green	point	129" ScreenX="822"/> | |
282 | </Cmd> | |
283 | <Cmd Description="Add graph points" CurveName="green" Type="CmdAddPointsGraph"> | |
284 | <Point ScreenY="211" Ordinal="50.5" Identifier="green	point	130" ScreenX="835"/> | |
285 | <Point ScreenY="196" Ordinal="50.5" Identifier="green	point	131" ScreenX="855"/> | |
286 | <Point ScreenY="188" Ordinal="50.5" Identifier="green	point	132" ScreenX="878"/> | |
287 | <Point ScreenY="192" Ordinal="50.5" Identifier="green	point	133" ScreenX="902"/> | |
288 | <Point ScreenY="204" Ordinal="50.5" Identifier="green	point	134" ScreenX="923"/> | |
289 | <Point ScreenY="222" Ordinal="50.5" Identifier="green	point	135" ScreenX="941"/> | |
290 | <Point ScreenY="242" Ordinal="50.5" Identifier="green	point	136" ScreenX="955"/> | |
291 | <Point ScreenY="264" Ordinal="50.5" Identifier="green	point	137" ScreenX="968"/> | |
292 | </Cmd> | |
293 | <Cmd Description="Filter settings" Type="CmdSettingsColorFilter"> | |
294 | <Filter> | |
295 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="115" ValueHigh="50" IntensityHigh="50" HueHigh="122" ValueLow="0" CurveName="green" Mode="1" ModeString="Hue" IntensityLow="0" ForegroundHigh="10"/> | |
296 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="Axes" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
297 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="blue" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
298 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="0" ValueHigh="50" IntensityHigh="50" HueHigh="3" ValueLow="0" CurveName="red" Mode="1" ModeString="Hue" IntensityLow="0" ForegroundHigh="10"/> | |
299 | </Filter> | |
300 | <Filter> | |
301 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="115" ValueHigh="50" IntensityHigh="50" HueHigh="122" ValueLow="0" CurveName="green" Mode="1" ModeString="Hue" IntensityLow="0" ForegroundHigh="10"/> | |
302 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="180" ValueHigh="50" IntensityHigh="50" HueHigh="360" ValueLow="0" CurveName="Axes" Mode="2" ModeString="Intensity" IntensityLow="0" ForegroundHigh="10"/> | |
303 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="204" ValueHigh="50" IntensityHigh="50" HueHigh="211" ValueLow="0" CurveName="blue" Mode="1" ModeString="Hue" IntensityLow="0" ForegroundHigh="10"/> | |
304 | <ColorFilter SaturationLow="50" SaturationHigh="100" ForegroundLow="0" HueLow="0" ValueHigh="50" IntensityHigh="50" HueHigh="3" ValueLow="0" CurveName="red" Mode="1" ModeString="Hue" IntensityLow="0" ForegroundHigh="10"/> | |
305 | </Filter> | |
306 | </Cmd> | |
307 | <Cmd Description="Add graph points" CurveName="blue" Type="CmdAddPointsGraph"> | |
308 | <Point ScreenY="76" Ordinal="1" Identifier="blue	point	138" ScreenX="57"/> | |
309 | <Point ScreenY="84" Ordinal="1" Identifier="blue	point	139" ScreenX="81"/> | |
310 | <Point ScreenY="97" Ordinal="1" Identifier="blue	point	140" ScreenX="102"/> | |
311 | <Point ScreenY="113" Ordinal="1" Identifier="blue	point	141" ScreenX="121"/> | |
312 | <Point ScreenY="131" Ordinal="1" Identifier="blue	point	142" ScreenX="137"/> | |
313 | <Point ScreenY="151" Ordinal="1" Identifier="blue	point	143" ScreenX="153"/> | |
314 | <Point ScreenY="171" Ordinal="1" Identifier="blue	point	144" ScreenX="168"/> | |
315 | <Point ScreenY="192" Ordinal="1" Identifier="blue	point	145" ScreenX="181"/> | |
316 | <Point ScreenY="214" Ordinal="1" Identifier="blue	point	146" ScreenX="194"/> | |
317 | <Point ScreenY="235" Ordinal="1" Identifier="blue	point	147" ScreenX="207"/> | |
318 | <Point ScreenY="257" Ordinal="1" Identifier="blue	point	148" ScreenX="219"/> | |
319 | <Point ScreenY="279" Ordinal="1" Identifier="blue	point	149" ScreenX="231"/> | |
320 | <Point ScreenY="301" Ordinal="1" Identifier="blue	point	150" ScreenX="243"/> | |
321 | <Point ScreenY="323" Ordinal="1" Identifier="blue	point	151" ScreenX="255"/> | |
322 | <Point ScreenY="345" Ordinal="1" Identifier="blue	point	152" ScreenX="267"/> | |
323 | <Point ScreenY="367" Ordinal="1" Identifier="blue	point	153" ScreenX="278"/> | |
324 | <Point ScreenY="389" Ordinal="1" Identifier="blue	point	154" ScreenX="290"/> | |
325 | <Point ScreenY="411" Ordinal="1" Identifier="blue	point	155" ScreenX="302"/> | |
326 | <Point ScreenY="433" Ordinal="1" Identifier="blue	point	156" ScreenX="314"/> | |
327 | <Point ScreenY="454" Ordinal="1" Identifier="blue	point	157" ScreenX="327"/> | |
328 | <Point ScreenY="476" Ordinal="1" Identifier="blue	point	158" ScreenX="339"/> | |
329 | <Point ScreenY="497" Ordinal="1" Identifier="blue	point	159" ScreenX="352"/> | |
330 | <Point ScreenY="518" Ordinal="1" Identifier="blue	point	160" ScreenX="366"/> | |
331 | <Point ScreenY="539" Ordinal="1" Identifier="blue	point	161" ScreenX="380"/> | |
332 | <Point ScreenY="559" Ordinal="1" Identifier="blue	point	162" ScreenX="395"/> | |
333 | <Point ScreenY="578" Ordinal="1" Identifier="blue	point	163" ScreenX="411"/> | |
334 | <Point ScreenY="596" Ordinal="1" Identifier="blue	point	164" ScreenX="428"/> | |
335 | <Point ScreenY="612" Ordinal="1" Identifier="blue	point	165" ScreenX="447"/> | |
336 | <Point ScreenY="625" Ordinal="1" Identifier="blue	point	166" ScreenX="468"/> | |
337 | <Point ScreenY="634" Ordinal="1" Identifier="blue	point	167" ScreenX="491"/> | |
338 | <Point ScreenY="637" Ordinal="1" Identifier="blue	point	168" ScreenX="516"/> | |
339 | <Point ScreenY="633" Ordinal="1" Identifier="blue	point	169" ScreenX="540"/> | |
340 | <Point ScreenY="623" Ordinal="1" Identifier="blue	point	170" ScreenX="563"/> | |
341 | <Point ScreenY="609" Ordinal="1" Identifier="blue	point	171" ScreenX="583"/> | |
342 | <Point ScreenY="592" Ordinal="1" Identifier="blue	point	172" ScreenX="602"/> | |
343 | <Point ScreenY="574" Ordinal="1" Identifier="blue	point	173" ScreenX="619"/> | |
344 | <Point ScreenY="554" Ordinal="1" Identifier="blue	point	174" ScreenX="635"/> | |
345 | <Point ScreenY="534" Ordinal="1" Identifier="blue	point	175" ScreenX="649"/> | |
346 | <Point ScreenY="513" Ordinal="1" Identifier="blue	point	176" ScreenX="663"/> | |
347 | <Point ScreenY="493" Ordinal="1" Identifier="blue	point	177" ScreenX="677"/> | |
348 | <Point ScreenY="471" Ordinal="1" Identifier="blue	point	178" ScreenX="690"/> | |
349 | <Point ScreenY="449" Ordinal="1" Identifier="blue	point	179" ScreenX="702"/> | |
350 | <Point ScreenY="428" Ordinal="1" Identifier="blue	point	180" ScreenX="714"/> | |
351 | <Point ScreenY="406" Ordinal="1" Identifier="blue	point	181" ScreenX="727"/> | |
352 | <Point ScreenY="384" Ordinal="1" Identifier="blue	point	182" ScreenX="738"/> | |
353 | <Point ScreenY="362" Ordinal="1" Identifier="blue	point	183" ScreenX="750"/> | |
354 | <Point ScreenY="340" Ordinal="1" Identifier="blue	point	184" ScreenX="762"/> | |
355 | <Point ScreenY="318" Ordinal="1" Identifier="blue	point	185" ScreenX="774"/> | |
356 | <Point ScreenY="296" Ordinal="1" Identifier="blue	point	186" ScreenX="786"/> | |
357 | <Point ScreenY="274" Ordinal="1" Identifier="blue	point	187" ScreenX="798"/> | |
358 | <Point ScreenY="252" Ordinal="1" Identifier="blue	point	188" ScreenX="810"/> | |
359 | <Point ScreenY="230" Ordinal="1" Identifier="blue	point	189" ScreenX="822"/> | |
360 | <Point ScreenY="209" Ordinal="1" Identifier="blue	point	190" ScreenX="835"/> | |
361 | <Point ScreenY="187" Ordinal="1" Identifier="blue	point	191" ScreenX="848"/> | |
362 | <Point ScreenY="166" Ordinal="1" Identifier="blue	point	192" ScreenX="862"/> | |
363 | <Point ScreenY="146" Ordinal="1" Identifier="blue	point	193" ScreenX="877"/> | |
364 | <Point ScreenY="127" Ordinal="1" Identifier="blue	point	194" ScreenX="892"/> | |
365 | <Point ScreenY="109" Ordinal="1" Identifier="blue	point	195" ScreenX="909"/> | |
366 | <Point ScreenY="94" Ordinal="1" Identifier="blue	point	196" ScreenX="928"/> | |
367 | <Point ScreenY="82" Ordinal="1" Identifier="blue	point	197" ScreenX="949"/> | |
368 | </Cmd> | |
369 | <Cmd Description="Export settings" Type="CmdSettingsExport"> | |
370 | <Export PointsIntervalFunctions="10" PointsSelectionRelationsString="Unknown" PointsIntervalUnitsRelations="1" LayoutFunctions="1" LayoutFunctionsString="OnePerLine" XLabel="x" PointsSelectionFunctions="3" PointsSelectionFunctionsString="Raw" PointsIntervalRelations="1" DelimiterString="Commas" Delimiter="0" Header="1" HeaderString="Simple" PointsSelectionRelations="3" PointsIntervalUnitsFunctions="1" OverrideCsvTsv="True"> | |
371 | <CurveNamesNotExported/> | |
372 | </Export> | |
373 | <Export PointsIntervalFunctions="10" PointsSelectionRelationsString="Unknown" PointsIntervalUnitsRelations="1" LayoutFunctions="1" LayoutFunctionsString="OnePerLine" XLabel="x" PointsSelectionFunctions="3" PointsSelectionFunctionsString="Raw" PointsIntervalRelations="1" DelimiterString="Commas" Delimiter="0" Header="2" HeaderString="Gnuplot" PointsSelectionRelations="3" PointsIntervalUnitsFunctions="1" OverrideCsvTsv="True"> | |
374 | <CurveNamesNotExported/> | |
375 | </Export> | |
376 | </Cmd> | |
377 | </CmdMediator> | |
378 | <Error File="src/main/MainWindow.cpp" Line="1292" Context="Shift+Control+E" Comment="userTriggered"/> | |
379 | </Document> | |
380 | </ErrorReport> |
0 | 2200x1366 |
Binary diff not shown
0 | -filecmdscript ../test/jpeg2000/jpeg2000.test.xml -regression |
0 | 1146x888 |
0 | pdf.csv_actual_1 |
0 | 2200x1366 |
Binary diff not shown
0 | -filecmdscript ../test/pdf/pdf_one_page.test.xml -regression |
0 | 0 | x,Curve1,Curve2,Curve3 |
1 | -179.354,2.743,2.231,1.851 | |
2 | -179.191,2.743,2.231,1.854 | |
1 | -179.354,2.711,2.228,1.851 | |
2 | -179.191,2.716,2.231,1.854 | |
3 | 3 | -178.126,2.743,2.251,1.874 |
4 | 4 | -173.822,2.852,2.336,1.954 |
5 | 5 | -173.664,2.856,2.34,1.957 |
184 | 184 | 169.035,2.442,1.972,1.629 |
185 | 185 | 172.336,2.516,2.039,1.692 |
186 | 186 | 173.754,2.548,2.068,1.72 |
187 | 175.172,2.581,2.097,1.72 | |
188 | 177.215,2.627,2.097,1.72 | |
187 | 175.172,2.581,2.097,1.747 | |
188 | 177.215,2.627,2.138,1.786 |