Commit Graph

30 Commits

Author SHA1 Message Date
Matt Kuhlenschmidt
2927051971 Fixed crash importing a static mesh with no triangles and then opening the mesh in the static mesh editor
[CL 2247575 by Matt Kuhlenschmidt in Main branch]
2014-08-07 17:19:22 -04:00
Andrew Brown
9678ba5a26 More modified analytics to include .Usage in the name
[CL 2244095 by Andrew Brown in Main branch]
2014-08-05 05:38:43 -04:00
Andrew Brown
3cb097972c Modified analytics to include .Usage in the name
[CL 2239630 by Andrew Brown in Main branch]
2014-08-01 05:31:22 -04:00
Andrew Brown
bf0f2fffdd Added analytics reporting to the static mesh editor
#ttp 340613 - FIXIF: EDITOR:ANALYTICS: Static Mesh Editor Instrumentation Pass

#branch UE4

#added Added analytics for various static mesh editor usage, making sure not to spam events when spinboxes are used and only report when the value actually changes.

#added Added analytics whenever an asset is reimported (if via an editor, the editor will then report that it was it that did the reimporting)

reviewed by Thomas.Sarkanen

[CL 2229618 by Andrew Brown in Main branch]
2014-07-24 04:28:41 -04:00
Andrew Brown
1c7d3a69c6 Modifying the existing static mesh import options enables a button which allows the user to reimport
#ttp 340526 - Static mesh editor: changing the static meshes normals setting from "import normals" to "compute normals" doesn't change the mesh until the user reimports the asset

#branch UE4

#add Added button to reimport based on the current import options (no button will appear if there are no options to modify)

#change Modified import options so they get marked as dirty until they are reimported (button will be unclickable unless they are)

reviewed by Thomas.Sarkanen

[CL 2217535 by Andrew Brown in Main branch]
2014-07-15 05:54:01 -04:00
Martin Wilson
a1355bdf96 non unity fixes
[CL 2169885 by Martin Wilson in Main branch]
2014-07-07 09:51:03 -04:00
Richard TalbotWatkin
bd1dea4bc9 Moved static mesh stat info text into Slate UI.
#ttp 339600 - Move static mesh stat info out of canvas and into StaticMeshEditor Slate UI
#branch UE4
#proj Editor.EditorStyle, Editor.StaticMeshEditor
#add Added a parameter to the StaticMeshEditorViewportClient to pass in a weak ptr to the viewport widget which owns it.  This is so that, on Draw calls, we can update one of its child Slate widgets.
#add Created a struct SStaticMeshEditorViewport::FOverlayTextItem which represents one item of overlay text, and a method SStaticMeshEditorViewport::PopulateOverlayText() which populates the Slate SVerticalBox in the SOverlay with these text blocks.
#add Created a couple of new SlateEditorStyles - shadowed text (normal), and shadowed text (error).
#change Changed FStaticMeshEditorViewportClient::DrawCanvas() to populate an FOverlayTextItem array and call PopulateOverlayText on the owning widget to update the overlay widget.
#reviewedby Chris.Wood

[CL 2169037 by Richard TalbotWatkin in Main branch]
2014-07-07 07:00:18 -04:00
Andrew Brown
e8e05f7d17 Static Mesh Editor: Ctrl+W now duplicates correctly.
#ttp 338927 - EDITOR: Static Mesh: Unable to duplicate collision primitives with hotkey

#branch UE4

#change W input was getting swallowed by the input to switch between widget maninpulation types - converted this over to use the UICommands that are setup

reviewed by Thomas.Sarkanen

[CL 2111775 by Andrew Brown in Main branch]
2014-06-20 10:21:46 -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
Mikolaj Sieluzycki
5d03a01712 Remove redundant headers from Engine.h.
#proj core
#branch UE4
#summary Remove redundant headers from Engine.h. (NavDataGenerator.h NavLinkRenderingProxy.h NavigationModifier.h NavigationOctree.h ContentStreaming.h ComponentReregisterContext.h InstancedFoliage.h UnrealExporter.h EngineService.h NavigationSystemHelpers.h HardwareInfo.h EngineModule.h)
#codereview Robert.Manuszewski

