View Issue Details

IDProjectCategoryView StatusLast Update
0005603DarkRadiantGUIpublic02.04.2022 05:55
Reporterorbweaver Assigned Toorbweaver  
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Product Version2.12.0 
Target Version2.13.0Fixed in Version2.13.0 
Summary0005603: Ability to choose from several different pointfiles
DescriptionThe latest TDM code is capable of writing out .lin files for purposes other than detecting map leaks, such as identifying broken visportals. Currently these .lin files have to be manually renamed so that DarkRadiant will load them with the File->Pointfile menu command.

Instead, we should detect all available .lin files associated with the current map, and show a list of them in a dialog if there is more than one to choose. If there is only one file, it should be loaded without further interaction as per the current behaviour.
TagsNo tags attached.

Relationships

related to 0005492 closedorbweaver Cycle through pointfiles 

Activities

orbweaver

orbweaver

02.06.2021 19:12

developer   ~0014061

Fixed in e3238aca1ab22ea715e6f0ebebcac7d52f15ae25

Related Changesets

DarkRadiant: master ece03600

06.05.2021 19:36

orbweaver


Details Diff
Initial PointTrace class with test

Add a PointTrace class which can parse pointfile data from a std::istream and
construct a vector of point positions. This class is unit tested but not yet
used by the existing PointFile code.
Affected Issues
0005603
add - libs/scene/PointTrace.h Diff File
mod - test/CMakeLists.txt Diff File
add - test/PointTrace.cpp Diff File

DarkRadiant: master 9f575515

06.05.2021 19:52

orbweaver


Details Diff
Test constructing PointTrace with empty data Affected Issues
0005603
mod - test/PointTrace.cpp Diff File

DarkRadiant: master bf131e1e

11.05.2021 19:38

orbweaver


Details Diff
Initial IMap::forEachPointfile() method to enumerate pointfiles

New method with a unit test which is currently trivial because the method does
not yet do anything.
Affected Issues
0005603
mod - include/imap.h Diff File
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/Map.h Diff File
mod - test/PointTrace.cpp Diff File

DarkRadiant: master 6c3af511

11.05.2021 19:42

orbweaver


Details Diff
Add two test .lin files for the altar.map example

Test now fails because there should be two pointfiles enumerated with
forEachPointfile().
Affected Issues
0005603
mod - test/PointTrace.cpp Diff File
add - test/resources/tdm/maps/altar.lin Diff File
add - test/resources/tdm/maps/altar_portalL_544_64_112.lin Diff File

DarkRadiant: master 41764665

12.05.2021 19:20

orbweaver


Details Diff
PointTraceTest now uses the RadiantTest fixture Affected Issues
0005603
mod - test/PointTrace.cpp Diff File

DarkRadiant: master 9fc9017c

12.05.2021 20:22

orbweaver


Details Diff
Functional implementation of forEachPointfile()

Method uses fs::directory_iterator to enumerate files in the directory
containing the map file, and looks for any file with a .lin extension and a
stem which corresponds to the map name (with a possible underscore suffix).
Unit test now passes as a result.
Affected Issues
0005603
mod - radiantcore/map/Map.cpp Diff File

DarkRadiant: master e1072c83

18.05.2021 19:33

orbweaver


Details Diff
Test that pointfiles are not returned for an unrelated map

This test actually provoked a bug in the forEachPointfile() method, which was
not checking if the map directory actually existed before constructing a
directory_iterator, possibly resulting in an exception.
Affected Issues
0005603
mod - radiantcore/map/Map.cpp Diff File
mod - test/PointTrace.cpp Diff File

DarkRadiant: master dc165ce7

18.05.2021 19:46

orbweaver


Details Diff
Test enumerated pointfiles have correct names

PointfileFunctor now accepts fs::path references rather than bare std::strings,
and this information is now recorded and examined in the unit test to ensure
the returned pointfiles have the correct filenames (ignoring parent paths).
Affected Issues
0005603
mod - include/imap.h Diff File
mod - test/PointTrace.cpp Diff File

