className: FCreateTextureObjectResult

description: FCreateTextureObjectResultis returned byUModelingObjectsCreationAPI::CreateTextureObject()to indicate success/failure and provide information about created texture objects

NewAsset

description: A pointer to a newly-created Asset for the texture object

ResultCode

description: Success/Failure status for the requested operation


className: FCreateMeshObjectResult

description: FCreateMeshObjectResultis returned byUModelingObjectsCreationAPI::CreateMeshObject()to indicate success/failure and provide information about created mesh objects

module: ModelingComponents

NewActor

type: TObjectPtr<AAc...

description: A pointer to a newly-created Actor for the mesh object, if applicable (eg StaticMeshActor)

NewAsset

type: TObjectPtr<UOb...

description: A pointer to a newly-created Asset for the mesh object, if applicable (eg StaticMeshAsset)

NewComponent

type: TObjectPtr<UPr...

description: A pointer to a newly-created PrimitiveComponent for the mesh object, if applicable (eg StaticMeshComponent)

type: ECreateModeling...


className: FDrawSplineSettings

description: Used forDrawSpline()

code: struct FDrawSplineSettings

RegularColor

type: FColor

description: Defaults to FStyleColors::White.

ScaleVisualizationWidth

type: double

description: If non-positive, the spline is drawn just as points and curves.

SelectedColor

description: Defaults to FStyleColors::AccentOrange.

SelectedKeys

description: Keys to use SelectedColor for.


className: FDynamicMeshOpResult

description: FDynamicMeshOpResultis a container for a computed Mesh and Transform

code: struct FDynamicMeshOpResult


className: FFindSceneSnapPointParams

code: struct FFindSceneSnapPointParams

bEdges

type: bool

CameraState

type: FViewCameraStat...

ComponentsToIgnore

type: constTArray< c...

DebugTriangleOut

type: FVector *

Point

type: const FVector3d...

SnapGeometryOut

type: FSnapGeometry&...

SnappingManager

type: constUSceneSna...

description: Required inputs/outputs.

SnapPointOut

type: FVector3d *


description: Registered inStartupModule()with FCoreDelegates::OnPostEngineInit and called once

code: void OnPostEngineInit()


description: Called before the module is unloaded, right before the module object is destroyed. During normal shutdown, this is called in reverse order that modules finishStartupModule(). This means that, as long as a module references dependent modules in it'sStartupModule(), it can safely reference those dependencies inShutdownModule()as well.

code: virtual void ShutdownModule()


description: IModuleInterfaceimplementation

code: virtual void StartupModule()


className: FModelingComponentsModule

code: class FModelingComponentsModule : public [IModuleInterface](API\Runtime\Core\Modules\IModuleInterface)


className: FSnapGeometry

description: FSnapGeometrystores information about geometry data of a snap, which we might use for highlights/etc

code: struct FSnapGeometry

PointCount

type: int

description: Number of initialized elements in Points

Points

description: Geometry that was snapped to. only PointCount elements are initialized


description: Notify the tool that the activity has ended.

code: void NotifyActivitySelfEnded ( [UInteractiveToolActivity](API\Plugins\ModelingComponents\UInteractiveToolActivity) * Activity )


className: IToolActivityHost

code: class IToolActivityHost


className: ECollectSurfacePathDoneMode

code: enum ECollectSurfacePathDoneMode { SnapCloseLoop, SnapDoubleClick, SnapDoubleClickOrCloseLoop, ExternalLambda, FixedNumPoints, }


className: ESpaceCurveControlPointFalloffType

code: enum ESpaceCurveControlPointFalloffType { Linear, Smooth, }


className: ESpaceCurveControlPointOriginMode

code: enum ESpaceCurveControlPointOriginMode { Shared, First, Last, }


className: ESpaceCurveControlPointTransformMode

code: enum ESpaceCurveControlPointTransformMode { Shared, PerVertex, }


description: Append a point to the PolyLasso polyine using a world-space ray

code: void AddPoint ( const FRay & WorldRay )


description: Project a world-space point into the same space as the 2D PolyLine

code: FVector2D GetProjectedPoint ( const FVector & Point ) const


code: FVector2D PlaneCoordinates ( const FVector & Point ) const


code: FCameraPolyLasso ( const [FViewCameraState](API\Runtime\InteractiveToolsFramework\FViewCameraState) & CachedCameraState )


className: FCameraPolyLasso

description: Struct containing:

code: struct FCameraPolyLasso

CameraOrigin

type: FVector

CameraPlane

type: FPlane

Polyline

type: TArray< FVector...


code: typedef [UE::Geometry::TAxisAlignedBox2](API\Runtime\GeometryCore\TAxisAlignedBox2)< [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) > FAxisAlignedBox2


code: typedef [UE::Geometry::TPlane3](API\Runtime\GeometryCore\TPlane3)< [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) > FPlane3


className: FRectangleInPlane

code: struct FRectangleInPlane

Plane

description: Rectangle is defined in the UV-coordinate system of Plane. See PlaneCoordinates.

Rectangle

type: FAxisAlignedBox...


code: typedef [UE::Geometry::TSegment2](API\Runtime\GeometryCore\TSegment2)< [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) > FSegment2


code: typedef [UE::Math::TVector2](API\Runtime\Core\Math\TVector2)< [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) > FVector2


description: This function must be called before other member functions whenever camera state or start/end rays are updated.

code: void Initialize()


description: Return true if the given 3D geometry projected to the camera plane is inside or intersecting the rectangle, and false otherwise

code: bool IsProjectedPointInRectangle ( const FVector & Point ) const


code: bool IsProjectedSegmentIntersectingRectangle ( const FVector & Endpoint1, const FVector & Endpoint2 ) const


description: Return the 3D point obtained by projecting the given 3D Point onto the given projection plane Note: Assumes an orthographic camera

code: static FVector OrthographicProjection ( const [FPlane3](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle\FPlane3) & Plane, const FVector & Point )


description: Return the 3D point obtained by projecting the given 3D Point onto the given projection plane Note: Assumes a perspective camera

code: FVector PerspectiveProjection ( const [FPlane3](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle\FPlane3) & Plane, const FVector & Point ) const


description: Given a 3D point lying in the given Plane, return the UV coordinates of the point expressed in the following a two dimensional parameterization of the given Plane:

code: [FVector2](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle\FVector2) Point3DToPointUV ( const [FPlane3](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle\FPlane3) & Plane, const FVector & Point3DInPlane ) const


description: Given a 2D point in the UV space of the given Plane, return the coordinates of the 3D point lying in the Plane. This function is the inverse of Point3DToPointUV.

code: FVector PointUVToPoint3D ( const [FPlane3](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle\FPlane3) & Plane, const [FVector2](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle\FVector2) & PointUV ) const


description: Note: This function is in the public API to optimize selection in the UV editor where meshes are known to lie in the XY plane in front of the camera (so point projection/camera plane clipping is unnecessary)

code: [FRectangleInPlane](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle\FRectangleInPlane) ProjectSelectionDomain ( double OffsetFromCameraPlane ) const


className: FCameraRectangle

description: Struct containing:

code: struct FCameraRectangle

RectangleEndRay

type: FInputDeviceRay

description: FInputDeviceRayrepresents a 3D ray created based on an input device.

SelectionDomain

type: FRectangleInPla...


description: Convert face direction to the index of the nonzero normal dimension, or equivalently, the dimension in which that face is flat.

code: static int8 DirToFlatDim ( [EFaceDirection](API\Plugins\ModelingComponents\Mechanics\FCubeGrid\EFaceDirection) DirectionIn )


description: Convert face direction to its normal.

code: static FVector3d DirToNormal ( [EFaceDirection](API\Plugins\ModelingComponents\Mechanics\FCubeGrid\EFaceDirection) DirectionIn )


className: EFaceDirection

description: Direction that a face is facing. Values are set up like in IndexUtil, such that abs(value)-1 is the nonzero normal direction, and sign(value) is the sign of the normal.

code: enum EFaceDirection { NegativeX = -1, PositiveX = 1, NegativeY = -2, PositiveY = 2, NegativeZ = -3, PositiveZ = 3, }


className: EPowerMode

code: enum EPowerMode { PowerOfTwo, FiveAndTen, }


code: const FVector3d & GetCenter&40;&41; const


code: FVector3d GetMaxCorner&40;&41; const


code: FVector3d GetMinCorner&40;&41; const


code: FVector3d GetNormal&40;&41; const


code: bool operator&61;&61; &40; const FCubeFace & Other &41; const


code: bool operator&33;&61; &40; const FCubeFace & Other &41; const


code: FCubeFace &40; const FVector3d & PointOnFace, EFaceDirection Direction, uint8 SourceCubeGridPower &41;


description: Get flipped version of a face direction.

code: static [EFaceDirection](API\Plugins\ModelingComponents\Mechanics\FCubeGrid\EFaceDirection) FlipDir ( [EFaceDirection](API\Plugins\ModelingComponents\Mechanics\FCubeGrid\EFaceDirection) DirectionIn )


className: FCubeFace

description: A face always refers to coordinates in the grid space. It is always on grid, and tied to a particular grid power.

code: class FCubeFace


code: double GetBaseGridCellSize() const


code: double GetCurrentGridCellSize() const


code: double GetCellSize ( uint8 GridPower ) const


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


code: FTransform GetFTransform() const


code: uint8 GetGridPower() const


code: virtual bool GetHitGridFaceBasedOnRay ( const FVector3d & WorldHitPoint, const FVector3d & NormalOrTowardCameraRay, [FCubeGrid::FCubeFace](API\Plugins\ModelingComponents\Mechanics\FCubeGrid\FCubeFace) & FaceOut, bool bPierceToBack, double PlaneTolerance ) const


code: uint8 GetMaxGridPower() const


code: void SetBaseGridCellSize ( double SizeIn )


code: void SetCurrentGridCellSize ( double SizeIn )


code: void SetGridFrame ( const [FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) & FrameIn )


code: void SetGridPower ( uint8 PowerIn )


code: void SetGridPowerMode ( [EPowerMode](API\Plugins\ModelingComponents\Mechanics\FCubeGrid\EPowerMode) PowerModeIn )


code: FVector3d ToGridPoint ( FVector3d WorldPoint ) const


code: FVector3d ToWorldPoint ( FVector3d GridPoint ) const


code: FVector3d ToWorldPoint ( FVector3d GridPoint, uint8 GridPower ) const


description: Makes the change to the object

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


className: FCubeGrid

description: Class representing an adjustable and resizable power-of-two grid in which faces can be selected.

