Commit Graph

29 Commits

Author SHA1 Message Date
Richard TalbotWatkin
9771f61759 Added facility to automatically adjust the pivot offset for Brushes when they are edited in Geometry Mode, so the pivot stays centered on the vertices.
#jira UE-16415 - The origin of a BSP brush stays in place while youÆre editing the brush in Geometry mode, often leaving the origin (and default rotation point) floating off in space.

[CL 2634054 by Richard TalbotWatkin in Main branch]
2015-07-27 12:49:14 -04:00
Richard TalbotWatkin
6f55d19959 Deprecated BrushComponent PrePivot. Replacement is a generic pivot offset property on AActor which is used when positioning the pivot for selected actors in the editor. Improved viewport click handling.
#jira UE-16419 - If you right click on a vert to snap a pivot of a brush to that location, it will automatically reset the pivot back to the origin after your next mouse click.
#reviewedby Matt.Kuhlenschmidt

[CL 2612043 by Richard TalbotWatkin in Main branch]
2015-07-07 03:41:52 -04:00
Richard TalbotWatkin
d197407b42 Major optimizations to the BSP building process, and BSP Undo.
#jira UE-16405 - Hitch occurs when undoing BSP manipulations

Summary of changes:
- Added 'fuzzy map' for quick look up of nearly equal FVectors, improving the BSP rebuild algorithm from O(n^4) to O(n*m) where m is much smaller than n.
- Added 'fuzzy map' for quick look up of nearly equal FPlanes, improving plane merging from O(n^2) to O(n).
- Changed TTransArrays in UModel to regular arrays, to remove a lot of transaction modifies during BSP rebuild.
- UModel array allocations are now allocated upfront where possible, instead of constant dynamic resizing.
- Optimized algorithm used by UModelComponent::GenerateElements to reduce allocations and simplify map lookups.
- Removed call to ULevel::CommitModelSurfaces in UModelComponent::PostEditUndo, which was causing an enormous amount of unnecessary work on each undo operation.  It is now done, as ever, by UWorld::Tick.

#reviewedby Matt.Kuhlenschmidt

[CL 2600444 by Richard TalbotWatkin in Main branch]
2015-06-25 09:42:17 -04:00
Richard TalbotWatkin
f0f2e3a870 Geometry Optimize operation first performs a triangulation so that it works correctly.
#jira UE-16416 - Sometimes you have to fully triangulate a brush before optimizing it.

[CL 2596972 by Richard TalbotWatkin in Main branch]
2015-06-23 09:43:20 -04:00
Matt Kuhlenschmidt
bd4f2b6f2a Fix BSP not rebuilding in some cases
https://jira.ol.epicgames.net/browse/UE-13720
https://jira.ol.epicgames.net/browse/UE-13849

[CL 2514346 by Matt Kuhlenschmidt in Main branch]
2015-04-16 11:45:01 -04:00
Matt Kuhlenschmidt
5420992119 Made BSP hit proxies use weak pointers to avoid stale data still in the hit proxy buffers when BSP geometry is recreated
[CL 2500341 by Matt Kuhlenschmidt in Main branch]
2015-04-02 16:34:30 -04:00
Richard TalbotWatkin
46bd61cb51 Fixed bugs in the Brush Clip tool.
#jira UE-12430 - BSP brushes that have been brush clipped cannot be copied and pasted between maps
#jira UE-12122 - Editing duplicated BSP brushes also edits the original brush

The new UModel is created as an inner object of the new Brush, meaning that it has no external path and hence imports correctly.

[CL 2498929 by Richard TalbotWatkin in Main branch]
2015-04-01 14:56:26 -04:00
Richard TalbotWatkin
ade33c7e7d Added ToolTip text to the various geometry modifier widgets.
#jira UE-8828 - No tooltips for Geometry Editing buttons

[CL 2450198 by Richard TalbotWatkin in Main branch]
2015-02-18 10:58:17 -05:00
Richard TalbotWatkin
f02e7dbbed Fixed edit/extrude BSP operation with multiply selected brushes. Also fixed scale for the limited case that there is exactly one surface selected.
#jira UE-7507 - Vertex editing 2 BSP brushes simultaneously reverts to local movement for brushes that have been rotated

[CL 2438298 by Richard TalbotWatkin in Main branch]
2015-02-09 12:06:26 -05:00
Mikolaj Sieluzycki
fa01cacb6c Trim down the amount of UObject constructors.
#codereview Robert.Manuszewski

[CL 2429641 by Mikolaj Sieluzycki in Main branch]
2015-02-03 05:40:57 -05:00
Richard TalbotWatkin
e269280233 Fixed crash when attempting to turn an edge in Geometry Mode whose associated polys are coincident.
#jira UE-7210 - Crash occurs when selecting turn on a BSP edge that only has one triangle