DarkRadiant: master 2690984f

18.05.2021 20:05

orbweaver


Details Diff
PointFile::parse() makes use of forEachPointfile()

Since there is not yet any selection GUI, the first pointfile found is used.
Currently the pointfile order is undefined if there is more than one present.
Affected Issues
0005603
mod - radiantcore/map/PointFile.cpp Diff File

DarkRadiant: master 884043d3

18.05.2021 20:13

orbweaver


Details Diff
forEachPointfile() sorts pointfile names

Sorting the names lexicographically should ensure that <mapname>.lin is always
first in the list, so the actual leak pointfile will take precedence over any
visportal pointfiles.
Affected Issues
0005603
mod - radiantcore/map/Map.cpp Diff File

DarkRadiant: master dfc0ae4f

19.05.2021 20:09

orbweaver


Details Diff
Confirm PointTrace can return correct point positions

PointTrace has a new method points() which returns the point vector, which is
now examined in the unit test.
Affected Issues
0005603
mod - libs/scene/PointTrace.h Diff File
mod - test/PointTrace.cpp Diff File

DarkRadiant: master 01cd7350

25.05.2021 19:06

orbweaver


Details Diff
Initial dialog for choosing pointfiles

Dialog is shown by File->Pointfile if (and only if) there is more than one
pointfile available. The dialog shows the correct list of files but is rather
useless at the moment since the selection does not have any influence over the
pointfile which is actually loaded.
Affected Issues
0005603
mod - install/menu.xml Diff File
mod - radiant/CMakeLists.txt Diff File
add - radiant/ui/PointFileChooser.cpp Diff File
add - radiant/ui/PointFileChooser.h Diff File
mod - radiant/ui/UserInterfaceModule.cpp Diff File

DarkRadiant: master 5fbe4eec

25.05.2021 20:12

orbweaver


Details Diff
PointFileChooser layout and behaviour tweaks

Fit() the dialog to avoid wasted space. Return without showing the point trace
if the Cancel button is clicked.
Affected Issues
0005603
mod - radiant/ui/PointFileChooser.cpp Diff File

DarkRadiant: master 771a105c

26.05.2021 19:21

orbweaver


Details Diff
Move PointFile into the Map module

The point file is closely associated with the current map, and does not really
benefit from being a module in its own right. Making it a member variable of
the Map module opens the door to exposing current pointfile state through the
IMap public interface.
Affected Issues
0005603
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/Map.h Diff File
mod - radiantcore/map/PointFile.cpp Diff File
mod - radiantcore/map/PointFile.h Diff File

DarkRadiant: master bd647ef4

26.05.2021 19:30

orbweaver


Details Diff
Only show PointFileChooser when making trace visible

Visibility of current trace is exposed through a new method
isPointTraceVisible() on the IMap interface. This method is now used by
PointFileChooser to avoid showing the dialog when hiding the point trace.
Affected Issues
0005603
mod - include/imap.h Diff File
mod - radiant/ui/PointFileChooser.cpp Diff File
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/Map.h Diff File

DarkRadiant: master eba4a9ef

01.06.2021 19:03

orbweaver


Details Diff
Show pointfile selected in PointFileChooser

Add a new method to the IMap interface to show a pointfile specified with an
fs::path. This method is now called by the PointFileChooser to show the
pointfile selected in the wxChoice dropdown.
Affected Issues
0005603
mod - include/imap.h Diff File
mod - radiant/ui/PointFileChooser.cpp Diff File
mod - radiant/ui/PointFileChooser.h Diff File
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/Map.h Diff File
mod - radiantcore/map/PointFile.cpp Diff File
mod - radiantcore/map/PointFile.h Diff File

DarkRadiant: master 7913c055

01.06.2021 19:32

orbweaver


Details Diff
Use PointTrace to parse point data