[CL 2109115 by Mikolaj Sieluzycki in Main branch]
2014-06-18 07:25:31 -04:00
Jaroslaw Palczynski
ebce413232 UE4 Refactoring. Changed OVERRIDE and FINAL macros to keywords override and final.
[CL 2104397 by Jaroslaw Palczynski in Main branch]
2014-06-13 06:14:46 -04:00
Andrew Brown
b0f3feca6f Static mesh editor can now create Box/Sphyl and have multiple collision primitives, which can be manipulated.
#ttp 334968 - TOOLS FEATURE: Add primitive collision inside the static mesh editor

#branch UE4

#change
GenerateSimpleCollision funcs now return true if any collision was built
Moved Prompt to build collision into a func (to remove duplicate code), and modified so that the options are Yes=Replace, No=Add-To, Cancel = Cancel.
Added CalcBoundingSphyl code which is loosely based on the Sphere code in that it finds the best axis to align the sphyl with (but locally rotates so it can treat the Z axis as length, regardless). It they finds the radius to best enclose the Sphyl (same as Sphere, but 2D). Then it increase the length of the Sphyl until that encapsulates all the remaining points.

Replace instances of AddZeroed with Add(FKTypeElem()) so that the vtable would be created correctly if a base struct was introduced.
Moved PhysX code which scales the Elems from ModifyPrimitiveSize to their own struct func (ScaleElem) so that it could be used elsewhere.

Added new struct FPrimData which contains the PrimType and PrimIndex so we can look the corresponding collision Elem up in our BodySetup. The static mesh editor session which is open for a particular static mesh keeps track of these using the following:
IsPrimValid û Checks to see if the prim data could be valid
HasSelectedPrims û Returns true if there are any selected prims
IsSelectedPrim û Check to see if the prim data is selected
AddSelectedPrim û Adds prim data to our selection
RemoveSelectedPrim û Removes prim data from our selection
RemoveInvalidPrism - Removes any prims which are no longer valid from the selection
ClearSelectedPrims û Removes all the prim data from our selection
DuplicateSelectedPrims û Duplicates the selected prims
TranslateSelectedPrims - Translates the selected prims by a specified amount
RotateSelectedPrims - Rotates the selected prims by a specified amount
ScaleSelectedPrims - Scales the selected prims by a specified amount
CalcSelectedPrimsAABB - Calculates the bounding box of the selected prims
DeleteSelectedPrims û Deletes the selected prims
GetLastSelectedPrimTransform û Gets the transform of the last prim which was added to the selection.
GetPrimTransform - Gets the transform of a specified prim
SetPrimTransform - Sets the transform of a specified prim
Added placeholder calls to begin/end transaction where itÆs needed whenever the bodysetup prims are modified.

Added new Static Mesh Editor menu option to create a capsule/sphyl
Added dedicated collision toggle flag to the Static Mesh Editor so we could manage our own handling of the draw functions in order to inject hit proxies where needed so we can test when theyÆve been clicked on in the viewport.
Widget now works when selecting collision Elems. Space toggles the manipulation method.
SelectedPrims can be trans/rot/scaled using the editor widget.
Prims can be duplicated or deleted either using menu entries or keyboard shortcuts. Alt+drag is also supported for duplication.
ProcessClick was updated so that whenever a new selection type is clicked on the previous types are deselected (sockets, prims, edges), and other code location were updated to clear the selected prims where appropriate.
Modified OnFocusViewportToSelection so that it also focuses on the selected elems too
Modified SetSelectedSocket so that when passing NULL it deselects all the sockets

