View Issue Details

IDProjectCategoryView StatusLast Update
0005132DarkRadiantMap Editingpublic03.05.2020 13:27
ReporterDragofer Assigned Togreebo  
PrioritylowSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
OSWindowsOS Version10 
Product Version2.7.0 
Target Version2.8.0Fixed in Version2.8.0 
Summary0005132: Undo after thickening a cylinder cap along vertex normals causes crash
DescriptionIt's possible to create a cap for a cylinder patch via 'Patch' -> 'Cap Selection'. If I try to do this backwards, as in 'thicken' the cap to create a cylinder, the map's patch count increases but nothing visible or selectable is created. If I then press undo for this step DR will crash to desktop.
Steps To Reproduce1) Create a cylinder patch
2) Select cylinder patch -> Patch -> Cap Selection -> Cylinder -> Ok
3) Deselect the uppermost cap and hit delete. There is now only 1 patch in the map, a cap
4) Select cap patch -> Patch -> Thicken Selected Patches -> Extrude along Vertex Normals, 16 units, Create Seams -> Ok
5) The map now has 2 patches, but only the cap is visible or selectable
6) Press Undo. DR crashes to desktop
TagsNo tags attached.

Relationships

related to 0005224 confirmed 'Thicken Selected Patches' along vertex normals on a cylinder cap produces deformed shape 

Activities

greebo

greebo

23.03.2020 18:45

administrator   ~0012301

Attached map contains the cylinder cap patch, as described above.
cylinder_cap.map (529 bytes)   
Version 2
// entity 0
{
"classname" "worldspawn"
"editor_drLastCameraPos" "-231.882 -91.8032 171.492"
"editor_drLastCameraAngle" "-26.4 24.3 0"
// primitive 0
{
patchDef2
{
"_default"
( 3 5 0 0 0 )
(
( ( -64 0 64 0 0 ) ( -64 64 64 0 -2.5 ) ( 0 64 64 0 -5 ) ( 64 64 64 0 -7.5 ) ( 64 0 64 0 -10 ) )
( ( -64 0 64 2.5 0 ) ( -64 0 64 2.5 -2.5 ) ( 0 0 64 2.5 -5 ) ( 64 0 64 2.5 -7.5 ) ( 64 0 64 2.5 -10 ) )
( ( -64 0 64 5 0 ) ( -64 -64 64 5 -2.5 ) ( 0 -64 64 5 -5 ) ( 64 -64 64 5 -7.5 ) ( 64 0 64 5 -10 ) )
)
}
}
}
cylinder_cap.map (529 bytes)   

Related Changesets

DarkRadiant: master e1c31bb7

2020-03-23 04:56:02

greebo

Details Diff
Fix the crash described in 0005132. Patches were submitting UndoMementos to the undo system even though they ended up not being added to the scene.
The new approach is to only add them to the scene after it's clear they are going to be kept.
Affected Issues
0005132
mod - radiant/patch/Patch.cpp Diff File
mod - radiant/patch/algorithm/General.cpp Diff File

DarkRadiant: master b80a9add

2020-03-23 18:43:21

greebo

Details Diff
Resolve 0005132: Refactor and harden patch thicken algorithm a bit. Some patches have one or more control vertices in the same spot, leading to degenerate tangents, which in turn are producing degenerate normals. Don't attempt to normalise those, instead use a 0,0,0 normal to extrude that bogus patch. The result of the thickening is probably unusable anyway, but at least no invisible patches with invalid control vertices are added to the scene. Affected Issues
0005132
mod - radiant/patch/Patch.cpp Diff File

Issue History

Date Modified Username Field Change
22.01.2020 10:58 Dragofer New Issue
22.01.2020 16:06 greebo Status new => acknowledged
22.03.2020 18:27 greebo Status acknowledged => confirmed
23.03.2020 04:56 greebo Assigned To => greebo
23.03.2020 04:56 greebo Status confirmed => assigned
23.03.2020 04:56 greebo Target Version => 2.8.0
23.03.2020 06:03 greebo Changeset attached => DarkRadiant master e1c31bb7
23.03.2020 18:43 greebo Changeset attached => DarkRadiant master b80a9add
23.03.2020 18:43 greebo Resolution open => fixed
23.03.2020 18:44 greebo Status assigned => resolved
23.03.2020 18:44 greebo Fixed in Version => 2.8.0
23.03.2020 18:45 greebo Note Added: 0012301
23.03.2020 18:45 greebo File Added: cylinder_cap.map
24.04.2020 12:21 Dragofer Relationship added related to 0005224
03.05.2020 13:23 greebo Changeset attached => DarkRadiant core_module decc490e
03.05.2020 13:23 greebo Changeset attached => DarkRadiant core_module 7ac46e32
03.05.2020 13:27 greebo Changeset removed DarkRadiant core_module 7ac46e32 =>
03.05.2020 13:27 greebo Changeset removed DarkRadiant core_module decc490e =>