description:
Set the active output selection of a Tool, which (if supported) will be persist between Tools via a PersistentMeshSelectionManager context object. Passing a null Selection will clear any active selection.
true if the selection was saved

code: namespace UE { namespace Geometry { bool UE::Geometry::SetToolOutputSelection ( [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, [UDEPRECATED_PersistentMeshSelection](API\Plugins\ModelingComponents\Selection\UDEPRECATED_PersistentMeshSelect-) * Selection ) } }


module: ModelingComponents

code: virtual bool AllowEmptySelection() const


code: virtual bool CanExecuteCommandForSelection ( [UGeometrySelectionEditCommandArguments](API\Plugins\ModelingComponents\Selection\UGeometrySelectionEditCommandArg-) * SelectionArgs )


description: true if it is safe to callExecuteCommand()with the given Arguments

code: virtual bool CanExecuteCommand ( [UInteractiveCommandArguments](API\Runtime\InteractiveToolsFramework\UInteractiveCommandArguments) * Arguments )


code: virtual void ExecuteCommandForSelection ( [UGeometrySelectionEditCommandArguments](API\Plugins\ModelingComponents\Selection\UGeometrySelectionEditCommandArg-) * Arguments, [UInteractiveCommandResult](API\Runtime\InteractiveToolsFramework\UInteractiveCommandResult) ** Result )


className: UGeometrySelectionEditCommand

description: UGeometrySelectionEditCommandis a command that edits geometry based on a selection. Requires aUGeometrySelectionEditCommandArguments


code: virtual bool IsModifySelectionCommand() const


code: bool IsMatchingType ( [FGeometryIdentifier::ETargetType](API\Plugins\ModelingComponents\Selection\FGeometryIdentifier\ETargetType) TargetType, [FGeometryIdentifier::EObjectType](API\Plugins\ModelingComponents\Selection\FGeometryIdentifier\EObjectType) EngineType ) const


code: bool IsSelectionEmpty() const


className: UGeometrySelectionEditCommandResult

SourceHandle

type: FGeometrySelect...


className: UGeometrySelectionEditCommandArguments

description: Arguments for aUGeometrySelectionEditCommand


description: Execute the command with the given Arguments

code: virtual void ExecuteCommand ( [UInteractiveCommandArguments](API\Runtime\InteractiveToolsFramework\UInteractiveCommandArguments) * Arguments, [UInteractiveCommandResult](API\Runtime\InteractiveToolsFramework\UInteractiveCommandResult) ** Result )


description: Update the tracked selection change via a single Raycast, using the active UpdateConfig mode passed to BeginTrackedSelectionChange

code: virtual void AccumulateSelectionUpdate_Raycast ( const FRay3d & WorldRay, [FGeometrySelectionUpdateResult](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-_5) & ResultOut )


description:
Add a target to the active target set, if a validIGeometrySelectorFactorycan be found
true on success

code: bool AddActiveTarget ( [FGeometryIdentifier](API\Plugins\ModelingComponents\Selection\FGeometryIdentifier) Target )


description: Undo/Redo

code: virtual void ApplyChange ( [IGeometrySelectionChange](API\Plugins\ModelingComponents\Selection\IGeometrySelectionChange) * Change )


description: Begin a tracked selection change.CanBeginTrackedSelectionChange()must return true to call this function.EndTrackedSelectionChange()must be called to close the selection change.

code: virtual bool BeginTrackedSelectionChange ( [FGeometrySelectionUpdateConfig](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-_4) UpdateConfig, bool bClearOnBegin )


description:
Begin a transformation of element selections in active Targets.
true if at least one valid Transformer was initialized, ie the transformation will do something

code: virtual bool BeginTransformation()


description: Support for more complex selection changes that might (eg) occur over multiple frames, or be computed externally. The usage pattern is:

code: virtual bool CanBeginTrackedSelectionChange() const


description:
Command Execution
true if Command->CanExecuteCommand() returns true forallthe current Selections

code: bool CanExecuteSelectionCommand ( [UGeometrySelectionEditCommand](API\Plugins\ModelingComponents\Selection\UGeometrySelectionEditCommand) * Command )


code: void ClearActivePreview()


description: Active selection must be cleared (eg viaClearSelection()) before calling this function

code: void ClearActiveTargets()


code: virtual void ClearSelectionPreview()


description: Selection Updates Clear any active element selections. This function will emit a Transaction for the selection change.

code: virtual void ClearSelection()


description: Debugging stuffPrint information about the active selection using UE_LOG

code: virtual void DebugPrintSelection()


description: Visualize the active selection using PDI drawing

code: virtual void DebugRender ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


className: EMeshTopologyMode

description: ConfigurationEMeshTopologyMode determines what level of mesh element will be selected

code: enum EMeshTopologyMode { None = 0, Triangle = 1, Polygroup = 2, }


description: Execute the selection command forallthe current selections

code: void ExecuteSelectionCommand ( [UGeometrySelectionEditCommand](API\Plugins\ModelingComponents\Selection\UGeometrySelectionEditCommand) * Command )


description: End the current active transformation, and emit changes/transactions

code: virtual void EndTransformation()


description: Close an active tracked selection change. This will emit one or more FChanges for the selection modifications, and then close the open Transaction


className: FGeometrySelectionEditor


className: FGeometrySelectionBounds


className: FGeometrySelectionElements


className: FGeometrySelectionUpdateConfig


className: FGeometrySelectionUpdateResult


className: FGeometrySelectionTarget

description: FGeometrySelectionTargetis the set of information tracked for a given "Active Target", which is (eg) a Mesh Component or other external object that "owns" selectable Geometry. This includes theIGeometrySelectorfor that target, the SelectionEditor, and the active Selection

code: struct FGeometrySelectionTarget

OnGeometryModifiedHandle

type: FDelegateHandle

SelectionEditor

type: TUniquePtr<FGe...

SelectionIdentifer

type: FGeometryIdenti...

Selector

type: TUniquePtr<IGe...


code: typedef TMulticastDelegate_NoParams< void > FModelingSelectionInteraction_SelectionModified


description: Get avaialble information about the active selection/state

code: virtual void GetActiveSelectionInfo ( [EGeometryTopologyType](API\Plugins\DynamicMesh\Selections\UE__Geometry__EGeometryTopologyT-) & TopologyTypeOut, [EGeometryElementType](API\Plugins\DynamicMesh\Selections\UE__Geometry__EGeometryElementTy-) & ElementTypeOut, int & NumTargetsOut, bool & bIsEmpty ) const


code: bool GetAnyCurrentTargetsLocked() const


code: [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FGeometrySelectionTarget](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-_6) > GetCachedTarget ( [FGeometryIdentifier](API\Plugins\ModelingComponents\Selection\FGeometryIdentifier) Identifier, const [IGeometrySelectorFactory](API\Plugins\ModelingComponents\Selection\IGeometrySelectorFactory) * UseFactory )


description: a world-space bounding box for the active element selection

code: virtual bool GetSelectionBounds ( [FGeometrySelectionBounds](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-_2) & BoundsOut ) const


description:
Get the active element selection for the given Component, if it exists
true if a valid non-empty selection was returned in SelectionOut

code: virtual bool GetSelectionForComponent ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component, [FGeometrySelection](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-) & SelectionOut ) const


description: a 3D transformation frame suitable for use with the active element selection

code: virtual void GetSelectionWorldFrame ( [UE::Geometry::FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) & SelectionFrame ) const


code: [UInteractiveToolsContext](API\Runtime\InteractiveToolsFramework\UInteractiveToolsContext) * GetToolsContext() const


description:
Target Management / Queries TODO: be able to update active target set w/o losing current selections?
true if there are any active selection targets

code: bool HasActiveTargets() const


code: virtual bool HasBeenShutDown() const


description:
Selection queries
true if there is an active element selection

code: virtual bool HasSelection() const


description: true if there is an activeIGeometrySelectortarget for the given Component and it has a non-empty selection

code: virtual bool HasSelectionForComponent ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component ) const


description: Setup/Teardown

code: virtual void Initialize ( [UInteractiveToolsContext](API\Runtime\InteractiveToolsFramework\UInteractiveToolsContext) * ToolsContextIn, [IToolsContextTransactionsAPI](API\Runtime\InteractiveToolsFramework\IToolsContextTransactionsAPI) * TransactionsAPIIn )


description: true if SelectionManager is actively transforming element selections (ie during a mouse-drag)

code: virtual bool IsInActiveTransformation() const


description: true if an active tracked selection change is in flight

code: virtual bool IsInTrackedSelectionChange() const


code: void OnTargetGeometryModified ( [IGeometrySelector](API\Plugins\ModelingComponents\Selection\IGeometrySelector) * Selector )


description: Apply ProcessFunc to active selections via handles, perhaps should be public?

code: void ProcessActiveSelections ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void([FGeometrySelectionHandle](API\Plugins\ModelingComponents\Selection\FGeometrySelectionHandle))> ProcessFunc )


code: void RebuildSelectionRenderCaches()


description:
Test if a World-space ray "hits" the current active target set, which can be used to (eg) determine if a higher-level user interaction for selection should "Capture" the click
true on hit

code: virtual bool RayHitTest ( const FRay3d & WorldRay, [FInputRayHit](API\Runtime\InteractiveToolsFramework\FInputRayHit) & HitResultOut )


code: void ResetTargetCache()


code: virtual void RegisterSelectorFactory ( [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [IGeometrySelectorFactory](API\Plugins\ModelingComponents\Selection\IGeometrySelectorFactory) > Factory )


code: void SetCurrentTargetsLockState ( bool bLocked )


code: virtual void RevertChange ( [IGeometrySelectionChange](API\Plugins\ModelingComponents\Selection\IGeometrySelectionChange) * Change )


code: void SetMeshTopologyModeInternal ( [EMeshTopologyMode](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\EMeshTopologyMod-) NewTopologyMode )


code: virtual void SetMeshTopologyMode ( [EMeshTopologyMode](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\EMeshTopologyMod-) SelectionMode )


code: virtual void SetSelectionElementType ( [EGeometryElementType](API\Plugins\DynamicMesh\Selections\UE__Geometry__EGeometryElementTy-) ElementType )


code: void SetSelectionElementTypeInternal ( [EGeometryElementType](API\Plugins\DynamicMesh\Selections\UE__Geometry__EGeometryElementTy-) NewElementType )


description: Directly set the current Selection for the specified Component to NewSelection. This function allows external code to construct explicit selections, eg for a Tool or Command to emit a new Selection. Component must already be an active target, ie set via AddActiveTarget. If the selection of the Target would be modified, a selection-change transaction will be emitted.

code: virtual bool SetSelectionForComponent ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component, const [FGeometrySelection](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-) & NewSelection )