[CL 2104326 by Andrew Brown in Main branch]
2014-06-13 05:03:24 -04:00
Daniel Wright
1464dcf2c3 Distance field AO using a surface cache
* Provides mid-range stable AO for dynamic rigid meshes
* Movable sky lights are now supported, and distance field AO is used for shadowing Movable sky lighting from dynamic scenes
* Static meshes are preprocessed into signed distance field volumes at mesh build time when the r.AllowMeshDistanceFieldRepresentations project setting is enabled
* Non-uniform scaling does not work with this method (mirroring is fine), animating through world position offset also causes artifacts as the two representations diverge
* Occlusion is computed along cones to reduce over-shadowing, object distance fields are operated on directly (no hierarchy) to obtain enough resolution to prevent leaking, visibility traces are done with cone stepping to allow better parallelization, and shading is done adaptively in space and time using the surface cache.

[CL 2093556 by Daniel Wright in Main branch]
2014-06-03 15:53:13 -04:00
Andrew Copland
9fdaea0905 Set the UProperty for the Materials array so that the static lighting is not rebuilt.
#ttp 335786 Lighting: Assigning a Material in the Staticmesh editor unbuilds lighting on placed meshes
reviewer Thomas.Sarkanen

[CL 2093124 by Andrew Copland in Main branch]
2014-06-03 10:17:00 -04:00
James Golding
9d302e8460 Remove more headers from Engine.h (StaticMeshResources.h, AnimTree.h, SkeletalMeshTypes.h, SkeletalMeshActor.h, LightingBuildOptions.h, PixelFormat.h, WorldComposition.h, VisualLog.h, StaticLighting.h, Lightmap.h, ShadowMap.h, Model.h)
[CL 2086772 by James Golding in Main branch]
2014-05-29 17:21:47 -04:00
kevin hamilton
e46769ebad Automation: Merging //depot/Partners/Zombie/UE4-iOS/... to //depot/UE4/...
Milestone 4
 -Added support for grouping devices based off MachineName, Platform, OSVersion, Model, GPU, CPU, RAM, or RenderMode.
 -Added a graphical test result section to show relative times between instances.

[CL 2076099 by kevin hamilton in Main branch]
2014-05-16 17:44:18 -04:00
kevin hamilton
6b46dd0ced Merging //depot/Partners/Zombie/UE4-iOS/...to //depot/UE4/...
Automation: Milestone 3 and fixes for milestone 2

 -Added new EditorShot command to take editor screenshots
 -Made the ExterialTool options use the dierctory picker
 -Fixed a bug with the StaticMeshEditor test if the tutorial pops up
 -StaticMeshUV test now uses async package loading
 -Added a display every Nth screenshot to the screenshot compre tab
 -Added support to disable screenshots or request full size ones
 -Changed the screenshots so they save to the game directory even if you run the frontend by itself
 -Added screenshot support for the load all maps tests

[CL 2071712 by kevin hamilton in Main branch]
2014-05-13 12:08:56 -04:00
Max Preussner
4664956156 Delegates: Cleaned up abusive/legacy usages of the Delegate API
Please use AddRaw, AddSP, AddUObject, , BindRaw, BindSP, RemoveAll, Unbind etc.

[CL 2068405 by Max Preussner in Main branch]
2014-05-09 14:02:33 -04:00
Michael Noland
1f34ce9e19 Core: Change FCoreDelegates::OnObjectPropertyChanged to take the property change event as an additional parameter
[CL 2066450 by Michael Noland in Main branch]
2014-05-07 22:17:44 -04:00
Benn Gallagher
6bb51f5677 Made Static Meshes use ScreenSize instead of Distances for LOD level calculation
#ttp 319896 - Skeletalmesh/Staticmesh LOD refactoring: Part 1 (Refactor Static Meshes to use ScreenSize rather than distance)
#branch UE4
#change Removed LOD Distances and added ScreenSize for Static Meshes

[CL 2065408 by Benn Gallagher in Main branch]
2014-05-07 05:33:26 -04:00
Mikolaj Sieluzycki
45c031d576 #ttp 331438 UE4: PlatformMath refactor
#proj core
#branch UE4
#summary Rename Trunc, Round, Floor, Ceil to TruncToInt, RoundToInt, FloorToInt, CeilToInt. Added *ToFloat versions. Repeated for FGenericPlatformMath and all derived classes for all platforms wherever applicable. Corrected comment in Fractional and added Frac() which does HLSL-style fractional (x - floor(x)). Checked for compilation on all projects (with cooking levels wherever applicable). Didn't change Fractional to Frac, this will be done in second commit.
#codereview robert.manuszewski

