├── .gitignore ├── .mailmap ├── .travis.yml ├── CMakeLists.txt ├── GuiUnitTest ├── .gitignore ├── CMakeLists.txt ├── main.cpp ├── testsettings.cpp └── testviewhelpers.cpp ├── README.md ├── RegressionTest ├── BaselineBinaries │ ├── Darwin │ │ └── depthmapXcli │ ├── Linux │ │ └── depthmapXcli │ └── Windows │ │ └── depthmapXcli.exe ├── RegressionTestRunner.py ├── cmdlinewrapper.py ├── config.py ├── depthmaprunner.py ├── performance_regression.json ├── performanceregressionconfig.py ├── performancerunner.py ├── regressionconfig.json ├── regressionconfig_agents.json ├── runhelpers.py └── test │ ├── context.py │ ├── disposablefile.py │ ├── fail │ └── test_fail.py │ ├── pass │ └── test_pass.py │ ├── test_RegressionTestRunner.py │ ├── test_cmdlinewrapper.py │ ├── test_config.py │ ├── test_depthmaprunner.py │ ├── test_disposablefile.py │ ├── test_main.py │ ├── test_performanceregressionconfig.py │ ├── test_performancerunner.py │ ├── test_runhelpers.py │ └── test_test_main.py ├── ThirdParty ├── Catch │ └── catch.hpp └── FakeIt │ └── Catch │ └── fakeit.hpp ├── ci ├── .gitattributes └── build.sh ├── cliTest ├── CMakeLists.txt ├── argumentholder.h ├── main.cpp ├── selfcleaningfile.h ├── testagentparser.cpp ├── testargumentholder.cpp ├── testaxialparser.cpp ├── testcommandlineparser.cpp ├── testexportparser.cpp ├── testimportparser.cpp ├── testisovistparser.cpp ├── testlinkparser.cpp ├── testmapconvertparser.cpp ├── testparsingutils.cpp ├── testperformancewriter.cpp ├── testradiusconverter.cpp ├── testsegmentparser.cpp ├── testselfcleaningfile.cpp ├── testsimpletimer.cpp ├── teststepdepthparser.cpp ├── testvgaparser.cpp └── testvisprepparser.cpp ├── depthmapX ├── CMakeLists.txt ├── GraphDoc.cpp ├── GraphDoc.h ├── UI │ ├── AboutDlg.ui │ ├── AgentAnalysisDlg.ui │ ├── AttributeChooserDlg.ui │ ├── AttributeSummary.ui │ ├── AxialAnalysisOptionsDlg.ui │ ├── ColourScaleDlg.ui │ ├── ColourScaleDlg.ui.bak │ ├── ColumnPropertiesDlg.ui │ ├── ConvertShapesDlg.ui │ ├── DepthmapAlert.ui │ ├── DepthmapOptionsDlg.ui │ ├── EditConnectionsDlg.ui │ ├── FewestLineOptionsDlg.ui │ ├── FilePropertiesDlg.ui │ ├── FindLocDlg.ui │ ├── GridDialog.ui │ ├── InsertColumnDlg.ui │ ├── IsovistPathDlg.ui │ ├── LayerChooserDlg.ui │ ├── LicenceDialog.ui │ ├── MakeLayerDlg.ui │ ├── MakeOptionsDlg.ui │ ├── NewLayerDlg.ui │ ├── OptionsDlg.ui │ ├── PromptReplace.ui │ ├── PushDialog.ui │ ├── RenameObjectDlg.ui │ ├── SegmentAnalysisDlg.ui │ ├── TopoMetDlg.ui │ ├── doAll.sh │ └── licenseagreement.ui ├── compatibilitydefines.h ├── coreapplication.cpp ├── coreapplication.h ├── dialogs │ ├── AboutDlg.cpp │ ├── AboutDlg.h │ ├── AgentAnalysisDlg.cpp │ ├── AgentAnalysisDlg.h │ ├── AttributeChooserDlg.cpp │ ├── AttributeChooserDlg.h │ ├── AttributeSummary.cpp │ ├── AttributeSummary.h │ ├── AxialAnalysisOptionsDlg.cpp │ ├── AxialAnalysisOptionsDlg.h │ ├── CMakeLists.txt │ ├── ColourScaleDlg.cpp │ ├── ColourScaleDlg.h │ ├── ColumnPropertiesDlg.cpp │ ├── ColumnPropertiesDlg.h │ ├── ConvertShapesDlg.cpp │ ├── ConvertShapesDlg.h │ ├── EditConnectionsDlg.cpp │ ├── EditConnectionsDlg.h │ ├── FewestLineOptionsDlg.cpp │ ├── FewestLineOptionsDlg.h │ ├── FilePropertiesDlg.cpp │ ├── FilePropertiesDlg.h │ ├── FindLocDlg.cpp │ ├── FindLocDlg.h │ ├── GridDialog.cpp │ ├── GridDialog.h │ ├── InsertColumnDlg.cpp │ ├── InsertColumnDlg.h │ ├── IsovistPathDlg.cpp │ ├── IsovistPathDlg.h │ ├── LayerChooserDlg.cpp │ ├── LayerChooserDlg.h │ ├── LicenceDialog.cpp │ ├── LicenceDialog.h │ ├── MakeLayerDlg.cpp │ ├── MakeLayerDlg.h │ ├── MakeOptionsDlg.cpp │ ├── MakeOptionsDlg.h │ ├── NewLayerDlg.cpp │ ├── NewLayerDlg.h │ ├── OptionsDlg.cpp │ ├── OptionsDlg.h │ ├── PromptReplace.cpp │ ├── PromptReplace.h │ ├── PushDialog.cpp │ ├── PushDialog.h │ ├── RenameObjectDlg.cpp │ ├── RenameObjectDlg.h │ ├── SegmentAnalysisDlg.cpp │ ├── SegmentAnalysisDlg.h │ ├── TopoMetDlg.cpp │ ├── TopoMetDlg.h │ ├── licenseagreement.cpp │ ├── licenseagreement.h │ └── settings │ │ ├── generalpage.cpp │ │ ├── generalpage.h │ │ ├── images │ │ ├── general.png │ │ └── interface.png │ │ ├── interfacepage.cpp │ │ ├── interfacepage.h │ │ ├── settingsdialog.cpp │ │ ├── settingsdialog.h │ │ ├── settingsdialog.qrc │ │ └── settingspage.h ├── icons.rc ├── icons │ ├── depthmapX.icns │ ├── depthmapX.ico │ └── graph.icns ├── images │ ├── copy.png │ ├── cur │ │ ├── cur00001.png │ │ ├── cur00002.png │ │ ├── cur00003.png │ │ ├── cur00004.png │ │ ├── cur00005.png │ │ ├── cur00006.png │ │ ├── cur00007.png │ │ ├── cur00008.png │ │ ├── cur00009.png │ │ ├── icon-1-1.png │ │ ├── icon-1-2.png │ │ ├── icon-1-3.png │ │ ├── icon-1-4.png │ │ └── icon-1-5.png │ ├── cut.png │ ├── depthmapX-128x128.png │ ├── depthmapX.png │ ├── down.png │ ├── editdelete.png │ ├── icons │ │ ├── add.png │ │ ├── cursor-closedhand.png │ │ ├── cursor-hand.png │ │ ├── cursor-openhand.png │ │ ├── del.png │ │ ├── designer-add-files-button.png │ │ ├── print-24.png │ │ ├── zoom-in-24.png │ │ ├── zoom-in-32.png │ │ ├── zoom-out-24.png │ │ ├── zoom-out-32.png │ │ ├── zoomInCursor.png │ │ ├── zoomOutCursor.png │ │ ├── zoomin.png │ │ └── zoomout.png │ ├── mac │ │ ├── accelerator.png │ │ ├── book.png │ │ ├── doneandnext.png │ │ ├── editcopy.png │ │ ├── editcut.png │ │ ├── editpaste.png │ │ ├── filenew.png │ │ ├── fileopen.png │ │ ├── fileprint.png │ │ ├── filesave.png │ │ ├── next.png │ │ ├── nextunfinished.png │ │ ├── phrase.png │ │ ├── prev.png │ │ ├── prevunfinished.png │ │ ├── print.png │ │ ├── punctuation.png │ │ ├── redo.png │ │ ├── searchfind.png │ │ ├── undo.png │ │ ├── validateplacemarkers.png │ │ └── whatsthis.png │ ├── new.png │ ├── open.png │ ├── paste.png │ ├── s_check_danger.png │ ├── s_check_empty.png │ ├── s_check_obsolete.png │ ├── s_check_off.png │ ├── s_check_on.png │ ├── s_check_warning.png │ ├── save.png │ ├── transbox.png │ ├── up.png │ └── win │ │ ├── b-1-1.png │ │ ├── b-1-10.png │ │ ├── b-1-11.png │ │ ├── b-1-12.png │ │ ├── b-1-13.png │ │ ├── b-1-14.png │ │ ├── b-1-15.png │ │ ├── b-1-16.png │ │ ├── b-1-17.png │ │ ├── b-1-18.png │ │ ├── b-1-19.png │ │ ├── b-1-2.png │ │ ├── b-1-20.png │ │ ├── b-1-21.png │ │ ├── b-1-22.png │ │ ├── b-1-23.png │ │ ├── b-1-3.png │ │ ├── b-1-4.png │ │ ├── b-1-5.png │ │ ├── b-1-6.png │ │ ├── b-1-7.png │ │ ├── b-1-8.png │ │ ├── b-1-9.png │ │ ├── b-2-1.png │ │ ├── b-2-2.png │ │ ├── b-2-3.png │ │ ├── b-2-4.png │ │ ├── b-2-5.png │ │ ├── b-2-6.png │ │ ├── b-2-7.png │ │ ├── b-2-8.png │ │ ├── b-4-1.png │ │ ├── b-4-10.png │ │ ├── b-4-11.png │ │ ├── b-4-2.png │ │ ├── b-4-3.png │ │ ├── b-4-4.png │ │ ├── b-4-5.png │ │ ├── b-4-6.png │ │ ├── b-4-7.png │ │ ├── b-4-8.png │ │ ├── b-4-9.png │ │ ├── b-5-1.png │ │ ├── b-5-10.png │ │ ├── b-5-11.png │ │ ├── b-5-12.png │ │ ├── b-5-13.png │ │ ├── b-5-14.png │ │ ├── b-5-15.png │ │ ├── b-5-16.png │ │ ├── b-5-17.png │ │ ├── b-5-18.png │ │ ├── b-5-19.png │ │ ├── b-5-2.png │ │ ├── b-5-20.png │ │ ├── b-5-21.png │ │ ├── b-5-22.png │ │ ├── b-5-3.png │ │ ├── b-5-4.png │ │ ├── b-5-5.png │ │ ├── b-5-6.png │ │ ├── b-5-7.png │ │ ├── b-5-8.png │ │ ├── b-5-9.png │ │ ├── b-6-1.png │ │ ├── b-6-10.png │ │ ├── b-6-11.png │ │ ├── b-6-12.png │ │ ├── b-6-2.png │ │ ├── b-6-3.png │ │ ├── b-6-4.png │ │ ├── b-6-5.png │ │ ├── b-6-6.png │ │ ├── b-6-7.png │ │ ├── b-6-8.png │ │ ├── b-6-9.png │ │ ├── b-7-1.png │ │ ├── b-7-2.png │ │ ├── b-7-3.png │ │ ├── b-7-4.png │ │ ├── b-7-5.png │ │ ├── zoomInCursor.png │ │ └── zoomOutCursor.png ├── imainwindowmodule.h ├── imainwindowmodulefactory.h ├── indexWidget.cpp ├── indexWidget.h ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h ├── mainwindowfactory.cpp ├── mainwindowfactory.h ├── mainwindowhelpers.cpp ├── mainwindowhelpers.h ├── mainwindowmodulefactory.cpp ├── mainwindowmoduleregistry.cpp ├── mainwindowmoduleregistry.hpp ├── make_version_header.bat ├── make_version_header.sh ├── mdichild.cpp ├── mdichild.h ├── qrc_mdi.cpp ├── renderthread.cpp ├── resource.qrc ├── resources │ └── Info.plist ├── settings.h ├── settingsimpl.cpp ├── settingsimpl.h ├── treeWindow.cpp ├── treeWindow.h └── views │ ├── 3dview │ ├── 3dview.cpp │ ├── 3dview.h │ └── glureimpl.h │ ├── CMakeLists.txt │ ├── depthmapview │ ├── depthmapview.cpp │ └── depthmapview.h │ ├── glview │ ├── gldynamicline.cpp │ ├── gldynamicline.h │ ├── gldynamicrect.cpp │ ├── gldynamicrect.h │ ├── gllines.cpp │ ├── gllines.h │ ├── gllinesuniform.cpp │ ├── gllinesuniform.h │ ├── glpointmap.cpp │ ├── glpointmap.h │ ├── glpolygons.cpp │ ├── glpolygons.h │ ├── glrastertexture.cpp │ ├── glrastertexture.h │ ├── glregularpolygons.cpp │ ├── glregularpolygons.h │ ├── glshapegraph.cpp │ ├── glshapegraph.h │ ├── glshapemap.cpp │ ├── glshapemap.h │ ├── gltriangles.cpp │ ├── gltriangles.h │ ├── gltrianglesuniform.cpp │ ├── gltrianglesuniform.h │ ├── glutriangulator.cpp │ ├── glutriangulator.h │ ├── glview.cpp │ └── glview.h │ ├── mapview.cpp │ ├── mapview.h │ ├── plotview │ ├── plotview.cpp │ └── plotview.h │ ├── tableview │ ├── tableview.cpp │ └── tableview.h │ ├── viewhelpers.cpp │ └── viewhelpers.h ├── depthmapXTest ├── CMakeLists.txt ├── main.cpp ├── testgllines.cpp ├── testgllinesuniform.cpp └── testglrastertexture.cpp ├── depthmapXcli ├── CMakeLists.txt ├── agentparser.cpp ├── agentparser.h ├── axialparser.cpp ├── axialparser.h ├── commandlineparser.cpp ├── commandlineparser.h ├── exceptions.h ├── exportparser.cpp ├── exportparser.h ├── imodeparser.h ├── imodeparserfactory.h ├── importparser.cpp ├── importparser.h ├── isovistparser.cpp ├── isovistparser.h ├── linkparser.cpp ├── linkparser.h ├── main.cpp ├── mapconvertparser.cpp ├── mapconvertparser.h ├── modeparserregistry.cpp ├── modeparserregistry.h ├── parsingutils.cpp ├── parsingutils.h ├── performancesink.h ├── performancewriter.cpp ├── performancewriter.h ├── printcommunicator.cpp ├── printcommunicator.h ├── radiusconverter.cpp ├── radiusconverter.h ├── runmethods.cpp ├── runmethods.h ├── segmentparser.cpp ├── segmentparser.h ├── simpletimer.h ├── stepdepthparser.cpp ├── stepdepthparser.h ├── vgaparser.cpp ├── vgaparser.h ├── visprepparser.cpp └── visprepparser.h ├── dist └── beta │ ├── map_opengl │ ├── macos │ │ └── depthmapX.zip │ ├── win-32 │ │ └── depthmapX.zip │ └── win-64 │ │ └── depthmapX.zip │ └── master │ └── macos │ └── depthmapX.zip ├── docs ├── Agents_Manual_Draft01_2012.pdf ├── DepthmapManualForDummies-v13.pdf ├── DepthmapManualForDummies_v20_short.pdf ├── about.md ├── building.md ├── commandline.md ├── formatting.md ├── gui.md ├── howdoi.md └── index.md ├── genlib ├── CMakeLists.txt ├── bsptree.cpp ├── bsptree.h ├── comm.h ├── containerutils.h ├── exceptions.h ├── lgpl.txt ├── linreg.h ├── p2dpoly.cpp ├── p2dpoly.h ├── pafmath.cpp ├── pafmath.h ├── pflipper.h ├── readwritehelpers.h ├── simplematrix.h ├── stringutils.cpp ├── stringutils.h ├── xmlparse.cpp └── xmlparse.h ├── genlibTest ├── CMakeLists.txt ├── main.cpp ├── testbspnode.cpp ├── testcontainerutils.cpp ├── testreadwritehelpers.cpp ├── testsimplematrix.cpp └── teststringutils.cpp ├── mgraph440 ├── CMakeLists.txt ├── attr.cpp ├── attr.h ├── attributes.cpp ├── attributes.h ├── axialmap.cpp ├── axialmap.h ├── bspnode.h ├── comm.h ├── connector.cpp ├── connector.h ├── containerutils.h ├── datalayer.cpp ├── datalayer.h ├── displayparams.h ├── exceptions.h ├── fileproperties.h ├── legacyconverters.h ├── mapinfodata.h ├── mgraph.cpp ├── mgraph.h ├── mgraph_consts.h ├── ngraph.cpp ├── ngraph.h ├── options.h ├── p2dpoly.cpp ├── p2dpoly.h ├── pafcolor.cpp ├── pafcolor.h ├── pafmath.cpp ├── pafmath.h ├── paftl.h ├── pixelbase.cpp ├── pixelbase.h ├── pixelref.h ├── point.cpp ├── point.h ├── pointmap.cpp ├── pointmap.h ├── salaprogram.cpp ├── salaprogram.h ├── shapemap.cpp ├── shapemap.h ├── spacepix.cpp ├── spacepix.h ├── stringutils.cpp └── stringutils.h ├── mgraph440Test ├── CMakeLists.txt ├── main.cpp ├── testcontainers.cpp └── testconverters.cpp ├── moduleTest ├── CMakeLists.txt └── main.cpp ├── modules ├── CMakeLists.txt └── segmentshortestpaths │ ├── CMakeLists.txt │ ├── RegressionTest │ └── regressionconfig.json │ ├── cli │ ├── CMakeLists.txt │ ├── segmentshortestpathparser.cpp │ └── segmentshortestpathparser.h │ ├── cliTest │ ├── CMakeLists.txt │ └── segmentshortestpathparsertest.cpp │ ├── core │ ├── CMakeLists.txt │ ├── segmmetricshortestpath.cpp │ ├── segmmetricshortestpath.h │ ├── segmtopologicalshortestpath.cpp │ ├── segmtopologicalshortestpath.h │ ├── segmtulipshortestpath.cpp │ └── segmtulipshortestpath.h │ ├── coreTest │ ├── CMakeLists.txt │ └── segmentpathscoretest.cpp │ └── gui │ ├── CMakeLists.txt │ ├── segmentpathsmainwindow.cpp │ ├── segmentpathsmainwindow.h │ └── uictrigger.cpp ├── releases ├── README.txt ├── gplv3.txt ├── lgplv3.txt └── licenses.txt ├── salaTest ├── CMakeLists.txt ├── main.cpp ├── testattributetable.cpp ├── testattributetablehelpers.cpp ├── testattributetableindex.cpp ├── testattributetableview.cpp ├── testdxfp.cpp ├── testentityparsing.cpp ├── testgeometrygenerators.cpp ├── testgridproperties.cpp ├── testisovist.cpp ├── testisovistdef.cpp ├── testlayermanager.cpp ├── testlinkutils.cpp ├── testmapconversion.cpp ├── testmapinfodata.cpp ├── testmgraph.cpp ├── testpointinpoly.cpp ├── testpointmap.cpp ├── testpushvalues.cpp ├── testsalaprogram.cpp ├── testshapegraphs.cpp ├── testshapemaps.cpp ├── testshaperemove.cpp ├── testsparksieve.cpp └── teststructsizes.cpp ├── salalib ├── CMakeLists.txt ├── agents │ ├── CMakeLists.txt │ ├── agent.cpp │ ├── agent.h │ ├── agentengine.cpp │ ├── agentengine.h │ ├── agentga.cpp │ ├── agentga.h │ ├── agenthelpers.h │ ├── agentprogram.cpp │ ├── agentprogram.h │ ├── agentset.cpp │ └── agentset.h ├── alllinemap.cpp ├── alllinemap.h ├── attributetable.cpp ├── attributetable.h ├── attributetablehelpers.h ├── attributetableindex.cpp ├── attributetableindex.h ├── attributetableview.cpp ├── attributetableview.h ├── axialmap.cpp ├── axialmap.h ├── axialminimiser.cpp ├── axialminimiser.h ├── axialmodules │ ├── CMakeLists.txt │ ├── axialintegration.cpp │ ├── axialintegration.h │ ├── axialstepdepth.cpp │ └── axialstepdepth.h ├── axialpolygons.cpp ├── axialpolygons.h ├── connector.cpp ├── connector.h ├── displayparams.h ├── entityparsing.cpp ├── entityparsing.h ├── fileproperties.h ├── geometrygenerators.cpp ├── geometrygenerators.h ├── gridproperties.cpp ├── gridproperties.h ├── ianalysis.h ├── iaxial.h ├── importtypedefs.h ├── importutils.cpp ├── importutils.h ├── isegment.h ├── isovist.cpp ├── isovist.h ├── isovistdef.h ├── ivga.h ├── layermanager.h ├── layermanagerimpl.cpp ├── layermanagerimpl.h ├── linkutils.cpp ├── linkutils.h ├── mapconverter.cpp ├── mapconverter.h ├── mgraph.cpp ├── mgraph.h ├── mgraph_consts.h ├── ngraph.cpp ├── ngraph.h ├── options.h ├── pafcolor.cpp ├── pafcolor.h ├── parsers │ ├── CMakeLists.txt │ ├── dxfp.cpp │ ├── dxfp.h │ ├── mapinfodata.cpp │ ├── mapinfodata.h │ ├── ntfp.cpp │ ├── ntfp.h │ ├── tigerp.cpp │ └── tigerp.h ├── pixelref.h ├── point.cpp ├── point.h ├── pointdata.cpp ├── pointdata.h ├── salaprogram.cpp ├── salaprogram.h ├── segmmodules │ ├── CMakeLists.txt │ ├── segmangular.cpp │ ├── segmangular.h │ ├── segmhelpers.h │ ├── segmmetric.cpp │ ├── segmmetric.h │ ├── segmmetricpd.cpp │ ├── segmmetricpd.h │ ├── segmtopological.cpp │ ├── segmtopological.h │ ├── segmtopologicalpd.cpp │ ├── segmtopologicalpd.h │ ├── segmtulip.cpp │ ├── segmtulip.h │ ├── segmtulipdepth.cpp │ └── segmtulipdepth.h ├── shapemap.cpp ├── shapemap.h ├── spacepix.cpp ├── spacepix.h ├── spacepixfile.cpp ├── spacepixfile.h ├── sparksieve2.cpp ├── sparksieve2.h ├── tidylines.cpp ├── tidylines.h ├── tolerances.h └── vgamodules │ ├── CMakeLists.txt │ ├── vgaangular.cpp │ ├── vgaangular.h │ ├── vgaangulardepth.cpp │ ├── vgaangulardepth.h │ ├── vgaisovist.cpp │ ├── vgaisovist.h │ ├── vgametric.cpp │ ├── vgametric.h │ ├── vgametricdepth.cpp │ ├── vgametricdepth.h │ ├── vgathroughvision.cpp │ ├── vgathroughvision.h │ ├── vgavisualglobal.cpp │ ├── vgavisualglobal.h │ ├── vgavisualglobaldepth.cpp │ ├── vgavisualglobaldepth.h │ ├── vgavisuallocal.cpp │ └── vgavisuallocal.h ├── testdata ├── all_line_noncont_keys.graph ├── axmap_noncont_keys.graph ├── barnsbury_axial.RT1 ├── barnsbury_axial.graph ├── barnsbury_drawing.graph ├── barnsbury_extended1.dxf ├── barnsbury_extended1_axial.csv ├── barnsbury_extended1_axial.graph ├── barnsbury_extended1_axial.tsv ├── barnsbury_extended1_segment.graph ├── barnsbury_extended2.dxf ├── barnsbury_extended2_axial.graph ├── barnsbury_extended2_drawing.graph ├── barnsbury_segment.graph ├── barnsbury_segment_lines.mid ├── barnsbury_segment_lines.mif ├── barnsbury_segment_pline.mid ├── barnsbury_segment_pline.mif ├── gallery.dxf ├── gallery_connected.graph ├── gallery_connected_merge_links.txt ├── gallery_connected_with_isovist.graph ├── gallery_empty.graph ├── gallery_graph_vga.txt ├── gallery_two_pointmaps.graph ├── isovists.csv ├── polygons_drawing.graph ├── polywall.graph ├── rect1x1.graph ├── rooms.dxf ├── simple_axial_lines.ntf ├── simple_axlines.graph ├── simple_axlines.mid ├── simple_axlines.mif ├── simple_axlines_pline.mid ├── simple_axlines_pline.mif ├── turns.dxf └── turns_connected.graph ├── tools ├── build-appimage │ ├── depthmapX.desktop │ └── docker-instructions.txt ├── build-image │ ├── Dockerfile │ └── readme.txt ├── build_and_upload.sh ├── graph.grammar └── storePerformanceTest.php ├── version.h └── version_defs.h.in /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .DS_Store 3 | depthmapX-build 4 | build 5 | build-* 6 | RegressionTest/rundir 7 | __pycache__ 8 | CMakeLists.txt.user 9 | *_BACKUP_* 10 | *_BASE_* 11 | *_LOCAL_* 12 | *_REMOTE_* 13 | 14 | -------------------------------------------------------------------------------- /.mailmap: -------------------------------------------------------------------------------- 1 | Petros Koutsolampros <2184600+pklampros@users.noreply.github.com> <2184600+orange-vertex@users.noreply.github.com> 2 | Petros Koutsolampros <2184600+pklampros@users.noreply.github.com> Petros Koutsolampros 3 | Petros Koutsolampros <2184600+pklampros@users.noreply.github.com> Petros 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | dist: xenial 3 | language: c++ 4 | services: 5 | - docker 6 | 7 | notifications: 8 | slack: depthmapx:B3CKNlNDLrNz1vSOU5yoQQqA 9 | webhooks: 10 | urls: 11 | - "https://scalar.vector.im/api/neb/services/hooks/dHJhdmlzLWNpLyU0MG9yYW5nZS12ZXJ0ZXglM0FtYXRyaXgub3JnLyUyMUVZQUZRaEVrV3lDZm1hcm9QaCUzQW1hdHJpeC5vcmc" 12 | on_success: always # always|never|change 13 | on_failure: always 14 | on_start: never 15 | 16 | 17 | script: 18 | - docker run --security-opt seccomp:unconfined --user $UID -v $PWD:/mnt/code blackseamonster/depthmapx-buildenv:0.3 bash -c ci/build.sh 19 | -------------------------------------------------------------------------------- /GuiUnitTest/.gitignore: -------------------------------------------------------------------------------- 1 | # This file is used to ignore files which are generated 2 | # ---------------------------------------------------------------------------- 3 | 4 | *~ 5 | *.autosave 6 | *.a 7 | *.core 8 | *.moc 9 | *.o 10 | *.obj 11 | *.orig 12 | *.rej 13 | *.so 14 | *.so.* 15 | *_pch.h.cpp 16 | *_resource.rc 17 | *.qm 18 | .#* 19 | *.*# 20 | core 21 | !core/ 22 | tags 23 | .DS_Store 24 | .directory 25 | *.debug 26 | Makefile* 27 | *.prl 28 | *.app 29 | moc_*.cpp 30 | ui_*.h 31 | qrc_*.cpp 32 | Thumbs.db 33 | *.res 34 | *.rc 35 | /.qmake.cache 36 | /.qmake.stash 37 | 38 | # qtcreator generated files 39 | *.pro.user* 40 | 41 | # xemacs temporary files 42 | *.flc 43 | 44 | # Vim temporary files 45 | .*.swp 46 | 47 | # Visual Studio generated files 48 | *.ib_pdb_index 49 | *.idb 50 | *.ilk 51 | *.pdb 52 | *.sln 53 | *.suo 54 | *.vcproj 55 | *vcproj.*.*.user 56 | *.ncb 57 | *.sdf 58 | *.opensdf 59 | *.vcxproj 60 | *vcxproj.* 61 | 62 | # MinGW generated files 63 | *.Debug 64 | *.Release 65 | 66 | # Python byte code 67 | *.pyc 68 | 69 | # Binaries 70 | # -------- 71 | *.dll 72 | *.exe 73 | 74 | -------------------------------------------------------------------------------- /GuiUnitTest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(GuiUnitTest GuiUnitTest) 2 | 3 | set(CMAKE_INCLUDE_CURRENT_DIR ON) 4 | # Find the QtWidgets library 5 | find_package(Qt5 COMPONENTS Core Widgets Gui OpenGL REQUIRED) 6 | # Instruct CMake to run moc automatically when needed 7 | set(CMAKE_AUTOMOC ON) 8 | 9 | set(guiUnitTest_SRCS 10 | main.cpp 11 | testviewhelpers.cpp 12 | testsettings.cpp 13 | ../depthmapX/settingsimpl.cpp 14 | ../depthmapX/views/viewhelpers.cpp) 15 | 16 | include_directories("../ThirdParty/Catch" "../ThirdParty/FakeIt" "../depthmapX") 17 | 18 | set(LINK_LIBS salalib genlib mgraph440 Qt5::Core) 19 | 20 | add_executable(${GuiUnitTest} ${guiUnitTest_SRCS}) 21 | target_link_libraries(${GuiUnitTest} ${LINK_LIBS}) 22 | 23 | -------------------------------------------------------------------------------- /GuiUnitTest/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #define CATCH_CONFIG_MAIN 17 | #include "catch.hpp" 18 | 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## depthmapX - multi-platform spatial network analyses software 2 | 3 | 4 | This is the home for the development of depthmapX. 5 | 6 | 7 | Latest releases can be found at the [releases page](https://github.com/SpaceGroupUCL/depthmapX/releases) 8 | 9 | 10 | For any issues/bugs/crashes please create [a new issue](https://github.com/SpaceGroupUCL/depthmapX/issues/new) 11 | 12 | 13 | For more information please check the [documentation](./docs/index.md) and the [wiki](https://github.com/SpaceGroupUCL/depthmapX/wiki) 14 | 15 | [About depthmapX](./docs/about.md) 16 | 17 | 18 | ## 19 | 20 | depthmapX is licensed under the [GPLv3](http://www.gnu.org/licenses/gpl-3.0.html) licence. 21 | 22 | depthmapX uses [Qt5](http://www.qt.io) as UI toolkit and build system, [Catch](https://github.com/philsquared/catch) as unit testing framework and [FakeIt](https://github.com/eranpeer/FakeIt) for test mocks. 23 | 24 | Please join the depthmapX mail distribution list at www.jiscmail.ac.uk/lists/DEPTHMAP.html for updates. 25 | 26 | The developers and users of depthmapX can also be found on matrix for more direct and extended discussions in the following channels: 27 | - [depthmapX-users](https://matrix.to/#/#depthmapX-users:matrix.org) - for general discussion, and questions about using depthmapX 28 | - [depthmapX-devel](https://matrix.to/#/#depthmapX-devel:matrix.org) - for development discussion 29 | -------------------------------------------------------------------------------- /RegressionTest/BaselineBinaries/Darwin/depthmapXcli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/RegressionTest/BaselineBinaries/Darwin/depthmapXcli -------------------------------------------------------------------------------- /RegressionTest/BaselineBinaries/Linux/depthmapXcli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/RegressionTest/BaselineBinaries/Linux/depthmapXcli -------------------------------------------------------------------------------- /RegressionTest/BaselineBinaries/Windows/depthmapXcli.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/RegressionTest/BaselineBinaries/Windows/depthmapXcli.exe -------------------------------------------------------------------------------- /RegressionTest/cmdlinewrapper.py: -------------------------------------------------------------------------------- 1 | class CommandLineError(Exception): 2 | def __init__(self, message): 3 | self.message = message 4 | 5 | 6 | class DepthmapCmd(): 7 | def __init__(self): 8 | self.infile = None 9 | self.outfile = None 10 | self.simpleMode = False 11 | self.mode = None 12 | self.extraArgs = {} 13 | self.timingFile = None 14 | 15 | 16 | def toCmdArray(self): 17 | if self.infile == None: 18 | raise CommandLineError("infile must be defined") 19 | if self.outfile == None: 20 | raise CommandLineError("outfile must be defined") 21 | if self.mode == None: 22 | raise CommandLineError("mode must be defined") 23 | args = ["-f", self.infile, "-o", self.outfile, "-m", self.mode] 24 | if self.simpleMode: 25 | args.append("-s") 26 | 27 | if self.timingFile: 28 | args.extend(["-t", self.timingFile]) 29 | 30 | for key, value in self.extraArgs.items(): 31 | if isinstance(value, list): 32 | for v in value: 33 | args.append(key) 34 | args.append(v) 35 | else: 36 | args.append(key) 37 | if value: 38 | args.append(value) 39 | 40 | return args 41 | 42 | -------------------------------------------------------------------------------- /RegressionTest/config.py: -------------------------------------------------------------------------------- 1 | import json 2 | import os.path 3 | import cmdlinewrapper 4 | from performanceregressionconfig import PerformanceRegressionConfig 5 | 6 | 7 | class ConfigError(Exception): 8 | def __init__(self, message): 9 | self.message = message 10 | 11 | def buildCmd(testcaseSet): 12 | cmds = []; 13 | for testcase in testcaseSet: 14 | cmd = cmdlinewrapper.DepthmapCmd() 15 | cmd.infile = testcase["infile"] 16 | cmd.outfile = testcase["outfile"] 17 | cmd.mode = testcase["mode"] 18 | if "simple" in testcase and not testcase["simple"] == "false": 19 | cmd.simpleMode = True 20 | cmd.extraArgs = testcase.get("extraArgs", {}) 21 | cmds.append(cmd) 22 | return cmds 23 | 24 | class RegressionConfig(): 25 | def __init__(self, filename): 26 | with open(filename, "r") as f: 27 | config = json.load(f) 28 | configdir = os.path.dirname(filename) 29 | self.rundir = config["rundir"] 30 | self.basebinlocation = config["basebinlocation"] 31 | self.testbinlocation = config["testbinlocation"] 32 | self.performanceRegression = PerformanceRegressionConfig(config.get("performance", None)) 33 | self.testcases = {} 34 | for (name, tc) in config["testcases"].items(): 35 | self.testcases[name] = buildCmd(tc) 36 | 37 | 38 | -------------------------------------------------------------------------------- /RegressionTest/test/context.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) 4 | 5 | import cmdlinewrapper 6 | import config 7 | import depthmaprunner 8 | import RegressionTestRunner 9 | import runhelpers 10 | import performanceregressionconfig 11 | import performancerunner -------------------------------------------------------------------------------- /RegressionTest/test/disposablefile.py: -------------------------------------------------------------------------------- 1 | import os 2 | import shutil 3 | 4 | class DisposableFile: 5 | def __init__( self, filename ): 6 | self.__filename = filename 7 | 8 | def __enter__(self): 9 | return self 10 | 11 | def __exit__(self, exc_type, exc_value, traceback): 12 | if os.path.exists(self.filename()): 13 | os.remove(self.filename()) 14 | 15 | def filename(self): 16 | return self.__filename 17 | 18 | class DisposableDirectoryError(Exception): 19 | def __init__(self, message): 20 | self.message = message 21 | 22 | class DisposableDirectory: 23 | def __init__(self, directoryName, create = False): 24 | if directoryName == ".": 25 | raise DisposableDirectoryError("The disposable directory cannot be the current directory") 26 | if os.path.exists(directoryName): 27 | raise DisposableDirectoryError("You can't make an existing directory disposable") 28 | self.__directoryName = directoryName 29 | if create: 30 | os.makedirs(directoryName) 31 | 32 | def __enter__(self): 33 | return self 34 | 35 | def __exit__(self, exc_type, exc_value, backtrace): 36 | if os.path.exists(self.__directoryName): 37 | shutil.rmtree(self.__directoryName) 38 | 39 | def name(self): 40 | return self.__directoryName 41 | -------------------------------------------------------------------------------- /RegressionTest/test/fail/test_fail.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | class TestFailure(unittest.TestCase): 4 | """ 5 | Test case that always fails to test that we capture failures correctly 6 | """ 7 | def test_fail_this(self): 8 | print("This will always fail and should only be used in tests of the unittest framework") 9 | self.assertTrue(False) 10 | 11 | 12 | if __name__=="__main__": 13 | unittest.main() 14 | -------------------------------------------------------------------------------- /RegressionTest/test/pass/test_pass.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | class TestFailure(unittest.TestCase): 4 | """ 5 | Test case that always passes to test that we capture failures correctly 6 | """ 7 | def test_fail_this(self): 8 | print("This will always pass and should only be used in tests of the unittest framework") 9 | self.assertTrue(True) 10 | 11 | 12 | if __name__=="__main__": 13 | unittest.main() 14 | -------------------------------------------------------------------------------- /RegressionTest/test/test_main.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import unittest 3 | 4 | if __name__ == "__main__": 5 | parser = argparse.ArgumentParser("Find and run all unittest in a folder") 6 | parser.add_argument('--folder', '-f', dest='folder', help='Optional folder to search, defaults to .') 7 | args = parser.parse_args() 8 | 9 | if args.folder: 10 | folder = args.folder 11 | else: 12 | folder = '.' 13 | loader = unittest.TestLoader() 14 | suite = loader.discover(folder) 15 | runner = unittest.TextTestRunner() 16 | result = runner.run(suite) 17 | if not result.wasSuccessful(): 18 | exit(-1) 19 | -------------------------------------------------------------------------------- /RegressionTest/test/test_test_main.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | from disposablefile import DisposableDirectory 3 | from context import runhelpers 4 | import sys 5 | 6 | class TestUnitTestMain(unittest.TestCase): 7 | def test_capture_pass(self): 8 | with DisposableDirectory("testdir_pass", True) as d: 9 | retcode, output = runhelpers.runExecutable( d.name(), [sys.executable, "../test_main.py", "-f", "../pass"]) 10 | if not retcode: 11 | print("printing the underlying test output to help diagnose the issue:") 12 | print(output) 13 | self.assertTrue(retcode) 14 | 15 | def test_capture_fail(self): 16 | with DisposableDirectory("testdir_fail", True) as d: 17 | retcode, output = runhelpers.runExecutable( d.name(), [sys.executable, "../test_main.py", "-f", "../fail"]) 18 | if retcode: 19 | print("printing the underlying test output to help diagnose the issue:") 20 | print(output) 21 | self.assertFalse(retcode) 22 | 23 | if __name__=="__main__": 24 | unittest.main() 25 | -------------------------------------------------------------------------------- /ci/.gitattributes: -------------------------------------------------------------------------------- 1 | *.sh test eol=lf 2 | -------------------------------------------------------------------------------- /ci/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | source /opt/qt511/bin/qt511-env.sh 4 | if [ ! -d build ]; then 5 | mkdir build 6 | fi 7 | cd build 8 | # build 9 | echo Building 10 | cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build . || exit 1 11 | # if succeeds, run unit tests 12 | echo Running unit tests 13 | ./cliTest/cliTest && ./GuiUnitTest/GuiUnitTest && ./mgraph440Test/mgraph440Test && ./salaTest/salaTest && ./genlibTest/genlibTest && ./depthmapXTest/depthmapXTest && ./moduleTest/moduleTest || exit 1 14 | # if that succeeds, run regression tests 15 | echo testing regression test framework 16 | cd ../RegressionTest/test && echo pwd && python3.5 -u test_main.py || exit 1 17 | echo running standard regression tests 18 | cd .. && pwd && python3.5 -u RegressionTestRunner.py || exit 1 19 | echo running agent test 20 | python3.5 -u RegressionTestRunner.py regressionconfig_agents.json || exit 1 21 | # search the modules directory for regression tests and run them 22 | for subdir in ../modules/*/; do 23 | regressionFile="${subdir}RegressionTest/regressionconfig.json" 24 | if [ -e "$regressionFile" ]; then 25 | python3.5 -u RegressionTestRunner.py "${regressionFile}" || exit 1 26 | fi 27 | done 28 | -------------------------------------------------------------------------------- /cliTest/argumentholder.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #ifndef ARGUMENTHOLDER_H 17 | #define ARGUMENTHOLDER_H 18 | #include 19 | #include 20 | class ArgumentHolder{ 21 | public: 22 | ArgumentHolder(std::initializer_list l ): mArguments(l){ 23 | for (auto& arg : mArguments) { 24 | mArgv.push_back(arg.data()); 25 | } 26 | } 27 | 28 | char** argv() const{ 29 | return (char**) mArgv.data(); 30 | } 31 | 32 | size_t argc() const{ 33 | return mArgv.size(); 34 | } 35 | 36 | private: 37 | std::vector mArguments; 38 | std::vector mArgv; 39 | }; 40 | 41 | #endif // ARGUMENTHOLDER_H 42 | -------------------------------------------------------------------------------- /cliTest/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | 17 | #define CATCH_CONFIG_MAIN 18 | #include "catch.hpp" 19 | 20 | 21 | -------------------------------------------------------------------------------- /cliTest/selfcleaningfile.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include 19 | #include 20 | class SelfCleaningFile 21 | { 22 | public: 23 | SelfCleaningFile(const std::string &filename) : _filename(filename) 24 | {} 25 | ~SelfCleaningFile() 26 | { 27 | std::remove(_filename.c_str()); 28 | } 29 | 30 | const std::string &Filename() 31 | { 32 | return _filename; 33 | } 34 | 35 | 36 | 37 | 38 | private: 39 | const std::string _filename; 40 | 41 | }; 42 | -------------------------------------------------------------------------------- /cliTest/testargumentholder.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "catch.hpp" 17 | #include "argumentholder.h" 18 | #include 19 | 20 | 21 | 22 | TEST_CASE("Test ArgumentHolder", "Constructor") 23 | { 24 | ArgumentHolder ah{"foo", "bar"}; 25 | REQUIRE(ah.argc() == 2); 26 | REQUIRE(std::strcmp(ah.argv()[0], "foo") == 0 ); 27 | REQUIRE(std::strcmp(ah.argv()[1], "bar") == 0 ); 28 | } 29 | 30 | -------------------------------------------------------------------------------- /cliTest/testperformancewriter.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "../depthmapXcli/performancewriter.h" 3 | #include "selfcleaningfile.h" 4 | #include 5 | 6 | TEST_CASE("TestPerformanceWriting", "Simple test case") 7 | { 8 | SelfCleaningFile scf("timertest.csv"); 9 | PerformanceWriter writer(scf.Filename()); 10 | 11 | writer.addData("test1", 100.0); 12 | writer.addData("test2", 200.0 ); 13 | 14 | writer.write(); 15 | 16 | std::ifstream f(scf.Filename()); 17 | REQUIRE(f.good()); 18 | char line[1000]; 19 | std::vector lines; 20 | while( !f.eof()) 21 | { 22 | f.getline(line, 1000); 23 | lines.push_back(line); 24 | } 25 | std::vector expected{"\"action\",\"duration\"", "\"test1\",100", "\"test2\",200", ""}; 26 | REQUIRE(lines == expected); 27 | 28 | } 29 | 30 | TEST_CASE("TestPerformanceNotWriting", "No filename no writing") 31 | { 32 | SelfCleaningFile scf("timertest.csv"); 33 | PerformanceWriter writer(""); 34 | 35 | writer.addData("test1", 100.0); 36 | writer.addData("test2", 200.0 ); 37 | 38 | writer.write(); 39 | 40 | std::ifstream f(scf.Filename()); 41 | REQUIRE_FALSE(f.good()); 42 | } 43 | -------------------------------------------------------------------------------- /depthmapX/compatibilitydefines.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPATIBILITYDEFINES_H 2 | #define COMPATIBILITYDEFINES_H 3 | 4 | #ifndef _WIN32 5 | #define TRUE 1 6 | #define FALSE 0 7 | 8 | #define LOBYTE(w) ((unsigned char)((w) & 0xff)) 9 | #define GetRValue(rgb) (LOBYTE(rgb)) 10 | #define GetGValue(rgb) (LOBYTE((rgb) >> 8)) 11 | #define GetBValue(rgb) (LOBYTE((rgb)>>16)) 12 | #endif 13 | 14 | #ifdef _WIN32 15 | # ifdef MODULE_API_EXPORTS 16 | # define MODULE_API __declspec(dllexport) 17 | # else 18 | # define MODULE_API __declspec(dllimport) 19 | # endif 20 | #else 21 | # define MODULE_API 22 | #endif 23 | 24 | #endif // COMPATIBILITYDEFINES_H 25 | -------------------------------------------------------------------------------- /depthmapX/dialogs/AboutDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_AboutDlg.h" 17 | 18 | class CAboutDlg : public QDialog, public Ui::CAboutDlg 19 | { 20 | Q_OBJECT 21 | public: 22 | CAboutDlg(QWidget *parent = 0); 23 | 24 | private slots: 25 | void OnOK(); 26 | }; 27 | -------------------------------------------------------------------------------- /depthmapX/dialogs/AttributeChooserDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_AttributeChooserDlg.h" 17 | #include 18 | #include 19 | #include 20 | 21 | class CAttributeChooserDlg : public QDialog, public Ui::CAttributeChooserDlg 22 | { 23 | Q_OBJECT 24 | public: 25 | CAttributeChooserDlg(AttributeTable& table, QWidget *parent = 0); 26 | int m_attribute; 27 | QString m_text; 28 | AttributeTable *m_table; 29 | void UpdateData(bool value); 30 | void showEvent(QShowEvent * event); 31 | 32 | private slots: 33 | void OnOK(); 34 | void OnCancel(); 35 | }; 36 | -------------------------------------------------------------------------------- /depthmapX/dialogs/AttributeSummary.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_AttributeSummary.h" 17 | 18 | class QGraphDoc; 19 | 20 | class CAttributeSummary : public QDialog, public Ui::CAttributeSummary 21 | { 22 | Q_OBJECT 23 | public: 24 | CAttributeSummary(QGraphDoc *pDoc, QWidget *parent = 0); 25 | QGraphDoc *m_pDoc; 26 | void UpdateData(bool value); 27 | void showEvent(QShowEvent * event); 28 | 29 | private slots: 30 | void OnOK(); 31 | void OnDblclkList(int row, int column); 32 | }; 33 | -------------------------------------------------------------------------------- /depthmapX/dialogs/ConvertShapesDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_ConvertShapesDlg.h" 17 | 18 | class CConvertShapesDlg : public QDialog, public Ui::CConvertShapesDlg 19 | { 20 | Q_OBJECT 21 | public: 22 | CConvertShapesDlg(QWidget *parent = 0); 23 | double m_radius; 24 | bool m_selected_only; 25 | int m_conversion_type; 26 | void UpdateData(bool value); 27 | void showEvent(QShowEvent * event); 28 | 29 | private slots: 30 | void OnOK(); 31 | void OnCancel(); 32 | }; 33 | -------------------------------------------------------------------------------- /depthmapX/dialogs/EditConnectionsDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_EditConnectionsDlg.h" 17 | 18 | class CEditConnectionsDlg : public QDialog, public Ui::CEditConnectionsDlg 19 | { 20 | Q_OBJECT 21 | public: 22 | CEditConnectionsDlg(QWidget *parent = 0); 23 | bool m_join_type; 24 | bool m_sel_to_pin; 25 | bool m_pin_to_sel; 26 | void UpdateData(bool value); 27 | void showEvent(QShowEvent * event); 28 | 29 | private slots: 30 | void OnOK(); 31 | void OnCancel(); 32 | }; 33 | -------------------------------------------------------------------------------- /depthmapX/dialogs/FewestLineOptionsDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_FewestLineOptionsDlg.h" 17 | 18 | class CFewestLineOptionsDlg : public QDialog, public Ui::CFewestLineOptionsDlg 19 | { 20 | Q_OBJECT 21 | public: 22 | CFewestLineOptionsDlg(QWidget *parent = 0); 23 | bool m_option; 24 | void UpdateData(bool value); 25 | void showEvent(QShowEvent * event); 26 | 27 | private slots: 28 | void OnOK(); 29 | void OnCancel(); 30 | }; 31 | -------------------------------------------------------------------------------- /depthmapX/dialogs/FilePropertiesDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_FilePropertiesDlg.h" 17 | 18 | class CFilePropertiesDlg : public QDialog, public Ui::CFilePropertiesDlg 19 | { 20 | Q_OBJECT 21 | public: 22 | CFilePropertiesDlg(QWidget *parent = 0); 23 | QString m_author; 24 | QString m_create_date; 25 | QString m_create_program; 26 | QString m_description; 27 | QString m_location; 28 | QString m_organization; 29 | QString m_title; 30 | QString m_file_version; 31 | void UpdateData(bool value); 32 | void showEvent(QShowEvent * event); 33 | 34 | private slots: 35 | void OnOK(); 36 | void OnCancel(); 37 | }; 38 | -------------------------------------------------------------------------------- /depthmapX/dialogs/FindLocDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_FindLocDlg.h" 17 | 18 | class CFindLocDlg : public QDialog, public Ui::CFindLocDlg 19 | { 20 | Q_OBJECT 21 | public: 22 | CFindLocDlg(QWidget *parent = 0); 23 | double m_x; 24 | double m_y; 25 | QRegion m_bounds; 26 | void UpdateData(bool value); 27 | void showEvent(QShowEvent * event); 28 | 29 | private slots: 30 | void OnOK(); 31 | void OnCancel(); 32 | }; 33 | -------------------------------------------------------------------------------- /depthmapX/dialogs/GridDialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | // Copyright (C) 2017 Christian Sailer 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #include "ui_GridDialog.h" 18 | 19 | class CGridDialog : public QDialog, public Ui::CGridDialog 20 | { 21 | Q_OBJECT 22 | public: 23 | CGridDialog(double maxDimension, QWidget *parent = 0); 24 | void UpdateData(bool value); 25 | void showEvent(QShowEvent * event); 26 | double getSpacing() const { return m_spacing; } 27 | 28 | private: 29 | double m_spacing; 30 | double m_maxdimension; 31 | 32 | private slots: 33 | void OnDeltaposSpinSpacing(double); 34 | void OnOK(); 35 | void OnCancel(); 36 | }; 37 | -------------------------------------------------------------------------------- /depthmapX/dialogs/IsovistPathDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_IsovistPathDlg.h" 17 | 18 | class CIsovistPathDlg : public QDialog, public Ui::CIsovistPathDlg 19 | { 20 | Q_OBJECT 21 | public: 22 | CIsovistPathDlg(QWidget *parent = 0); 23 | double fov_angle; 24 | int fov_selection; 25 | void UpdateData(bool value); 26 | void showEvent(QShowEvent * event); 27 | 28 | private slots: 29 | void OnOK(); 30 | void OnCancel(); 31 | }; 32 | -------------------------------------------------------------------------------- /depthmapX/dialogs/LayerChooserDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_LayerChooserDlg.h" 17 | #include 18 | #include 19 | #include 20 | 21 | 22 | class CLayerChooserDlg : public QDialog, public Ui::CLayerChooserDlg 23 | { 24 | Q_OBJECT 25 | public: 26 | CLayerChooserDlg(const std::vector& names = std::vector(), QWidget *parent = 0); 27 | QString m_text; 28 | int m_layer; 29 | void UpdateData(bool value); 30 | void showEvent(QShowEvent * event); 31 | 32 | const std::vector& m_names; 33 | 34 | private slots: 35 | void OnOK(); 36 | void OnCancel(); 37 | }; 38 | -------------------------------------------------------------------------------- /depthmapX/dialogs/LicenceDialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_LicenceDialog.h" 17 | 18 | class CLicenceDialog : public QDialog, public Ui::CLicenceDialog 19 | { 20 | Q_OBJECT 21 | public: 22 | CLicenceDialog(QWidget *parent = 0); 23 | QString m_message; 24 | QString m_agreement; 25 | 26 | QString m_title; 27 | void UpdateData(bool value); 28 | void showEvent(QShowEvent * event); 29 | 30 | private slots: 31 | void OnOK(); 32 | void OnCancel(); 33 | }; 34 | -------------------------------------------------------------------------------- /depthmapX/dialogs/MakeOptionsDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_MakeOptionsDlg.h" 17 | 18 | class CMakeOptionsDlg : public QDialog, public Ui::CMakeOptionsDlg 19 | { 20 | Q_OBJECT 21 | public: 22 | CMakeOptionsDlg(QWidget *parent = 0); 23 | bool m_boundarygraph; 24 | double m_maxdist; 25 | bool m_restrict_visibility; 26 | void UpdateData(bool value); 27 | void showEvent(QShowEvent * event); 28 | 29 | private slots: 30 | void OnRestrict(bool); 31 | void OnOK(); 32 | void OnCancel(); 33 | }; 34 | -------------------------------------------------------------------------------- /depthmapX/dialogs/NewLayerDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_NewLayerDlg.h" 17 | 18 | class CNewLayerDlg : public QDialog, public Ui::CNewLayerDlg 19 | { 20 | Q_OBJECT 21 | public: 22 | CNewLayerDlg(QWidget *parent = 0); 23 | int m_layer_type; 24 | QString m_name; 25 | void UpdateData(bool value); 26 | void showEvent(QShowEvent * event); 27 | 28 | private slots: 29 | void OnSelchangeLayerType(int); 30 | void OnOK(); 31 | void OnCancel(); 32 | }; 33 | -------------------------------------------------------------------------------- /depthmapX/dialogs/PromptReplace.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_PromptReplace.h" 17 | 18 | class CPromptReplace : public QDialog, public Ui::CPromptReplace 19 | { 20 | Q_OBJECT 21 | public: 22 | CPromptReplace(QWidget *parent = 0); 23 | QString m_message; 24 | void UpdateData(bool value); 25 | void showEvent(QShowEvent * event); 26 | 27 | private slots: 28 | void OnAdd(); 29 | void OnReplace(); 30 | void OnCancel(); 31 | }; 32 | -------------------------------------------------------------------------------- /depthmapX/dialogs/PushDialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_PushDialog.h" 17 | #include 18 | #include 19 | #include 20 | 21 | class CPushDialog : public QDialog, public Ui::CPushDialog 22 | { 23 | Q_OBJECT 24 | public: 25 | CPushDialog(std::map, std::string>& names, QWidget *parent = 0); 26 | int m_layer_selection; 27 | QString m_origin_attribute; 28 | QString m_origin_layer; 29 | bool m_count_intersections; 30 | int m_function; 31 | void UpdateData(bool value); 32 | void showEvent(QShowEvent * event); 33 | 34 | std::vector m_names; 35 | 36 | private slots: 37 | void OnOK(); 38 | void OnCancel(); 39 | }; 40 | -------------------------------------------------------------------------------- /depthmapX/dialogs/RenameObjectDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_RenameObjectDlg.h" 17 | 18 | class CRenameObjectDlg : public QDialog, public Ui::CRenameObjectDlg 19 | { 20 | Q_OBJECT 21 | public: 22 | CRenameObjectDlg(const QString& object_type, const QString& existing_name = QString(), QWidget *parent = 0); 23 | QString m_object_name; 24 | QString m_object_type; 25 | QString m_prompt; 26 | void UpdateData(bool value); 27 | void showEvent(QShowEvent * event); 28 | 29 | private slots: 30 | void OnOK(); 31 | void OnCancel(); 32 | }; 33 | -------------------------------------------------------------------------------- /depthmapX/dialogs/TopoMetDlg.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "ui_TopoMetDlg.h" 17 | 18 | class CTopoMetDlg : public QDialog, public Ui::CTopoMetDlg 19 | { 20 | Q_OBJECT 21 | private: 22 | enum {TOPOMET_METHOD_TOPOLOGICAL = 0, TOPOMET_METHOD_METRIC = 1}; 23 | public: 24 | CTopoMetDlg(QWidget *parent = 0); 25 | int m_topological; 26 | QString m_radius; 27 | double m_dradius; 28 | bool m_selected_only; 29 | void UpdateData(bool value); 30 | void showEvent(QShowEvent * event); 31 | 32 | bool isAnalysisTopological() { 33 | return m_topological == TOPOMET_METHOD_TOPOLOGICAL; 34 | } 35 | 36 | private slots: 37 | void OnOK(); 38 | }; 39 | -------------------------------------------------------------------------------- /depthmapX/dialogs/licenseagreement.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "licenseagreement.h" 17 | 18 | LicenseAgreement::LicenseAgreement(QWidget *parent) : 19 | QDialog(parent), 20 | ui(new Ui::LicenseAgreement) 21 | { 22 | ui->setupUi(this); 23 | } 24 | 25 | LicenseAgreement::~LicenseAgreement() 26 | { 27 | delete ui; 28 | } 29 | -------------------------------------------------------------------------------- /depthmapX/dialogs/licenseagreement.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #ifndef LICENSEAGREEMENT_H 17 | #define LICENSEAGREEMENT_H 18 | 19 | #include 20 | #include "ui_licenseagreement.h" 21 | #include "compatibilitydefines.h" 22 | 23 | namespace Ui { 24 | class LicenseAgreement; 25 | } 26 | 27 | class LicenseAgreement : public QDialog 28 | { 29 | Q_OBJECT 30 | 31 | public: 32 | explicit LicenseAgreement(QWidget *parent = 0); 33 | ~LicenseAgreement(); 34 | 35 | private: 36 | Ui::LicenseAgreement *ui; 37 | }; 38 | 39 | #endif // LICENSEAGREEMENT_H 40 | -------------------------------------------------------------------------------- /depthmapX/dialogs/settings/generalpage.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include 19 | #include "settingspage.h" 20 | #include 21 | 22 | class GeneralPage : public SettingsPage 23 | { 24 | private: 25 | bool m_simpleVersion = false; 26 | void readSettings(Settings &settings) { 27 | m_simpleVersion = settings.readSetting(SettingTag::simpleVersion, true).toBool(); 28 | } 29 | public: 30 | GeneralPage(Settings &settings, QWidget *parent = 0); 31 | virtual void writeSettings(Settings &settings) override { 32 | settings.writeSetting(SettingTag::simpleVersion, m_simpleVersion); 33 | } 34 | }; 35 | -------------------------------------------------------------------------------- /depthmapX/dialogs/settings/images/general.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/dialogs/settings/images/general.png -------------------------------------------------------------------------------- /depthmapX/dialogs/settings/images/interface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/dialogs/settings/images/interface.png -------------------------------------------------------------------------------- /depthmapX/dialogs/settings/settingsdialog.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/general.png 4 | images/interface.png 5 | 6 | 7 | -------------------------------------------------------------------------------- /depthmapX/dialogs/settings/settingspage.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "depthmapX/settings.h" 19 | 20 | #include 21 | 22 | class SettingsPage : public QWidget 23 | { 24 | public: 25 | SettingsPage(Settings &settings, QWidget *parent = 0) : QWidget(parent) {} 26 | virtual void writeSettings(Settings &settings) = 0; 27 | }; 28 | -------------------------------------------------------------------------------- /depthmapX/icons.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "icons\\depthmapX.ico" 2 | -------------------------------------------------------------------------------- /depthmapX/icons/depthmapX.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/icons/depthmapX.icns -------------------------------------------------------------------------------- /depthmapX/icons/depthmapX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/icons/depthmapX.ico -------------------------------------------------------------------------------- /depthmapX/icons/graph.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/icons/graph.icns -------------------------------------------------------------------------------- /depthmapX/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/copy.png -------------------------------------------------------------------------------- /depthmapX/images/cur/cur00001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/cur00001.png -------------------------------------------------------------------------------- /depthmapX/images/cur/cur00002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/cur00002.png -------------------------------------------------------------------------------- /depthmapX/images/cur/cur00003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/cur00003.png -------------------------------------------------------------------------------- /depthmapX/images/cur/cur00004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/cur00004.png -------------------------------------------------------------------------------- /depthmapX/images/cur/cur00005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/cur00005.png -------------------------------------------------------------------------------- /depthmapX/images/cur/cur00006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/cur00006.png -------------------------------------------------------------------------------- /depthmapX/images/cur/cur00007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/cur00007.png -------------------------------------------------------------------------------- /depthmapX/images/cur/cur00008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/cur00008.png -------------------------------------------------------------------------------- /depthmapX/images/cur/cur00009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/cur00009.png -------------------------------------------------------------------------------- /depthmapX/images/cur/icon-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/icon-1-1.png -------------------------------------------------------------------------------- /depthmapX/images/cur/icon-1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/icon-1-2.png -------------------------------------------------------------------------------- /depthmapX/images/cur/icon-1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/icon-1-3.png -------------------------------------------------------------------------------- /depthmapX/images/cur/icon-1-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/icon-1-4.png -------------------------------------------------------------------------------- /depthmapX/images/cur/icon-1-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cur/icon-1-5.png -------------------------------------------------------------------------------- /depthmapX/images/cut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/cut.png -------------------------------------------------------------------------------- /depthmapX/images/depthmapX-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/depthmapX-128x128.png -------------------------------------------------------------------------------- /depthmapX/images/depthmapX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/depthmapX.png -------------------------------------------------------------------------------- /depthmapX/images/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/down.png -------------------------------------------------------------------------------- /depthmapX/images/editdelete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/editdelete.png -------------------------------------------------------------------------------- /depthmapX/images/icons/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/add.png -------------------------------------------------------------------------------- /depthmapX/images/icons/cursor-closedhand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/cursor-closedhand.png -------------------------------------------------------------------------------- /depthmapX/images/icons/cursor-hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/cursor-hand.png -------------------------------------------------------------------------------- /depthmapX/images/icons/cursor-openhand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/cursor-openhand.png -------------------------------------------------------------------------------- /depthmapX/images/icons/del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/del.png -------------------------------------------------------------------------------- /depthmapX/images/icons/designer-add-files-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/designer-add-files-button.png -------------------------------------------------------------------------------- /depthmapX/images/icons/print-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/print-24.png -------------------------------------------------------------------------------- /depthmapX/images/icons/zoom-in-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/zoom-in-24.png -------------------------------------------------------------------------------- /depthmapX/images/icons/zoom-in-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/zoom-in-32.png -------------------------------------------------------------------------------- /depthmapX/images/icons/zoom-out-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/zoom-out-24.png -------------------------------------------------------------------------------- /depthmapX/images/icons/zoom-out-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/zoom-out-32.png -------------------------------------------------------------------------------- /depthmapX/images/icons/zoomInCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/zoomInCursor.png -------------------------------------------------------------------------------- /depthmapX/images/icons/zoomOutCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/zoomOutCursor.png -------------------------------------------------------------------------------- /depthmapX/images/icons/zoomin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/zoomin.png -------------------------------------------------------------------------------- /depthmapX/images/icons/zoomout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/icons/zoomout.png -------------------------------------------------------------------------------- /depthmapX/images/mac/accelerator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/accelerator.png -------------------------------------------------------------------------------- /depthmapX/images/mac/book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/book.png -------------------------------------------------------------------------------- /depthmapX/images/mac/doneandnext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/doneandnext.png -------------------------------------------------------------------------------- /depthmapX/images/mac/editcopy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/editcopy.png -------------------------------------------------------------------------------- /depthmapX/images/mac/editcut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/editcut.png -------------------------------------------------------------------------------- /depthmapX/images/mac/editpaste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/editpaste.png -------------------------------------------------------------------------------- /depthmapX/images/mac/filenew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/filenew.png -------------------------------------------------------------------------------- /depthmapX/images/mac/fileopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/fileopen.png -------------------------------------------------------------------------------- /depthmapX/images/mac/fileprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/fileprint.png -------------------------------------------------------------------------------- /depthmapX/images/mac/filesave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/filesave.png -------------------------------------------------------------------------------- /depthmapX/images/mac/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/next.png -------------------------------------------------------------------------------- /depthmapX/images/mac/nextunfinished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/nextunfinished.png -------------------------------------------------------------------------------- /depthmapX/images/mac/phrase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/phrase.png -------------------------------------------------------------------------------- /depthmapX/images/mac/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/prev.png -------------------------------------------------------------------------------- /depthmapX/images/mac/prevunfinished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/prevunfinished.png -------------------------------------------------------------------------------- /depthmapX/images/mac/print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/print.png -------------------------------------------------------------------------------- /depthmapX/images/mac/punctuation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/punctuation.png -------------------------------------------------------------------------------- /depthmapX/images/mac/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/redo.png -------------------------------------------------------------------------------- /depthmapX/images/mac/searchfind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/searchfind.png -------------------------------------------------------------------------------- /depthmapX/images/mac/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/undo.png -------------------------------------------------------------------------------- /depthmapX/images/mac/validateplacemarkers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/validateplacemarkers.png -------------------------------------------------------------------------------- /depthmapX/images/mac/whatsthis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/mac/whatsthis.png -------------------------------------------------------------------------------- /depthmapX/images/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/new.png -------------------------------------------------------------------------------- /depthmapX/images/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/open.png -------------------------------------------------------------------------------- /depthmapX/images/paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/paste.png -------------------------------------------------------------------------------- /depthmapX/images/s_check_danger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/s_check_danger.png -------------------------------------------------------------------------------- /depthmapX/images/s_check_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/s_check_empty.png -------------------------------------------------------------------------------- /depthmapX/images/s_check_obsolete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/s_check_obsolete.png -------------------------------------------------------------------------------- /depthmapX/images/s_check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/s_check_off.png -------------------------------------------------------------------------------- /depthmapX/images/s_check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/s_check_on.png -------------------------------------------------------------------------------- /depthmapX/images/s_check_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/s_check_warning.png -------------------------------------------------------------------------------- /depthmapX/images/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/save.png -------------------------------------------------------------------------------- /depthmapX/images/transbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/transbox.png -------------------------------------------------------------------------------- /depthmapX/images/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/up.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-1.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-10.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-11.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-12.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-13.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-14.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-15.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-16.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-17.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-18.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-19.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-2.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-20.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-21.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-22.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-23.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-3.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-4.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-5.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-6.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-7.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-8.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-1-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-1-9.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-2-1.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-2-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-2-2.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-2-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-2-3.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-2-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-2-4.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-2-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-2-5.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-2-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-2-6.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-2-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-2-7.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-2-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-2-8.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-1.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-10.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-11.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-2.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-3.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-4.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-5.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-6.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-7.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-8.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-4-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-4-9.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-1.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-10.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-11.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-12.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-13.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-14.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-15.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-16.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-17.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-18.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-19.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-2.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-20.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-21.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-22.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-3.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-4.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-5.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-6.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-7.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-8.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-5-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-5-9.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-1.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-10.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-11.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-12.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-2.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-3.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-4.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-5.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-6.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-7.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-8.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-6-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-6-9.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-7-1.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-7-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-7-2.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-7-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-7-3.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-7-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-7-4.png -------------------------------------------------------------------------------- /depthmapX/images/win/b-7-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/b-7-5.png -------------------------------------------------------------------------------- /depthmapX/images/win/zoomInCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/zoomInCursor.png -------------------------------------------------------------------------------- /depthmapX/images/win/zoomOutCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/depthmapX/images/win/zoomOutCursor.png -------------------------------------------------------------------------------- /depthmapX/imainwindowmodule.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2020, Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include 19 | #include 20 | #include 21 | 22 | class MainWindow; 23 | 24 | class IMainWindowModule : public QObject { 25 | Q_OBJECT 26 | 27 | public: 28 | virtual bool createMenus(MainWindow *m_mainWindow) = 0; 29 | virtual ~IMainWindowModule() {} 30 | }; 31 | -------------------------------------------------------------------------------- /depthmapX/imainwindowmodulefactory.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | // Copyright (C) 2020 Petros Koutsolampros 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #pragma once 18 | 19 | #include "imainwindowmodule.h" 20 | #include 21 | #include 22 | 23 | typedef std::vector> MainWindowModuleVec; 24 | 25 | class IMainWindowModuleFactory { 26 | public: 27 | virtual const MainWindowModuleVec &getModules() const = 0; 28 | virtual ~IMainWindowModuleFactory() {} 29 | }; 30 | -------------------------------------------------------------------------------- /depthmapX/indexWidget.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | 17 | #ifndef treeWindow_H 18 | #define treeWindow_H 19 | #include 20 | 21 | QT_BEGIN_NAMESPACE 22 | 23 | class QEvent; 24 | class QListWidgetItem; 25 | 26 | class AttribWindow : public QListWidget 27 | { 28 | Q_OBJECT 29 | 30 | public: 31 | AttribWindow(QWidget *parent = 0, bool custom = true); 32 | ~AttribWindow(); 33 | 34 | QWidget* main_frm; 35 | 36 | private slots: 37 | void showContextMenu(const QPoint &point); 38 | }; 39 | 40 | QT_END_NAMESPACE 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /depthmapX/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2012, Tasos Varoudis 2 | // Copyright (C) 2017 Christian Sailer 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #include "coreapplication.h" 22 | 23 | #ifdef _WIN32 24 | #include 25 | #endif 26 | 27 | 28 | int main(int argc, char *argv[]) 29 | { 30 | Q_INIT_RESOURCE(resource); 31 | Q_INIT_RESOURCE(settingsdialog); 32 | 33 | CoreApplication app(argc, argv); 34 | 35 | return app.exec(); 36 | } 37 | -------------------------------------------------------------------------------- /depthmapX/mainwindowfactory.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "mainwindowfactory.h" 17 | #include "mainwindow.h" 18 | #include "dialogs/licenseagreement.h" 19 | #include 20 | 21 | namespace MainWindowFactory{ 22 | std::unique_ptr getMainWindow(const QString& fileToLoad, Settings &settings) 23 | { 24 | return std::unique_ptr(new MainWindow(fileToLoad, settings)); 25 | } 26 | 27 | std::unique_ptr getLicenseDialog() 28 | { 29 | return std::unique_ptr(new LicenseAgreement); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /depthmapX/mainwindowfactory.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #ifndef MAINWINDOWFACTORY_H 17 | #define MAINWINDOWFACTORY_H 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | class Settings; 24 | 25 | namespace MainWindowFactory{ 26 | std::unique_ptr getMainWindow(const QString &fileToLoad, Settings &settings); 27 | std::unique_ptr getLicenseDialog(); 28 | } 29 | #endif // MAINWINDOWFACTORY_H 30 | -------------------------------------------------------------------------------- /depthmapX/mainwindowhelpers.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2020 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "mainwindow.h" 19 | 20 | #include 21 | 22 | namespace MainWindowHelpers { 23 | QMenu *getOrAddRootMenu(MainWindow *mainWindow, QString menuTitle); 24 | QMenu *getOrAddMenu(QMenu *parent, QString menuTitle); 25 | } // namespace MainWindowHelpers 26 | -------------------------------------------------------------------------------- /depthmapX/mainwindowmodulefactory.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2020, Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "mainwindowpluginfactory.hpp" 17 | 18 | MainWindowPluginFactory::PluginMap *MainWindowPluginFactory::map = NULL; 19 | -------------------------------------------------------------------------------- /depthmapX/mainwindowmoduleregistry.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017, Christian Sailer 2 | // Copyright (C) 2020, Petros Koutsolampros 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #include "mainwindowmoduleregistry.hpp" 18 | #include "modules/segmentshortestpaths/gui/segmentpathsmainwindow.h" 19 | 20 | void MainWindowModuleRegistry::populateModules() { 21 | // Register any main window modules here 22 | REGISTER_MAIN_WINDOW_MODULE(SegmentPathsMainWindow); 23 | // ********* 24 | } 25 | -------------------------------------------------------------------------------- /depthmapX/views/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(depthmapX 2 | PRIVATE 3 | mapview.cpp 4 | viewhelpers.cpp 5 | glview/gllinesuniform.cpp 6 | glview/glview.cpp 7 | glview/gllines.cpp 8 | glview/glrastertexture.cpp 9 | glview/glpolygons.cpp 10 | glview/glutriangulator.cpp 11 | glview/gltrianglesuniform.cpp 12 | glview/glpointmap.cpp 13 | glview/glshapegraph.cpp 14 | glview/glshapemap.cpp 15 | glview/gldynamicrect.cpp 16 | glview/gldynamicline.cpp 17 | plotview/plotview.cpp 18 | tableview/tableview.cpp 19 | depthmapview/depthmapview.cpp 20 | 3dview/3dview.cpp 21 | glview/glregularpolygons.cpp 22 | glview/gltriangles.cpp 23 | PUBLIC 24 | mapview.h 25 | viewhelpers.h 26 | glview/gllinesuniform.h 27 | glview/glview.h 28 | glview/gllines.h 29 | glview/glrastertexture.h 30 | glview/glpolygons.h 31 | glview/glutriangulator.h 32 | glview/gltrianglesuniform.h 33 | glview/glpointmap.h 34 | glview/glshapegraph.h 35 | glview/glshapemap.h 36 | glview/gldynamicrect.h 37 | glview/gldynamicline.h 38 | plotview/plotview.h 39 | tableview/tableview.h 40 | depthmapview/depthmapview.h 41 | glview/glregularpolygons.h 42 | glview/gltriangles.h 43 | 3dview/3dview.h) 44 | 45 | -------------------------------------------------------------------------------- /depthmapX/views/glview/gldynamicline.h: -------------------------------------------------------------------------------- 1 | // depthmapX - spatial network analysis platform 2 | // Copyright (C) 2017, Petros Koutsolampros 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #pragma once 18 | 19 | #include "depthmapX/views/glview/gldynamicrect.h" 20 | 21 | class GLDynamicLine : public GLDynamicRect { 22 | public: 23 | GLDynamicLine(); 24 | void paintGL(const QMatrix4x4 &m_mProj, const QMatrix4x4 &m_mView, const QMatrix4x4 &m_mModel, 25 | const QMatrix2x2 &m_selectionBounds); 26 | }; 27 | -------------------------------------------------------------------------------- /depthmapX/views/glview/glutriangulator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "genlib/p2dpoly.h" 4 | #include 5 | 6 | // This is required to silence the warnings for OpenGL deprecation in macOS 7 | #ifndef GL_SILENCE_DEPRECATION 8 | #define GL_SILENCE_DEPRECATION true 9 | #endif 10 | 11 | #ifdef __linux__ 12 | #include "GL/glu.h" 13 | #elif _WIN32 14 | #include "windows.h" 15 | #include "GL/glu.h" 16 | #else 17 | #include "glu.h" 18 | #endif 19 | 20 | class GLUTriangulator { 21 | public: 22 | static std::vector triangulate(const std::vector &polygon); 23 | }; 24 | -------------------------------------------------------------------------------- /depthmapX/views/mapview.cpp: -------------------------------------------------------------------------------- 1 | #include "mapview.h" 2 | 3 | MapView::MapView(QGraphDoc &pDoc, Settings &settings, QWidget *parent) 4 | : QOpenGLWidget(parent), m_pDoc(pDoc), m_settings(settings) 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /depthmapX/views/viewhelpers.cpp: -------------------------------------------------------------------------------- 1 | #include "viewhelpers.h" 2 | #include 3 | 4 | namespace ViewHelpers { 5 | Point2f calculateCenter(const QPoint& point, const QPoint &oldCentre, double factor) 6 | { 7 | int diffX = oldCentre.x() - point.x(); 8 | int diffY = oldCentre.y() - point.y(); 9 | return Point2f(point.x() + double(diffX) * factor, 10 | point.y() + double(diffY) * factor); 11 | } 12 | 13 | std::string getCurrentDate() 14 | { 15 | time_t now = time(NULL); 16 | char timeString[11]; 17 | strftime(timeString, 11, "%Y/%m/%d", localtime(&now)); 18 | return timeString; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /depthmapX/views/viewhelpers.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | 17 | #ifndef DEPTHMAPX_VIEWHELPERS_H 18 | #define DEPTHMAPX_VIEWHELPERS_H 19 | 20 | #include 21 | #include "genlib/p2dpoly.h" 22 | #include 23 | 24 | namespace ViewHelpers 25 | { 26 | Point2f calculateCenter(const QPoint& point, const QPoint &oldCentre, double factor); 27 | std::string getCurrentDate(); 28 | } 29 | 30 | 31 | #endif // VIEWHELPERS_H 32 | -------------------------------------------------------------------------------- /depthmapXTest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(depthmapXTest depthmapXTest) 2 | 3 | # Find includes in corresponding build directories 4 | set(CMAKE_INCLUDE_CURRENT_DIR ON) 5 | # Instruct CMake to run moc automatically when needed 6 | set(CMAKE_AUTOMOC ON) 7 | # Create code from a list of Qt designer ui files 8 | # set(CMAKE_AUTOUIC ON) 9 | # set(CMAKE_AUTORCC ON) 10 | 11 | # Find the QtWidgets library 12 | find_package(Qt5 COMPONENTS Core Widgets Gui OpenGL REQUIRED) 13 | 14 | include_directories(${QT}) 15 | 16 | add_compile_definitions(_DEPTHMAP) 17 | 18 | set(depthmapXTest_SRCS 19 | main.cpp 20 | testgllines.cpp 21 | testgllinesuniform.cpp 22 | testglrastertexture.cpp 23 | ../depthmapX/views/glview/gllines.h 24 | ../depthmapX/views/glview/gllines.cpp 25 | ../depthmapX/views/glview/gllinesuniform.h 26 | ../depthmapX/views/glview/gllinesuniform.cpp 27 | ../depthmapX/views/glview/glrastertexture.h 28 | ../depthmapX/views/glview/glrastertexture.cpp) 29 | 30 | 31 | include_directories("../ThirdParty/Catch") 32 | 33 | set(LINK_LIBS salalib genlib mgraph440) 34 | 35 | if(APPLE) 36 | add_definitions(-DGL_SILENCE_DEPRECATION) 37 | endif(APPLE) 38 | 39 | add_executable(${depthmapXTest} ${depthmapXTest_SRCS}) 40 | 41 | find_package(OpenGL REQUIRED) 42 | 43 | target_link_libraries(${depthmapXTest} Qt5::OpenGL salalib genlib OpenGL::GL OpenGL::GLU) 44 | 45 | -------------------------------------------------------------------------------- /depthmapXTest/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | 17 | #define CATCH_CONFIG_MAIN 18 | #include "catch.hpp" 19 | -------------------------------------------------------------------------------- /depthmapXTest/testglrastertexture.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "catch.hpp" 17 | #include "../depthmapX/views/glview/glrastertexture.h" 18 | 19 | TEST_CASE("Test GLRasterTexture::loadRegionData()", "") 20 | { 21 | float bottomLeftX = 0; 22 | float bottomLeftY = 0; 23 | float topRightX = 2; 24 | float topRightY = 4; 25 | 26 | QRgb lineColour = qRgb(255,0,0); 27 | 28 | GLRasterTexture glrastertexture; 29 | glrastertexture.loadRegionData(bottomLeftX, bottomLeftY, topRightX, topRightY); 30 | 31 | REQUIRE(glrastertexture.vertexCount() == 4); 32 | } 33 | -------------------------------------------------------------------------------- /depthmapXcli/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(depthmapXcli depthmapXcli) 2 | 3 | set(depthmapXcli_SRCS 4 | main.cpp 5 | printcommunicator.cpp 6 | commandlineparser.cpp 7 | runmethods.cpp 8 | radiusconverter.cpp 9 | vgaparser.cpp 10 | linkparser.cpp 11 | performancewriter.cpp 12 | modeparserregistry.cpp 13 | visprepparser.cpp 14 | axialparser.cpp 15 | parsingutils.cpp 16 | agentparser.cpp 17 | isovistparser.cpp 18 | exportparser.cpp 19 | importparser.cpp 20 | stepdepthparser.cpp 21 | segmentparser.cpp 22 | mapconvertparser.cpp) 23 | 24 | set(LINK_LIBS salalib genlib mgraph440) 25 | 26 | set(modules_cli "" CACHE INTERNAL "modules_cli" FORCE) 27 | set(MODULES_GUI FALSE) 28 | set(MODULES_CLI TRUE) 29 | set(MODULES_CLI_TEST FALSE) 30 | set(MODULES_CORE FALSE) 31 | set(MODULES_CORE_TEST FALSE) 32 | add_subdirectory(../modules modules) 33 | 34 | add_executable(${depthmapXcli} ${depthmapXcli_SRCS}) 35 | target_link_libraries(${depthmapXcli} ${LINK_LIBS} ${modules_cli} ${modules_core}) 36 | 37 | -------------------------------------------------------------------------------- /depthmapXcli/exceptions.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "genlib/exceptions.h" 19 | #include 20 | 21 | namespace depthmapX 22 | { 23 | class CommandLineException : public depthmapX::BaseException 24 | { 25 | public: 26 | CommandLineException(std::string message) : depthmapX::BaseException(message) 27 | {} 28 | }; 29 | 30 | class SetupCheckException : public depthmapX::BaseException 31 | { 32 | public: 33 | SetupCheckException(std::string message) : depthmapX::BaseException(message) 34 | {} 35 | }; 36 | } 37 | -------------------------------------------------------------------------------- /depthmapXcli/imodeparser.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | // Interface to encapsulate handling command line and invoking the respective 19 | // depthmapX mode 20 | 21 | #include "performancesink.h" 22 | #include "commandlineparser.h" 23 | 24 | class IModeParser 25 | { 26 | public: 27 | virtual std::string getModeName() const = 0; 28 | virtual std::string getHelp() const = 0; 29 | virtual void parse( int argc, char **argv) = 0; 30 | virtual void run(const CommandLineParser &clp, IPerformanceSink &perfWriter) const = 0; 31 | virtual ~IModeParser(){} 32 | }; 33 | -------------------------------------------------------------------------------- /depthmapXcli/imodeparserfactory.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "imodeparser.h" 19 | #include 20 | #include 21 | 22 | typedef std::vector > ModeParserVec; 23 | 24 | class IModeParserFactory 25 | { 26 | public: 27 | virtual const ModeParserVec &getModeParsers() const = 0; 28 | virtual ~IModeParserFactory(){} 29 | }; 30 | -------------------------------------------------------------------------------- /depthmapXcli/isovistparser.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "imodeparser.h" 19 | #include "salalib/isovistdef.h" 20 | #include 21 | 22 | class IsovistParser : public IModeParser 23 | { 24 | public: 25 | IsovistParser(); 26 | 27 | // IModeParser interface 28 | public: 29 | std::string getModeName() const; 30 | std::string getHelp() const; 31 | void parse(int argc, char **argv); 32 | void run(const CommandLineParser &clp, IPerformanceSink &perfWriter) const; 33 | 34 | const std::vector &getIsovists() const{ return m_isovists;} 35 | private: 36 | std::vector m_isovists; 37 | }; 38 | -------------------------------------------------------------------------------- /depthmapXcli/modeparserregistry.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "imodeparser.h" 19 | #include "imodeparserfactory.h" 20 | #include 21 | #include 22 | 23 | class ModeParserRegistry : public IModeParserFactory 24 | { 25 | public: 26 | ModeParserRegistry() 27 | { 28 | populateParsers(); 29 | } 30 | 31 | const ModeParserVec &getModeParsers() const {return m_availableParsers;} 32 | private: 33 | void populateParsers(); 34 | ModeParserVec m_availableParsers; 35 | }; 36 | 37 | #define REGISTER_PARSER(parser)\ 38 | m_availableParsers.push_back(std::unique_ptr(new parser)); 39 | -------------------------------------------------------------------------------- /depthmapXcli/performancesink.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include 19 | 20 | //Interface for performance writers 21 | class IPerformanceSink 22 | { 23 | public: 24 | virtual void addData(const std::string &message, double timeInSeconds) = 0; 25 | virtual ~IPerformanceSink(){} 26 | }; 27 | -------------------------------------------------------------------------------- /depthmapXcli/performancewriter.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "performancesink.h" 19 | #include 20 | #include 21 | 22 | 23 | class PerformanceWriter : public IPerformanceSink 24 | { 25 | private: 26 | std::vector m_data; 27 | std::string m_filename; 28 | public: 29 | PerformanceWriter(const std::string &filename); 30 | void addData( const std::string &message, double timeInSeconds); 31 | void write() const; 32 | }; 33 | 34 | -------------------------------------------------------------------------------- /depthmapXcli/printcommunicator.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2020, Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "genlib/comm.h" 19 | 20 | class PrintCommunicator : public ICommunicator { 21 | public: 22 | PrintCommunicator() { 23 | num_steps = 0; 24 | step = 0; 25 | num_records = 0; 26 | record = 0; 27 | } 28 | virtual ~PrintCommunicator() {} 29 | virtual void CommPostMessage(int m, int x) const; 30 | }; 31 | -------------------------------------------------------------------------------- /depthmapXcli/radiusconverter.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include 19 | 20 | class IRadiusConverter 21 | { 22 | public: 23 | virtual double ConvertForVisibility(const std::string &radius) const = 0; 24 | virtual double ConvertForMetric(const std::string &radius) const = 0; 25 | virtual ~IRadiusConverter(){} 26 | }; 27 | 28 | 29 | class RadiusConverter : public IRadiusConverter 30 | { 31 | public: 32 | virtual double ConvertForVisibility(const std::string &radius) const; 33 | virtual double ConvertForMetric(const std::string &radius) const; 34 | }; 35 | 36 | -------------------------------------------------------------------------------- /depthmapXcli/simpletimer.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include 19 | 20 | class SimpleTimer 21 | { 22 | public: 23 | SimpleTimer() : m_startTime(std::chrono::high_resolution_clock::now()) 24 | { 25 | } 26 | 27 | double getTimeInSeconds() const 28 | { 29 | auto t2 = std::chrono::high_resolution_clock::now(); 30 | return static_cast(std::chrono::duration_cast(t2-m_startTime).count()) / 1000.0; 31 | } 32 | 33 | void reset() 34 | { 35 | m_startTime = std::chrono::high_resolution_clock::now(); 36 | } 37 | 38 | private: 39 | std::chrono::time_point m_startTime; 40 | }; 41 | -------------------------------------------------------------------------------- /dist/beta/map_opengl/macos/depthmapX.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/dist/beta/map_opengl/macos/depthmapX.zip -------------------------------------------------------------------------------- /dist/beta/map_opengl/win-32/depthmapX.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/dist/beta/map_opengl/win-32/depthmapX.zip -------------------------------------------------------------------------------- /dist/beta/map_opengl/win-64/depthmapX.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/dist/beta/map_opengl/win-64/depthmapX.zip -------------------------------------------------------------------------------- /dist/beta/master/macos/depthmapX.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/dist/beta/master/macos/depthmapX.zip -------------------------------------------------------------------------------- /docs/Agents_Manual_Draft01_2012.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/docs/Agents_Manual_Draft01_2012.pdf -------------------------------------------------------------------------------- /docs/DepthmapManualForDummies-v13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/docs/DepthmapManualForDummies-v13.pdf -------------------------------------------------------------------------------- /docs/DepthmapManualForDummies_v20_short.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/docs/DepthmapManualForDummies_v20_short.pdf -------------------------------------------------------------------------------- /docs/formatting.md: -------------------------------------------------------------------------------- 1 | Formatting is done with ClangFormat with the following options: 2 | 3 | - IndentWidth: 4 4 | - ColumnLimit: 119 5 | - NamespaceIndentation: All 6 | -------------------------------------------------------------------------------- /docs/gui.md: -------------------------------------------------------------------------------- 1 | # depthmapX Graphical User Interface 2 | 3 | The graphical user interface is the standard way of interacting with depthmapX. 4 | It allows to load files, import plans, runs analyses and explore the data in 5 | an interactive way. 6 | 7 | A lot of the available functionality has been described in the [Depthmap Manual 8 | for Dummies](./DepthmapManualForDummies-v13.pdf) by Akkie van Nes, which is slightly 9 | outdated but still worth a read to get an idea how things work in the GUI. 10 | 11 | -------------------------------------------------------------------------------- /docs/howdoi.md: -------------------------------------------------------------------------------- 1 | Calculate NACh and NAIn 2 | --- 3 | NACh (Normalised Angular Choice) and NAIn (Normalised Angular Integration) were introduced in Hillier et al. (2012). 4 | To create them first calculate Choice and Total depth (Tools -> Segment -> Run Angular Segment Analysis..., include choice), create the two new attributes/columns (Attributes -> Add Column) and finally set their formulas (Attribute -> Update Column). 5 | 6 | According to Hillier et al. (2012) the equation for NACh is: 7 | **`NACh = log( ACH + 1) / log( ATD + 3)`** 8 | where `ACH = Angular Choice` and `ATD = Angular Total Depth`. 9 | Thus the formula in depthmapX needs to be: 10 | **`log(value("T1024 Choice") + 1) / log(value("T1024 Total Depth") + 3)`**, 11 | assuming that the analysis carried out was Angular Tulip analysis with 1024 bins and no radius limit. 12 | 13 | The equivalent for NAIn is: 14 | **`NAIn = NC ^ 1.2 / ATD`** 15 | where `NC = Node Count` and `ATD = Angular Total Depth`. 16 | Thus the formula for depthmapX needs to be: 17 | **`value("T1024 Node Count")^1.2 / value("T1024 Total Depth")`** 18 | 19 | 20 | References: 21 | - Hillier, W. R. G., Yang, T., & Turner, A. (2012). Normalising least angle choice in Depthmap - And how it opens up new perspectives on the global and local analysis of city space. Journal of Space Syntax, 3(2), 155–193. 22 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | # depthmapX Documentation 2 | 3 | depthmapX is a tool for spatial analysis, originally written as a research 4 | project by Alasdair Turner (targeting the Windows platform only), then later 5 | ported to Qt and made available cross platform by Tasos Varoudis, and is now 6 | under active development by a small team of members of Bartlett School of 7 | Architecture at UCL and volunteers. 8 | 9 | ## Table of Contents 10 | - [About](./about.md) 11 | - [Using the Graphical User Interface (GUI)](./gui.md) 12 | - [The command line interface](./commandline.md) 13 | - [Building depthmapX yourself](./building.md) 14 | 15 | -------------------------------------------------------------------------------- /genlib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(genlib genlib) 2 | set(genlib_SRCS 3 | bsptree.cpp 4 | p2dpoly.cpp 5 | pafmath.cpp 6 | stringutils.cpp 7 | xmlparse.cpp) 8 | 9 | add_compile_definitions(GENLIB_LIBRARY) 10 | 11 | add_library(${genlib} STATIC ${genlib_SRCS}) 12 | -------------------------------------------------------------------------------- /genlib/exceptions.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | // Copyright (C) 2017 Petros Koutsolampros 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #pragma once 18 | 19 | #include 20 | #include 21 | 22 | namespace depthmapX { 23 | class BaseException : public std::exception { 24 | public: 25 | BaseException() {} 26 | BaseException(std::string message) : _message(message) {} 27 | virtual const char *what() const noexcept { return _message.c_str(); } 28 | 29 | private: 30 | std::string _message; 31 | }; 32 | 33 | class RuntimeException : public BaseException { 34 | public: 35 | RuntimeException(std::string message) : BaseException(message) {} 36 | }; 37 | } // namespace depthmapX 38 | -------------------------------------------------------------------------------- /genlibTest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(genlibtest genlibTest) 2 | set(genlibTest_SRCS 3 | testreadwritehelpers.cpp 4 | main.cpp 5 | testsimplematrix.cpp 6 | testbspnode.cpp 7 | teststringutils.cpp 8 | testcontainerutils.cpp) 9 | 10 | set(LINK_LIBS 11 | genlib) 12 | 13 | include_directories("../ThirdParty/Catch") 14 | 15 | add_executable(${genlibtest} ${genlibTest_SRCS}) 16 | target_link_libraries(${genlibtest} ${LINK_LIBS}) 17 | 18 | -------------------------------------------------------------------------------- /genlibTest/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | 17 | #define CATCH_CONFIG_MAIN 18 | #include "catch.hpp" 19 | -------------------------------------------------------------------------------- /mgraph440/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(mgraph440 mgraph440) 2 | set(mgraph440_SRCS 3 | pafcolor.cpp 4 | attr.cpp 5 | ngraph.cpp 6 | datalayer.cpp 7 | pointmap.cpp 8 | attributes.cpp 9 | connector.cpp 10 | mgraph.cpp 11 | axialmap.cpp 12 | shapemap.cpp 13 | pixelbase.cpp 14 | spacepix.cpp 15 | point.cpp 16 | stringutils.cpp 17 | p2dpoly.cpp 18 | salaprogram.cpp 19 | pafmath.cpp) 20 | 21 | if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR 22 | "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") 23 | set(warnings "-Wnone") 24 | elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") 25 | set(warnings "/W0 /EHsc /wd4800") 26 | endif() 27 | 28 | add_compile_definitions(MGRAPH440_LIBRARY) 29 | 30 | add_library(${mgraph440} ${mgraph440_SRCS}) 31 | -------------------------------------------------------------------------------- /mgraph440/containerutils.h: -------------------------------------------------------------------------------- 1 | // genlib - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2017, Petros Koutsolampros 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #pragma once 18 | 19 | namespace depthmapX440 { 20 | 21 | template 22 | void findAndErase(std::vector &vec, T element) { 23 | auto it = std::find(vec.begin(), vec.end(), element); 24 | if(it != vec.end()) 25 | vec.erase(it); 26 | } 27 | 28 | template 29 | void addIfNotExists(std::vector &vec, T element) { 30 | auto it = std::find(vec.begin(), vec.end(), element); 31 | if(it == vec.end()) 32 | vec.push_back(element); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /mgraph440/displayparams.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // For my colour scheme... some parameters to pass, and my own colour class 4 | 5 | namespace mgraph440 { 6 | 7 | struct DisplayParams 8 | { 9 | enum { AXMANESQUE = 0, GREYSCALE = 1, MONOCHROME = 2, DEPTHMAPCLASSIC = 3, PURPLEORANGE = 4, BLUERED = 5 }; 10 | float blue; 11 | float red; 12 | int colorscale; 13 | DisplayParams() 14 | { blue = 0.0f; red = 1.0f; colorscale = 0; } 15 | }; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /mgraph440/pixelbase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "mgraph440/p2dpoly.h" 4 | #include "mgraph440/pixelref.h" 5 | 6 | namespace mgraph440 { 7 | 8 | class PixelBase 9 | { 10 | public: 11 | int m_rows; 12 | int m_cols; 13 | QtRegion m_region; 14 | PixelBase() {;} 15 | // constrain is constrain to bounding box (i.e., in row / col bounds) 16 | virtual PixelRef pixelate(const Point2f&, bool constrain = true, int scalefactor = 1 ) const = 0; 17 | PixelRefVector pixelateLine( Line l, int scalefactor = 1 ) const; 18 | bool includes(const PixelRef pix) const { 19 | return (pix.x >= 0 && pix.x < m_cols && pix.y >= 0 && pix.y < m_rows); 20 | } 21 | const QtRegion& getRegion() const { 22 | return m_region; 23 | } 24 | }; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /mgraph440Test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(mgraph440Test mgraph440Test) 2 | set(mgraph440Test_SRCS 3 | main.cpp 4 | testcontainers.cpp 5 | testconverters.cpp) 6 | 7 | set(LINK_LIBS 8 | salalib 9 | mgraph440 10 | genlib) 11 | 12 | include_directories("../ThirdParty/Catch") 13 | 14 | add_executable(${mgraph440Test} ${mgraph440Test_SRCS}) 15 | target_link_libraries(${mgraph440Test} ${LINK_LIBS}) 16 | -------------------------------------------------------------------------------- /mgraph440Test/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #define CATCH_CONFIG_MAIN 17 | #include "catch.hpp" 18 | -------------------------------------------------------------------------------- /mgraph440Test/testconverters.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "../mgraph440/legacyconverters.h" 17 | #include "catch.hpp" 18 | 19 | TEST_CASE("vector conversion") { 20 | std::vector vec{1, 4, 5}; 21 | mgraph440::pvector result = genshim440::toPVector(vec); 22 | REQUIRE(result.size() == 3); 23 | REQUIRE(result[0] == 1); 24 | REQUIRE(result[1] == 4); 25 | REQUIRE(result[2] == 5); 26 | } 27 | -------------------------------------------------------------------------------- /moduleTest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(moduleTest moduleTest) 2 | 3 | set(moduleTest_SRCS 4 | main.cpp) 5 | 6 | include_directories("../ThirdParty/Catch" "../ThirdParty/FakeIt") 7 | 8 | set(modules_coreTest "" CACHE INTERNAL "modules_coreTest" FORCE) 9 | set(MODULES_GUI FALSE) 10 | set(MODULES_CLI FALSE) 11 | set(MODULES_CLI_TEST FALSE) 12 | set(MODULES_CORE FALSE) 13 | set(MODULES_CORE_TEST TRUE) 14 | add_subdirectory(../modules modules) 15 | 16 | add_executable(${moduleTest} ${moduleTest_SRCS}) 17 | target_link_libraries(${moduleTest} salalib genlib mgraph440 ${modules_coreTest} ${modules_core}) 18 | -------------------------------------------------------------------------------- /moduleTest/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | 17 | #define CATCH_CONFIG_MAIN 18 | #include "catch.hpp" 19 | -------------------------------------------------------------------------------- /modules/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Petros Koutsolampros 2 | 3 | # This program is free software: you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation, either version 3 of the License, or 6 | # (at your option) any later version. 7 | 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program. If not, see . 15 | 16 | file(GLOB children "*") 17 | foreach(child ${children}) 18 | if(IS_DIRECTORY ${child} AND EXISTS ${child}/CMakeLists.txt) 19 | add_subdirectory(${child}) 20 | endif() 21 | endforeach() 22 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Petros Koutsolampros 2 | 3 | # This program is free software: you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation, either version 3 of the License, or 6 | # (at your option) any later version. 7 | 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program. If not, see . 15 | 16 | if(MODULES_CORE) 17 | add_subdirectory(core) 18 | endif() 19 | 20 | if(MODULES_GUI) 21 | add_subdirectory(gui) 22 | endif() 23 | 24 | if(MODULES_CLI) 25 | add_subdirectory(cli) 26 | endif() 27 | 28 | if(MODULES_CORE_TEST) 29 | add_subdirectory(coreTest) 30 | endif() 31 | 32 | if(MODULES_CLI_TEST) 33 | add_subdirectory(cliTest) 34 | endif() 35 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/RegressionTest/regressionconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "rundir": "rundir", 3 | "basebinlocation": "../../BaselineBinaries", 4 | "testbinlocation": "../../../build", 5 | "testcases": { 6 | "shortest_segment_metric_path": [{ 7 | "infile": "../../../testdata/barnsbury_extended1_segment.graph", 8 | "outfile": "out.graph", 9 | "mode": "SEGMENTSHORTESTPATH", 10 | "extraArgs": { 11 | "-sspo":"531074,185526", 12 | "-sspd":"534231,183853", 13 | "-sspt":"metric" 14 | } 15 | }], 16 | "shortest_segment_tulip_path": [{ 17 | "infile": "../../../testdata/barnsbury_extended1_segment.graph", 18 | "outfile": "out.graph", 19 | "mode": "SEGMENTSHORTESTPATH", 20 | "extraArgs": { 21 | "-sspo":"531074,185526", 22 | "-sspd":"534231,183853", 23 | "-sspt":"tulip" 24 | } 25 | }], 26 | "shortest_segment_topological_path": [{ 27 | "infile": "../../../testdata/barnsbury_extended1_segment.graph", 28 | "outfile": "out.graph", 29 | "mode": "SEGMENTSHORTESTPATH", 30 | "extraArgs": { 31 | "-sspo":"531074,185526", 32 | "-sspd":"534231,183853", 33 | "-sspt":"topological" 34 | } 35 | }] 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/cli/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Petros Koutsolampros 2 | 3 | # This program is free software: you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation, either version 3 of the License, or 6 | # (at your option) any later version. 7 | 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program. If not, see . 15 | 16 | set(segmentpathscli segmentpathscli) 17 | set(segmentpathscli_SRCS 18 | segmentshortestpathparser.cpp) 19 | 20 | set(modules_cli "${modules_cli}" "segmentpathscli" CACHE INTERNAL "modules_cli" FORCE) 21 | 22 | add_compile_definitions(SEGMENTPATHS_CLI_LIBRARY) 23 | 24 | add_library(${segmentpathscli} OBJECT ${segmentpathscli_SRCS}) 25 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/cliTest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Petros Koutsolampros 2 | 3 | # This program is free software: you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation, either version 3 of the License, or 6 | # (at your option) any later version. 7 | 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program. If not, see . 15 | 16 | set(segmentpathsclitest segmentpathsclitest) 17 | set(segmentpathsclitest_SRCS 18 | segmentshortestpathparsertest.cpp) 19 | 20 | set(modules_cliTest "${modules_cliTest}" "segmentpathsclitest" CACHE INTERNAL "modules_cliTest" FORCE) 21 | 22 | add_compile_definitions(SEGMENTPATHS_CLI_TEST_LIBRARY) 23 | 24 | add_library(${segmentpathsclitest} OBJECT ${segmentpathsclitest_SRCS}) 25 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/core/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Petros Koutsolampros 2 | 3 | # This program is free software: you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation, either version 3 of the License, or 6 | # (at your option) any later version. 7 | 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program. If not, see . 15 | 16 | set(segmentpathscore segmentpathscore) 17 | set(segmentpathscore_SRCS 18 | segmmetricshortestpath.cpp 19 | segmtopologicalshortestpath.cpp 20 | segmtulipshortestpath.cpp) 21 | 22 | set(modules_core "${modules_core}" "segmentpathscore" CACHE INTERNAL "modules_core" FORCE) 23 | 24 | add_compile_definitions(SEGMENTPATHS_CORE_LIBRARY) 25 | 26 | add_library(${segmentpathscore} OBJECT ${segmentpathscore_SRCS}) 27 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/core/segmmetricshortestpath.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/segmmodules/segmhelpers.h" 22 | 23 | #include "salalib/ianalysis.h" 24 | 25 | class SegmentMetricShortestPath : public IAnalysis { 26 | private: 27 | ShapeGraph &m_map; 28 | 29 | public: 30 | SegmentMetricShortestPath(ShapeGraph &map) : m_map(map) {} 31 | std::string getAnalysisName() const override { return "Metric Shortest Path"; } 32 | bool run(Communicator *) override; 33 | }; 34 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/core/segmtopologicalshortestpath.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/segmmodules/segmhelpers.h" 22 | 23 | #include "salalib/ianalysis.h" 24 | 25 | class SegmentTopologicalShortestPath : public IAnalysis { 26 | private: 27 | ShapeGraph &m_map; 28 | 29 | public: 30 | SegmentTopologicalShortestPath(ShapeGraph &map) : m_map(map) {} 31 | std::string getAnalysisName() const override { return "Topological Shortest Path"; } 32 | bool run(Communicator *comm) override; 33 | }; 34 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/core/segmtulipshortestpath.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/ianalysis.h" 22 | 23 | class SegmentTulipShortestPath : public IAnalysis { 24 | private: 25 | ShapeGraph &m_map; 26 | 27 | public: 28 | SegmentTulipShortestPath(ShapeGraph &map) : m_map(map) {} 29 | std::string getAnalysisName() const override { return "Tulip Shortest Path"; } 30 | bool run(Communicator *) override; 31 | }; 32 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/coreTest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Petros Koutsolampros 2 | 3 | # This program is free software: you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation, either version 3 of the License, or 6 | # (at your option) any later version. 7 | 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program. If not, see . 15 | 16 | set(segmentpathscoretest segmentpathscoretest) 17 | set(segmentpathscoretest_SRCS 18 | segmentpathscoretest.cpp) 19 | 20 | set(modules_coreTest "${modules_coreTest}" "segmentpathscoretest" CACHE INTERNAL "modules_coreTest" FORCE) 21 | 22 | add_compile_definitions(SEGMENTPATHS_CORE_TEST_LIBRARY) 23 | 24 | add_library(${segmentpathscoretest} OBJECT ${segmentpathscoretest_SRCS}) 25 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/gui/segmentpathsmainwindow.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2020 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "depthmapX/imainwindowmodule.h" 19 | 20 | class SegmentPathsMainWindow : public IMainWindowModule { 21 | 22 | private: 23 | enum PathType { ANGULAR, METRIC, TOPOLOGICAL }; 24 | 25 | private slots: 26 | void OnShortestPath(MainWindow *mainWindow, PathType pathType); 27 | 28 | public: 29 | SegmentPathsMainWindow() : IMainWindowModule() {} 30 | bool createMenus(MainWindow *mainWindow); 31 | }; 32 | -------------------------------------------------------------------------------- /modules/segmentshortestpaths/gui/uictrigger.cpp: -------------------------------------------------------------------------------- 1 | // This file is required to trigger cmake's AUTOUIC in the depthmapX directory 2 | // if it is not included then the ui_*.h files in that directory are not generated 3 | // and then not found by the module which is built first because it is a dependency 4 | // of depthmapX. 5 | #include "depthmapX/ui_ColourScaleDlg.h" 6 | -------------------------------------------------------------------------------- /releases/README.txt: -------------------------------------------------------------------------------- 1 | depthmapX 2 | 3 | To install, just unpack the content of this zip file to your local hard drive and start depthmapX - this should contain everything you need. 4 | 5 | depthmapX documentation can be found at https://github.com/blackseamonster/depthmapX/tree/master/docs 6 | 7 | The wiki for this project is at: 8 | https://github.com/blackseamonster/depthmapX/wiki 9 | 10 | Changelog 11 | - Fixed some internal memory/runtime issues 12 | - Import links from file 13 | - Fixed crash on zoom-out issue 14 | - command line app (depthmapXcli) 15 | - restructured the code base to have more libraries that can be tested and reused 16 | - added catch as unit test framework 17 | - made simple mode option persistent 18 | - fixed persistence of user options on Windows 19 | - fixed mouse wheel zoom (center on mouse pointer, not center of the map) 20 | 21 | 22 | If you have any issues or questions, you can raise a ticket at https://github.com/blackseamonster/depthmapX/issues or send an email to depthmapX@blackseamonster.com 23 | -------------------------------------------------------------------------------- /releases/licenses.txt: -------------------------------------------------------------------------------- 1 | depthmapX 2 | C 2000-2010 University College London, Alasdair Turner, Eva Friedrich 3 | C 2011-2014 Tasos Varoudis, UCL 4 | C 2017 Christian Sailer, Petros Koutsolampros 5 | 6 | Released under Gnu Public License (GPL v3) 7 | Please see gplv3.txt for license details 8 | 9 | This program uses QT5 under the LGPL v3 10 | Please see lgplv3.txt for license details 11 | -------------------------------------------------------------------------------- /salaTest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(salaTest salaTest) 2 | 3 | set(salaTest_SRCS 4 | main.cpp 5 | testentityparsing.cpp 6 | testpointmap.cpp 7 | testlinkutils.cpp 8 | testgridproperties.cpp 9 | testisovistdef.cpp 10 | testmgraph.cpp 11 | testshapegraphs.cpp 12 | teststructsizes.cpp 13 | testsparksieve.cpp 14 | testattributetable.cpp 15 | testattributetableindex.cpp 16 | testlayermanager.cpp 17 | testattributetablehelpers.cpp 18 | testattributetableview.cpp 19 | testshapemaps.cpp 20 | testgeometrygenerators.cpp 21 | testmapinfodata.cpp 22 | testsalaprogram.cpp 23 | testdxfp.cpp 24 | testshaperemove.cpp 25 | testmapconversion.cpp 26 | testpointinpoly.cpp 27 | testpushvalues.cpp 28 | testisovist.cpp 29 | ) # salaTest_SRCS 30 | 31 | include_directories("../ThirdParty/Catch" "../ThirdParty/FakeIt") 32 | 33 | set(LINK_LIBS salalib genlib mgraph440) 34 | 35 | add_executable(${salaTest} ${salaTest_SRCS}) 36 | target_link_libraries(${salaTest} ${LINK_LIBS}) 37 | -------------------------------------------------------------------------------- /salaTest/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | 17 | #define CATCH_CONFIG_MAIN 18 | #include "catch.hpp" 19 | -------------------------------------------------------------------------------- /salaTest/testgridproperties.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "catch.hpp" 17 | #include "salalib/gridproperties.h" 18 | 19 | TEST_CASE("TestGridProperties", "Test the calculations of grid properties") 20 | { 21 | double maxDimension = 4.583; 22 | GridProperties gp(maxDimension); 23 | REQUIRE(gp.getDefault() == Approx(0.04)); 24 | REQUIRE(gp.getMax() == Approx(0.8)); 25 | REQUIRE(gp.getMin() == Approx(0.004)); 26 | } 27 | -------------------------------------------------------------------------------- /salaTest/teststructsizes.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #include "catch.hpp" 17 | #include "salalib/axialmap.h" 18 | #include "salalib/axialpolygons.h" 19 | 20 | /** 21 | * This seems a bit silly, but this is a list of structs that are serialised by just dumping the memory content 22 | * into a stream, so the size/layout of these must be the same across all platforms to ensure 23 | * reading writing of graph files. 24 | */ 25 | TEST_CASE("Enforce struct sizes") 26 | { 27 | REQUIRE(sizeof(RadialKey) == 16); 28 | REQUIRE(sizeof(RadialLine) == 64); 29 | REQUIRE(sizeof(PolyConnector) == 56); 30 | REQUIRE(sizeof(QtRegion) == 32); 31 | REQUIRE(sizeof(Line) == 40); 32 | } 33 | -------------------------------------------------------------------------------- /salalib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(salalib salalib) 2 | 3 | set(salalib_SRCS 4 | axialmap.cpp 5 | connector.cpp 6 | isovist.cpp 7 | mgraph.cpp 8 | ngraph.cpp 9 | pointdata.cpp 10 | salaprogram.cpp 11 | shapemap.cpp 12 | spacepix.cpp 13 | sparksieve2.cpp 14 | entityparsing.cpp 15 | linkutils.cpp 16 | gridproperties.cpp 17 | attributetable.cpp 18 | layermanagerimpl.cpp 19 | attributetableview.cpp 20 | geometrygenerators.cpp 21 | point.cpp 22 | pafcolor.cpp 23 | spacepixfile.cpp 24 | alllinemap.cpp 25 | axialminimiser.cpp 26 | axialpolygons.cpp 27 | tidylines.cpp 28 | mapconverter.cpp 29 | importutils.cpp 30 | attributetableindex.cpp 31 | ianalysis.h) 32 | 33 | add_compile_definitions(_DEPTHMAP SALALIB_LIBRARY) 34 | 35 | add_library(${salalib} STATIC ${salalib_SRCS} ${vgamodules_SRCS} ${axialmodules_SRCS} ${segmmodules_SRCS} ${parsers_SRCS}) 36 | 37 | add_subdirectory(vgamodules) 38 | add_subdirectory(axialmodules) 39 | add_subdirectory(segmmodules) 40 | add_subdirectory(parsers) 41 | add_subdirectory(agents) 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /salalib/agents/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(salalib 2 | PUBLIC 3 | agent.h 4 | agentprogram.h 5 | agentset.h 6 | agentengine.h 7 | agentga.h 8 | agenthelpers.h 9 | PRIVATE 10 | agent.cpp 11 | agentprogram.cpp 12 | agentset.cpp 13 | agentengine.cpp 14 | agentga.cpp) 15 | 16 | -------------------------------------------------------------------------------- /salalib/agents/agentengine.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2019, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "agentset.h" 22 | 23 | class AgentEngine { 24 | public: // public for now for speed 25 | std::vector agentSets; 26 | int m_gatelayer; 27 | int m_timesteps; 28 | 29 | public: 30 | bool m_record_trails; 31 | int m_trail_count = 50; 32 | 33 | public: 34 | AgentEngine(); 35 | void run(Communicator *comm, PointMap *pointmap); 36 | void insertTrailsInMap(ShapeMap& trailsMap); 37 | }; 38 | -------------------------------------------------------------------------------- /salalib/agents/agenthelpers.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2019, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | const static std::string g_col_total_counts = "Gate Counts"; 22 | const static std::string g_col_gate_counts = "__Internal_Gate_Counts"; 23 | const static std::string g_col_gate = "__Internal_Gate"; 24 | -------------------------------------------------------------------------------- /salalib/agents/agentset.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2019, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "agent.h" 22 | #include "agentprogram.h" 23 | 24 | struct AgentSet : public AgentProgram { 25 | std::vector agents; 26 | std::vector m_release_locations; 27 | int m_release_locations_seed = 0; 28 | double m_release_rate; 29 | int m_lifetime; 30 | AgentSet(); 31 | void move(); 32 | void init(int agent, int trail_num = -1); 33 | }; 34 | -------------------------------------------------------------------------------- /salalib/alllinemap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "salalib/axialmap.h" 4 | #include "salalib/axialpolygons.h" 5 | 6 | class AllLineMap: public ShapeGraph 7 | { 8 | public: 9 | AllLineMap(Communicator *comm, 10 | std::vector &drawingLayers, 11 | const Point2f& seed, 12 | const std::string& name = "All-Line Map"); 13 | AllLineMap(const std::string& name = "All-Line Map"): 14 | ShapeGraph(name, ShapeMap::ALLLINEMAP) {} 15 | AxialPolygons m_polygons; 16 | std::vector m_poly_connections; 17 | std::vector m_radial_lines; 18 | void setKeyVertexCount(int keyvertexcount) { 19 | m_keyvertexcount = keyvertexcount; 20 | } 21 | std::tuple, std::unique_ptr> extractFewestLineMaps(Communicator *comm); 22 | void makeDivisions(const std::vector& polyconnections, const std::vector &radiallines, 23 | std::map > &radialdivisions, std::map > &axialdividers, 24 | Communicator *comm); 25 | 26 | }; 27 | -------------------------------------------------------------------------------- /salalib/axialmodules/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(salalib 2 | PRIVATE 3 | axialintegration.cpp 4 | axialstepdepth.cpp 5 | PUBLIC 6 | axialintegration.h 7 | axialstepdepth.h) 8 | -------------------------------------------------------------------------------- /salalib/axialmodules/axialstepdepth.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/iaxial.h" 22 | 23 | class AxialStepDepth : IAxial 24 | { 25 | public: 26 | std::string getAnalysisName() const override { 27 | return "Angular Analysis"; 28 | } 29 | bool run(Communicator *comm, ShapeGraph &map, bool simple_version) override; 30 | }; 31 | -------------------------------------------------------------------------------- /salalib/displayparams.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct DisplayParams 4 | { 5 | enum { AXMANESQUE = 0, GREYSCALE = 1, MONOCHROME = 2, DEPTHMAPCLASSIC = 3, PURPLEORANGE = 4, BLUERED = 5, HUEONLYAXMANESQUE = 6 }; 6 | float blue; 7 | float red; 8 | int colorscale; 9 | DisplayParams() 10 | { blue = 0.0f; red = 1.0f; colorscale = 0; } 11 | }; 12 | -------------------------------------------------------------------------------- /salalib/geometrygenerators.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "genlib/p2dpoly.h" 19 | #include 20 | 21 | class GeometryGenerators 22 | { 23 | public: 24 | static std::vector generateDiskTriangles(int sides, float radius, Point2f position = Point2f(0,0)); 25 | static std::vector generateMultipleDiskTriangles(int sides, float radius, std::vector positions); 26 | 27 | static std::vector generateCircleLines(int sides, float radius, Point2f position = Point2f(0,0)); 28 | static std::vector generateMultipleCircleLines(int sides, float radius, std::vector positions); 29 | }; 30 | -------------------------------------------------------------------------------- /salalib/gridproperties.cpp: -------------------------------------------------------------------------------- 1 | #include "gridproperties.h" 2 | #include 3 | 4 | GridProperties::GridProperties(double maxDimension) 5 | { 6 | int maxexponent = (int) floor(log10(maxDimension)) - 1; 7 | int minexponent = maxexponent - 2; 8 | int mantissa = (int) floor(maxDimension / pow(10.0,double(maxexponent+1))); 9 | 10 | m_default = (double) mantissa * pow(10.0, double(maxexponent - 1)); 11 | m_max = (double) 2 * mantissa * pow(10.0, double(maxexponent)); 12 | m_min = (double) mantissa * pow(10.0, double(minexponent)); 13 | } 14 | -------------------------------------------------------------------------------- /salalib/gridproperties.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Christian Sailer 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | class GridProperties 19 | { 20 | public: 21 | GridProperties(double maxDimension); 22 | double getMin() const{return m_min;} 23 | double getMax() const{return m_max;} 24 | double getDefault() const{return m_default;} 25 | private: 26 | double m_max; 27 | double m_min; 28 | double m_default; 29 | 30 | }; 31 | 32 | -------------------------------------------------------------------------------- /salalib/ianalysis.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2020 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "salalib/mgraph.h" 19 | #include "salalib/pointdata.h" 20 | 21 | #include "genlib/comm.h" 22 | 23 | class IAnalysis { 24 | public: 25 | virtual std::string getAnalysisName() const = 0; 26 | virtual bool run(Communicator *comm) = 0; 27 | virtual ~IAnalysis() {} 28 | }; 29 | -------------------------------------------------------------------------------- /salalib/iaxial.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | // Interface to handle different kinds of Axial analysis 19 | 20 | #include "salalib/axialmap.h" 21 | 22 | #include "genlib/comm.h" 23 | 24 | #include 25 | 26 | class IAxial 27 | { 28 | public: 29 | virtual std::string getAnalysisName() const = 0; 30 | virtual bool run(Communicator *comm, ShapeGraph &map, bool simple_version) = 0; 31 | virtual ~IAxial(){} 32 | }; 33 | -------------------------------------------------------------------------------- /salalib/importtypedefs.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | #include "genlib/p2dpoly.h" 19 | #include 20 | #include 21 | 22 | namespace depthmapX { 23 | typedef std::vector ColumnData; 24 | typedef std::map Table; 25 | 26 | class Polyline : public QtRegion 27 | { 28 | public: 29 | std::vector m_vertices; 30 | bool m_closed = false; 31 | Polyline(std::vector vertices, bool closed) : m_vertices(vertices), m_closed(closed) { 32 | } 33 | }; 34 | 35 | enum ImportType { 36 | DRAWINGMAP, DATAMAP 37 | }; 38 | 39 | enum ImportFileType { 40 | CSV, TSV, DXF 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /salalib/ivga.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018 Petros Koutsolampros 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, either version 3 of the License, or 6 | // (at your option) any later version. 7 | 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | 13 | // You should have received a copy of the GNU General Public License 14 | // along with this program. If not, see . 15 | 16 | #pragma once 17 | 18 | // Interface to handle different kinds of VGA analysis 19 | 20 | #include "salalib/mgraph.h" 21 | #include "salalib/pointdata.h" 22 | 23 | #include "genlib/comm.h" 24 | 25 | #include 26 | 27 | class IVGA { 28 | public: 29 | virtual std::string getAnalysisName() const = 0; 30 | virtual bool run(Communicator *comm, PointMap &map, bool simple_version) = 0; 31 | virtual ~IVGA() {} 32 | }; 33 | -------------------------------------------------------------------------------- /salalib/parsers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(salalib 2 | PRIVATE 3 | ntfp.cpp 4 | dxfp.cpp 5 | mapinfodata.cpp 6 | tigerp.cpp 7 | PUBLIC 8 | dxfp.h 9 | ntfp.h 10 | mapinfodata.h 11 | tigerp.h) 12 | -------------------------------------------------------------------------------- /salalib/segmmodules/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(salalib 2 | PRIVATE 3 | segmangular.cpp 4 | segmmetric.cpp 5 | segmtopological.cpp 6 | segmtulip.cpp 7 | segmtopologicalpd.cpp 8 | segmmetricpd.cpp 9 | segmtulipdepth.cpp 10 | PUBLIC 11 | segmangular.h 12 | segmmetric.h 13 | segmtopological.h 14 | segmtulip.h 15 | segmhelpers.h 16 | segmmetricpd.h 17 | segmtopologicalpd.h 18 | segmtulipdepth.h) 19 | -------------------------------------------------------------------------------- /salalib/segmmodules/segmangular.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/isegment.h" 22 | 23 | class SegmentAngular : ISegment { 24 | private: 25 | std::set m_radius_set; 26 | 27 | public: 28 | std::string getAnalysisName() const override { return "Angular Analysis"; } 29 | bool run(Communicator *comm, ShapeGraph &map, bool) override; 30 | SegmentAngular(std::set radius_set) : m_radius_set(radius_set) {} 31 | }; 32 | -------------------------------------------------------------------------------- /salalib/segmmodules/segmmetric.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/segmmodules/segmhelpers.h" 22 | 23 | #include "salalib/isegment.h" 24 | 25 | class SegmentMetric : ISegment { 26 | private: 27 | double m_radius; 28 | bool m_sel_only; 29 | 30 | public: 31 | std::string getAnalysisName() const override { return "Metric Analysis"; } 32 | bool run(Communicator *comm, ShapeGraph &map, bool) override; 33 | SegmentMetric(double radius, bool sel_only) : m_radius(radius), m_sel_only(sel_only) {} 34 | }; 35 | -------------------------------------------------------------------------------- /salalib/segmmodules/segmmetricpd.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/segmmodules/segmhelpers.h" 22 | 23 | #include "salalib/isegment.h" 24 | 25 | class SegmentMetricPD : ISegment { 26 | public: 27 | std::string getAnalysisName() const override { return "Metric Analysis"; } 28 | bool run(Communicator *, ShapeGraph &map, bool) override; 29 | }; 30 | -------------------------------------------------------------------------------- /salalib/segmmodules/segmtopological.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/segmmodules/segmhelpers.h" 22 | 23 | #include "salalib/isegment.h" 24 | 25 | class SegmentTopological : ISegment { 26 | private: 27 | double m_radius; 28 | bool m_sel_only; 29 | 30 | public: 31 | std::string getAnalysisName() const override { return "Topological Analysis"; } 32 | bool run(Communicator *comm, ShapeGraph &map, bool) override; 33 | SegmentTopological(double radius, bool sel_only) : m_radius(radius), m_sel_only(sel_only) {} 34 | }; 35 | -------------------------------------------------------------------------------- /salalib/segmmodules/segmtopologicalpd.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/segmmodules/segmhelpers.h" 22 | 23 | #include "salalib/isegment.h" 24 | 25 | class SegmentTopologicalPD : ISegment { 26 | public: 27 | std::string getAnalysisName() const override { return "Topological Analysis"; } 28 | bool run(Communicator *, ShapeGraph &map, bool) override; 29 | }; 30 | -------------------------------------------------------------------------------- /salalib/segmmodules/segmtulipdepth.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/isegment.h" 22 | 23 | class SegmentTulipDepth : ISegment 24 | { 25 | public: 26 | std::string getAnalysisName() const override { 27 | return "Tulip Analysis"; 28 | } 29 | bool run(Communicator *, ShapeGraph &map, bool) override; 30 | }; 31 | -------------------------------------------------------------------------------- /salalib/tidylines.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "salalib/spacepix.h" 4 | 5 | #include "genlib/p2dpoly.h" 6 | 7 | // helpers... a class to tidy up ugly maps people may give me... 8 | 9 | class TidyLines : public SpacePixel 10 | { 11 | public: 12 | void tidy(std::vector &lines, const QtRegion& region); 13 | void quicktidy(std::map > &lines, const QtRegion& region); 14 | }; 15 | -------------------------------------------------------------------------------- /salalib/tolerances.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2018 Petros Koutsolampros 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #pragma once 18 | 19 | static const double TOLERANCE_A = 1e-9; 20 | static const double TOLERANCE_B = 1e-12; 21 | static const double TOLERANCE_C = 1e-6; 22 | -------------------------------------------------------------------------------- /salalib/vgamodules/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(salalib 2 | PRIVATE 3 | vgaisovist.cpp 4 | vgaangular.cpp 5 | vgametric.cpp 6 | vgathroughvision.cpp 7 | vgavisuallocal.cpp 8 | vgavisualglobal.cpp 9 | vgaangulardepth.cpp 10 | vgametricdepth.cpp 11 | vgavisualglobaldepth.cpp 12 | PUBLIC 13 | vgaangular.h 14 | vgametric.h 15 | vgavisualglobal.h 16 | vgaangulardepth.h 17 | vgametricdepth.h 18 | vgavisualglobaldepth.h 19 | vgaisovist.h 20 | vgathroughvision.h 21 | vgavisuallocal.h) 22 | -------------------------------------------------------------------------------- /salalib/vgamodules/vgaangular.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/ivga.h" 22 | #include "salalib/pixelref.h" 23 | #include "salalib/pointdata.h" 24 | 25 | class VGAAngular : IVGA { 26 | private: 27 | double m_radius; 28 | bool m_gates_only; 29 | 30 | public: 31 | std::string getAnalysisName() const override { return "Angular Analysis"; } 32 | bool run(Communicator *, PointMap &map, bool) override; 33 | VGAAngular(double radius, bool gates_only) : m_radius(radius), m_gates_only(gates_only) {} 34 | }; 35 | -------------------------------------------------------------------------------- /salalib/vgamodules/vgaangulardepth.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/ivga.h" 22 | #include "salalib/pixelref.h" 23 | #include "salalib/pointdata.h" 24 | 25 | class VGAAngularDepth : IVGA { 26 | public: 27 | std::string getAnalysisName() const override { return "Angular Depth"; } 28 | bool run(Communicator *comm, PointMap &map, bool) override; 29 | }; 30 | -------------------------------------------------------------------------------- /salalib/vgamodules/vgaisovist.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/ivga.h" 22 | #include "salalib/pixelref.h" 23 | #include "salalib/pointdata.h" 24 | 25 | class VGAIsovist : IVGA { 26 | public: 27 | std::string getAnalysisName() const override { return "Isovist Analysis"; } 28 | bool run(Communicator *comm, PointMap &map, bool simple_version) override; 29 | BSPNode makeBSPtree(Communicator *communicator, const std::vector &drawingFiles); 30 | }; 31 | -------------------------------------------------------------------------------- /salalib/vgamodules/vgametric.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/ivga.h" 22 | #include "salalib/pixelref.h" 23 | #include "salalib/pointdata.h" 24 | 25 | class VGAMetric : IVGA { 26 | private: 27 | double m_radius; 28 | bool m_gates_only; 29 | 30 | public: 31 | std::string getAnalysisName() const override { return "Metric Analysis"; } 32 | bool run(Communicator *comm, PointMap &map, bool) override; 33 | VGAMetric(double radius, bool gates_only) : m_radius(radius), m_gates_only(gates_only) {} 34 | }; 35 | -------------------------------------------------------------------------------- /salalib/vgamodules/vgametricdepth.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/ivga.h" 22 | #include "salalib/pixelref.h" 23 | #include "salalib/pointdata.h" 24 | 25 | class VGAMetricDepth : IVGA { 26 | public: 27 | std::string getAnalysisName() const override { return "Metric Depth"; } 28 | bool run(Communicator *, PointMap &map, bool) override; 29 | }; 30 | -------------------------------------------------------------------------------- /salalib/vgamodules/vgathroughvision.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/ivga.h" 22 | #include "salalib/pixelref.h" 23 | #include "salalib/pointdata.h" 24 | 25 | class VGAThroughVision : IVGA { 26 | public: 27 | std::string getAnalysisName() const override { return "Through Vision Analysis"; } 28 | bool run(Communicator *comm, PointMap &map, bool) override; 29 | }; 30 | -------------------------------------------------------------------------------- /salalib/vgamodules/vgavisuallocal.h: -------------------------------------------------------------------------------- 1 | // sala - a component of the depthmapX - spatial network analysis platform 2 | // Copyright (C) 2000-2010, University College London, Alasdair Turner 3 | // Copyright (C) 2011-2012, Tasos Varoudis 4 | // Copyright (C) 2017-2018, Petros Koutsolampros 5 | 6 | // This program is free software: you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License as published by 8 | // the Free Software Foundation, either version 3 of the License, or 9 | // (at your option) any later version. 10 | 11 | // This program is distributed in the hope that it will be useful, 12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | // GNU General Public License for more details. 15 | 16 | // You should have received a copy of the GNU General Public License 17 | // along with this program. If not, see . 18 | 19 | #pragma once 20 | 21 | #include "salalib/ivga.h" 22 | #include "salalib/pixelref.h" 23 | #include "salalib/pointdata.h" 24 | 25 | class VGAVisualLocal : IVGA { 26 | private: 27 | bool m_gates_only; 28 | 29 | public: 30 | std::string getAnalysisName() const override { return "Local Visibility Analysis"; } 31 | bool run(Communicator *comm, PointMap &map, bool simple_version) override; 32 | VGAVisualLocal(bool gates_only) : m_gates_only(gates_only) {} 33 | }; 34 | -------------------------------------------------------------------------------- /testdata/all_line_noncont_keys.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/all_line_noncont_keys.graph -------------------------------------------------------------------------------- /testdata/axmap_noncont_keys.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/axmap_noncont_keys.graph -------------------------------------------------------------------------------- /testdata/barnsbury_axial.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/barnsbury_axial.graph -------------------------------------------------------------------------------- /testdata/barnsbury_drawing.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/barnsbury_drawing.graph -------------------------------------------------------------------------------- /testdata/barnsbury_extended1_axial.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/barnsbury_extended1_axial.graph -------------------------------------------------------------------------------- /testdata/barnsbury_extended1_segment.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/barnsbury_extended1_segment.graph -------------------------------------------------------------------------------- /testdata/barnsbury_extended2_axial.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/barnsbury_extended2_axial.graph -------------------------------------------------------------------------------- /testdata/barnsbury_extended2_drawing.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/barnsbury_extended2_drawing.graph -------------------------------------------------------------------------------- /testdata/barnsbury_segment.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/barnsbury_segment.graph -------------------------------------------------------------------------------- /testdata/gallery_connected.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/gallery_connected.graph -------------------------------------------------------------------------------- /testdata/gallery_connected_merge_links.txt: -------------------------------------------------------------------------------- 1 | x1 y1 x2 y2 2 | 1.32 7.24 4.88 5.24 3 | 1.16 5.28 3.28 7.12 -------------------------------------------------------------------------------- /testdata/gallery_connected_with_isovist.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/gallery_connected_with_isovist.graph -------------------------------------------------------------------------------- /testdata/gallery_empty.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/gallery_empty.graph -------------------------------------------------------------------------------- /testdata/gallery_two_pointmaps.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/gallery_two_pointmaps.graph -------------------------------------------------------------------------------- /testdata/isovists.csv: -------------------------------------------------------------------------------- 1 | id,x,y,angle,viewAngle 2 | 1,1.77,6.6,180,60 3 | 2,3.1,5.6,90,90 4 | -------------------------------------------------------------------------------- /testdata/polygons_drawing.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/polygons_drawing.graph -------------------------------------------------------------------------------- /testdata/polywall.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/polywall.graph -------------------------------------------------------------------------------- /testdata/rect1x1.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/rect1x1.graph -------------------------------------------------------------------------------- /testdata/simple_axlines.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/simple_axlines.graph -------------------------------------------------------------------------------- /testdata/simple_axlines.mid: -------------------------------------------------------------------------------- 1 | 0,2,67.185654 2 | 1,3,50.994308 3 | 2,2,65.140717 4 | 3,2,27.951588 5 | 4,2,12.985298 6 | 5,1,6.2235465 7 | 6,2,11.059984 8 | 7,3,8.5625963 9 | 8,2,12.366808 10 | 9,2,10.829045 11 | 10,3,35.987316 12 | 11,1,6.9935918 13 | 12,1,10.242486 14 | 13,2,6.2006397 15 | 14,1,19.364029 16 | 15,3,16.136318 17 | 16,2,16.580376 18 | -------------------------------------------------------------------------------- /testdata/simple_axlines_pline.mid: -------------------------------------------------------------------------------- 1 | 0,2,67.185654 2 | 1,3,50.994308 3 | 2,2,65.140717 4 | 3,2,27.951588 5 | 4,2,12.985298 6 | 5,1,6.2235465 7 | 6,2,11.059984 8 | 7,3,8.5625963 9 | 8,2,12.366808 10 | 9,2,10.829045 11 | 10,3,35.987316 12 | 11,1,6.9935918 13 | 12,1,10.242486 14 | 13,2,6.2006397 15 | 14,1,19.364029 16 | 15,3,16.136318 17 | 16,2,16.580376 18 | -------------------------------------------------------------------------------- /testdata/turns_connected.graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpaceGroupUCL/depthmapX/02ceaec015452fda5b3b2a8c66bb06787e7b02a0/testdata/turns_connected.graph -------------------------------------------------------------------------------- /tools/build-appimage/depthmapX.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Version=1.0 4 | Name=depthmapX 5 | Exec=depthmapX 6 | Icon=depthmapX 7 | Categories=Science; 8 | -------------------------------------------------------------------------------- /tools/build-image/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:bionic 2 | RUN apt-get -y update && apt-get install -y software-properties-common 3 | RUN add-apt-repository --yes ppa:beineri/opt-qt-5.11.0-bionic 4 | RUN add-apt-repository --yes ppa:deadsnakes/ppa 5 | RUN add-apt-repository ppa:andrew-fuller/cmake 6 | RUN apt-get -y update && apt-get install -y gcc g++ make git libgl1-mesa-dev libglu1-mesa-dev python3.5 clang vim wget qt5113d cmake build-essential qt511tools 7 | VOLUME /mnt/code 8 | WORKDIR /mnt/code 9 | 10 | -------------------------------------------------------------------------------- /tools/build-image/readme.txt: -------------------------------------------------------------------------------- 1 | This is the docker file to build the linux build image for depthmapX builds. 2 | A build should be available in the docker cloud as blackseamonster/depthmapx-buildenv 3 | 4 | Run 5 | docker run -it blackseamonster/depthmapx-buildenv bash 6 | to start up the build image 7 | -------------------------------------------------------------------------------- /tools/build_and_upload.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | timestamp=$(date +%Y.%m.%d.%H.%M.%S) 3 | 4 | if [ $# -ne 3 ]; then 5 | echo "Three arguments are required, runner, sync git path and location of server upload php file" 6 | exit 1 7 | fi 8 | 9 | runner=$1 10 | gitpath=$2 11 | uploadpath=$3 12 | 13 | cd "$(dirname "$0")" 14 | rm -rf depthmapX/ 15 | git clone $gitpath 16 | currentcommit=$(git rev-parse HEAD) 17 | cd depthmapX 18 | mkdir build 19 | cd build 20 | cmake -DCMAKE_BUILD_TYPE=Release .. 21 | make -j 22 | cd ../RegressionTest 23 | python3 RegressionTestRunner.py performance_regression.json 24 | cd ../../ 25 | mkdir -p runs 26 | cd runs 27 | rundir=run-$timestamp 28 | mkdir $rundir 29 | cp -r ../depthmapX/RegressionTest/rundir/* $rundir/ 30 | 31 | cd $rundir 32 | 33 | params="{\"time\":\"$timestamp\",\"runner\":\"$runner\",\"commit\":\"$currentcommit\",\"tests\":[" 34 | 35 | counter="0" 36 | for i in $(find . | grep 'timings_[0-9]\+_[0-9]\+\.csv') 37 | do 38 | newparams=$(csvtool drop 1 $i | csvtool format ',"%(1)":"%(2)"' - | cut -c2-); 39 | #newparams="${newparams// /_}" 40 | if [ "$counter" -eq "1" ]; then 41 | params="${params},"; 42 | fi 43 | params="${params}{\"file\":\"$i\",\"times\":{$newparams}}" 44 | counter="1" 45 | done 46 | 47 | params="${params}]}" 48 | curl --data "$params" $uploadpath 49 | -------------------------------------------------------------------------------- /tools/storePerformanceTest.php: -------------------------------------------------------------------------------- 1 | getTimeStamp() . '.json'; 7 | file_put_contents($fileName, $data, FILE_APPEND | LOCK_EX); 8 | } 9 | ?> -------------------------------------------------------------------------------- /version_defs.h.in: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018 Christian Sailer 2 | // This program is free software: you can redistribute it and/or modify 3 | // it under the terms of the GNU General Public License as published by 4 | // the Free Software Foundation, either version 3 of the License, or 5 | // (at your option) any later version. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License for more details. 11 | 12 | // You should have received a copy of the GNU General Public License 13 | // along with this program. If not, see . 14 | 15 | // This file is autogenerated - do not modify it directly! 16 | 17 | #pragma once 18 | 19 | #ifndef APP_DATE 20 | #define APP_DATE "@APP_DATE@" 21 | #endif 22 | 23 | #ifndef APP_GIT_BRANCH 24 | #define APP_GIT_BRANCH "@APP_BRANCH@" 25 | #endif 26 | 27 | #ifndef APP_GIT_COMMIT 28 | #define APP_GIT_COMMIT "@APP_COMMIT@" 29 | #endif 30 | --------------------------------------------------------------------------------