code: void SetTargetLockStateOnUndoRedo ( [FGeometryIdentifier](API\Plugins\ModelingComponents\Selection\FGeometryIdentifier) TargetIdentifier, bool bLocked )


code: void SetTargetsOnUndoRedo ( [TArray](API\Runtime\Core\Containers\TArray)< [FGeometryIdentifier](API\Plugins\ModelingComponents\Selection\FGeometryIdentifier) > NewTargets )


code: virtual void Shutdown()


code: void SleepOrShutdownTarget ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FGeometrySelectionTarget](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-_6) > Target, bool bForceShutdown )


description: Update the current active target set based on DesiredActiveSet, assuming that a validIGeometrySelectorFactorycan be found for each identifier. This function will emit a transaction/change if the target set is modified.

code: void SynchronizeActiveTargets ( const [TArray](API\Runtime\Core\Containers\TArray)< [FGeometryIdentifier](API\Plugins\ModelingComponents\Selection\FGeometryIdentifier) > & DesiredActiveSet, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void()> WillChangeActiveTargetsCallback )


description: Hover/Preview support

code: virtual bool UpdateSelectionPreviewViaRaycast ( const FRay3d & WorldRay )


description: Use the given WorldRay to update the active element selection based on UpdateConfig. The intention is that this function is called by higher-level user interaction code afterRayHitTest()has returned true.

code: virtual void UpdateSelectionViaRaycast ( const FRay3d & WorldRay, const [FGeometrySelectionUpdateConfig](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-_4) & UpdateConfig, [FGeometrySelectionUpdateResult](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-_5) & ResultOut )


description: Use the given ConvexVolume to update the active element selection based on UpdateConfig.

code: virtual void UpdateSelectionViaConvex ( const [FConvexVolume](API\Runtime\Engine\FConvexVolume) & ConvexVolume, const [FGeometrySelectionUpdateConfig](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-_4) & UpdateConfig, [FGeometrySelectionUpdateResult](API\Plugins\ModelingComponents\Selection\UGeometrySelectionManager\FGeometrySelecti-_5) & ResultOut )


description: Update the active transformations with the given PositionTransformFunc. SeeIGeometrySelectionTransformer::UpdateTransformfor details on this callback

code: virtual void UpdateTransformation ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< FVector3d(int32[VertexID](API\Plugins\MeshModelingToolsExp\EMeshInspectorToolDrawIndexMode), const FVector3d &, const FTransform &)> PositionTransformFunc )


className: UGeometrySelectionManager

description: The GeometrySelectionManager provides high-level interfaces for this system, for example external code (eg such as something that creates a Gizmo for the active selection) only needs to interact with SelectionManager, calling functions like ::BeginTransformation() / ::UpdateTransformation() / ::EndTransformation(). The SelectionManager also handles Transactions/FChanges for the active Targets and Selections.

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)() class UGeometrySelectionManager : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

ActivePreviewSelection

description: 3D geometry for active hover/preview highlight note: currently only supporting single target here, will need to be refactored to handle multiple targets...

ActiveTargetMap

type: TMap<FGeometry...

description: Map from external Identifiers to active Selection Targets

ActiveTargetReferences

type: TArray<TShared...

description: Set of active Selection Targets updated by SynchronizeActiveTargets / etc.

ActiveTransformations

type: TArray<IGeomet...

description: TransformationsSet of existing transformer objects, collected from activeIGeometrySelector::InitializeTransformation().

bInTrackedSelectionChange

type: bool

description: Support for complex selection changes that are driven externally

CachedSelectionRenderElements

type: TArray<FGeomet...

description: 3D geometry for element selections of each ActiveTarget is cached to improve rendering performance

Factories

type: TArray<TUnique...

description: Set of registeredIGeometrySelectorfactories

MeshTopologyMode

type: EMeshTopologyMo...

OnSelectionModified

type: FModelingSelect...

description: OnSelectionModified is broadcast if the selection is modified via the above functions.

SelectionArguments

type: TObjectPtr<UGe...

description: This is set to current selection during CanExecuteSelectionCommand/ExecuteSelectionCommand, to keep theUObjectalive Not expected to be used outside that context

SelectionElementType

type: EGeometryElemen...

TargetCache

description: Support for cachedFGeometrySelectionTarget/ IGeometrySelectors.

ToolsContext

type: TObjectPtr<UIn...

TransactionsAPI

type: IToolsContextTr...


description: Change Tracking Begin a change record. Internally creates aFCommandChangeand initializes it with current state

code: void BeginChange()


description: IHoverBehaviorTargetimplementation.

code: virtual [FInputRayHit](API\Runtime\InteractiveToolsFramework\FInputRayHit) BeginHoverSequenceHitTest ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & PressPos )


description: Clear current hover-highlight

code: void ClearHighlight()


description: Clear the current selection.

code: void ClearSelection()


className: CtrlModifierID

code: static const int32 CtrlModifierID = 2;


description: Must be called during toolSetup()after callingSetup()on the mechanic to have an effect.

code: void DisableBehaviors ( [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * ParentToolIn )


code: virtual void DrawHUD ( [FCanvas](API\Runtime\Engine\FCanvas) * Canvas, [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: End the active change and return it. Returns empty change if the selection was not modified!


description: Ends the active change and emits it via the parent tool, if the selection has been modified.

code: bool EndChangeAndEmitIfModified()


description: the current selection

code: const [FGroupTopologySelection](API\Plugins\DynamicMesh\FGroupTopologySelection) & GetActiveSelection() const


description: Can be used by in an OnSelectionChanged event to inspect the clicked location (i.e., the values returned by theUpdateSelection()function when the click happened).

code: void GetClickedHitPosition ( FVector3d & PositionOut, FVector3d & NormalOut ) const


description: Gets the current priority range used by behaviors in the mechanic. The returned pair will have the base (highest) priority as the key, and the lowest priority as the value.


description: Bounding box for the current selection

code: [FAxisAlignedBox3d](API\Runtime\GeometryCore\TAxisAlignedBox3) GetSelectionBounds ( bool bWorld ) const


description: The best-guess 3D frame for the current select

code: [FFrame3d](API\Runtime\GeometryCore\TFrame3) GetSelectionFrame ( bool bWorld, [FFrame3d](API\Runtime\GeometryCore\TFrame3) * InitialLocalFrame ) const


description: Get the topology selector settings to use given the current selection settings.

code: [FGroupTopologySelector::FSelectionSettings](API\Plugins\ModelingComponents\Selection\FMeshTopologySelector\FSelectionSettings) GetTopoSelectorSettings ( bool bUseOrthoSettings )


description: true if the current selection is non-empty

code: bool HasSelection() const


code: void Initialize ( const [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) * MeshIn, FTransform3d TargetTransformIn, [UWorld](API\Runtime\Engine\Engine\UWorld) * WorldIn, [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< [FDynamicMeshAABBTree3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMeshAABBTree3) *()> GetSpatialSourceFuncIn )


code: void InvertSelection()


description: When true, the selection mechanic is currently tracking a marquee rectangle drag, and acting on the selection may be unwise until it is over (and an OnSelectionChanged event is fired).

code: bool IsCurrentlyMarqueeDragging()


description: IClickBehaviorTargetimplementation.

code: virtual [FInputRayHit](API\Runtime\InteractiveToolsFramework\FInputRayHit) IsHitByClick ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & ClickPos )


description: Notify internal data structures that the associated MeshComponent has been modified.

code: void NotifyMeshChanged ( bool bTopologyModified )


description: Initialize hover sequence at given position

code: virtual void OnBeginHover ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & DevicePos )


description: Notify Target that click ocurred

code: virtual void OnClicked ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & ClickPos )


code: virtual void OnDragRectangleChanged ( const [FCameraRectangle](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle) & CurrentRectangle )


code: virtual void OnDragRectangleFinished ( const [FCameraRectangle](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle) & Rectangle, bool bCancelled )


description: These get bound to marquee mechanic delegates.

code: virtual void OnDragRectangleStarted()


description: Terminate active hover sequence

code: virtual void OnEndHover()


description: Update active hover sequence with new input position

code: virtual bool OnUpdateHover ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & DevicePos )


description: Allow the Mechanic to do any custom drawing (ie via PDI/RHI)

code: virtual void Render ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: Notify target of current modifier state

code: virtual void OnUpdateModifierState ( int ModifierID, bool bIsOn )


description: Render only the MarqueeMechanic, without rendering the current selection

code: void RenderMarquee ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: Enable/disable the mechanic without permanently removing behaviors or shutting it down.

code: void SetIsEnabled ( bool bOn )


description: Sets the base priority so that tools can make sure that their own behaviors are higher priority. The mechanic will not use any priority value higher than this, but it may use lower if it needs to stagger the priorities of behaviors it uses. Can be called before or afterSetup().

code: void SetBasePriority ( const [FInputCapturePriority](API\Runtime\InteractiveToolsFramework\FInputCapturePriority) & Priority )


description: does not check that the selection is valid!

code: void SetSelection ( const [FGroupTopologySelection](API\Plugins\DynamicMesh\FGroupTopologySelection) & Selection, bool bBroadcast )


description: Bydefault, the shift key will cause new clicks to add to the selection. However, this can be changed by supplying a different function to check here.

