DisclaimerIf you use the site often and enjoy it, consider donating to help me cover the server costs, and motivate me to spend my time on this project. (Donate) (Crypto)



UInteractiveGizmo > UObject

UPlanePositionGizmo implements a gizmo interaction where 2D parameter value is manipulated by dragging a point on a 3D plane in space. The 3D position is converted to 2D coordinates based on the tangent axes of the plane. As with other base gizmos, this class only implements the interaction. The visual aspect of the gizmo, the plane, and the parameter storage are all provided externally. The plane is provided by an IGizmoAxisSource. The origin and normal define the plane and then the tangent axes of the source define the coordinate space. The interaction target (ie the thing you have to click on to start the dragging interaction) is provided by an IGizmoClickTarget. The new 2D parameter value is sent to an IGizmoVec2ParameterSource Internally a UClickDragInputBehavior is used to handle mouse input, configured in Setup()

Member Type Offset Share

AxisSource provides the 3D plane on which the interaction happens

TScriptInterface<IGizmoAxisSource> 0x48

The 3D plane coordinates are converted to 2D coordinates in the plane tangent space, and the change in value is sent to this ParameterSource

TScriptInterface<IGizmoVec2ParameterSource> 0x58

The HitTarget provides a hit-test against some 3D element (presumably a visual widget) that controls when interaction can start

TScriptInterface<IGizmoClickTarget> 0x68

StateTarget is notified when interaction starts and ends, so that things like undo/redo can be handled externally

TScriptInterface<IGizmoStateTarget> 0x78

If enabled, then the sign on the parameter delta is always "increasing" when moving away from the origin point, rather than just being a projection onto the axis

bool 0x88

If enabled, flip sign of parameter delta on X axis

bool 0x89

If enabled, flip sign of parameter delta on Y axis

bool 0x8a

If true, we are in an active click+drag interaction, otherwise we are not

bool 0x8b

The values below are used in the context of a single click-drag interaction, ie if bInInteraction = true They otherwise should be considered uninitialized

FVector 0x8c
InteractionNormal FVector 0x98
InteractionAxisX FVector 0xa4
InteractionAxisY FVector 0xb0
InteractionStartPoint FVector 0xbc
InteractionCurPoint FVector 0xc8
InteractionStartParameter FVector2D 0xd4
InteractionCurParameter FVector2D 0xdc
ParameterSigns FVector2D 0xe4