code: class FCubeGrid

CurrentCellSize

description: This should always be BaseGridCellSize * 2^CurrentGridPower.

GridPowerMode

type: EPowerMode


description: true if this Change has Expired, ie it will no longer have any effect and could be skipped by undo/redo

code: virtual bool HasExpired ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * Object ) const


description: Reverts change to the object

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


description: Describes this change (for debugging)

code: virtual [FString](API\Runtime\Core\Containers\FString) ToString() const


code: FCurveControlPointsMechanicInsertionChange ( int32 SequencePositionIn, int32 PointID, const FVector3d & CoordinatesIn, bool AddedIn, int32 ChangeStampIn )


code: class FCurveControlPointsMechanicInsertionChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)


code: FCurveControlPointsMechanicMovementChange ( int32 PointIDIn, const FVector3d & OriginalPositionIn, const FVector3d & NewPositionIn, int32 ChangeStampIn )


code: class FCurveControlPointsMechanicMovementChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)


code: FCurveControlPointsMechanicSelectionChange ( int32 SequencePositionIn, bool AddedIn, int32 ChangeStampIn )


code: class FCurveControlPointsMechanicSelectionChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)


code: FCurveControlPointsMechanicModeChange ( bool bDoneWithInitializationIn, bool bIsLoopIn, int32 ChangeStampIn )


className: FCurveControlPointsMechanicModeChange

code: class FCurveControlPointsMechanicModeChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)


description: Adds this mechanic to the given gizmo. Can be called on multiple gizmos, and works both forUCombinedTransformGizmoandURepositionableTransformGizmo. For repositioning, the gizmo will not ignore anything in its alignment (so that the gizmo can be aligned to the target object(s)). For movement, the gizmo will ignore ComponentsToIgnore, as well as modified triangles if used for deformation.

code: void AddToGizmo ( [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * TransformGizmo, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * ComponentsToIgnore, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * InvisibleComponentsToInclude )


description: Like the other AddToGizmo, but acts on interval gizmos.

code: void AddToGizmo ( [UIntervalGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UIntervalGizmo) * IntervalGizmo, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * ComponentsToIgnoreInAlignment, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * InvisibleComponentsToInclude )


code: static const int32 EDGE_HIT_TYPE_ID = 3;


description:
Casts a ray into the scene to find an alignment point. Used in the functions bound to gizmos.
true if something was hit.

code: virtual bool CastRay ( const FRay & WorldRay, FVector & OutputPoint, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * ComponentsToIgnore, const [TArray](API\Runtime\Core\Containers\TArray)< const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * > * InvisibleComponentsToInclude, bool bUseFilter )


code: bool GetAlignmentModeEnabled() const


description: Subclasses must implement these various API functions for the interaction to function


description: Optional- allows the use of the mechanic in mesh deformation. Specifically, alignment will attempt to align to the dynamic mesh underlying the given FDynamicMeshAABBTree3, and ignore deformed triangles when the gizmo is moved. This works with only one deformed mesh, so it probably wouldn't be used with multiple gizmos.

code: void InitializeDeformedMeshRayCast ( [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< [UE::Geometry::FDynamicMeshAABBTree3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMeshAABBTree3) *()> GetSpatialIn, const FTransform3d & TargetTransform, const [UE::Geometry::FGroupTopologyDeformer](API\Plugins\DynamicMesh\Operations\FGroupTopologyDeformer) * LinearDeformer )


code: void OnGizmoTransformChanged ( FTransform NewTransform )


description: This will draw a line from the last input position to the last output position. This gets cleared when the transform is ended.

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


description: Subclasses must call this to initialize the internal functions/states/etc

code: virtual void SetupInternal()


description: Used to identify the type of object we hit, so we can choose different renderings.

code: static const int32 TRIANGLE_HIT_TYPE_ID = 1;


code: static const int32 VERT_HIT_TYPE_ID = 2;


code: virtual ~FDragAlignmentBase()


className: FDragAlignmentBase

description: FDragAlignmentBaseis a base class for shared functionality ofUDragAlignmentMechanicandUDragAlignmentInteraction. This interaction can be attached to (potentially multiple)UCombinedTransformGizmoobject to allow them to snap to scene geometry in rotation and translation when a modifier key is pressed.

code: class FDragAlignmentBase

bPreviewEndpointsValid

description: We keep track of the last position we gave the user and the last position that they moved their gizmo.

CachedCameraState

description: Used for snapping to verts.

LastHitResult

type: FHitResult

MeshRayCast

type: TUniqueFunction...

VisualAngleSnapThreshold

type: float

WorldRayCast

description: These are modifiable in case we someday want to make it easier to customize them further.


description: Makes the change to the object

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


code: virtual bool HasExpired ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * Object ) const


description: Reverts change to the object

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


description: Describes this change (for debugging)

code: virtual [FString](API\Runtime\Core\Containers\FString) ToString() const


code: FLatticeControlPointsMechanicMovementChange ( const [TMap](API\Runtime\Core\Containers\TMap)< int32, FVector3d > & OriginalPositionsIn, const [TMap](API\Runtime\Core\Containers\TMap)< int32, FVector3d > & NewPositionsIn, int32 ChangeStampIn, bool bFirstMovementIn )


description: Control points have moved.

code: class FLatticeControlPointsMechanicMovementChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)

bFirstMovement

type: bool

NewPositions

type: TMap< int32, FV...


code: FLatticeControlPointsMechanicSelectionChange ( int32 PointIDIn, bool bAddedIn, const FTransform & PreviousTransformIn, const FTransform & NewTransformIn, int32 ChangeStampIn )


code: FLatticeControlPointsMechanicSelectionChange ( const [TSet](API\Runtime\Core\Containers\TSet)< int32 > & PointIDsIn, bool bAddedIn, const FTransform & PreviousTransformIn, const FTransform & NewTransformIn, int32 ChangeStampIn )


description: Control point selection has changed.

code: class FLatticeControlPointsMechanicSelectionChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)

NewTransform

type: const FTransfor...

PointIDs

type: TSet< int32 >


code: FSpaceCurveDeformationMechanicMovementChange ( const [TArray](API\Runtime\Core\Containers\TArray)< [UE::Geometry::FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) > & FromPositions, const [TArray](API\Runtime\Core\Containers\TArray)< [UE::Geometry::FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) > & ToPositions )


code: class FSpaceCurveDeformationMechanicMovementChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)


code: FSpaceCurveDeformationMechanicSelectionChange ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & FromIDs, const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & ToIDs )


code: class FSpaceCurveDeformationMechanicSelectionChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)

From

type: TArray< int32 >


className: FSpaceCurveSource

code: class FSpaceCurveSource


code: bool CheckGeometricClosure ( const [FFrame3d](API\Plugins\ModelingComponents\Mechanics\UCollectSurfacePathMechanic\FFrame3d) & Point, bool * bLoopWasClosedOut )


description: Set the hit target mesh.

code: virtual void InitializeMeshSurface ( [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) && TargetSurfaceMesh )


code: virtual void InitializePlaneSurface ( const [FFrame3d](API\Plugins\ModelingComponents\Mechanics\UCollectSurfacePathMechanic\FFrame3d) & TargetPlane )


code: virtual bool IsDone() const


code: virtual bool IsHitByRay ( const FRay3d & Ray, [FFrame3d](API\Plugins\ModelingComponents\Mechanics\UCollectSurfacePathMechanic\FFrame3d) & HitPoint )


description: Whether the path was finished by the user clicking on the first point

code: bool LoopWasClosed() const


code: virtual bool PopLastPoint()


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

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


code: bool RayToPathPoint ( const FRay3d & Ray, [FFrame3d](API\Plugins\ModelingComponents\Mechanics\UCollectSurfacePathMechanic\FFrame3d) & PointOut, bool bEnableSnapping )


code: virtual void SetCloseWithLambdaMode()


code: virtual void SetDrawClosedLoopMode()


code: virtual void SetFixedNumPointsMode ( int32 NumPoints )


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()


code: virtual bool TryAddPointFromRay ( const FRay3d & Ray )


code: virtual bool UpdatePreviewPoint ( const FRay3d & Ray )


code: UCollectSurfacePathMechanic()


className: UCollectSurfacePathMechanic

ConstantSnapDistance

type: double

DoneMode

type: ECollectSurface...

PathColor

type: FLinearColor

PathDrawer

type: FToolDataVisual...


description: IHoverBehaviorTargetimplementation.

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


className: CtrlModifierID

code: static const int32 CtrlModifierID = 2;


code: void DeleteAllPrimitives()


code: void DeleteSelectedPrimitive()


code: bool DeselectPrimitive ( int32 PrimitiveID )


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


description: Makes the change to the object

code: virtual void Apply &40; UObject &42; Object &41;


code: void DuplicateSelectedPrimitive()


code: virtual bool HasExpired &40; UObject &42; Object &41; const


description: Reverts change to the object

code: virtual void Revert &40; UObject &42; Object &41;


description: Describes this change (for debugging)

code: virtual FString ToString&40;&41; const


code: FCollisionPrimitivesMechanicGeometryChange &40; TSharedPtr< FKAggregateGeom > GeometryPreviousIn, TSharedPtr< FKAggregateGeom > GeometryNewIn, int32 ChangeStampIn &41;


description: Primitives have moved/changed.

code: class FCollisionPrimitivesMechanicGeometryChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)

GeometryNew

type: TSharedPtr<FKA...


code: FCollisionPrimitivesMechanicSelectionChange &40; int32 PrimitiveIDIn, bool bAddedIn, const FTransform & PreviousTransformIn, const FTransform & NewTransformIn, int32 ChangeStampIn &41;


code: FCollisionPrimitivesMechanicSelectionChange &40; const TSet< int32 > & PrimitiveIDsIn, bool bAddedIn, const FTransform & PreviousTransformIn, const FTransform & NewTransformIn, int32 ChangeStampIn &41;


className: FPrimitiveRenderData

code: struct FPrimitiveRenderData

RenderColor

type: FColor

Transform

type: FTransform


description: Primitive selection has changed.

code: class FCollisionPrimitivesMechanicSelectionChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)


className: FShouldHideGizmo

code: typedef TBaseDelegate_NoParams< bool > FShouldHideGizmo


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


description: Callbacks we'll receive from the gizmo proxy.

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


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


description: All of the following do not issue undo/redo change objects.

code: bool HitTest ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & ClickPos, [FInputRayHit](API\Runtime\InteractiveToolsFramework\FInputRayHit) & ResultOut )