[CL 2427865 by Richard TalbotWatkin in Main branch]
2015-02-02 03:30:06 -05:00
Robert Manuszewski
e56a5b49ee Deprecating 'operator new' for UObjects.
[CL 2425600 by Robert Manuszewski in Main branch]
2015-01-30 08:30:03 -05:00
Richard TalbotWatkin
d2d22eabb2 Fixed assert when building a brush with a spiral arrangement of vertices.
#jira UE-1430 - CRITICAL: Regression: CRASH: pressing enter to close geometry made with Pen tool

[CL 2403501 by Richard TalbotWatkin in Main branch]
2015-01-12 11:19:13 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Matthew Griffin
f1c4513760 Renaming FVector ClampSize and SafeNormal functions for clarity
Used DEPRECATED Macro to keep old names around in case I've missed anything

[CL 2370785 by Matthew Griffin in Main branch]
2014-11-26 10:01:12 -05:00
Richard TalbotWatkin
2f4cadef25 Fixed vertex editing in geometry mode with rotated/scaled brushes.
#jira UE-5794 - The translation widget uses a BSP's initial position when Geometry Editing after rotating

[CL 2370697 by Richard TalbotWatkin in Main branch]
2014-11-26 07:06:03 -05:00
Mikolaj Sieluzycki
51f5333986 Prepare cpp files for header cleanup.
#codereview Robert.Manuszewski

[CL 2356864 by Mikolaj Sieluzycki in Main branch]
2014-11-12 04:58:53 -05:00
Robert Manuszewski
af80979bb7 First phase of deprecating TSubobjectPtr<> replacing TSubobjectPtr properties in the Engine with normal pointers and adding subobject accessors for derived classes/client code.
[CL 2331521 by Robert Manuszewski in Main branch]
2014-10-16 09:02:30 -04:00
Wes Hunt
31e2bb00ac Removed a bunch of stuff from Slate standard include, created SlateBasics.h
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN

[CL 2329610 by Wes Hunt in Main branch]
2014-10-14 22:50:06 -04:00
Jaroslaw Palczynski
7c41927cf4 Rename FPostConstructInitializeProperties to something simpler
Changed it with FObjectInitializer.

UECORE-7

[CL 2328384 by Jaroslaw Palczynski in Main branch]
2014-10-14 10:29:11 -04:00
Jaroslaw Palczynski
65ba5d456f TArray documentation and a coupld of methods deprecation.
Changes mostly in Array.h. The changes in other files are only renames for deprecated functions.

[CL 2312616 by Jaroslaw Palczynski in Main branch]
2014-09-29 04:23:44 -04:00
Andrew Rodham
ba3528c9d4 Made it possible for asset editors to maintain their own FEditorModeTools lists
Breaking changes include:
    * Rename of GEditorModeTools -> GLevelEditorModeTools to signify that it applies only to the level editor modes
    * Addition of FEditorModeRegistry, responsible for managing and creating new editor modes. Modes are no longer registered with an instance of the mode, instead with a mode factory that is able to create a new mode of that type.
    * Editor modes now operate on FEditorViewportClients rather than FLevelEditorViewportClients
    * Added ability to specify an FEditorModeTools when creating an FEditorViewport

Moved component vizualiser manager handling outside of individual editor modes, and into FLevelEditorViewportClient. This should make it easier to transplant in future.

This work addresses TTP#334640 - EDITOR: Investigate making editor modes a per-'editor' concept

Reviewed by Michael Noland, Matt Kuhlenschmidt

[CL 2109245 by Andrew Rodham in Main branch]
2014-06-18 10:16:16 -04:00
bruce nesbit
40e74f4470 Removed assumption from GetBrush that second actor is always a brush and renamed it to GetDefaultBrush. Replaced GetBrush with GetDefaultBrush and made GetBrush deprecated. Revised comments appropriatley.
Fixes TTP 337889 - STRATEGYGAME: VEHICLEGAME: CRASH: Console command 'Show Collision" crashes Standalone window

[CL 2102892 by bruce nesbit in Main branch]
2014-06-12 04:17:47 -04:00
James Golding
359f5e6254 Removed several more rarely-used-externally headers from Engine.h
Remove EmitterSpawnable class

[CL 2083051 by James Golding in Main branch]
2014-05-29 16:47:33 -04:00
James Golding
a0cbafe73a First pass removing several headers from Engine.h
[CL 2080322 by James Golding in Main branch]
2014-05-21 10:00:58 -04:00