The parsing code currently covered by unit tests is now used in the main
application.
Affected Issues
0005603
mod - radiantcore/map/PointFile.cpp Diff File

DarkRadiant: master e3238aca

01.06.2021 19:38

orbweaver


Details Diff
Clean up some unneeded methods on PointFile Affected Issues
0005603
mod - radiantcore/map/PointFile.cpp Diff File
mod - radiantcore/map/PointFile.h Diff File

DarkRadiant: master c0e4b437

02.06.2021 18:26

greebo


Details Diff
Merge remote-tracking branch 'remotes/origin/merge_visualisation' Affected Issues
0005603
mod - LICENSE Diff File
add - include/icomparablenode.h Diff File
mod - include/iglrender.h Diff File
mod - include/imap.h Diff File
add - include/imapmerge.h Diff File
mod - include/inode.h Diff File
mod - include/irenderable.h Diff File
mod - include/iselection.h Diff File
add - install/bitmaps/merge_arrow.png Diff File
add - install/bitmaps/merge_fork.png Diff File
add - install/bitmaps/merge_selection_mode.png Diff File
mod - install/menu.xml Diff File
add - install/ui/mergecontroldialog.fbp Diff File
add - install/ui/mergecontroldialog.xrc Diff File
mod - install/user.xml Diff File
mod - libs/UndoFileChangeTracker.h Diff File
mod - libs/math/CMakeLists.txt Diff File
add - libs/math/Hash.h Diff File
add - libs/math/SHA256.cpp Diff File
add - libs/math/SHA256.h Diff File
mod - libs/render/CamRenderer.h Diff File
mod - libs/render/RenderableCollectionWalker.h Diff File
mod - libs/render/VertexHashing.h Diff File
mod - libs/scene/CMakeLists.txt Diff File
mod - libs/scene/Node.cpp Diff File
mod - libs/scene/Node.h Diff File
add - libs/scene/merge/ComparisonResult.h Diff File
add - libs/scene/merge/GraphComparer.cpp Diff File
add - libs/scene/merge/GraphComparer.h Diff File
add - libs/scene/merge/MergeAction.h Diff File
add - libs/scene/merge/MergeOperation.cpp Diff File
add - libs/scene/merge/MergeOperation.h Diff File
mod - libs/scenelib.h Diff File
mod - libs/wxutil/dataview/TreeViewItemStyle.h Diff File
mod - libs/wxutil/preview/RenderPreview.cpp Diff File
mod - libs/wxutil/preview/RenderPreview.h Diff File
mod - radiant/CMakeLists.txt Diff File
mod - radiant/camera/CamWnd.cpp Diff File
mod - radiant/camera/CamWnd.h Diff File
mod - radiant/ui/SelectionModeToggle.h Diff File
mod - radiant/ui/UserInterfaceModule.cpp Diff File
mod - radiant/ui/einspector/EntityInspector.cpp Diff File
mod - radiant/ui/einspector/EntityInspector.h Diff File
add - radiant/ui/merge/MergeControlDialog.cpp Diff File
add - radiant/ui/merge/MergeControlDialog.h Diff File
mod - radiant/xyview/XYRenderer.h Diff File
mod - radiant/xyview/XYWnd.cpp Diff File
mod - radiant/xyview/XYWnd.h Diff File
mod - radiantcore/CMakeLists.txt Diff File
mod - radiantcore/brush/BrushNode.cpp Diff File
mod - radiantcore/brush/BrushNode.h Diff File
mod - radiantcore/entity/EntityNode.cpp Diff File
mod - radiantcore/entity/EntityNode.h Diff File
mod - radiantcore/layers/LayerManager.cpp Diff File
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/Map.h Diff File
mod - radiantcore/map/MapResource.cpp Diff File
add - radiantcore/map/MergeActionNode.cpp Diff File
add - radiantcore/map/MergeActionNode.h Diff File
mod - radiantcore/map/RegionWalkers.h Diff File
mod - radiantcore/map/algorithm/Import.cpp Diff File
mod - radiantcore/map/algorithm/Import.h Diff File
mod - radiantcore/patch/PatchNode.cpp Diff File
mod - radiantcore/patch/PatchNode.h Diff File
mod - radiantcore/rendersystem/backend/OpenGLShader.cpp Diff File
mod - radiantcore/selection/RadiantSelectionSystem.cpp Diff File
mod - radiantcore/selection/RadiantSelectionSystem.h Diff File
mod - radiantcore/selection/SelectionTestWalkers.cpp Diff File
mod - radiantcore/selection/SelectionTestWalkers.h Diff File
mod - radiantcore/selection/algorithm/General.cpp Diff File
mod - test/CMakeLists.txt Diff File
add - test/MapMerging.cpp Diff File
add - test/resources/tdm/maps/fingerprinting.mapx Diff File
add - test/resources/tdm/maps/fingerprinting_2.mapx Diff File
mod - tools/msvc/DarkRadiant.vcxproj Diff File
mod - tools/msvc/DarkRadiant.vcxproj.filters Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj.filters Diff File
mod - tools/msvc/Tests/Tests.vcxproj Diff File
mod - tools/msvc/Tests/Tests.vcxproj.filters Diff File
mod - tools/msvc/include.vcxproj Diff File
mod - tools/msvc/mathlib.vcxproj Diff File
mod - tools/msvc/scenelib.vcxproj Diff File
mod - tools/msvc/scenelib.vcxproj.filters Diff File