code: virtual void Initialize ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FPhysicsDataCollection](API\Plugins\ModelingComponents\Physics\FPhysicsDataCollection) >, const [UE::Geometry::FAxisAlignedBox3d](API\Runtime\GeometryCore\FAxisAlignedBox3d) & MeshBoundsIn, const FTransform3d & LocalToWorldTransform )


description: IClickBehaviorTargetimplementation.

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


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 )


className: OnCollisionGeometryChangedEvent

description: This delegate is called every time the collision geometry is changed or moved.

code: typedef TMulticastDelegate_NoParams< void > OnCollisionGeometryChangedEvent


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


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


code: void OnDragRectangleStarted()


description: Terminate active hover sequence

code: virtual void OnEndHover()


className: OnSelectionChangedEvent

description: This delegate is called every time the collision geometry selection changes.

code: typedef TMulticastDelegate_NoParams< void > OnSelectionChangedEvent


description: Update active hover sequence with new input position

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


description: Notify target of current modifier state

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


code: void RebuildDrawables ( bool bRegenerateCurveLists )


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


code: void SelectPrimitive ( int32 PrimitiveID )


description: UInteractionMechanic.

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


code: void SetWorld ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World )


className: ShiftModifierID

code: static const int32 ShiftModifierID = 1;


code: virtual void Shutdown()


code: void UpdateCollisionGeometry ( const [FKAggregateGeom](API\Runtime\Engine\PhysicsEngine\FKAggregateGeom) & NewGeometryIn )


code: void UpdateDrawables()


code: void UpdateGizmoLocation()


code: void UpdateGizmoVisibility()


className: UCollisionPrimitivesMechanic

bGizmoBeingDragged

description: Used to make it easy to tell whether the gizmo was moved by the user or by undo/redo or some other change that we shouldn't respond to.

BoxTransformGizmo

type: TObjectPtr<UCo...

BoxTransformProxy

type: TObjectPtr<UTr...

bShiftToggle

description: Support for Shift and Ctrl toggle.

CachedCameraState

type: FViewCameraStat...

CurrentChangeStamp

description: Used for expiring undo/redo changes, which compare this to their stored value and expire themselves if they do not match.

CurveToPrimitiveLookup

type: TMap< int32, in...

DrawnPrimitiveEdges

type: TObjectPtr<ULi...

GeometrySet

description: Used for spatial queries.

GeometrySetToleranceTest

type: TFunction< bool...

description: Support for hovering.

GizmoStartPosition

type: FVector

description: The starting point of the gizmo is needed to determine the offset by which to move the points.

GizmoStartRotation

type: FQuat

MarqueeMechanic

type: TObjectPtr<URe...

description: Support for selection.

NormalSegmentColor

description: Variables for drawing.

OnCollisionGeometryChanged

type: OnCollisionGeom...

OnSelectionChanged

type: OnSelectionChan...

PhysicsData

type: TSharedPtr<FPh...

PreHoverPrimitiveColor

description: Cache previous color while temporarily changing the color of a hovered-over curve.

PreviewGeometry

type: TObjectPtr<UPr...

description: Used for displaying Primitives/segments

PrimitiveRenderData

type: TArray<FPrimit...

PrimitiveToCurveLookup

type: TMap< int32,TA...

ShouldAddToSelectionFunc

description: Default modifier key behavior is consistent with PolygonSelectionMechanic.

ShouldHideGizmo

type: FShouldHideGizm...

TranslateTransformProxy

description: Support for gizmos.


code: void Initialize ( [UWorld](API\Runtime\Engine\Engine\UWorld) * TargetWorld, const [UE::Geometry::FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) & InitialPlane )


className: OnConstructionPlaneChangedEvent

code: typedef TMulticastDelegate_NoParams< void > OnConstructionPlaneChangedEvent


code: void SetDrawPlaneFromWorldPos ( const FVector3d & Position, const FVector3d & Normal, bool bIgnoreNormal )


description: Sets the plane without broadcasting OnPlaneChanged. Useful when the user of the tool wants to change the plane through some other means. Better than setting the Plane field directly because this function properly deals with the gizmo.

code: void SetPlaneWithoutBroadcast ( const [UE::Geometry::FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) & Plane )


description: ALlow the Mechanic to Tick

code: virtual void Tick ( float DeltaTime )


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


code: void UpdateClickPriority ( [FInputCapturePriority](API\Runtime\InteractiveToolsFramework\FInputCapturePriority) NewPriority )


className: UConstructionPlaneMechanic

description: UConstructionPlaneMechanicimplements an interaction in which a 3D plane can be positioned using the standard 3D Gizmo, or placed at hit-locations in the existing scene. A grid in the plane can optionally be rendered.

bShowGrid

type: bool

CanUpdatePlaneFunc

type: TUniqueFunction...

description: Replace this to externally control if plane can be updated

ClickToSetPlaneBehavior

type: TObjectPtr<USi...

MiddleClickToSetGizmoBehavior

type: TObjectPtr<ULo...

description: This is the behavior and behavior target used for the Shift+click behavior that sets the gizmo's position in the world.

OnPlaneChanged

type: OnConstructionP...

SetPlaneCtrlClickBehaviorTarget

type: TUniquePtr<FSe...

description: This is the behavior target used for the Ctrl+click behavior that sets the plane in the world, exposed here so that the user can modify it afterSetup()if needed.


description: Adds additional line to snap points to. Useful, for instance, if the curve is a revolution profile curve and needs to be able to snap to the revolution axis.

code: void AddSnapLine ( int32 LineID, const [UE::Geometry::FLine3d](API\Runtime\GeometryCore\FLine3d) & Line )


description: IHoverBehaviorTargetimplementation.

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


code: int32 AppendPoint ( const FVector3d & PointCoordinates )


description: These issue undo/redo change objects, and must therefore not be called in undo/redo code.

code: void ChangeSelection ( int32 NewPointID, bool AddToSelection )


description: Clears all points in the mechanic.

code: void ClearPoints()


code: int32 DeletePoint ( int32 SequencePosition )


description: Ideally, the mechanic would catch key presses itself, without the tool having to worry about it. However for now, we are limited to having to register the key handler in the tool.

code: void DeleteSelectedPoints()


code: bool DeselectPoint ( int32 PointID )


description: Outputs the positions of the points in the control point sequence. Does not clear PositionsOut before use.

code: void ExtractPointPositions ( [TArray](API\Runtime\Core\Containers\TArray)< FVector3d > & PositionsOut )


description: Expires any changes currently associated with the mechanic in the undo/redo stack.

code: void ExpireChanges()


description:
Appends a point with the given coordinates to the end of the sequence.
the new point's ID.

code: int32 AppendPoint &40; const FVector3d & PointCoordinates &41;


description: Delete all points in the sequence.

code: void Empty&40;&41;


description: first point ID in the sequence.


description: coordinates of the point with the given point ID.

code: FVector3d GetPointCoordinates &40; int32 PointID &41; const


description: coordinates of the point at the given position in the sequence.

code: FVector3d GetPointCoordinatesAt &40; int32 SequencePosition &41; const


description: point ID at the given position in the sequence.

code: int32 GetPointIDAt &40; int32 SequencePosition &41;


description: index in the sequence of a given Point ID.

code: int32 GetSequencePosition &40; int32 PointID &41;


description:
Inserts a point with the given coordinates at the given position in the sequence.
the new point's ID.

code: int32 InsertPointAt &40; int32 SequencePosition, const FVector3d & PointCoordinates, const int32 &42; KnownPointID &41;


description: Checks whether given point ID exists in the sequence.

code: bool IsValidPoint &40; int32 PointID &41; const


description: last point ID in the sequence.


className: PointIDEnumerable

description: TODO: We should have a proper iterable to iterate over point ID's (and maybe one to iterate over point coordinates too. We're temporarily taking a shortcut by using the actual sequence array as our iterable, but only until we've decided on the specifics of the class.

code: typedef const TArray< int32 > & PointIDEnumerable


description: number of points in the sequence.


description: This function should only be used to iterate across the point id's in sequence in a range-based for-loop as in "for (int32 PointID : PointSequence->PointIDItr()) { ... }" The return type of this function is likely to change, but it will continue to work in range-based for-loops.

code: PointIDEnumerable PointIDItr&40;&41;


code: void ReInitialize &40; const TArray< FVector3d > & PointSequence &41;


description:
Removes the point at a particular position in the sequence.
point ID of the removed point.

code: int32 RemovePointAt &40; int32 SequencePosition &41;


description: Change the coordinates associated with a given point ID.

code: void SetPointCoordinates &40; int32 PointID, const FVector3d & NewCoordinates &41;


code: FOrderedPoints &40; const FOrderedPoints & ToCopy &41;


code: FOrderedPoints &40; const TArray< FVector3d > & PointSequence &41;


className: FOrderedPoints

description: The sequence is determined by a sequence of point IDs which can be used to look up the point coordinates.

code: class FOrderedPoints

PointIDToSequencePosition

type: TMap< int32, in...

Sequence

type: TArray< int32 >

Vertices

type: TSparseArray< F...


description: Gives number of points currently managed by the mechanic.

code: int32 GetNumPoints()


description: Returns whether the underlying sequence of control points is a loop.

code: bool GetIsLoop()


description: Callbacks we'll receive from the gizmo proxy.

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


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


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


code: bool HitTest ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & ClickPos, [FInputRayHit](API\Runtime\InteractiveToolsFramework\FInputRayHit) & ResultOut )


description: Functions used for initializing the mechanic.

code: virtual void Initialize ( const [TArray](API\Runtime\Core\Containers\TArray)< FVector3d > & Points, bool bIsLoop )


description: All of the following do not issue undo/redo change objects.

code: int32 InsertPointAt ( int32 SequencePosition, const FVector3d & NewPointCoordinates, const int32 * KnownPointID )


description: Notify Target that click ocurred

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


description: IClickBehaviorTargetimplementation.

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


code: bool IsInInteractiveIntialization()


description: Initialize hover sequence at given position

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


description: Terminate active hover sequence

code: virtual void OnEndHover()


className: OnModeChangedEvent

description: This delegate is called when the mode of the mechanic changes (i.e., we leave or re-enter interactive initialization)

code: typedef TMulticastDelegate_NoParams< void > OnModeChangedEvent


className: OnPointsChangedEvent

description: This delegate is called every time the control point sequence is altered.

code: typedef TMulticastDelegate_NoParams< void > OnPointsChangedEvent


description: Update active hover sequence with new input position

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


code: void RemoveSnapLine ( int32 LineID )


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

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


code: void SelectPoint ( int32 PointID )