code: void SetShouldAddToSelectionFunc ( [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool(void)> Func )


description: Bydefault, the Ctrl key will cause new clicks to remove from the existing selection. However, this can be changed by supplying a different function to check here.

code: void SetShouldRemoveFromSelectionFunc ( [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool(void)> Func )


code: void SetShouldSelectEdgeLoopsFunc ( [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool(void)> Func )


code: void SetShouldSelectEdgeRingsFunc ( [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool(void)> Func )


description: Toggle rendering of edges

code: void SetShowEdges ( const bool bRenderEdges )


code: void SetShowSelectableCorners ( bool bShowCorners )


description: Called to initialize the InteractionMechanic

code: virtual void Setup ( [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * ParentTool )


description: Called to clean up the InteractionMechanic

code: virtual void Shutdown()


className: ShiftModifierID

code: static const int32 ShiftModifierID = 1;


description: Perform a hit test on the topology using the current selection settings. In cases of hitting edges and corners, OutHit contains the following: OutHit.FaceIndex: edge or corner id in the topology OutHit.ImpactPoint: closest point on the ray to the hit element (Note: not a point on the element!) OutHit.Distance: distance along the ray to ImpactPoint OutHit.Item: if hit item was an edge, index of the segment within the edge polyline. Otherwise undefined.

code: bool TopologyHitTest ( const FRay & WorldRay, [FHitResult](API\Runtime\Engine\Engine\FHitResult) & OutHit, bool bUseOrthoSettings )


code: bool TopologyHitTest ( const FRay & WorldRay, [FHitResult](API\Runtime\Engine\Engine\FHitResult) & OutHit, [FGroupTopologySelection](API\Plugins\DynamicMesh\FGroupTopologySelection) & OutSelection, bool bUseOrthoSettings )


description:
Hover API Update the hover highlight based on the hit elements at the given World Ray
true if something was hit and is now being hovered

code: virtual bool UpdateHighlight ( const FRay & WorldRay )


code: virtual void UpdateMarqueeEnabled()


description:
Selection API Intersect the ray with the mesh and update the selection based on the hit element, modifier states, etc
true if selection was modified

code: virtual bool UpdateSelection ( const FRay & WorldRay, FVector3d & LocalHitPositionOut, FVector3d & LocalHitNormalOut )


className: UMeshTopologySelectionMechanic

description: NOTE: Users should not use this class directly, but rather subclass it and specify a particularFMeshTopologySelectorto use.

ActiveChange

type: TUniquePtr<FMe...

description: Configuration variables that must be set before bSetup is called

BasePriority

type: FInputCapturePr...

CameraState

type: FViewCameraStat...

ClickOrDragBehavior

type: TObjectPtr<USi...

CurrentlyHighlightedGroups

type: TSet< int >

DrawnTriangleSetComponent

type: TObjectPtr<UTr...

GetSpatialFunc

type: TFunction< FDyn...

HighlightedFaceMaterial

type: TObjectPtr<UMa...

HilightRenderer

type: FToolDataVisual...

HilightSelection

type: FGroupTopologyS...

HoverBehavior

type: TObjectPtr<UMo...

MarqueeMechanic

type: TObjectPtr<URe...

Mesh

type: constFDynamicM...

OnFaceSelectionPreviewChanged

type: FSimpleMulticas...

description: This is broadcast during marquee rectangle dragging if selected faces change, to allow user to dynamically update face highlighting if desired (needed because OnSelectionChanged is only fired once the rectangle is completed, not while it is being updated).

OnSelectionChanged

description: OnSelectionChanged is broadcast whenever the selection is modified (including by FChanges, which means that called functions should not issue undo transactions.

PreDragPersistentSelection

description: Used for box selection.

PreviewGeometryActor

type: TObjectPtr<APr...

description: The actor we create internally to own the DrawnTriangleSetComponent

Properties

type: TObjectPtr<UMe...

description: TODO: Is it worth issuing separate callbacks in normal selection changes and inFChangeones, to allow the user to bundle in some FChanges into the normal callback?

ShouldAddToSelectionFunc

type: TFunction< bool...

ShouldSelectEdgeLoopsFunc

description: When bSelectEdgeLoops is true, this function is tested to see if we should select edge loops, to allow edge loop selection to be toggled with some key (setting bSelectEdgeLoops to false overrides this function).

ShouldSelectEdgeRingsFunc

description: When bSelectEdgeRings is true, this function is tested to see if we should select edge rings, to allow edge ring selection to be toggled with some key (setting bSelectEdgeRings to false overrides this function).

TopoSelector

type: TSharedPtr<FMe...

description: Subclass should initialize this with a concrete subclass ofFMeshTopologySelector

TriIsOccludedCache

type: TMap< int32, bo...


code: void Initialize ( [UMeshTopologySelectionMechanic](API\Plugins\ModelingComponents\Selection\UMeshTopologySelectionMechanic) * MechanicIn )


description: Invert current selection. If selection is empty, has same effect as Select All, and is similarly dependent on selection filter.


description: Select all elements. Depends on selection filter, where vertices are preferred to edges to faces.


bCanSelectEdges

type: bool

bCanSelectVertices

description: Whether to enable the different selection modes (in the detail customization)

bDisplayPolygroupReliantControls

description: Used to avoid showing some of the selection filter buttons in triedit (in the detail customization)

bHitBackFaces

description: When set, faces that face away from the camera are ignored in selection and occlusion.

bIgnoreOcclusion

description: Do not check whether the closest element is occluded from the current view.

bMarqueeIgnoreOcclusion

description: Determines whether vertices should be checked for occlusion in marquee select (Note: marquee select currently only works with edges and vertices)

bPreferProjectedElement

description: The following were originally in their own category, all marked as AdvancedDisplay.

bSelectDownRay

description: If the closest element is valid, select other elements behind it that are aligned with it.

bSelectEdgeLoops

description: When true, will select edge loops. Edge loops are paths along a string of valence-4 vertices.

bSelectEdgeRings

description: When set, will select rings of edges that are opposite each other across a quad face.

Mechanic

type: TWeakObjectPtr<...


description: Convert the Active Selection to a PolyGroup-topology FGeometrySelection, with optional CompactMaps

code: void GetSelection_AsGroupTopology ( [UE::Geometry::FGeometrySelection](API\Plugins\DynamicMesh\Selections\FGeometrySelection) & SelectionOut, const [FCompactMaps](API\Runtime\GeometryCore\Util\FCompactMaps) * CompactMapsToApply ) const


description: Convert the Active Selection to a Triangle-topology FGeometrySelection, with optional CompactMaps

code: void GetSelection_AsTriangleTopology ( [UE::Geometry::FGeometrySelection](API\Plugins\DynamicMesh\Selections\FGeometrySelection) & SelectionOut, const [FCompactMaps](API\Runtime\GeometryCore\Util\FCompactMaps) * CompactMapsToApply ) const


description: Deprecated* Use GetTopologySelector in base class


code: void Initialize ( [UDynamicMeshComponent](API\Runtime\GeometryFramework\Components\UDynamicMeshComponent) * MeshComponent, const [FGroupTopology](API\Plugins\DynamicMesh\FGroupTopology) * Topology, [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< FDynamicMeshAABBTree3 *()> GetSpatialSourceFunc )


code: void Initialize ( const [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) * Mesh, FTransform3d TargetTransform, [UWorld](API\Runtime\Engine\Engine\UWorld) * World, const [FGroupTopology](API\Plugins\DynamicMesh\FGroupTopology) * Topology, [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< FDynamicMeshAABBTree3 *()> GetSpatialSourceFunc )


description: Initialize the Active Selection based on the provided PolyGroup-topology FGeometrySelection

code: void SetSelection_AsGroupTopology ( const [UE::Geometry::FGeometrySelection](API\Plugins\DynamicMesh\Selections\FGeometrySelection) & Selection )


description: Initialize the Active Selection based on the provided Triangle-topology FGeometrySelection

code: void SetSelection_AsTriangleTopology ( const [UE::Geometry::FGeometrySelection](API\Plugins\DynamicMesh\Selections\FGeometrySelection) & Selection )


description: UMeshTopologySelectionMechanic.


className: UPolygonSelectionMechanic

description: UPolygonSelectionMechanicimplements the interaction for selecting a set of faces/vertices/edges from a FGroupTopology.


description: Add a snap target Circle

code: virtual void AddCircleTarget ( const [FCircle3d](API\Runtime\GeometryCore\FCircle3d) & Circle, int TargetID, int Priority )


description: Add given TargetID to the ignore list, so any points/lines with that ID will not be snapped-to

code: virtual void AddIgnoreTarget ( int TargetID )


description: Add a snap target line

code: virtual void AddLineTarget ( const [FLine3d](API\Runtime\GeometryCore\FLine3d) & Line, int TargetID, int Priority )


description: Add a snap target point at the given Position

code: virtual void AddPointTarget ( const FVector3d & Position, int TargetID, int Priority )


code: virtual void AddPointTarget ( const FVector3d & Position, int TargetID, const [FCustomMetric](API\Plugins\ModelingComponents\Snapping\FBasePositionSnapSolver3\FCustomMetric) & CustomMetric, int Priority )


className: BaseExternalLineID

description: Subclasses may have internal TargetID values, so external lines should have IDs larger than this

code: static constexpr int BaseExternalLineID = 10000;


className: BaseExternalPointID

description: Subclasses may have internal TargetID values, so external points should have IDs larger than this

code: static constexpr int BaseExternalPointID = 1000;


code: virtual void ClearActiveSnapData()


className: ECustomMetricType

description: SetupECustomMetricType defines how aFCustomMetricshould be interpreted

code: enum ECustomMetricType { ReplaceValue = 0, Multiplier = 1, MinValue = 2, }


code: static FCustomMetric Minimum &40; double Val &41;


code: static FCustomMetric Multiplier &40; double Val &41;


code: static FCustomMetric Replace &40; double Val &41;


code: const [FSnapTargetPoint](API\Plugins\ModelingComponents\Snapping\FBasePositionSnapSolver3\FSnapTargetPoint) * FindBestSnapInSet ( const [TArray](API\Runtime\Core\Containers\TArray)< [FSnapTargetPoint](API\Plugins\ModelingComponents\Snapping\FBasePositionSnapSolver3\FSnapTargetPoint) > & TestTargets, double & MinMetric, int & MinPriority, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< FVector3d(const FVector3d &)> & GetSnapPointFromFunc )


description: Snap measurement functions

code: int32 FindIndexOfBestSnapInSet ( const [TArray](API\Runtime\Core\Containers\TArray)< [FSnapTargetPoint](API\Plugins\ModelingComponents\Snapping\FBasePositionSnapSolver3\FSnapTargetPoint) > & TestTargets, double & MinMetric, int & MinPriority, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< FVector3d(const FVector3d &)> & GetSnapPointFromFunc )


className: FSnapTargetCircle

code: struct FSnapTargetCircle

Priority

type: int


className: FSnapTargetLine

description: Target line that might be snapped to

code: struct FSnapTargetLine


className: FSnapTargetPoint

description: Target point that might be snapped to

code: struct FSnapTargetPoint

bHaveConstrainedPosition

description: If true, then Position is the snap target point but ConstrainedPosition is the one we should return Sounds weird but allows for things like axis-constrained grid snapping to work.

CustomMetric

type: FCustomMetric


description: internal snap distance ID (interpretation defined by subclasses)

code: int GetActiveSnapDistanceID() const


className: FCustomMetric

description: FCustomMetricoverrides/modifies the default should-snap-happen metric

code: struct FCustomMetric

Type

type: ECustomMetricTy...

description: What kind of custom metric is this

Value

type: double

description: Parameter for custom metric


description: the snapped-from point. This may be the original target, a point on a line, after projections, etc. Defined by subclasses.


description: 3D line for active snap target

code: const [FLine3d](API\Runtime\GeometryCore\FLine3d) & GetActiveSnapLine() const


description: targetID of original point or line that resulted in the snap

code: int GetActiveSnapTargetID() const


description: the snapped-to point

code: FVector3d GetActiveSnapToPoint() const


description:
Solving output
true if after the last snap solve we have an active snap

code: bool HaveActiveSnap() const


description: true if the active snap target is based on a distance along a line

code: bool HaveActiveSnapDistance() const


description: true if the given TargetID is in the ignore list

code: virtual bool IsIgnored ( int TargetID ) const


description: true if the active snap target is a line

code: bool HaveActiveSnapLine() const


description: Remove any line targets with this TargetID

code: virtual bool RemoveCircleTargetsByID ( int TargetID )


description: Add given TargetID from the ignore list

code: virtual void RemoveIgnoreTarget ( int TargetID )


description: Discard the set of snap points and lines and clear the active snap

code: virtual void Reset()


description: Remove any point targets with this TargetID

code: virtual bool RemovePointTargetsByID ( int TargetID )


code: virtual bool RemoveLineTargetsByID ( int TargetID )


description: Clear the active snap

code: virtual void ResetActiveSnap()


code: virtual void SetActiveSnapData ( const [FSnapTargetPoint](API\Plugins\ModelingComponents\Snapping\FBasePositionSnapSolver3\FSnapTargetPoint) & TargetPoint, const FVector3d & FromPoint, const FVector3d & ToPoint, double Metric )


code: virtual ~FBasePositionSnapSolver3()


code: bool TestSnapTarget ( const [FSnapTargetPoint](API\Plugins\ModelingComponents\Snapping\FBasePositionSnapSolver3\FSnapTargetPoint) & Target, double MinMetric, int MinPriority, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< FVector3d(const FVector3d &)> & GetSnapPointFromFunc )


description: The actual snap "solve" must be implemented by subclasses, depending on their input data (ray, point, line, etc)

code: class FBasePositionSnapSolver3

ActiveSnapTarget

type: FSnapTargetPoin...

bEnableStableSnap

description: If true, then we will prefer to keep current snap point over a new one

bHaveActiveSnap

description: Information about active snap

IgnoreTargets

type: TSet< int >

description: List of TargetID values to ignore in snap queries

SnapMetricFunc

type: TFunction< doub...

description: ParametersThis is the function we use to measure distances between snap points.

SnapMetricTolerance

description: Tolerance for snapping, in unit relative to SnapMetricFunc

StableSnapImproveThresh

description: How much we have to improve the snap metric to discard the current stable snap

TargetCircles

type: TArray<FSnapTa...


code: void AppendHistoryPoint ( const FVector3d & Point )


description: Draws the current snap targets (for debugging)

code: void DebugRender ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


className: CardinalAxisTargetID

code: static constexpr int CardinalAxisTargetID = 10;


code: void GenerateLineIntersectionTargets()


code: void GenerateTargets ( const FVector3d & PointIn )


description: When the active snap is an intersection, holds the second intersecting line (the first can be obtained withGetActiveSnapLine())

code: const [FLine3d](API\Runtime\GeometryCore\FLine3d) & GetIntersectionSecondLine()


description: Returns true when the active snap represents an intersection of multiple target lines in the plane. In such a case, one line can be obtained by the usualGetActiveSnapLine(), and the second can be obtained fromGetIntersectionSecondLine()

code: bool HaveActiveSnapIntersection()


className: IntersectionTargetID

code: static constexpr int IntersectionTargetID = 12;


code: void InsertHistoryPoint ( const FVector3d & Point, int32 Index )


className: LastSegmentTargetID

code: static constexpr int LastSegmentTargetID = 11;


code: int MinInternalPriority() const


code: int32 PointHistoryLength()


description: Creates snap lines based on the last point in the point history. Calling the function with both parameters set to false clears the generated snap lines.

code: void RegenerateTargetLines ( bool bCardinalAxes, bool bLastHistorySegment )


code: virtual void Reset()


description: Sets the snapping lines to be based on the history pointsadjacentto the point with a given history index. The given index can be one beyond the ends of the current history (i.e., -1 or PointHistoryLength) to base the lines on the first/last points. The snap lines will be parallel to the plane axes. Useful for moving a point to be aligned with one of its neighbors.

code: void RegenerateTargetLinesAround ( int32 HistoryIndex, bool bWrapAround, bool bGenerateIntersections )


description: Point history manipulation functions. All of them remove the currently generated snap

code: void UpdatePointHistory ( const [TArray](API\Runtime\Core\Containers\TArray)< FVector3f > & Points )


code: void UpdatePointHistory ( const [TArray](API\Runtime\Core\Containers\TArray)< FVector3d > & Points )


description: Clears any existing generated snap targets.

code: void ResetGenerated()


code: void RemoveHistoryPoint ( int32 Index )


code: void UpdateSnappedPoint ( const FVector3d & PointIn )


code: FPointPlanarSnapSolver()


code: void GenerateTargetPoints ( const FRay3d & Ray )


description: Utility renderingVisualization of snap targets and result (if available)

code: void Draw ( [FToolDataVisualizer](API\Runtime\InteractiveToolsFramework\FToolDataVisualizer) * Renderer, float LineLength, [TMap](API\Runtime\Core\Containers\TMap)< int, [FLinearColor](API\Runtime\Core\Math\FLinearColor) > * ColorMap )


className: FPointPlanarSnapSolver

description: SeeFBasePositionSnapSolver3for details on how to set up the snap problem and get results.

code: class FPointPlanarSnapSolver : public [UE::Geometry::FBasePositionSnapSolver3](API\Plugins\ModelingComponents\Snapping\FBasePositionSnapSolver3)

IntersectionPriorityDelta

description: How much more important an intersection is than the more important of the intersecting lines.

IntersectionSecondLinePointers

type: TArray< constF...

KnownLengthPriorityDelta

description: How much more important a known length is than its line's priority.

Plane

description: Configuration variables

PointHistory

type: TArray< FVector...


description: SolvingSolve the snapping problem

code: void UpdateSnappedPoint ( const FRay3d & Ray )


code: FRaySpatialSnapSolver()


className: FRaySpatialSnapSolver

code: class FRaySpatialSnapSolver : public [UE::Geometry::FBasePositionSnapSolver3](API\Plugins\ModelingComponents\Snapping\FBasePositionSnapSolver3)

PointConstraintFunc

type: TFunction< FVec...

description: Optional function that will be used to project potential snap points onto constraints.


description:
Remove any existingUModelingSceneSnappingManagerfrom the ToolsContext's ContextObjectStore
true if the ContextObjectStore no longer has aUModelingSceneSnappingManager(whether it was removed, or did not exist)

code: namespace UE { namespace Geometry { bool UE::Geometry::DeregisterSceneSnappingManager ( [UInteractiveToolsContext](API\Runtime\InteractiveToolsFramework\UInteractiveToolsContext) * ToolsContext ) } }


description:
Find an existingUModelingSceneSnappingManagerin the ToolsContext's ContextObjectStore
SelectionManager pointer or nullptr if not found

code: namespace UE { namespace Geometry { [UModelingSceneSnappingManager](API\Plugins\ModelingComponents\Snapping\UModelingSceneSnappingManager) * UE::Geometry::FindModelingSceneSnappingManager ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager ) } }


description:
The functions below are helper functions that simplify usage of aUModelingSceneSnappingManagerthat is registered as a ContextStoreObject in an InteractiveToolsContext If one does not already exist, create a new instance ofUModelingSceneSnappingManagerand add it to the ToolsContext's ContextObjectStore
true if the ContextObjectStore now has aUModelingSceneSnappingManager(whether it already existed, or was created)

code: namespace UE { namespace Geometry { bool UE::Geometry::RegisterSceneSnappingManager ( [UInteractiveToolsContext](API\Runtime\InteractiveToolsFramework\UInteractiveToolsContext) * ToolsContext ) } }


description: Explicitly populate the spatial-cache tracking set with specific Actors/Components (alternative to OnActorAdded route)

code: virtual void BuildSpatialCacheForWorld ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool([AActor](API\Runtime\Engine\GameFramework\AActor) *)> ActorFilter, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool([UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) *)> PrimitiveFilter )


description:
implementations are not required (and may not be able) to support hit-testing
true if a valid hit was found

code: virtual bool ExecuteSceneHitQuery ( const [FSceneHitQueryRequest](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneHitQueryRequest) & Request, [FSceneHitQueryResult](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneHitQueryResult) & ResultOut ) const


description:
implementations are not required (and may not be able) to support snapping
true if any valid snap target was found

code: virtual bool ExecuteSceneSnapQuery ( const [FSceneSnapQueryRequest](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneSnapQueryRequest) & Request, [TArray](API\Runtime\Core\Containers\TArray)< [FSceneSnapQueryResult](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneSnapQueryResult) > & Results ) const


code: virtual bool ExecuteSceneSnapQueryRotation ( const [FSceneSnapQueryRequest](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneSnapQueryRequest) & Request, [TArray](API\Runtime\Core\Containers\TArray)< [FSceneSnapQueryResult](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneSnapQueryResult) > & Results ) const


code: void HandleDynamicMeshModifiedDelegate ( [UDynamicMeshComponent](API\Runtime\GeometryFramework\Components\UDynamicMeshComponent) * Component )


code: void HandleGlobalComponentTransformChangedDelegate ( [USceneComponent](API\Runtime\Engine\Components\USceneComponent) * Component )


code: void HandleGlobalObjectModifiedDelegate ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * Object )


code: virtual void Initialize ( [TObjectPtr](API\Runtime\Core\Delegates\TObjectPtr)< [UInteractiveToolsContext](API\Runtime\InteractiveToolsFramework\UInteractiveToolsContext) > ToolsContext )


description: Enable spatial-cache tracking for the Components of the Actor that pass the PrimitiveFilter

code: virtual void OnActorAdded ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool([UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) *)> PrimitiveFilter )


description:
API for managing the set of Actors/Components that the snapping system knows about. Currently this is for Volumes and DynamicMeshActors/Components, the SnappingManager builds it's own spatial data structure cache for these types of meshes. StaticMeshComponents are automatically included and handled via world-traces and the physics system.
true if this Component type is supported by the spatial-cache tracking for hit and snap testing

code: virtual bool IsComponentTypeSupported ( const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component ) const


description: Disable spatial-cache tracking for any Components of the Actor

code: virtual void OnActorRemoved ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor )


code: virtual bool ExecuteSceneSnapQueryPosition ( const [FSceneSnapQueryRequest](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneSnapQueryRequest) & Request, [TArray](API\Runtime\Core\Containers\TArray)< [FSceneSnapQueryResult](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneSnapQueryResult) > & Results ) const


description: Notify the internal spatial-cache tracking system that the Component has been modified (ie cache needs to be rebiult)

code: virtual void OnComponentModified ( [UActorComponent](API\Runtime\Engine\Components\UActorComponent) * Component )


description: Enable spatial-cache tracking for the Component

code: virtual void OnComponentAdded ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component )


description: Disable spatial-cache tracking for the Component

code: virtual void OnComponentRemoved ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component )


description: APIs for configuring the SceneSnappingManager behavior


code: virtual void Shutdown()


className: UModelingSceneSnappingManager

description: Currently the StaticMesh vertex/edge snapping is dependent on the Physics system, and may fail or return nonsense results in some cases, due to the physics complex-collision mesh deviating from the source-model mesh.

bQueueModifiedDynamicMeshUpdates

description: PauseSceneGeometryUpdates / UnPauseSceneGeometryUpdates support.

ComponentToActorMap

type: TMap<UPrimitiv...

description: This map allows us to identify the Components belonging to Actors.

OnComponentTransformChangedHandle

type: FDelegateHandle

ParentContext

type: TObjectPtr<UIn...

PendingModifiedDynamicMeshes

type: TSet<UDynamicM...

QueriesAPI

type: constIToolsCon...

SpatialCache

description: Cache for objects in the level


code: virtual void CommitDynamicMesh ( const [UE::Geometry::FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & Mesh )


code: void CommitDynamicMesh ( const [UE::Geometry::FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & Mesh, const [FDynamicMeshCommitInfo](API\Plugins\ModelingComponents\TargetInterfaces\IDynamicMeshCommitter\FDynamicMeshComm-) & CommitInfo )


description: Re-enable live updates that were prevented byPauseSceneGeometryUpdates(), and execute any pending updates that were requested while in the pause state.

code: virtual void UnPauseSceneGeometryUpdates ( bool bImmediateRebuilds )


description: Leaves everything initialized to default (true)


description: Initializes each of the b*Changed members to bInitValue

code: FDynamicMeshCommitInfo &40; bool bInitValue &41;


className: FDynamicMeshCommitInfo

description: Extra information that can be passed to a CommitMesh call to potentially make the commit faster. Note that setting any of these to false doesn't mean that the corresponding data won't be updated, because a target may choose to always update everything. But it may help some targets do faster updates by not updating things that stayed the same.

code: struct FDynamicMeshCommitInfo

bNormalsChanged

type: bool

bTransformVertexColorsSRGBToLinear

description: Intentionally left out of the constructor.


className: IDynamicMeshCommitter

code: class IDynamicMeshCommitter


className: IDynamicMeshProvider

code: class IDynamicMeshProvider


description: Gives a copy of a dynamic mesh for tools to operate on.


description: aUDynamicMeshfor this source.


description: Commit a change to theUDynamicMesh. The assumption here is that the Change has already been applied to theUDynamicMeshreturned byGetDynamicMeshContainer(). This function is used by Tools to provide that change to higher levels for storage in undo systems/etc (eg the Editor Transaction system)

code: void CommitDynamicMeshChange ( [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange) > Change, const [FText](API\Runtime\Core\Internationalization\FText) & ChangeMessage )


description: theUDynamicMeshComponentthat owns the sourceUDynamicMesh, if available


description:
Optional
true if theUDynamicMeshcomes from aUDynamicMeshComponent(or subclass)

code: virtual bool HasDynamicMeshComponent() const


className: IPersistentDynamicMeshSource

code: class IPersistentDynamicMeshSource


className: UDynamicMeshCommitter

code: class UDynamicMeshCommitter : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


className: UPersistentDynamicMeshSource

code: class UPersistentDynamicMeshSource : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


description: Terminate any active computation without returning anything

code: void Cancel()


className: FOnOpCompleted

description: Change notification

code: typedef TMulticastDelegate_OneParam< void, const [OperatorType](API\Plugins\ModelingComponents\TGenericDataBackgroundCompute\OperatorType) * > FOnOpCompleted


className: FactoryType

code: typedef [UE::Geometry::IGenericDataOperatorFactory](API\Plugins\ModelingOperators\IGenericDataOperatorFactory)< ResultDataType > FactoryType


className: FOnResultUpdated

code: typedef TMulticastDelegate_OneParam< void, const [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< ResultDataType > & > FOnResultUpdated


className: UDynamicMeshProvider

code: class UDynamicMeshProvider : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


description: the elapsed compute time

code: float GetElapsedComputeTime() const


description: true if the current Result is valid, ie no update being actively computed

code: bool HaveValidResult() const


description: Control flow Request that the current computation be canceled and a new one started

code: void InvalidateResult()


className: OperatorType

code: typedef [UE::Geometry::TGenericDataOperator](API\Plugins\ModelingOperators\TGenericDataOperator)< ResultDataType > OperatorType


description: Required calls to setup/update/shutdown this object

code: void Setup ( [FactoryType](API\Plugins\ModelingComponents\TGenericDataBackgroundCompute\FactoryType) * OpGenerator )


description: Terminate any active computation and return the current Result

code: [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< ResultDataType > Shutdown()


description: this must be called regularly for the class to function properly

code: void Tick ( float DeltaTime )


description: Update CurrentResult if a new result is available from BackgroundCompute, and fires relevant signals

code: void UpdateResults()


className: TGenericDataBackgroundCompute

description: The TGenericDataOperator are provided by the owner via a IGenericDataOperatorFactory implementation. The owner must alsoTick()this object regularly to allow results to be extracted from the background thread and appropriate delegates fired when that occurs.

code: template<typename ResultDataType> class TGenericDataBackgroundCompute

BackgroundCompute

type: TUniquePtr<Com...

description: This object manages the background computes

bResultValid

description: State flag, if true then we have valid result

CurrentResult

type: TUniquePtr< Res...

description: Current result value

OnOpCompleted

type: FOnOpCompleted

description: OnOpCompleted is fired viaTick()when an Operator finishes, with the operator pointer as argument

OnResultUpdated

type: FOnResultUpdate...

description: OnResultUpdated is fired viaTick()when an Operator finishes, with the computed result as argument


description: global visual angle snap threshold (default is 1 degree)

code: namespace ToolSceneQueriesUtil { double ToolSceneQueriesUtil::GetDefaultVisualAngleSnapThreshD() }


description: visual angle between two 3D points, relative to the current camera position, normalized relative to 90-degree FOV

code: namespace ToolSceneQueriesUtil { double ToolSceneQueriesUtil::CalculateNormalizedViewVisualAngleD ( const [FViewCameraState](API\Runtime\InteractiveToolsFramework\FViewCameraState) & CameraState, const FVector3d & Point1, const FVector3d & Point2 ) }


description: (approximate) 3D dimension that corresponds to a radius of target visual angle around Point, for current camera position

code: namespace ToolSceneQueriesUtil { double ToolSceneQueriesUtil::CalculateDimensionFromVisualAngleD ( const [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, const FVector3d & Point, double TargetVisualAngleDeg ) }


description: (approximate) 3D dimension that corresponds to a radius of target visual angle around Point

code: namespace ToolSceneQueriesUtil { double ToolSceneQueriesUtil::CalculateDimensionFromVisualAngleD ( const [FViewCameraState](API\Runtime\InteractiveToolsFramework\FViewCameraState) & CameraState, const FVector3d & Point, double TargetVisualAngleDeg ) }


description: visual angle between two 3D points, relative to the current camera position

code: namespace ToolSceneQueriesUtil { double ToolSceneQueriesUtil::CalculateViewVisualAngleD ( const [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, const FVector3d & Point1, const FVector3d & Point2 ) }


code: namespace ToolSceneQueriesUtil { double ToolSceneQueriesUtil::CalculateViewVisualAngleD ( const [FViewCameraState](API\Runtime\InteractiveToolsFramework\FViewCameraState) & CameraState, const FVector3d & Point1, const FVector3d & Point2 ) }


description:
Find the nearest object hit by the LineTrace from Start to End that is currently visible (provides correct result in Editor)
true if a visible hit was found

code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::FindNearestVisibleObjectHit ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World, [FHitResult](API\Runtime\Engine\Engine\FHitResult) & HitResultOut, const FRay & Ray, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * IgnoreComponents, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * InvisibleComponentsToInclude ) }


code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::FindNearestVisibleObjectHit ( [USceneSnappingManager](API\Runtime\InteractiveToolsFramework\SceneQueries\USceneSnappingManager) * SnappingManager, [FHitResult](API\Runtime\Engine\Engine\FHitResult) & HitResultOut, const FRay & Ray, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * IgnoreComponents, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * InvisibleComponentsToInclude ) }


code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::FindNearestVisibleObjectHit ( const [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, [FHitResult](API\Runtime\Engine\Engine\FHitResult) & HitResultOut, const FRay & Ray, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * IgnoreComponents, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * InvisibleComponentsToInclude ) }


code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::FindNearestVisibleObjectHit ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World, [FHitResult](API\Runtime\Engine\Engine\FHitResult) & HitResultOut, const FVector & Start, const FVector & End, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * IgnoreComponents, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * InvisibleComponentsToInclude ) }


code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::FindNearestVisibleObjectHit ( const [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, [FHitResult](API\Runtime\Engine\Engine\FHitResult) & HitResultOut, const FVector & Start, const FVector & End, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * IgnoreComponents, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * InvisibleComponentsToInclude ) }


description: Run a query against the scene to find the best SnapPointOut for the given Point

code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::FindSceneSnapPoint ( [FFindSceneSnapPointParams](API\Plugins\ModelingComponents\FFindSceneSnapPointParams) & Params ) }


description:
Run a query against the scene to find the best SnapPointOut for the given Point
true if a valid snap point was found

code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::FindSceneSnapPoint ( const [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, const FVector3d & Point, FVector3d & SnapPointOut, bool bVertices, bool bEdges, double VisualAngleThreshold, [FSnapGeometry](API\Plugins\ModelingComponents\FSnapGeometry) * SnapGeometry, FVector * DebugTriangleOut ) }


description: Run a query against the scene to find the nearest WorldGrid snap point

code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::FindWorldGridSnapPoint ( const [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, const FVector3d & QueryPoint, FVector3d & GridSnapPointOut ) }


description: false if point is not currently visible (approximately)

code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::IsPointVisible ( const [FViewCameraState](API\Runtime\InteractiveToolsFramework\FViewCameraState) & CameraState, const FVector3d & Point ) }


