C++

Introduction

I believe that the code is decently documented. I have uploaded bit of the documentation here. Please remember that you can always see the information about most variables and functions by hovering over them in the Editor!


Enums

ETransformationType

TT_NoTransform TT_Translation TT_Rotation TT_Scale


ESpaceType

ST_None ST_Local ST_World


ETransformationDomain

TD_None TD_X_Axis TD_Y_Axis TD_Z_Axis

TD_XY_Plane TD_YZ_Plane TD_XZ_Plane TD_XYZ


EGizmoPlacement

GP_None GP_OnFirstSelection GP_OnLastSelection

Specifier Keys

Variables

  • EA EditAnywhere

  • VA VisibleAnywhere

  • RO BlueprintReadOnly

  • RW BlueprintReadWrite

Functions

  • CA BlueprintCallable

  • NE BlueprintNativeEvent

  • SV Server (With Validation)

  • MC NetMulticast

  • RL Reliable

  • UR Unreliable

  • A{} Access (0: Public, 1: Protected, 2: Private)

ABaseGizmo

The base class of all gizmos. It contains the core variables and functionality shared among the gizmos.

C++ Classes

ATranslationGizmo

ATranslationGizmo is a child class of ABaseGizmo. The translation gizmo is in charge for the translations done in all seven domains (see ETransformationDomain). Since only the three axes' box components are in ABaseGizmo, ATranslationGizmo adds the remaining four domain box components (the three planes and the XYZ domain). This class needs to be overridden to give the gizmo rendering components. Optionally, core functionality can be overridden to add custom logic.

ARotationGizmo

ARotationGizmo is a child class of ABaseGizmo. The rotation gizmo is in charge for the rotation done in the three axes (X, Y, Z). Since only the three axes' box components are used, ARotationGizmo does not use the other domains, and thus does not have any extra box components. This class needs to be overridden to give the gizmo rendering components. Optionally, core functionality can be overridden to add custom logic.

AScaleGizmo

AScaleGizmo is a child class of ABaseGizmo. The scale gizmo is in charge for the scaling done in all seven domains (see ETransformationDomain). Since only the three axes' box components are in ABaseGizmo, AScaleGizmo adds the remaining four domain box components (the three planes and the XYZ domain). This class needs to be overridden to give the gizmo rendering components. Optionally, core functionality can be overridden to add custom logic.

ATransformerPawn

The class that handles object selection, deselection, cloning, etc. This is the pawn class you would spawn (and recommended to possess) to enable the system. You can inherit this class to edit things like:

  • Gizmo class to use for each transformation. The gizmo class must be child of the relevant transform gizmo (e.g. for translation, ATranslationGizmo)

  • Space type (see ESpaceType) - Local or World space.

  • Snapping Settings

  • etc

ATransformerActor