description: When true, if the number of control points falls below the mins required (through deletion by the user), the mechanic automatically falls back into interactive intialization mode.

code: void SetAutoRevertToInteractiveInitialization ( bool bOn )


description: Interactive initialization mode allows the user to click multiple times to initialize the curve (without having to hold Ctrl), and to transition to edit mode by clicking the last or first points (provided the minimal numbers of points have been met)

code: void SetInteractiveInitialization ( bool bOn )


code: void SetIsLoop ( bool bIsLoop )


description: In interactive intialization mode, these minimums determine how many points must exist before initialization mode can be left.

code: void SetMinPointsToLeaveInteractiveInitialization ( int32 MinForLoop, int32 MinForNonLoop )


description: IModifierToggleBehaviorTargetimplementation, inherited throughIClickBehaviorTarget.

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


description: Sets the plane on which new points are added on the ends and in which the points are moved.

code: void SetPlane ( const [UE::Geometry::FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) & DrawPlaneIn )


description: TODO: It is simple to allow the points to be moved arbitrarily, not just inside the plane, if we ever want to use the mechanic somewhere where that is desirable. However, we'd need to do a little more work to allow new points to be added in arbitrary locations.

code: void SetSnappingEnabled ( bool bOn )


description: Called to initialize the InteractionMechanic

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


code: void SetWorld ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World )


description: Called to clean up the InteractionMechanic

code: virtual void Shutdown()


code: void UpdateGizmoLocation()


code: void UpdateGizmoVisibility()


code: void UpdatePointLocation ( int32 PointID, const FVector3d & NewLocation )


code: void UpdateSnapTargetsForHover()


code: void UpdateSnapHistoryPoint ( int32 Index, FVector3d NewPosition )


description: Some other standard functions.

code: virtual ~UCurveControlPointsMechanic()


className: UCurveControlPointsMechanic

description: TODO:

bAddToSelectionToggle

description: Support for Shift and Ctrl toggles.

bGizmoBeingDragged

description: Used to make it easy to tell whether the gizmo was moved by the user or by undo/redo or some other change that we shoulnd't respond to.

CameraState

type: FViewCameraStat...

description: Support for hovering.

ClickBehavior

description: Behaviors used for moving points around and hovering them.

ControlPoints

type: FOrderedPoints

description: This actually stores the sequence of point IDs, and their coordinates.

CurrentChangeStamp

description: Used for expiring undo/redo changes, which compare this to their stored value and expire themselves if they do not match.

CurrentPointsColor

type: FColor

DepthBias

type: float

DrawnControlPoints

type: TObjectPtr<UPo...

DrawnControlSegments

type: TObjectPtr<ULi...

DrawPlane

description: Used for adding new points on the ends and for limiting point movement.

FirstPointSnapID

description: Used for snapping to the start/end of the curve to get out of initialization mode.

GeometrySet

description: Used for spatial queries.

GeometrySetToleranceTest

type: TFunction< bool...

GizmoStartPosition

type: FVector

description: The starting point of the gizmo is needed to determine the offset by which to move the points.

HoverBehavior

type: TObjectPtr<UMo...

InitializationCurveColor

description: Variables for drawing.

LineSnapIDMin

description: When storing user-defined lines to snap to, we add this to the user-provided id to avoid conflicting with any lines generated by the snap engine.

OnModeChanged

type: OnModeChangedEv...

OnPointsChanged

type: OnPointsChanged...

PointTransformGizmo

type: TObjectPtr<UCo...

PointTransformProxy

type: TObjectPtr<UTr...

description: Support for gizmo.

PreHoverPointColor

description: Used to unhover a point, since this will differ depending on whether the point is selected.

PreviewGeometryActor

type: TObjectPtr<APr...

description: Used for displaying points/segments

PreviewPoint

description: These get drawn separately because the other components have to be 1:1 with the control points structure, which would make it complicated to keep track of special id's.

SelectedPointIDs

description: Support for selection.

SelectedPointStartPositions

type: TArray< FVector...

description: We need the selected point start positions so we can move multiple points appropriately.


code: virtual bool GetAlignmentModeEnabled() const


description: Subclasses must implement these various API functions for the interaction to function


code: virtual [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetUObjectContainer()


description: IModifierToggleBehaviorTargetimplementation.


description: Client can call this on setup to connect the interaction to an external Key behavior. This function is hardcoded to register the the Ctrl key as the modifier that drives the snapping toggle

code: virtual void RegisterAsBehaviorTarget ( [UKeyAsModifierInputBehavior](API\Runtime\InteractiveToolsFramework\BaseBehaviors\UKeyAsModifierInputBehavior) * KeyModifierBehavior )


code: virtual void Setup ( [USceneSnappingManager](API\Runtime\InteractiveToolsFramework\SceneQueries\USceneSnappingManager) * SnappingManager )


className: UDragAlignmentInteraction

description: Interaction that can be added to (potentially multiple)UCombinedTransformGizmoobject to allow them to snap to scene geometry in rotation and translation. Generally driven by an externally-providedUKeyAsModifierInputBehavior, or alternately can be directly updated by calling ::OnUpdateModifierState()

bAlignmentToggle

type: bool

SceneSnappingManager

type: TWeakObjectPtr<...


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

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


description: Client must call this every frame to do alignment visualization rendering.


description: Called to initialize the InteractionMechanic


description: Called to clean up the InteractionMechanic


className: UDragAlignmentMechanic

description: Mechanic that can be added to (potentially multiple)UCombinedTransformGizmoobject to allow them to snap to scene geometry in rotation and translation when the Ctrl key is pressed.


description: IHoverBehaviorTargetimplementation.

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


code: void ClearAllPointColorOverrides()


code: void ClearPointColorOverride ( int32 Index )


code: bool ControlPointIsSelected ( int32 Index )


code: static const int32 CtrlModifierID = 2;


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


code: bool DeselectPoint ( int32 PointID )


code: typedef TBaseDelegate_NoParams< bool > FShouldHideGizmo


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


code: const [TSet](API\Runtime\Core\Containers\TSet)< int32 > & GetSelectedPointIDs() const


description: Callbacks we'll receive from the gizmo proxy.

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


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


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


description: All of the following do not issue undo/redo change objects.

code: bool HitTest ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & ClickPos, [FInputRayHit](API\Runtime\InteractiveToolsFramework\FInputRayHit) & ResultOut )


code: virtual void Initialize ( const [TArray](API\Runtime\Core\Containers\TArray)< FVector3d > & Points, const [TArray](API\Runtime\Core\Containers\TArray)< [FVector2i](API\Runtime\GeometryCore\FVector2i) > & Edges, const FTransform3d & LocalToWorldTransform )


description: IClickBehaviorTargetimplementation.

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


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: void OnDragRectangleChanged ( const [FCameraRectangle](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle) & Rectangle )


code: void OnDragRectangleStarted()


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


description: Terminate active hover sequence

code: virtual void OnEndHover()


description: This delegate is called every time the control points are moved.

code: typedef TMulticastDelegate_NoParams< void > OnPointsChangedEvent


description: This delegate is called every time the control point selection changes.

code: typedef TMulticastDelegate_NoParams< void > OnSelectionChangedEvent


description: Update active hover sequence with new input position

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


description: Notify target of current modifier state

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


code: void RebuildDrawables()


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


code: void SelectPoint ( int32 PointID )


code: void SetCoordinateSystem ( EToolContextCoordinateSystem InCoordinateSystem )


code: void SetPointColorOverride ( int32 Index, const [FColor](API\Runtime\Core\Math\FColor) & NewColor )


description: UInteractionMechanic.

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


code: void SetWorld ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World )


code: static const int32 ShiftModifierID = 1;


code: virtual void Shutdown()


code: void UpdateDrawables()


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


code: void UpdateGizmoLocation()


code: void UpdateGizmoVisibility()


code: void UpdatePointLocations ( const [TMap](API\Runtime\Core\Containers\TMap)< int32, FVector3d > & NewLocations )


code: void UpdateSetPivotMode ( bool bInSetPivotMode )


className: ULatticeControlPointsMechanic

bGizmoBeingDragged

description: Used to make it easy to tell whether the gizmo was moved by the user or by undo/redo or some other change that we shouldn't respond to.

bShiftToggle

description: Support for Shift and Ctrl toggle.

CachedCameraState

type: FViewCameraStat...

ColorOverrides

type: TMap< int32,FC...

CurrentChangeStamp

description: Used for expiring undo/redo changes, which compare this to their stored value and expire themselves if they do not match.

CurrentDragSelection

type: TArray< int32 >

GeometrySet

description: Used for spatial queries.

GeometrySetToleranceTest

description: Support for hovering.

GizmoStartPosition

description: The starting point of the gizmo is needed to determine the offset by which to move the points.

GizmoStartRotation

type: FQuat

LatticeEdges

type: TArray<FVector...

MarqueeMechanic

type: TObjectPtr<URe...

description: Support for selection.

NormalSegmentColor

description: Variables for drawing.

OnSelectionChanged

type: OnSelectionChan...

PointTransformProxy

description: Support for gizmo.

PreDragSelection

type: TSet< int32 >

PreHoverPointColor

description: Cache previous color while temporarily changing the color of a hovered-over point.

PreviewGeometryActor

description: Used for displaying points/segments

SelectedPointStartPositions

type: TMap< int32, FV...

ShouldAddToSelectionFunc

description: Default modifier key behavior is consistent with PolygonSelectionMechanic.

ShouldHideGizmo

type: FShouldHideGizm...


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


description: Set the hit target mesh and the plane frame. Distance is measured along Z axis. If bMeshInWorldCoords is true, then HitTargetMesh is in world coords. Otherwise we assume it is in local coords of PlaneFrameWorld

code: virtual void Initialize ( [UE::Geometry::FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) && HitTargetMesh, const [FFrame3d](API\Runtime\GeometryCore\TFrame3) & PlaneFrameWorld, bool bMeshInWorldCoords )


description: Set the hit target mesh and the plane frame. Distance is measured along Z axis. Applies MeshToPlaneFrame to transform the HitTargetMesh to the local space of PlaneFrameWorld

code: virtual void Initialize ( [UE::Geometry::FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) && HitTargetMesh, const [FFrame3d](API\Runtime\GeometryCore\TFrame3) & PlaneFrameWorld, const FTransform & MeshToPlaneFrame )


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

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


description: Called to initialize the InteractionMechanic


description: Update the current distance/height based on the input world ray

code: virtual void UpdateCurrentDistance ( const FRay & WorldRay )