description: true if HitResult is a hit on a visible Component of a visible Actor (provides correct result in Editor)

code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::IsVisibleObjectHit ( const [FHitResult](API\Runtime\Engine\Engine\FHitResult) & HitResult ) }


description: Get a measurement for testing whether two points can snap together, useful for choosing the best snap point among multiple options. For perspective mode, the returned metric is the "visual angle" between the points, which is the angle between the points to the camera scaled such that the visual angle between the horizontal bounds of the view is 90. For orthographic mode, it is a projected distance onto the view plane scaled such that the distance between the horizontal bounds of the view is 90. Thus, the metric is suitable for comparing against a visual angle snap threshold to determine if snapping should happen.

code: namespace ToolSceneQueriesUtil { double ToolSceneQueriesUtil::PointSnapMetric ( const [FViewCameraState](API\Runtime\InteractiveToolsFramework\FViewCameraState) & CameraState, const FVector3d & Point1, const FVector3d & Point2 ) }


description:
Test if two points are close enough to snap together. This is done by computing visual angle between points for current camera position.
true if visual angle is < threshold

code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::PointSnapQuery ( const [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, const FVector3d & Point1, const FVector3d & Point2, double VisualAngleThreshold ) }


description: Test if two points are close enough to snap together. This is done by computing visual angle between points for current camera position.