Issue History

Date Modified Username Field Change
04.05.2021 20:05 orbweaver New Issue
04.05.2021 20:05 orbweaver Status new => assigned
04.05.2021 20:05 orbweaver Assigned To => orbweaver
18.05.2021 16:35 Dragofer Relationship added related to 0005492
02.06.2021 19:12 orbweaver Status assigned => resolved
02.06.2021 19:12 orbweaver Resolution open => fixed
02.06.2021 19:12 orbweaver Fixed in Version => 2.13.0
02.06.2021 19:12 orbweaver Note Added: 0014061
02.06.2021 19:56 greebo Changeset attached => DarkRadiant master c0e4b437
02.06.2021 19:56 greebo Changeset attached => DarkRadiant master 7913c055
02.06.2021 19:57 greebo Changeset attached => DarkRadiant master eba4a9ef
02.06.2021 19:57 greebo Changeset attached => DarkRadiant master e3238aca
02.06.2021 19:58 greebo Changeset attached => DarkRadiant master bd647ef4
02.06.2021 19:59 greebo Changeset attached => DarkRadiant master 771a105c
02.06.2021 20:00 greebo Changeset attached => DarkRadiant master 5fbe4eec
02.06.2021 20:00 greebo Changeset attached => DarkRadiant master 01cd7350
02.06.2021 20:01 greebo Changeset attached => DarkRadiant master dfc0ae4f
02.06.2021 20:01 greebo Changeset attached => DarkRadiant master 9fc9017c
02.06.2021 20:01 greebo Changeset attached => DarkRadiant master 884043d3
02.06.2021 20:01 greebo Changeset attached => DarkRadiant master 2690984f
02.06.2021 20:02 greebo Changeset attached => DarkRadiant master dc165ce7
02.06.2021 20:02 greebo Changeset attached => DarkRadiant master e1072c83
02.06.2021 20:02 greebo Changeset attached => DarkRadiant master 41764665
02.06.2021 20:02 greebo Changeset attached => DarkRadiant master 6c3af511
02.06.2021 20:02 greebo Changeset attached => DarkRadiant master bf131e1e
02.06.2021 20:02 greebo Changeset attached => DarkRadiant master 9f575515
02.06.2021 20:03 greebo Changeset attached => DarkRadiant master ece03600
02.04.2022 05:55 greebo Status resolved => closed