className: UPlaneDistanceFromHitMechanic

description: UPlaneDistanceFromHitMechanicimplements an interaction where a Height/Distance from a plane is defined by intersecting a ray with a target mesh, and then using that hit point to define the distance. Optionally the hit point can be snapped (eg to a world grid), and also the ray can hit other objects to define the height.

bCurrentHitIsWorldHit

description: True if the current hit/height was determined via WorldHitQueryFunc result

bFallbackToLineAxisPoint

description: If true, then if we don't find any intersection point, just use nearest point on plane normal to ray

CurrentHeight

type: float

description: Height at last hit point

CurrentHitPosFrameWorld

description: World frame at last hit point

LastActiveWorldHit

type: FHitResult

description: Last active hit point

WorldHitQueryFunc

type: TUniqueFunction...

description: If this function is set, we will check it for a ray intersection if the target mesh is not hit

WorldPointSnapFunc

description: If this function is set, the hit point will be passed in to this function for snapping.


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


description: Utility function clients can use to clean up poly-lasso if it is not closed (perhaps should be folded into mechanic behavior)

code: static bool ApproximateSelfClipPolyline ( [TArray](API\Runtime\Core\Containers\TArray)< FVector2D > & Polyline )


description: For marquee mechanic, the range will be [BasePriority, BasePriority] since it only uses one priority.


description: true if PolyLasso mechanic is enabled

code: bool IsEnabled() const


className: OnDrawPolyLassoFinishedEvent

description: Called once the user lets go of the mouse button after dragging out a PolyLasso.

code: typedef TMulticastDelegate_TwoParams< void, const [FCameraPolyLasso](API\Plugins\ModelingComponents\Mechanics\FCameraPolyLasso) &, bool bCanceled > OnDrawPolyLassoFinishedEvent


description: Can be called before or afterSetup().

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


description: Enable/disable the PolyLasso mechanic (effectively controls whether the mechanic's behaviors will be allowed to capture the mouse)

code: void SetIsEnabled ( bool bOn )


description: UInteractionMechanic.

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


className: UPolyLassoMarqueeMechanic

description: Attach to the mechanic's delegates and use the passed PolyLasso to test against your geometry.

BasePriority

type: FInputCapturePr...

bEnableFreehandPolygons

description: If true, freehand polygons can be drawn by click-dragging the mouse

bEnableMultiClickPolygons

description: If true, if click and release are within SpacingTolerance, mechanic enters a multi-click mode, where each click adds a vertex to a polygon.

CachedCameraState

description: Camera state for currently active PolyLasso

ClickDragBehavior

type: TObjectPtr<UCl...

ClosedColor

type: FLinearColor

description: PolyLasso path is drawn in this color if the cursor is at a point that would close the loop

HoverBehavior

type: TObjectPtr<UMo...

LineColor

description: PolyLasso path is drawn in this color

LineThickness

description: Thickness of the 2D PolyLasso drawing path

OnDrawPolyLassoChanged

type: OnDrawPolyLasso...

OnDrawPolyLassoStarted

type: FSimpleMulticas...

description: Called when user starts dragging a new PolyLasso.

SpacingTolerance

description: Tolerance for PolyLasso points and closure test


description:
Test if target can begin click-drag interaction at this point
hit information at this point

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


className: OnDrawPolyLassoChangedEvent

description: Called as the user drags the other corner of the PolyLasso around.

code: typedef TMulticastDelegate_OneParam< void, const [FCameraPolyLasso](API\Plugins\ModelingComponents\Mechanics\FCameraPolyLasso) & > OnDrawPolyLassoChangedEvent


description: Notify Target that input position has changed

code: virtual void OnClickDrag ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & DragPos )


description: Notify Target that click press ocurred

code: virtual void OnClickPress ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & PressPos )


description: Notify Target that click release occurred

code: virtual void OnClickRelease ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & ReleasePos )


className: OnDragRectangleChangedEvent

description: OnDragRectangleChanged is called as the user drags the other corner of the rectangle around.

code: typedef TMulticastDelegate_OneParam< void, const [FCameraRectangle](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle) & > OnDragRectangleChangedEvent


className: OnDragRectangleFinishedEvent

description: OnDragRectangleFinished is called once the user lets go of the mouse button after dragging out a rectangle. bCancelled flag is true when the drag finishes due to a disabling of the mechanic or due to a TerminateDragSequence call, rather than a normal drag completion.

code: typedef TMulticastDelegate_TwoParams< void, const [FCameraRectangle](API\Plugins\ModelingComponents\Mechanics\FCameraRectangle) &, bool bCancelled > OnDragRectangleFinishedEvent


description: Notify Target that click-drag sequence has been explicitly terminated (eg by escape key)

code: virtual void OnTerminateDragSequence()


className: URectangleMarqueeInteraction

description: DrawHUD()must be called by the owning code.

bIsDragging

type: bool

CameraRectangle

type: FCameraRectangl...

CurrentCameraState

type: FViewCameraStat...

OnDragRectangleChanged

type: OnDragRectangle...

OnDragRectangleStarted

description: OnDragRectangleStarted is called when user starts dragging a new rectangle.


description: Called as the user drags the other corner of the rectangle around.


description: Called once the user lets go of the mouse button after dragging out a rectangle. The last dragged rectangle is passed here so that clients can choose to just implement this function in simple cases. bCancelled flag is true when the drag finishes due to a disabling of the mechanic or due to a TerminateDragSequence call, rather than a normal drag completion.


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

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


description: Can be called before or afterSetup(). Only relevant if bUseExternalClickDragBehavior is false


className: URectangleMarqueeMechanic

description: Attach to the mechanic's delegates and use the passed rectangle to test against your geometry.

bUseExternalClickDragBehavior

description: If true, then theURectangleMarqueeMechanicwill not create an internalUClickDragInputBehaviorinSetup(), allowing the client to control the marquee with an external InputBehavior that uses the marquee mechanic as it'sIClickDragBehaviorTarget.

bUseExternalUpdateCameraState

description: If true, then theURectangleMarqueeMechanicwill not query the tool manager for the current camera view state, but instead call the custom provided function, UpdateCameraStateFunc, to recieve the correct camera state for the CameraRectangle.

OnDragRectangleChangedDeferredThreshold

type: double

description: If the computation time for a single call to OnDragRectangleChanged ever exceeds this threshold then future calls to this function (in the current drag sequence) will be deferred until the mouse button is released.

description: Called when user starts dragging a new rectangle.


SoftFalloff

type: ESpaceCurveCont...


description: IHoverBehaviorTargetimplementation.

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


description: These issue undo/redo change objects, and must therefore not be called in undo/redo code.

code: void ChangeSelection ( int32 NewPointID, bool AddToSelection )


code: void ClearCurveSource()


code: bool DeselectPoint ( int32 PointID )


code: void GetCurrentCurvePoints ( [TArray](API\Runtime\Core\Containers\TArray)< [UE::Geometry::FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) > & PointsOut )


description: Callbacks we'll receive from the gizmo proxy.

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


description: All of the following do not issue undo/redo change objects.

code: bool HitTest ( const [FInputDeviceRay](API\Runtime\InteractiveToolsFramework\FInputDeviceRay) & ClickPos, [FInputRayHit](API\Runtime\InteractiveToolsFramework\FInputRayHit) & ResultOut )


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


description: IClickBehaviorTargetimplementation.

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


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 )


description: This delegate is called every time the control point sequence is altered.

code: typedef TMulticastDelegate_NoParams< void > OnPointsChangedEvent


description: Terminate active hover sequence

code: virtual void OnEndHover()


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


description: Update active hover sequence with new input position

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


description: IModifierToggleBehaviorTargetimplementation, inherited throughIClickBehaviorTarget.

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


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


code: void SelectionGrowToEnd()


code: void SelectionGrowToNext()


code: void SelectionGrowToPrev()


code: void SetCurveSource ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FSpaceCurveSource](API\Plugins\ModelingComponents\Mechanics\FSpaceCurveSource) > CurveSource )


code: void SelectionGrowToStart()


description: Called to initialize the InteractionMechanic

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


code: void SetWorld ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World )


description: Called to clean up the InteractionMechanic

code: virtual void Shutdown()


description: ALlow the Mechanic to Tick

code: virtual void Tick ( float DeltaTime )


code: void UpdateCurve ( const [TArray](API\Runtime\Core\Containers\TArray)< [UE::Geometry::FFrame3d](API\Runtime\GeometryCore\FFrame3d_1) > & NewPositions )


code: void UpdateGizmoLocation()


code: void UpdateRenderGeometry()


code: void UpdateSelection ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & NewSelection )


code: void SelectPoint ( int32 PointID )


description: Some other standard functions.


className: USpaceCurveDeformationMechanic

bAddToSelectionToggle

description: Support for Shift and Ctrl toggles.

bGizmoBeingDragged

description: Used to make it easy to tell whether the gizmo was moved by the user or by undo/redo or some other change that we shoulnd't respond to.

CameraState

description: Support for hovering.

ClickBehavior

type: TObjectPtr<USi...

description: Behaviors used for moving points around and hovering them.

CurrentChangeStamp

description: Used for expiring undo/redo changes, which compare this to their stored value and expire themselves if they do not match.

CurrentPointsColor

type: FColor

CurveSource

type: TSharedPtr<FSp...

CurveStartPositions

description: We need the selected point start positions so we can move multiple points appropriately.

GeometrySet

description: Used for spatial queries.

GeometrySetToleranceTest

type: TFunction< bool...

GizmoStartPosition

description: The starting point of the gizmo is needed to determine the offset by which to move the points.

NormalCurveColor

description: Variables for drawing.

OnPointsChanged

type: OnPointsChanged...

PointTransformGizmo

type: TObjectPtr<UCo...

PointTransformProxy

type: TObjectPtr<UTr...

description: Support for gizmo.

PreviewGeometryActor

type: TObjectPtr<APr...

description: Used for displaying points/segments

RenderPoints

type: TObjectPtr<UPo...

RenderSegments

type: TObjectPtr<ULi...

SelectedPointIDs

type: TArray< int32 >

description: Support for selection.

TransformProperties

type: TObjectPtr<USp...


code: virtual void InitializePolyCurve ( const [TArray](API\Runtime\Core\Containers\TArray)< FVector3d > & CurvePoints, const FTransform3d & Transform )


code: virtual void InitializePolyLoop ( const [TArray](API\Runtime\Core\Containers\TArray)< FVector3d > & CurvePoints, const FTransform3d & Transform )


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

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


description: Update the current distance/height based on the input world ray