code: namespace ToolSceneQueriesUtil { bool ToolSceneQueriesUtil::PointSnapQuery ( const [FViewCameraState](API\Runtime\InteractiveToolsFramework\FViewCameraState) & CameraState, const FVector3d & Point1, const FVector3d & Point2, double VisualAngleThreshold ) }


description: Round the given distance to the nearest multiple of the world grid cell size

code: namespace ToolSceneQueriesUtil { double ToolSceneQueriesUtil::SnapDistanceToWorldGridSize ( const [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, const double Distance ) }


description: Rendering Configuration/Setup Functions These utility functions are used to configure rendering settings on Preview Meshes created internally by Modeling Tools.

code: namespace ToolSetupUtil { void ToolSetupUtil::ApplyRenderingConfigurationToPreview ( [UPreviewMesh](API\Plugins\ModelingComponents\UPreviewMesh) * PreviewMesh, [UToolTarget](API\Runtime\InteractiveToolsFramework\ToolTargets\UToolTarget) * SourceTarget ) }


code: namespace ToolSetupUtil { void ToolSetupUtil::ApplyRenderingConfigurationToPreview ( [UBaseDynamicMeshComponent](API\Runtime\GeometryFramework\Components\UBaseDynamicMeshComponent) * Component, [UToolTarget](API\Runtime\InteractiveToolsFramework\ToolTargets\UToolTarget) * SourceTarget ) }


description: Simple two-sided material with configurable depth offset and color. The material will have opaque blend mode.

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetCustomTwoSidedDepthOffsetMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float PercentDepthOffset ) }