[CL 2064306 by Mikolaj Sieluzycki in Main branch]
2014-05-06 06:26:25 -04:00
Max Preussner
b63129a60c Slate: Refactored core Slate implementation into SlateCore module in preparation for UMG.
Other Updates:
- The WidgetReflector is now in its own module as well. It will be converted to a plug-in later.
- The Public API of both Slate and SlateCore has largely been reorganized for better discoverabilty. More cleanup work is needed.
- Added a lot of missing API documentation and fixed existing ones. More and better documentation is needed.
- Removed dead code, fixed a couple things I stubled upon, and conformed to coding guidelines (NULL vs nullptr, line breaks, etc.)

Upgrade Notes:
- The Slate Remote Server is currently disabled - will be re-enabled shortly!
- If your module previously had a module dependency to 'Slate', it now also needs a PrivateModuleDependency to 'SlateCore' in its Build.cs file.
- If your module exposes in any of its Public header files types that are now declared in SlateCore, it needs a PublicModuleDependency to 'SlateCore'
- The ToolTip property type on SWidget has changed from SToolTip to IToolTip; change local variables to TSharedPtr<IToolTip> instead of TSharedPtr<SToolTip> where needed
- IToolTip is not a widget. If you need access to the actual widget that represents the tool tip, use IToolTip::AsWidget(); If you need access to the tool tip's content, use IToolTip::GetContentWidget()

Troubleshooting:
- After syncing to this changelist you may have to clean your /Engine/Intermediate/Build/ directory and rebuild your entire project
- If in your project you are getting linker errors for unresolved types that are now declared in SlateCore, you may be missing a dependency to 'SlateCore'
- If in the Engine code you are getting linker errors for unresolved types that are now declared in SlateCore, you may need to rebuild the entire Engine

[CL 2057118 by Max Preussner in Main branch]
2014-04-26 15:07:24 -04:00
Richard TalbotWatkin
e062c5ecf1 Disallowed Build Scales of 0 in the LODn details.
#ttp 333283 - EDITOR: Static Mesh will disappear when changing the Z axis from 0 to any other number while using the Build Scale tool
#branch UE4
#proj Editor.StaticMeshEditor
#change Trapped inputs close to zero in FMeshBuildSettingsLayout::OnBuildScale*Changed and rejected them.
#reviewedby Chris.Wood

[CL 2056448 by Richard TalbotWatkin in Main branch]
2014-04-25 10:40:02 -04:00
Jamie Dale
85cc71593d Fixed crash caused by the texture editor viewport trying to access a texture during reimport
TTP# 332724 - Regression: EDITOR: Texture: CRASH: Reimporting a texture that is not a power of two results in a crash

Reimporting a non-power of 2 texture would cause a modal dialog to open, causing the texture editor viewport to be ticked for render while the texture was still being reimported. This lead to a crash due to the texture having no resource allocated.

The rendering in the texture editor is now disabled while a reimport takes place.

I also moved the Pre/PostReimport delegates from FAssetEditorToolkit to FReimportManager to ensure that all reimport cases are caught (eg, reimporting from the Content Browser while an asset editor is open).

ReviewedBy Thomas.Sarkanen, Max.Preussner

[CL 2056305 by Jamie Dale in Main branch]
2014-04-25 06:23:34 -04:00
kevin hamilton
b4ee303301 Automation:
Merging //depot/Partners/Zombie/UE4-iOS/... to //depot/UE4/...
Milestone 1 and 2 combined  (CL# 2047358 to 2055524)

 -Run external tools
 -Repeat tests N times
 -Visual difference for editor vs game tests
 -Static mesh UV test
 -Editor window screenshots
 -Automation test presets
 -Static mesh editor test

[CL 2055603 by kevin hamilton in Main branch]
2014-04-24 12:38:41 -04:00