View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002937||DarkRadiant||Map Editing||public||24.11.2011 22:37||11.10.2012 19:03|
|Priority||normal||Severity||normal||Reproducibility||have not tried|
|Target Version||1.7.0||Fixed in Version||1.7.0|
|Summary||0002937: Clipping a worldspawn brush in layer A will make the new clipped brush disappear if the preferred layer is not visible|
|Description||Not sure what the official term for it is, but you can select a layer to be the preferred layer, where new brushes go.|
However, when clipping a brush, all parts should end up in the same layer as the original brush. With 1.7.0 pre12, the new part(s) go into the preferred layer. If that's not visible at the time, the new parts disappear.
edit greebo: It only appears to go into the invisible (and preferred) default layer: in fact the node is properly inheriting the layer set from the brush it's been clipped off, but its visibility is wrongly calculated and hence it disappears after the clip operation.
|Steps To Reproduce||1. Create a new layer "Test"|
2. Create a new brush
3. Move the brush into the new layer "Test"
4. Hide all layers, this will make the invisible "Default" layer the active one
5. Show the "Test" layer
6. Select the brush and clip off a part (using Shift-Enter)
7. The clipped part disappears, even though it's actually in the visible "Test" layer.
|Tags||No tags attached.|
This still happens in 1.7.0.
It's disconcerting to have clipped parts disappear, even if I do know where they've gone. Then I have to go retrieve them.
|The reproduction steps as above are working as intended, the clipped part doesn't disappear. Do you have specific steps that are different to those above?|
I just re-checked this.
Given a single visible layer A and a hidden layer Default, where Default is the preferred layer:
Clip a brush in A and the clipped part disappears. It's left in A, but hidden.
Unhide Default and the clipped part appears.
This happens to me quite often, especially at the start of a session, because when a map is loaded, Default is made the preferred layer. I'll hide all layers, make the layer I want to work in visible, forget to make it preferred, and eventually run into this problem.
I can't reproduce it, I tried these steps:
Open DarkRadiant, empty map.
Create a brush
Create a layer A
Move the brush to layer A
Hit "Hide all", this makes the Default "active" (marked by the star)
Show the layer A, the brush re-appears
Now the layer A is visible, the hidden Default layer is still active.
Select the brush
Set to clip points on the brush
Hit Shift-Enter to split the brush in two.
Both are visible, are they not?
No. One half disappeared.
After the clipped part disappeared, I did this:
Hit ESC to deselect the part of the clipped brush that remained on the screen.
Drew another brush off to one side. At the first drag of the mouse to draw the new brush, the clipped part that had disappeared, reappeared. The new brush that I was drawing was invisible, with only the dimensions showing. Upon checking, the new brush was placed in the Default layer, which I would expect, because that was the preferred layer.
Just to make sure we're using the same DR:
I downloaded the latest Windows 64-bit 1.7.0 version from the DR download page soon after you announced it. It was a fresh download into a new directory; no overwrites. DarkRadiant.exe is time-stamped 11/26/11 8:21PM and the About info says it was built Nov 26, 2011 at 20:17:06.
Damn it, I followed the exact steps above another time and I still can't get the part to disappear - there must be something different in the way we are doing that clipping. Can you maybe post some screenshots documenting the steps leading up to the problem, maybe I'm placing the clip points wrong, I don't know.
The DR version is the correct one, that's the latest release. I'm using the SVN build, but there's virtually no difference between SVN and release.
Shots.zip (2,786,048 bytes)
Pics are in the attached file "Shots.zip".
Open DarkRadiant, empty map. [Shot_1]
Create a brush [Shot_2]
Create a layer A [Shot_3]
Move the brush to layer A [Shot_4 - brush is now hidden when A is hidden]
Hit "Hide all", this makes the Default "active" (marked by the star) [Shot_5]
Show the layer A, the brush re-appears [Shot_6]
Now the layer A is visible, the hidden Default layer is still active. [Shot_6]
Select the brush
Set two clip points on the brush [Shot_7]
Hit Shift-Enter to split the brush in two. [Shot_8]
Note that the hidden half is still selected, as evidenced by the dimensions shown on the ortho view. It's still in A, but it isn't painted.
It's insane, I followed the directions and screenshots exactly (made the brush at the same spot and dimensions, set the clip points in the same order, etc.), but the brush part doesn't disappear!
Are you sure the part is going into Default? Or is it just a matter of having a refresh? What happens if you hide the layer "A" and show it again? Does the brush part reappear?
The new part remains in A (good), but isn't drawn on the screen (bad).
If I do anything that causes the screens to refresh, it pops into view. For example, drawing a new brush off to the side: Left-click, drag, lift mouse button. When the drag begins, the hidden brush appears.
If--after the clip and the part disappears--I simply hide A and show it again, the hidden part appears.
|Well, maybe it's enough to place a screen refresh call after the clip operation. Is it enough to move the orthoview to make it reappear or do you actually have to show/hide layers or drag new brushes?|
|Ok, I'll be damned, I just took the release binaries I uploaded to sourceforge, and behold, I can see the problem there, exactly as you described it! I don't know if I can debug it well enough since it's a release build, but it could as well just be a compilation weirdness.|
It actually appears to be a compilation issue. When loading the symbols after attaching to the release binaries the code from BrushByPlaneClipper.cpp cannot be hit properly - and when stepping through the code it's easy to see that the layers get assigned AFTER the brush's visibility has been updated, which is indeed the code as it was before my fix above.
I guess a 1.7.1 build will be produced within the next weeks/month anyway, so expect it to be fixed there. If it is a large problem for you while mapping I can produce a pre-release build, if you want me to.
Thanks for finding it.
I don't need an interim release.
|24.11.2011 22:37||grayman||New Issue|
|25.11.2011 05:25||greebo||Status||new => confirmed|
|25.11.2011 05:27||greebo||Summary||Clipping a worldspawn brush that's in layer A will place the new clipped brush in the preferred layer => Clipping a worldspawn brush in layer A will make the new clipped brush disappear if the preferred layer is not visible|
|25.11.2011 05:27||greebo||Description Updated||View Revisions|
|25.11.2011 05:27||greebo||Assigned To||=> greebo|
|25.11.2011 05:27||greebo||Status||confirmed => assigned|
|25.11.2011 05:27||greebo||Target Version||=> 1.7.0|
|25.11.2011 05:32||greebo||Steps to Reproduce Updated||View Revisions|
|25.11.2011 05:34||greebo||Status||assigned => resolved|
|25.11.2011 05:34||greebo||Fixed in Version||=> 1.7.0|
|25.11.2011 05:34||greebo||Resolution||open => fixed|
|30.11.2011 15:18||grayman||Note Added: 0004179|
|30.11.2011 15:18||grayman||Resolution||fixed => reopened|
|30.11.2011 16:06||greebo||Note Added: 0004180|
|30.11.2011 17:32||grayman||Note Added: 0004181|
|30.11.2011 17:34||grayman||Note Edited: 0004181||View Revisions|
|30.11.2011 18:26||greebo||Note Added: 0004182|
|30.11.2011 19:03||grayman||Note Added: 0004183|
|01.12.2011 15:06||greebo||Note Added: 0004184|
|01.12.2011 16:10||grayman||File Added: Shots.zip|
|01.12.2011 16:17||grayman||Note Added: 0004185|
|01.12.2011 17:17||greebo||Note Added: 0004186|
|01.12.2011 18:15||grayman||Note Added: 0004187|
|01.12.2011 18:50||greebo||Note Added: 0004188|
|01.12.2011 18:56||greebo||Note Added: 0004189|
|01.12.2011 19:21||greebo||Note Added: 0004190|
|01.12.2011 19:57||grayman||Note Added: 0004191|
|11.10.2012 19:03||greebo||Status||resolved => closed|