description: Simple two-sided material with configurable depth offset, color, and opacity. Note that the material will have translucent blend mode, which can interact poorly with overlapping translucent objects, so use the other overload if you do not need opacity control.

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetCustomTwoSidedDepthOffsetMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float PercentDepthOffset, float Opacity ) }


description: a curve asset used for contrast adjustments when using a texture map for displacements.

code: namespace ToolSetupUtil { [UCurveFloat](API\Runtime\Engine\Curves\UCurveFloat) * ToolSetupUtil::GetContrastAdjustmentCurve ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager ) }


description: Simple material with configurable depth offset and color. The material will have opaque blend mode.

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetCustomDepthOffsetMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float PercentDepthOffset ) }


description: Simple material with configurable depth offset, color, and opacity. Note that the material will have translucent blend mode, which can interact poorly with overlapping translucent objects, so use the other overload if you do not need opacity control.

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetCustomDepthOffsetMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float PercentDepthOffset, float Opacity ) }


description: Image-based sculpt material that supports changing the image

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetCustomImageBasedSculptMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, [UTexture](API\Runtime\Engine\Engine\UTexture) * SetImage ) }


description: Get a Material to use with a square brush plane/ROI indicator that has an analytic falloff function combined w/ an alpha mask texture. Falloff value will be used for both color and opacity, rendered as Additive with depth-testing disabled Material Parameters: "BrushAlpha" - Texture2D Parameter for brush alpha texture map "AlphaPower" - configure whether BrushAlpha texture is multiplied w/ analytic falloff (0 -> disabled, 1 -> enabled) "FalloffRatio" - float in range [0,1] that corresponds to width of brush falloff region "FalloffMode" - float in range [0,1] used to interpolate between Smooth (0) -> Linear (0.3333) -> Inverse (0.6666) -> Round (1.0) "FalloffShape" - float in range [0,1] used to interpolate between Circular (0.0) and Square (1.0) "IntensityScale" - float in range [0,1], multiplier on brightness of falloff highlight (default 0.2)

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetDefaultBrushAlphaMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager ) }


description: default material to use for brush volume indicators (for instance, a spherical sculpt brush).

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetDefaultBrushVolumeMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager ) }


description: Material used when editingAVolumeobjects using our tools.

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetDefaultEditVolumeMaterial() }


description: default material instance to use for "Error" animations

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetDefaultErrorMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager ) }


description: Gets a custom material suitable for use withULineSetComponent.

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetDefaultLineComponentMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, bool bDepthTested ) }


description: Get the default material for surfaces

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetDefaultMaterial() }


description:
Get the default material to use for objects in an InteractiveTool. Optionally use SourceMaterial if it is valid.
default material to use for objects in a tool.

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetDefaultMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * SourceMaterial ) }


description: Gets a custom material suitable for use withUPointSetComponentfor square points.

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetDefaultPointComponentMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, bool bDepthTested ) }


description: Sculpt Material 1

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetDefaultSculptMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager ) }


description: default material to use for "Working"/In-Progress animations

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetDefaultWorkingMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager ) }


description: default material instance to use for "Working"/In-Progress animations

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetDefaultWorkingMaterialInstance ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager ) }


description: Image-based sculpt material instance, based ImageMaterialType

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetImageBasedSculptMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, [ImageMaterialType](API\Plugins\ModelingComponents\ToolSetupUtil__ImageMaterialType) Type ) }


description: Gets a custom material suitable for use withUPointSetComponentfor round points. Note that this material uses translucent blend mode, and therefore can't always follow the correct draw order relative to other translucent objects (and within the point set). If this is not acceptible, you will need to use the depth tested square point material (GetDefaultPointComponentMaterial with bDepthTested = true).

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetRoundPointComponentMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, bool bDepthTested ) }


description: Selection Material 1

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetSelectionMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager ) }


description: Selection Material 1 with custom color and optional depth offset (depth offset moves vertices towards the camera)

code: namespace ToolSetupUtil { [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * ToolSetupUtil::GetSelectionMaterial ( const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & UseColor, [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, float PercentDepthOffset ) }


description: Simple material with configurable color. The material will have opaque blend mode.

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetSimpleCustomMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color ) }


description: Simple material with configurable color and opacity. Note that the material will have translucent blend mode, which can interact poorly with overlapping translucent objects, so use the other overload if you do not need opacity control.

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetSimpleCustomMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float Opacity ) }


description: Transparent two-sided material suitable for sculpting (has some shine and a Fresnel effect)

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetTransparentSculptMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, double Opacity, bool bTwoSided ) }


description:
Get a black-and-white NxN checkerboard material
default material to use for uv checkerboard visualizations

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetUVCheckerboardMaterial ( double CheckerDensity ) }