code: virtual void UpdateCurrentDistance ( const FRay & WorldRay )


className: USpatialCurveDistanceMechanic

CurrentDistance

description: Current distance

Curve

type: TArray< FVector...

WorldPointSnapFunc

type: TUniqueFunction...

description: If this function is set, the hit point will be passed in to this function for snapping.


className: FComponentCollisionSettings

description: Component/BodySetup collision settings (eg StaticMeshComponent) we might need to pass through the functions below

code: struct FComponentCollisionSettings

bIsGeneratedCollision

type: bool


description: Empty out ourFKAggregateGeom

code: void ClearAggregate()


description: Populate ourFKAggregateGeomfrom our FSimpleShapeSet3d

code: void CopyGeometryToAggregate()


description: Replace our geometry data with that from anotherFPhysicsDataCollection

code: void CopyGeometryFromExisting ( const [FPhysicsDataCollection](API\Plugins\ModelingComponents\Physics\FPhysicsDataCollection) & Other )


description: Initialize from the given Component, and optionally initialize internal geometry members

code: void InitializeFromComponent ( const [UActorComponent](API\Runtime\Engine\Components\UActorComponent) * Component, bool bInitializeAggGeom )


description: Initialize

code: void InitializeFromExisting ( const [FPhysicsDataCollection](API\Plugins\ModelingComponents\Physics\FPhysicsDataCollection) & Other )


description: Initialize from the given StaticMesh, and optionally initialize internal geometry members

code: void InitializeFromStaticMesh ( const [UStaticMesh](API\Runtime\Engine\Engine\UStaticMesh) * StaticMesh, bool bInitializeAggGeom )


className: FPhysicsDataCollection

description: The collision geometry data is stored in both the editable GeometryProcessing format and the physics-system representations (currentlyFKAggregateGeombut more are expected). This class provides a high-level API for transferring geometry between these two representations.

code: class FPhysicsDataCollection

AggGeom

type: FKAggregateGeom

description: Collision geometry in Physics-system format. Not necessarily in sync with Geometry member.

BodySetup

type: TWeakObjectPtr<...

description: The BodySetup in use by the SourceComponent

type: FVector

description: Scaling factor applied to the SourceComponent, which should be transferred to Collision Geometry in some cases

Geometry

description: Geometry data Stores representation of Collision geometry

SourceComponent

description: External State DataThe Component this physics data came from / is for

SourceStaticMesh

description: The StaticMesh this physics data came from / is for


description: Apply Transform to the existing Simple Collision geometry in Component and then append to to ShapeSetOut

code: namespace UE { namespace Geometry { bool UE::Geometry::AppendSimpleCollision ( const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * SourceComponent, [FSimpleShapeSet3d](API\Plugins\DynamicMesh\ShapeApproximation\FSimpleShapeSet3d) * ShapeSetOut, const FTransform3d & Transform ) } }


description: Apply TransformSequence (in-order) to the existing Simple Collision geometry in Component and then append to to ShapeSetOut

code: namespace UE { namespace Geometry { bool UE::Geometry::AppendSimpleCollision ( const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * SourceComponent, [FSimpleShapeSet3d](API\Plugins\DynamicMesh\ShapeApproximation\FSimpleShapeSet3d) * ShapeSetOut, const [TArray](API\Runtime\Core\Containers\TArray)< FTransform3d > & TransformSeqeuence ) } }


description: true if the component type supports collision settings

code: namespace UE { namespace Geometry { bool UE::Geometry::ComponentTypeSupportsCollision ( const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component, [EComponentCollisionSupportLevel](API\Plugins\ModelingComponents\Physics\UE__Geometry__EC-) SupportLevel ) } }


description: Extract the simple collision geometry from AggGeom as meshes (ie spheres and capsules are tessellated) and accumulate into MeshOut. TransformSequence is applied to the meshes as they are accumulated.

code: namespace UE { namespace Geometry { void UE::Geometry::ConvertSimpleCollisionToMeshes ( const [FKAggregateGeom](API\Runtime\Engine\PhysicsEngine\FKAggregateGeom) & AggGeom, [UE::Geometry::FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & MeshOut, const [FTransformSequence3d](API\Runtime\GeometryCore\FTransformSequence3d) & TransformSeqeuence, int32 SphereResolution, bool bSetToPerTriangleNormals, bool bInitializeConvexUVs, [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void(int, const [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) &)> PerElementMeshCallback ) } }


description: Extract the complex collision geometry from CollisionDataProvider as a dynamic mesh. TransformSequence is applied to the mesh.

code: namespace UE { namespace Geometry { bool UE::Geometry::ConvertComplexCollisionToMeshes ( [IInterface_CollisionDataProvider](API\Runtime\Engine\Interfaces\IInterface_CollisionDataProvider) * CollisionDataProvider, [UE::Geometry::FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & MeshOut, const [FTransformSequence3d](API\Runtime\GeometryCore\FTransformSequence3d) & TransformSeqeuence, bool & bFoundMeshErrorsOut, bool bWeldEdges, bool bSetToPerTriangleNormals ) } }


description: Forward declarations

code: namespace UE { namespace Geometry { enum EComponentCollisionSupportLevel { ReadOnly = 0, ReadWrite = 1, } } }


description: BodySetup on the given SourceComponent, or nullptr if no BodySetup was found

code: namespace UE { namespace Geometry { const [UBodySetup](API\Runtime\Engine\PhysicsEngine\UBodySetup) * UE::Geometry::GetBodySetup ( const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * SourceComponent ) } }


code: namespace UE { namespace Geometry { [UBodySetup](API\Runtime\Engine\PhysicsEngine\UBodySetup) * UE::Geometry::GetBodySetup ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * SourceComponent ) } }


description: Get current Component collision shapes

code: namespace UE { namespace Geometry { bool UE::Geometry::GetCollisionShapes ( const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component, [FSimpleShapeSet3d](API\Plugins\DynamicMesh\ShapeApproximation\FSimpleShapeSet3d) & ShapeSetOut ) } }


description: current Component collision settings

code: namespace UE { namespace Geometry { [FComponentCollisionSettings](API\Plugins\ModelingComponents\Physics\FComponentCollisionSettings) UE::Geometry::GetCollisionSettings ( const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component ) } }


description: Get current Component collision shapes

code: namespace UE { namespace Geometry { bool UE::Geometry::GetCollisionShapes ( const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component, [FKAggregateGeom](API\Runtime\Engine\PhysicsEngine\FKAggregateGeom) & AggGeomOut ) } }


description: Convert FSphere3d toFKSphereElem

code: namespace UE { namespace Geometry { void UE::Geometry::GetFKElement ( const [FSphere3d](API\Runtime\GeometryCore\FSphere3d) & Sphere, [FKSphereElem](API\Runtime\Engine\PhysicsEngine\FKSphereElem) & ElemInOut ) } }


description: Convert FOrientedBox3d toFKBoxElem

code: namespace UE { namespace Geometry { void UE::Geometry::GetFKElement ( const [FOrientedBox3d](API\Runtime\GeometryCore\FOrientedBox3d) & Box, [FKBoxElem](API\Runtime\Engine\PhysicsEngine\FKBoxElem) & BoxInOut ) } }


description: Convert FCapsule3d toFKSphylElem

code: namespace UE { namespace Geometry { void UE::Geometry::GetFKElement ( const [FCapsule3d](API\Runtime\GeometryCore\FCapsule3d) & Capsule, [FKSphylElem](API\Runtime\Engine\PhysicsEngine\FKSphylElem) & CapsuleInOut ) } }


description: Create FKLevelSet from the given grid information

code: namespace UE { namespace Geometry { void UE::Geometry::GetFKElement ( const FTransform3d & GridTransform, const [FDenseGrid3f](API\Runtime\GeometryCore\Spatial\FDenseGrid3f) & Grid, float CellSize, [FKLevelSetElem](API\Runtime\Engine\PhysicsEngine\FKLevelSetElem) & LevelSetOut ) } }


code: namespace UE { namespace Geometry { void UE::Geometry::GetShape ( const [FKSphereElem](API\Runtime\Engine\PhysicsEngine\FKSphereElem) & SphereElem, [FSphereShape3d](API\Plugins\DynamicMesh\ShapeApproximation\FSphereShape3d) & SphereShapeOut ) } }


code: namespace UE { namespace Geometry { void UE::Geometry::GetShape ( const [FKBoxElem](API\Runtime\Engine\PhysicsEngine\FKBoxElem) & BoxElem, [FBoxShape3d](API\Plugins\DynamicMesh\ShapeApproximation\FBoxShape3d) & BoxShapeOut ) } }


code: namespace UE { namespace Geometry { void UE::Geometry::GetShape ( const [FKSphylElem](API\Runtime\Engine\PhysicsEngine\FKSphylElem) & CapsuleElem, [UE::Geometry::FCapsuleShape3d](API\Plugins\DynamicMesh\ShapeApproximation\FCapsuleShape3d) & CapsuleShapeOut ) } }


code: namespace UE { namespace Geometry { void UE::Geometry::GetShape ( const [FKConvexElem](API\Runtime\Engine\PhysicsEngine\FKConvexElem) & ConvexElem, [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & MeshOut ) } }


code: namespace UE { namespace Geometry { void UE::Geometry::GetShape ( const [FKConvexElem](API\Runtime\Engine\PhysicsEngine\FKConvexElem) & ConvexElem, [FConvexShape3d](API\Plugins\DynamicMesh\ShapeApproximation\FConvexShape3d) & ConvexShapeOut ) } }


code: namespace UE { namespace Geometry { void UE::Geometry::GetShape ( const [FKLevelSetElem](API\Runtime\Engine\PhysicsEngine\FKLevelSetElem) & LevelSetElem, [FLevelSetShape3d](API\Plugins\DynamicMesh\ShapeApproximation\FLevelSetShape3d) & LevelSetShapeOut ) } }


code: namespace UE { namespace Geometry { void UE::Geometry::GetFKElement ( const [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & Mesh, [FKConvexElem](API\Runtime\Engine\PhysicsEngine\FKConvexElem) & ConvexInOut ) } }


description: ConvertFKAggregateGeomtoFSimpleShapeSet3d

code: namespace UE { namespace Geometry { void UE::Geometry::GetShapeSet ( const [FKAggregateGeom](API\Runtime\Engine\PhysicsEngine\FKAggregateGeom) & AggGeom, [FSimpleShapeSet3d](API\Plugins\DynamicMesh\ShapeApproximation\FSimpleShapeSet3d) & ShapeSetOut ) } }


description: Replace existing Simple Collision geometry in Component with that defined by ShapeSet, and update the Component/BodySetup collision settings

code: namespace UE { namespace Geometry { bool UE::Geometry::SetSimpleCollision ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component, const [FSimpleShapeSet3d](API\Plugins\DynamicMesh\ShapeApproximation\FSimpleShapeSet3d) * ShapeSet, [FComponentCollisionSettings](API\Plugins\ModelingComponents\Physics\FComponentCollisionSettings) CollisionSettings ) } }


description: Apply Transform to any Simple Collision geometry owned by Component. Note that Nonuniform scaling support is very limited and will generally enlarge collision volumes.

code: namespace UE { namespace Geometry { bool UE::Geometry::TransformSimpleCollision ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component, const FTransform3d & Transform ) } }


description: Replace existing Simple Collision geometry in BodySetup with that defined by NewGeometry, and update the Component/BodySetup collision settings. StaticMesh argument allows for necessary updates to it and any activeUStaticMeshComponentthat reference it

code: namespace UE { namespace Geometry { void UE::Geometry::UpdateSimpleCollision ( [UBodySetup](API\Runtime\Engine\PhysicsEngine\UBodySetup) * BodySetup, const [FKAggregateGeom](API\Runtime\Engine\PhysicsEngine\FKAggregateGeom) * NewGeometry, [UStaticMesh](API\Runtime\Engine\Engine\UStaticMesh) * StaticMesh, [FComponentCollisionSettings](API\Plugins\ModelingComponents\Physics\FComponentCollisionSettings) NewCollisionSettings ) } }


className: EGeometrySelectionElementType

code: enum EGeometrySelectionElementType { Vertex = 1, Edge = 2, Face = 4, }


className: EHandleSourcesMethod

description: Options to handle source meshes

code: enum EHandleSourcesMethod { DeleteSources, HideSources, KeepSources, KeepFirstSource, KeepLastSource, }


code: bool AnyAxisFiltered() const


className: FModelingToolsAxisFilter

bAxisX

description: X Axis

bAxisY

description: Y Axis

bAxisZ

description: Z Axis


code: bool AnyChannelFiltered() const


code: bool operator!= ( const [FModelingToolsColorChannelFilter](API\Plugins\ModelingComponents\PropertySets\FModelingToolsColorChannelFilter) & Other ) const


className: FModelingToolsColorChannelFilter

bAlpha

description: Alpha Channel

bBlue

description: Blue Channel

bGreen

description: Green Channel

bRed

description: Red Channel


className: AutoIdentifier

description: Constants used for different known types

code: static const [FString](API\Runtime\Core\Containers\FString) AutoIdentifier = TEXT("From Input");


description: Utility function to configure aFCreateMeshObjectParamsbased on current settings

code: virtual bool ConfigureCreateMeshObjectParams ( [FCreateMeshObjectParams](API\Plugins\ModelingComponents\FCreateMeshObjectParams) & ParamsOut ) const


className: EGeometrySelectionTopologyType

code: enum EGeometrySelectionTopologyType { Triangle = 1, Polygroup = 2, }


className: bEnableDynamicMeshActorSupport

description: Public static values used to configure behavior of this class, set (eg) from Editor settings

code: static bool bEnableDynamicMeshActorSupport = false;


className: DefaultObjectTypeIdentifier

code: static [FString](API\Runtime\Core\Containers\FString) DefaultObjectTypeIdentifier = UCreateMeshObjectTypeProperties::StaticMeshIdentifier;


className: DynamicMeshActorIdentifier

code: static const [FString](API\Runtime\Core\Containers\FString) DynamicMeshActorIdentifier = TEXT("Dynamic Mesh");


description: Convert current OutputType selection into a type that can be passed toUModelingObjectsCreationAPI


description: This function returns a list that is shown to select OutputType.

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)() const [TArray](API\Runtime\Core\Containers\TArray)< [FString](API\Runtime\Core\Containers\FString) > & GetOutputTypeNamesFunc()


code: void Initialize ( bool bEnableStaticMeshes, bool bEnableVolumes, bool bEnableDynamicMeshActor )


code: void InitializeDefault()


code: void InitializeDefaultWithAuto()


description: true if we should show this property set on a Tool, ie if there are options the user can actually change (false if only one possible output type that has no options)

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)() bool ShouldShowPropertySet() const


