View Issue Details

IDProjectCategoryView StatusLast Update
0005770DarkRadiantMap Editingpublic03.10.2021 05:05
ReporterMirceaKitsune Assigned Togreebo  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformLinuxOSManjaroOS VersionStable
Product Version2.14.0 
Target Version2.14.0Fixed in Version2.14.0 
Summary0005770: Some brushes change shape or disappear when rotated or duplicated
DescriptionSome brushes will disappear when you rotate them or use space to duplicate. If you keep the brush selected, the boundary markers in the 2D viewports will indicate the now invisible selection is stretching out to infinity.

I made a copy of my map where I noticed this issue leaving only an affected visportal in: Open this map in DR, select the vis brush at the center, then use the rotate Z shortcut button. You should notice the brush disappear and the selection marker stretch out to infinity.
Additional InformationThe issue must have been introduced sometime this or last week: I updated and compiled DR roughly a week ago and don't believe I was getting this issue, it started occurring after I did so again last night.
TagsNo tags attached.

Activities

MirceaKitsune

MirceaKitsune

02.10.2021 17:57

reporter  

test.map (574 bytes)   
Version 2
// entity 0
{
"classname" "worldspawn"
// primitive 0
{
brushDef3
{
( 0 1 0 -16 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/nodraw" 0 0 0
( 0 0 -1 0 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/nodraw" 0 0 0
( 0 -1 0 0 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/editor/visportal" 0 0 0
( 0 0 1 -100 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/nodraw" 0 0 0
( -1 0 0 144 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/nodraw" 0 0 0
( 1 0 0 -240 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/nodraw" 0 0 0
}
}
}
test.map (574 bytes)   

Related Changesets

DarkRadiant: master 549372e7

2021-10-02 18:21:43

greebo

Details Diff
0005770: Craft unit test to reproduce the problem at hand Affected Issues
0005770
mod - test/Brush.cpp Diff File

DarkRadiant: master 8385d906

2021-10-03 04:19:14

greebo

Details Diff
0005770: Remove the EmitTextureCoordinates call from Face::revertTransform(), as this triggers a full brush transform evaluation through some obscure callbacks. Rather than touching this pile of traps, there'll be a separate change to fix the texture tool rotation behaviour. Affected Issues
0005770
mod - radiantcore/brush/Face.cpp Diff File

DarkRadiant: master c75a91bd

2021-10-03 04:35:39

greebo

Details Diff
0005770: Change emitTextureCoordinates() behaviour to not call Face::plane3() which triggers a lot of callbacks internally. Instead, use the m_planeTransformed member which is up to date enough for all the call sites I checked. Texture coordinates are usually emitted long after the rest of the transform is calculated (in particular the normal vector), so it's not necessary to trigger some lazy transform evaluation callback just to apply the texture matrix. The method emitTextureCoordinates should do just as the name states, it's the job of the caller to make sure the normal vector is ready before emitTextureCoordinates is called. Affected Issues
0005770
mod - radiantcore/brush/Brush.cpp Diff File
mod - radiantcore/brush/Face.cpp Diff File
mod - radiantcore/brush/Face.h Diff File

DarkRadiant: master 601c7489

2021-10-03 05:04:52

greebo

Details Diff
0005770: Expand unit tests to cover all three rotation commands on a defined brush: RotateSelectionX; RotateSelectionY; RotateSelectionZ Affected Issues
0005770
mod - test/Brush.cpp Diff File

Issue History

Date Modified Username Field Change
02.10.2021 17:57 MirceaKitsune New Issue
02.10.2021 17:57 MirceaKitsune Tag Attached: Bug
02.10.2021 17:57 MirceaKitsune File Added: test.map
02.10.2021 17:57 MirceaKitsune File Added: Screenshot_20211002_200621.png.cfd8fd2f8d6817fd8066a8090e76ddf9.png
02.10.2021 18:14 greebo Status new => confirmed
02.10.2021 18:14 greebo Product Version 2.13.0 => 2.14.0
02.10.2021 18:14 greebo Target Version => 2.14.0
02.10.2021 18:15 greebo Assigned To => greebo
02.10.2021 18:15 greebo Status confirmed => assigned
02.10.2021 18:15 greebo Priority high => normal
02.10.2021 18:15 greebo Tag Detached: Bug
02.10.2021 18:15 greebo Reproducibility sometimes => always
03.10.2021 05:05 greebo Changeset attached => DarkRadiant master 549372e7
03.10.2021 05:05 greebo Changeset attached => DarkRadiant master 8385d906
03.10.2021 05:05 greebo Changeset attached => DarkRadiant master c75a91bd
03.10.2021 05:05 greebo Changeset attached => DarkRadiant master 601c7489
03.10.2021 05:05 greebo Status assigned => resolved
03.10.2021 05:05 greebo Resolution open => fixed
03.10.2021 05:05 greebo Fixed in Version => 2.14.0