description: configurable vertex color material

code: namespace ToolSetupUtil { [UMaterialInstanceDynamic](API\Runtime\Engine\Materials\UMaterialInstanceDynamic) * ToolSetupUtil::GetVertexColorMaterial ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, bool bTwoSided ) }


className: EMultiTransformerMode

code: enum EMultiTransformerMode { DefaultGizmo = 1, QuickAxisTranslation = 2, }


description: Types of image-based material that we can create

code: namespace ToolSetupUtil { enum ImageMaterialType { DefaultBasic, DefaultSoft, TangentNormalFromView, } }


code: virtual [FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) GetActiveRotationFrame() const


description: the current transform frame

code: const [FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) & GetActiveWorldFrame() const


code: bool GetHaveLockedToAxis() const


description: true if there is an active snap

code: virtual bool HaveActiveSnap() const


code: virtual bool HaveActiveSnapRotation() const


description: Set up internal data structures

code: virtual void Initialize()


description: Draw a visualization of the current snap axes and active snap point

code: virtual void PreviewRender ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


code: virtual void Render ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: Reset transformer state

code: virtual void Reset()


description: Set current transform frame to the given frame

code: virtual void SetActiveWorldFrame ( const [FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) & Frame )


description: Set current snap-axis frame to a frame at the given Origin with Z aligned to the given Normal.

code: virtual void SetActiveFrameFromWorldNormal ( const FVector3d & Origin, const FVector3d & Normal, bool bAlignToWorldAxes )


description: Update the current snap-axis frame with a new origin

code: virtual void UpdateActiveFrameOrigin ( const FVector3d & NewOrigin )


description: Set current transform frame to the unit axes at the given Origin

code: virtual void SetActiveFrameFromWorldAxes ( const FVector3d & Origin )


description: Update internal copy of camera state. You must call this for snapping to work!

code: virtual void UpdateCameraState ( const [FViewCameraState](API\Runtime\InteractiveToolsFramework\FViewCameraState) & CameraState )


description:
Try to find the best snap point for the given Ray, and store in SnapPointOut if found
true if found

code: virtual bool UpdateSnap ( const FRay3d & Ray, FVector3d & SnapPointOut )


code: virtual ~FQuickAxisRotator()


className: FQuickAxisRotator

code: class FQuickAxisRotator : public [UE::Geometry::FQuickTransformer](API\Plugins\ModelingComponents\Transforms\FQuickTransformer)

AxisColorMap

type: TMap< int,FLin...

CameraState

type: FViewCameraStat...

description: Camera state saved at lastRender()

MoveAxisSolver

type: FRaySpatialSnap...

QuickAxisPreviewRenderer

type: FToolDataVisual...


description: Set current snap-axis frame to the unit axes at the given Origin


description: Set current snap-axis frame to the given frame


code: virtual ~FQuickAxisTranslater()


className: FQuickAxisTranslater

description: A small snap-ball around the frame origin prevents small movements, which are unstable with this approach.

code: class FQuickAxisTranslater : public [UE::Geometry::FQuickTransformer](API\Plugins\ModelingComponents\Transforms\FQuickTransformer)

CameraState

description: Camera state saved at lastRender()


description: Set up internal data structures

code: void Initialize()


code: void PreviewRender ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


code: void Render ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: Reset transformer state

code: void Reset()


code: void SetActiveWorldFrame ( const [FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) & Frame )


code: void SetActiveFrameFromWorldAxes ( const FVector3d & Origin )


code: void UpdateActiveFrameOrigin ( const FVector3d & NewOrigin )