className: StaticMeshIdentifier

code: static const [FString](API\Runtime\Core\Containers\FString) StaticMeshIdentifier = TEXT("Static Mesh");


description: Update visibility of properties based on current OutputType selection

code: virtual void UpdatePropertyVisibility()


className: UCreateMeshObjectTypeProperties

description: UCreateMeshObjectTypePropertiesis a InteractiveTool PropertySet used to select what type of object to create, in creation tools (ie StaticMesh, Volume, etc).

bShowVolumeList

description: Control whether the VolumeType field is enabled

OutputType

type: FString

description: Type of object to create

OutputTypeNamesList

type: TArray<FString...

description: The list returned byGetOutputTypeNamesFunc()

VolumeType

type: TSubclassOf< cl...

description: Type of volume to create


className: VolumeIdentifier

code: static const [FString](API\Runtime\Core\Containers\FString) VolumeIdentifier = TEXT("Volume");


className: DefaultFaceColor

code: static [FColor](API\Runtime\Core\Math\FColor) DefaultFaceColor = FLinearColor(.95f, .05f, .05f).ToFColor(true);


className: DefaultPointColor

code: static [FColor](API\Runtime\Core\Math\FColor) DefaultPointColor = DefaultLineColor;


className: DefaultTriangleROIBorderColor

code: static [FColor](API\Runtime\Core\Math\FColor) DefaultTriangleROIBorderColor = FColor(240, 15, 240);


code: GetFaceMaterial() const


code: GetLineMaterial() const


code: GetPointMaterial() const


description: Sets property watchers and materials.

code: Initialize()


code: ShowEdgeSelectionLineSet() const


className: DefaultLineColor

code: static [FColor](API\Runtime\Core\Math\FColor) DefaultLineColor = FLinearColor(.0f, .3f, .95f).ToFColor(true);


code: ShowFaceSelectionTriangleSet() const


code: ShowTriangleROIBorderLineSet() const


code: ShowVertexSelectionPointSet() const


code: virtual [EHandleSourcesMethod](API\Plugins\ModelingComponents\PropertySets\EHandleSourcesMethod) GetHandleInputs() const


className: UOnAcceptHandleSourcesPropertiesSingle

description: Specialization for property settings for tools that create a new actor and need to decide what to do with a single input object.

HandleInputs

type: EHandleSourcesM...

description: Defines what to do with the input object when accepting the tool results.