code: virtual bool UpdateSnap ( const FRay3d & Ray, FVector3d & SnapPointOut, [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< FVector3d(const FVector3d &)> PositionConstraintFunc )


code: void UpdateCameraState ( const [FViewCameraState](API\Runtime\InteractiveToolsFramework\FViewCameraState) & CameraState )


code: virtual ~FQuickTransformer()


description: Should be called at the beginning of a sequence of UpdateAfterDataEdit calls, for instance if the bound values are being scrubbed in a display.

code: void BeginDataEditSequence()


className: FQuickTransformer

code: class FQuickTransformer


description: Makes it so that the gizmo binder attaches to any gizmos created by the context object in the future. The binding is automatically removed ifFTransformGizmoDataBinderis destroyed.

code: virtual void BindToGizmoContextObject ( [UCombinedTransformGizmoContextObject](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransfo-) * ContextObject )


description: Binds to a specific gizmo for tracking. Requires ActiveTarget to be set, and is done automatically for gizmos when binding via the gizmo context object.

code: virtual void BindToInitializedGizmo ( [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * Gizmo, [UTransformProxy](API\Runtime\InteractiveToolsFramework\BaseGizmos\UTransformProxy) * )


description: Used for binding to context object, called from the OnGizmoCreated delegate.

code: void BindToUninitializedGizmo ( [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * Gizmo )


description: Should be called at the end of a sequence of UpdateAfterDataEdit calls, for instance if the bound values are being scrubbed in a display.

code: void EndDataEditSequence()


className: FOnTrackedGizmoChanged

description: Broadcast whenever the tracked gizmo is changed (because one of multiple gizmos is dragged, or a new gizmo appears after no others are present).

code: typedef TMulticastDelegate_OneParam< void, [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * > FOnTrackedGizmoChanged


code: FTransform GetGizmoTransformFromDataValues ( bool bLocalCoordinates )


description: Determines whether there is a visible currently tracked gizmo.

code: virtual bool HasVisibleGizmo()


description: In delta mode, the bound values hold the difference of the current gizmo transform relative to some previous start transform. When false, the binder is in "destination mode", where the bound values represent the final gizmo transform.

code: virtual bool IsInDeltaMode()


description: Set the vectors that should reflect the gizmo transform. Any of these pointers can be null, but currently the same amount of work is done by the binder (it will simply bind to some internal vectors).

code: virtual void InitializeBoundVectors ( FVector3d * Translation, FVector3d * RotaionEulerAngles, FVector3d * Scale )


code: void OnDisplaySpaceTransformChanged ( [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * Gizmo, [TOptional](API\Runtime\Core\IO\TOptional)< FTransform > Transform )


code: void OnGizmoVisibilityChanged ( [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * Gizmo, bool bVisible )


description: Used in binding to gizmos. Currently these need to be member variables to allow the use of AddSP, as there is not an AddLambda overload that allows for subsequent RemoveAll() calls (because AddWeakLambda only works with UObjects).

code: void OnProxyBeginTransformEdit ( [UTransformProxy](API\Runtime\InteractiveToolsFramework\BaseGizmos\UTransformProxy) * TransformProxy, [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * Gizmo )


code: void OnProxyEndTransformEdit ( [UTransformProxy](API\Runtime\InteractiveToolsFramework\BaseGizmos\UTransformProxy) * TransformProxy, [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * Gizmo )


code: void OnProxyTransformChanged ( [UTransformProxy](API\Runtime\InteractiveToolsFramework\BaseGizmos\UTransformProxy) * TransformProxy, FTransform Transform, [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * Gizmo )


description: Unbinds from everything

code: virtual void Reset()


description: Much like SetToDeltaMode, but uses the current gizmo transform as the start transform, meaning that the bound data values will be reset to zero.

code: virtual void ResetToDeltaMode()


description: In local coordinate destination mode, when a DisplaySpaceTransform is not available on the gizmo, this default transform can be used instead. Currently, this is used to allow destination mode for the 2D gizmos in UV editor, but that's a fairly specific use case.

code: void SetDefaultLocalReferenceTransform ( [TOptional](API\Runtime\Core\IO\TOptional)< FTransform > DefaultTransform )


description: Sets to delta mode with given start transform. This call will update the bound values appropriately from the current gizmo transform.

code: virtual void SetToDeltaMode ( const FTransform & StartTransform )


description: Sets to destination mode (as opposed to delta mode). Calling this will update the bound values to reflect the current tracked gizmo transform. If the gizmo is in local coordinate mode and it has a custom reference transform, that will be used as the reference.

code: virtual void SetToDestinationMode()


description: Note that if the same data binder is bound to multiple gizmos, then it will switch tracked gizmos automatically whenever a gizmo is dragged, or whenever a gizmo becomes visible without the previously tracked gizmo being visible.

code: virtual void SetTrackedGizmo ( [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * Gizmo )


description: Allows the data bound to the translation component to be stored in different units than used by the gizmo. For instance, in a UV editor where the world coordinates are not actually 0 to 1.

code: virtual void SetTranslationConversionFunctions ( [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< FVector3d(const FVector3d &InternalValue)> ActualToBoundConversionIn, [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< FVector3d(const FVector3d &DisplayValue)> BoundToActualConversionIn )


description: Currently, the binder will automatically switch to delta mode when tracking a new gizmo that doesn't satisfy the above definition of safety, though it won't prevent the mode from being switched from there...


description: Unbinds from a given gizmo. Done automatically for gizmos when their ActiveTarget is cleared when binding via the gizmo context object.

code: virtual void UnbindFromGizmo ( [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * Gizmo, [UTransformProxy](API\Runtime\InteractiveToolsFramework\BaseGizmos\UTransformProxy) * )


description: Called to update the gizmo after updating the bound data. This acts slightly differently depending on whether we're between begin/end sequence calls (for instance it will trigger individual undo transactions if not between Begin/End calls).

code: void UpdateAfterDataEdit()


description: Can either be called on tick or in response to some broadcast to allow the binder to respond to coordinate system changes. If not called, the coordinate system will still be updated the next time that the gizmo is modified.

code: virtual void UpdateCoordinateSystem()


code: void UpdateDataValuesFromGizmo()


code: virtual ~FTransformGizmoDataBinder()


code: void AddAlignmentMechanic ( [UDragAlignmentMechanic](API\Plugins\ModelingComponents\Mechanics\UDragAlignmentMechanic) * AlignmentMechanic )


className: FTransformGizmoDataBinder

description: To use, just call InitializeBoundVectors with 3 vectors (it can be fewer, but the binder currently does the same amount of work regardless of whether 3 or fewer are bound), and then either call BindToGizmoContextObject with the context object that will be used to create the gizmos (in which case the vectors will bind to all newly created gizmos, and will switch bindings as different gizmos are dragged), or just bind to a particular gizmo using BindToInitializedGizmo after its SetActiveTarget call has been made..

code: class FTransformGizmoDataBinder : public [TSharedFromThis< FTransformGizmoDataBinder, ESPMode::ThreadSafe >](API\Runtime\Core\Templates\TSharedFromThis)

ActualToBoundConversion

description: See comment for SetTranslationConversionFunctions.

bCurrentGizmoLacksDegreeOfFreedom

description: If a gizmo doesn't have all three axes and is not aligned to world (i.e. is in local mode) then we currently require a reference transform to allow the user to be in destination mode.

bIgnoreCallbackForDebouncing

description: Used for debouncing when editing the gizmo via the UI.

bInDataEditSequence

description: Additional state that lets us respond appropriately to various notifications.

BoundEulerAngles

type: FVector3d *

BoundGizmos

type: TSet<TWeakObje...

description: All the gizmos the numerical UI can correspond to.

bUsingDeltaMode

description: Controls delta mode, where the gizmo specifies a difference from some start transform.

ContextObjectsToUnregisterWith

type: TArray<TWeakOb...

description: Used to clean up our registration with context object when being destroyed.

CurrentCustomLocalReferenceTransform

type: TOptional< FTra...

description: Reference transform to use when in local gizmo mode.

CurrentlyTrackedGizmo

type: TWeakObjectPtr<...

description: Gizmo to which the values are currently bound.

DefaultCustomLocalReferenceTransform

description: Reference transform to use in local gizmo mode by default.

DeltaStartTransform

type: FTransform

LastCoordinateSystem

type: EToolContextCoo...

description: Used to determine whether the current gizmo's coordinate system has changed, when we receive anUpdateCoordinateSystem()call.

LastTranslation

description: Used to detect whether anything actually changed.

OnTrackedGizmoChanged

type: FOnTrackedGizmo...

ProportionalDragInitialVector

description: Used when we only allow uniform scaling, to scale everything proportionally.


className: FMultiTransformerEvent

code: typedef TMulticastDelegate_NoParams< void > FMultiTransformerEvent


code: virtual const [FFrame3d](API\Runtime\GeometryCore\TFrame3) & GetCurrentGizmoFrame() const


code: virtual const FVector3d & GetCurrentGizmoScale() const


code: virtual [EMultiTransformerMode](API\Plugins\ModelingComponents\Transforms\EMultiTransformerMode) GetMode() const


code: virtual bool InGizmoEdit() const


code: virtual void InitializeGizmoPositionFromWorldFrame ( const [FFrame3d](API\Runtime\GeometryCore\TFrame3) & Frame, bool bResetScale )


code: void OnBeginProxyTransformEdit ( [UTransformProxy](API\Runtime\InteractiveToolsFramework\BaseGizmos\UTransformProxy) * Proxy )


code: void OnEndProxyTransformEdit ( [UTransformProxy](API\Runtime\InteractiveToolsFramework\BaseGizmos\UTransformProxy) * Proxy )


description: Called on PlaneTransformProxy.OnTransformChanged

code: void OnProxyTransformChanged ( [UTransformProxy](API\Runtime\InteractiveToolsFramework\BaseGizmos\UTransformProxy) * Proxy, FTransform Transform )


code: void SetDisallowNegativeScaling ( bool bDisallow )


code: virtual void ResetScale()


code: virtual void SetEnabledGizmoSubElements ( ETransformGizmoSubElements EnabledSubElements )


code: virtual void SetGizmoRepositionable ( bool bOn )


code: virtual void SetGizmoVisibility ( bool bVisible )


code: virtual void SetMode ( [EMultiTransformerMode](API\Plugins\ModelingComponents\Transforms\EMultiTransformerMode) NewMode )


code: virtual void SetOverrideGizmoCoordinateSystem ( EToolContextCoordinateSystem CoordSystem )


code: void SetSnapToWorldGridSourceFunc ( [TUniqueFunction](API\Runtime\Core\Templates\TUniqueFunction)< bool()> EnableSnapFunc )


code: virtual void Setup ( [UInteractiveGizmoManager](API\Runtime\InteractiveToolsFramework\UInteractiveGizmoManager) * GizmoManager, [IToolContextTransactionProvider](API\Runtime\InteractiveToolsFramework\IToolContextTransactionProvider) * TransactionProviderIn )


code: virtual void Shutdown()


code: virtual void Tick ( float DeltaTime )


code: virtual void UpdateGizmoPositionFromWorldFrame ( const [FFrame3d](API\Runtime\GeometryCore\TFrame3) & Frame, bool bResetScale )


code: void UpdateShowGizmoState ( bool bNewVisibility )


className: UMultiTransformer

description: UMultiTransformerabstracts both a default TRS Gizmo, and the "Quick" translate/rotate Gizmos. The "Quick" part is not yet implemented, and we might end up phasing out this class.

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)() class UMultiTransformer : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

ActiveGizmoSubElements

type: ETransformGizmo...

ActiveMode

type: EMultiTransform...

bDisallowNegativeScaling

type: bool

DragAlignmentMechanic

type: TObjectPtr<UDr...

description: We have to hold on to the mechanic only because the MultiTransformer has the capacity to delete and recreate its gizmo, in which case we'll need to attach the alignment mechanic again.

EnableSnapToWorldGridFunc

type: TUniqueFunction...

GizmoManager

type: TObjectPtr<UIn...

description: Note: we could have more pivot change delegates, but we don't yet need them, and we might phase out theUMultiTransformer.

IsNonUniformScaleAllowed

type: TFunction< bool...

OnEndPivotEdit

type: FMultiTransform...

description: This delegate is fired when a repositioning drag is completed

OnTransformCompleted

description: This delegate is fired when the drag is completed

OnTransformStarted

description: This delegate is fired when a drag is started

OnTransformUpdated

description: This delegate is fired when a drag is updated

TransactionProvider

type: IToolContextTra...

TransformGizmo

type: TObjectPtr<UCo...

TransformProxy

type: TObjectPtr<UTr...


code: namespace UE { namespace Geometry { namespace SplineUtil { void UE::Geometry::SplineUtil::DrawSpline ( const [USplineComponent](API\Runtime\Engine\Components\USplineComponent) & SplineComp, [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) & RenderAPI, const [FDrawSplineSettings](API\Plugins\ModelingComponents\FDrawSplineSettings) & Settings ) } } }


description: Create a new mesh object based on the data in CreateMeshParams. This is a convenience function that will try to locate aUModelingObjectsCreationAPIinstance in the ToolManager's ContextObjectStore, and then callUModelingObjectsCreationAPI::CreateMeshObject()a results data structure, containing a result code and information about any new objects created

code: namespace UE { namespace Modeling { [FCreateMeshObjectResult](API\Plugins\ModelingComponents\FCreateMeshObjectResult) UE::Modeling::CreateMeshObject ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, [FCreateMeshObjectParams](API\Plugins\ModelingComponents\FCreateMeshObjectParams) && CreateMeshParams ) } }


code: void SetIsNonUniformScaleAllowedFunction ( [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool()> IsNonUniformScaleAllowedIn )


description: Create a new material object based on the data in CreateMaterialParams. This is a convenience function that will try to locate aUModelingObjectsCreationAPIinstance in the ToolManager's ContextObjectStore, and then callUModelingObjectsCreationAPI::CreateMaterialObject()a results data structure, containing a result code and information about any new objects created

code: namespace UE { namespace Modeling { [FCreateMaterialObjectResult](API\Plugins\ModelingComponents\FCreateMaterialObjectResult) UE::Modeling::CreateMaterialObject ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, [FCreateMaterialObjectParams](API\Plugins\ModelingComponents\FCreateMaterialObjectParams) && CreateMaterialParams ) } }


description: Create a new actor based on the data in CreateActorParams. This is a convenience function that will try to locate aUModelingObjectsCreationAPIinstance in the ToolManager's ContextObjectStore, and then callUModelingObjectsCreationAPI::CreateNewActor()a results data structure, containing a result code and information about any new objects created

code: namespace UE { namespace Modeling { [FCreateActorResult](API\Plugins\ModelingComponents\FCreateActorResult) UE::Modeling::CreateNewActor ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, [FCreateActorParams](API\Plugins\ModelingComponents\FCreateActorParams) && CreateActorParams ) } }


description: Create a new texture object based on the data in CreateTexParams. This is a convenience function that will try to locate aUModelingObjectsCreationAPIinstance in the ToolManager's ContextObjectStore, and then callUModelingObjectsCreationAPI::CreateTextureObject()a results data structure, containing a result code and information about any new objects created

code: namespace UE { namespace Modeling { [FCreateTextureObjectResult](API\Plugins\ModelingComponents\FCreateTextureObjectResult) UE::Modeling::CreateTextureObject ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, [FCreateTextureObjectParams](API\Plugins\ModelingComponents\FCreateTextureObjectParams) && CreateTexParams ) } }


description: Generate a N-letter GUID string that contains only hex digits, and contains at least one letter and one number. Used to create _UUID suffixes for making asset names unique, etc.

code: namespace UE { namespace Modeling { [FString](API\Runtime\Core\Containers\FString) UE::Modeling::GenerateRandomShortHexString ( int32 NumChars ) } }


description:
Look up the name for the Asset underlying the given Component, if there is one. Optionally Strip off the appended auto-generated UUID string if we can detect one. If there is not a known underlying asset, returns the Component's name
the Name for the Component

code: namespace UE { namespace Modeling { [FString](API\Runtime\Core\Containers\FString) UE::Modeling::GetComponentAssetBaseName ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component, bool bRemoveAutoGeneratedSuffixes ) } }


description:
Strip the appended auto-generated _UUID suffix on the given string, if we can detect one
InputName without _UUID suffix

code: namespace UE { namespace Modeling { [FString](API\Runtime\Core\Containers\FString) UE::Modeling::StripGeneratedAssetSuffixFromName ( [FString](API\Runtime\Core\Containers\FString) InputName ) } }