code: void ApplyMethod ( const [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & Actors, [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager, const [AActor](API\Runtime\Engine\GameFramework\AActor) * MustKeepActor )


className: UOnAcceptHandleSourcesPropertiesBase

description: Base class for property settings for tools that create a new actor and need to decide what to do with the input objects.


className: UOnAcceptHandleSourcesProperties

description: Specialization for property settings for tools that create a new actor and need to decide what to do with multiple input objects.

description: Defines what to do with the input objects when accepting the tool results.


description: Provides set of available group layers.


code: [UE::Geometry::FPolygroupLayer](API\Plugins\DynamicMesh\Polygroups\FPolygroupLayer) GetSelectedLayer ( const [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & FromMesh )


description: Return true if any option other than "Default" is selected

code: bool HasSelectedPolygroup() const


code: void InitializeGroupLayers ( const FDynamicMesh3 * Mesh )


code: void InitializeGroupLayers ( const [TSet](API\Runtime\Core\Containers\TSet)< [FName](API\Runtime\Core\UObject\FName) > & LayerNames )


code: void SetSelectedFromPolygroupIndex ( int32 Index )


className: UPolygroupLayersProperties

description: Basic Tool Property Set that allows for selecting from a list of FNames (that we assume are Polygroup Layers)

ActiveGroupLayer

type: FName

description: Select PolyGroup layer to use.

GroupLayersList

description: Internal list used to implement above


code: void SetPropertiesOnOp ( [UE::Geometry::FVoxelBaseOp](API\Plugins\ModelingOperators\BaseOps\FVoxelBaseOp) & Op )


className: UVoxelProperties

bAutoSimplify

description: Automatically simplify the result of voxel-based meshes.

bRemoveInternalSurfaces

description: Remove internal, occluded geometry

CubeRootMinComponentVolume

type: double

description: Automatically remove components smaller than this (to clean up any isolated floating bits)

SimplifyMaxErrorFactor

description: The max error (as a multiple of the voxel size) to accept when simplifying the output

VoxelCount

description: The size of the geometry bounding box major axis measured in voxels


description: This function is called provide set of available weight maps


description: Return true if any option other than "None" is selected

code: bool HasSelectedWeightMap() const


description: Set list of weightmap FNames based on per-vertex float attributes in MeshDescription. Adds "None" as first option.

code: void InitializeFromMesh ( const [FMeshDescription](API\Runtime\MeshDescription\FMeshDescription) * Mesh )


description: Set list of weightmap FNames explicitly. Adds "None" as first option.

code: void InitializeWeightMaps ( const [TArray](API\Runtime\Core\Containers\TArray)< [FName](API\Runtime\Core\UObject\FName) > & WeightMapNames )


description: Set selected weightmap from its position in the WeightMapsList

code: void SetSelectedFromWeightMapIndex ( int32 Index )


className: UWeightMapSetProperties

description: Basic Tool Property Set that allows for selecting from a list of FNames (that we assume are Weight Maps)

WeightMap

description: Select vertex weight map.

WeightMapsList

description: Internal list used to implement above


code: FActorAdapter ( const [FActorAdapter](API\Plugins\ModelingComponents\Scene\FActorAdapter) & )


code: FActorAdapter ( [FActorAdapter](API\Plugins\ModelingComponents\Scene\FActorAdapter) && )


className: FActorAdapter

description: FActorAdapteris used byFMeshSceneAdapterto represent all the child info for anAActor. This is primarily a list ofFActorChildMesh, which represent the spatially-positioned meshes of any child StaticMeshComponents or other mesh Components that can be identified and represented. Note that ChildActorComponents will be flatted into the parent Actor.

code: struct FActorAdapter

ChildMeshes

type: TArray<TUnique...

description: Set of child Meshes with transforms

SourceActor

type: AActor*

description: TheAActorthis Adapter represents

WorldBounds

type: FAxisAlignedBox...

description: World-space bounds of this Actor (meshes)


code: FActorChildMesh ( const [FActorChildMesh](API\Plugins\ModelingComponents\Scene\FActorChildMesh) & )


code: FActorChildMesh ( [FActorChildMesh](API\Plugins\ModelingComponents\Scene\FActorChildMesh) && )


className: FActorChildMesh

description: FActorChildMeshrepresents a 3D Mesh attached to an Actor. This generally comes from a Component, however in some cases a Component generates multipleFActorChildMesh(eg an InstancedStaticMeshComponent), and potentially some Actors may store/represent a Mesh directly (no examples currently).

code: struct FActorChildMesh

ComponentIndex

description: Indexof this Mesh in the SourceComponent, if such an index exists (eg InstanceIndexin InstancedStaticMeshComponent)

ComponentType

type: EActorMeshCompo...

description: Type of SourceComponent, if known

MeshContainer

type: FMeshTypeContai...

description: Wrapper around the Mesh thisFActorChildMeshrefers to (eg from a StaticMeshAsset, etc)

MeshSpatial

type: IMeshSpatialWra...

description: Spatial data structure that represents the Mesh in MeshContainer - assumption is this is owned externally

SourceComponent

type: UActorComponent...

description: The Component this Mesh was generated from, if there is one.

WorldTransform

type: FTransformSeque...

description: Local-to-World transformation of the Mesh in the MeshContainer


description: Mesh Scene Setup etc Add the given Actors to the Mesh Scene

code: void AddActors ( const [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & ActorsSetIn )


description: Add the given Components to the Mesh Scene. If multiple Components from the same Actor are passed in, duplicate FActorAdapters will be created

code: void AddComponents ( const [TArray](API\Runtime\Core\Containers\TArray)< [UActorComponent](API\Runtime\Engine\Components\UActorComponent) * > & ComponentSetIn )


description: Build the Mesh Scene. This must be called after the functions above, and before any queries below can be run.

code: void Build ( const [FMeshSceneAdapterBuildOptions](API\Plugins\ModelingComponents\Scene\FMeshSceneAdapterBuildOptions) & BuildOptions )


description: Precompute data structures that accelerate spatial evaluation queries. Precondition for callingFastWindingNumber()andFindNearestRayIntersection(). This can be called afterBuild()has completed


description: a set of points on the surface of the meshes, can be used to initialize the MarchingCubes mesher

code: virtual void CollectMeshSeedPoints ( [TArray](API\Runtime\Core\Containers\TArray)< FVector3d > & PointsOut )


code: void Build_FullDecompose ( const [FMeshSceneAdapterBuildOptions](API\Plugins\ModelingComponents\Scene\FMeshSceneAdapterBuildOptions) & BuildOptions )


description: Update the transforms on all the Components in the current Mesh Scene. Requires thatBuild()has been called. This will invalidate any existing SpatialEvaluationCache

code: void FastUpdateTransforms ( bool bRebuildSpatialCache )


description: FastWindingNumber computed at WorldPoint across all mesh Actors/Components

code: virtual double FastWindingNumber ( const FVector3d & WorldPoint, bool bFastEarlyOutIfPossible )


description:
Intersect the given Ray with the MeshScene and find the nearest mesh hit
true if hit was found and HitResultOut is initialized

code: virtual bool FindNearestRayIntersection ( const FRay3d & WorldRay, [FMeshSceneRayHit](API\Plugins\ModelingComponents\Scene\FMeshSceneRayHit) & HitResultOut )


className: FSpatialCacheInfo

description: FSpatialCacheInforepresents a unique scene mesh with spatial data structure.

code: struct FSpatialCacheInfo

Actor

type: FActorAdapter&...

ChildMesh

type: FActorChildMesh...


className: FSpatialWrapperInfo

description: Howeverevaluating spatial queries across a large set of actors / scene meshes would require testing each mesh instance one-by-one. To speed this up,BuildSpatialEvaluationCache()can be called to build an Octree across mesh instances.FSpatialCacheInfois a separate representation of each unique (actor, chlidmesh, spatial, boundingbox) tuple, a list of these is built and then inserted into an Octree.

code: struct FSpatialWrapperInfo

NonUniformScaleCount

description: Number of non-uniform scales applied to this mesh by parent instances

ParentMeshes

type: TArray<FActorC...

description: List of scene mesh instances that reference this unique mehs

SourceContainer

description: Identifier for mesh, including source pointer, mesh type, etc

SpatialWrapper

type: TUniquePtr<IMe...

description: Implementation ofIMeshSpatialWrapperfor this mesh, that provides spatial and other mesh data queriesNOTEthat eachFActorChildMeshin ParentMeshes has a pointer to this object, so if SpatialWrapper is replaced, theFActorChildMeshobjects must also be updated


className: FStatistics

description: Statistics about the Mesh Scene returned byGetGeometryStatistics()

code: struct FStatistics


description: Generate a new mesh that "caps" the mesh scene on the bottom. This can be used in cases where the geometry is open on the base, to fill in the hole, which allows things like mesh-solidification to work better. The base mesh is a polygon which can be optionally extruded. Currently the closing mesh is a convex hull, todo: implement a better option

code: void GenerateBaseClosingMesh ( double BaseHeight, double ExtrudeHeight )


description: Append all instance triangles to a single mesh. May beverylarge.

code: virtual void GetAccumulatedMesh ( [FDynamicMesh3](API\Runtime\GeometryCore\DynamicMesh\FDynamicMesh3) & AccumMesh )


description:
Mesh Scene Queries
bounding box for the Actor set


description: world-space bounding box for the Scene Mesh of the specified Component and ComponentIndex. Requires that SpatialEvaluationCache is available.

code: virtual [FAxisAlignedBox3d](API\Runtime\GeometryCore\FAxisAlignedBox3d) GetMeshBoundingBox ( [UActorComponent](API\Runtime\Engine\Components\UActorComponent) * Component, int32 ComponentIndex )


code: void InitializeSpatialWrappers ( const [TArray](API\Runtime\Core\Containers\TArray)< [FActorAdapter](API\Plugins\ModelingComponents\Scene\FActorAdapter) * > & NewItemsToProcess )


description: Get all world-space bounding boxes for all Scene Meshes

code: virtual void GetMeshBoundingBoxes ( [TArray](API\Runtime\Core\Containers\TArray)< [FAxisAlignedBox3d](API\Runtime\GeometryCore\FAxisAlignedBox3d) > & Bounds )


description: Run a custom query across all world-transformed scene mesh vertices. Requires that SpatialEvaluationCache is available. The internal loop is run as: ParallelFor(SceneMesh, { if ( MeshFilterFunc(SceneMesh) ) { for ( FVector3d Vtx in Scene Mesh ) { PerVertexFunc(Vtx) } } }

code: virtual void ParallelMeshVertexEnumeration ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(int32 NumMeshes)> InitializeFunc, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(int32 MeshIndex, [AActor](API\Runtime\Engine\GameFramework\AActor) *SourceActor, const [FActorChildMesh](API\Plugins\ModelingComponents\Scene\FActorChildMesh) *ChildMeshInfo, const [FAxisAlignedBox3d](API\Runtime\GeometryCore\FAxisAlignedBox3d) &WorldBounds)> MeshFilterFunc, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(int32 MeshIndex, [AActor](API\Runtime\Engine\GameFramework\AActor) *SourceActor, const [FActorChildMesh](API\Plugins\ModelingComponents\Scene\FActorChildMesh) *ChildMeshInfo, const FVector3d &[WorldPos](API\Plugins\ChaosFleshEngine\ChaosFlesh\ChaosDeformableBindingOption))> PerVertexFunc, bool bForceSingleThreaded )


description: bounding box for the Actor set

code: virtual void GetGeometryStatistics ( [FStatistics](API\Plugins\ModelingComponents\Scene\FMeshSceneAdapter\FStatistics) & StatsOut )


description: Run a custom query across all scene actor child meshes.

code: virtual void ProcessActorChildMeshes ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void(const [FActorAdapter](API\Plugins\ModelingComponents\Scene\FActorAdapter) *ActorAdapter, const [FActorChildMesh](API\Plugins\ModelingComponents\Scene\FActorChildMesh) *ChildMesh)> ProcessFunc )


code: void UpdateActorBounds ( [FActorAdapter](API\Plugins\ModelingComponents\Scene\FActorAdapter) & Actor )


code: FMeshSceneAdapter ( [FMeshSceneAdapter](API\Plugins\ModelingComponents\Scene\FMeshSceneAdapter) && )


code: FMeshSceneAdapter ( const [FMeshSceneAdapter](API\Plugins\ModelingComponents\Scene\FMeshSceneAdapter) & )


code: virtual ~FMeshSceneAdapter()


className: FMeshSceneAdapter

description: Currently this builds an AABBTree and FastWindingTree for each unique Mesh, and supports various queries based on those data structures.

code: class FMeshSceneAdapter

bHaveSpatialEvaluationCache

type: bool

Octree

type: TSharedPtr<FSp...

description: Octree of elements in SortedSpatials list.

SceneActors

description: Top-level list of ActorAdapters, which represent each Actor and set of Components

SortedSpatials

type: TArray<FSpatia...

description: List of all unique scene meshes that have spatial data structure available

SpatialAdapters

type: TMap< void *...

description: Unique set of spatial data structure query interfaces, one for each Mesh object, which is identified by void* pointer.


className: FMeshSceneAdapterBuildOptions

description: Configuration forFMeshSceneAdapter::Build()

code: struct FMeshSceneAdapterBuildOptions

bBuildSpatialDataStructures

description: If true, AABBTree and Fast Winding data structures will be built for unique scene meshes

bEnableNormalsQueries

description: If true, Normals queries at hit locations will be supported

bEnableUVQueries

description: If true, UV queries will be supported on mesh wrappers

bFilterTinyObjects

description: If true, tiny objects will be discarded from the mesh scene.

bIgnoreStaticMeshSourceData

description: If true, the source meshes in StaticMesh Assets are ignored in favor of the render meshes.

bOnlySurfaceMaterials

description: If true, only mesh sections that are assigned a valid surface material (ie MaterialDomain::MD_Surface) will be included/processed in the Mesh Scene.

bPrintDebugMessages

description: If true, various build log messages and statistics will be written to LogGeometry

bThickenThinMeshes

description: If true, find approximately-planar meshes with a main dimension below DesiredMinThickness and thicken them to DesiredMinThickness

DesiredMinThickness

type: double

description: Thickness used for bThickenThinMeshes processing

TinyObjectBoxMaxDimension

description: If bFilterTinyObjects is enabled, then a tiny object is identified by having a maximum (transformed) bounding-box dimension below this size