Navigation
API > API/Plugins > API/Plugins/MeshModelingTools
Base Tool for mesh sculpting tools, provides some shared functionality
| Name | UMeshSculptToolBase |
| Type | class |
| Header File | /Engine/Plugins/Runtime/MeshModelingToolset/Source/MeshModelingTools/Public/Sculpting/MeshSculptToolBase.h |
| Include Path | #include "Sculpting/MeshSculptToolBase.h" |
Syntax
UCLASS (MinimalAPI)
class UMeshSculptToolBase : public UMeshSurfacePointTool
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UInteractiveTool → USingleSelectionTool → UMeshSurfacePointTool → UMeshSculptToolBase
Implements Interfaces
- IClickDragBehaviorTarget
- IModifierToggleBehaviorTarget
- IHoverBehaviorTarget
- IInputBehaviorSource
- IInteractiveToolCameraFocusAPI
Derived Classes
UMeshSculptToolBase derived class hierarchy
Structs
| Name | Remarks |
|---|---|
| FBrushTypeInfo | Brush Types |
| FFalloffTypeInfo | Falloff types |
| FInputRayData | |
| FStampRayData |
Enums
Protected
| Name | Remarks |
|---|---|
| EPendingWorkPlaneUpdate |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FFrame3d | UE::Geometry::FFrame3d | Sculpting/MeshSculptToolBase.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| ActiveOverrideMaterial | TObjectPtr< UMaterialInstanceDynamic > | Sculpting/MeshSculptToolBase.h | ||
| BrushProperties | TObjectPtr< USculptBrushProperties > | Properties that control brush size/etc | Sculpting/MeshSculptToolBase.h | |
| GizmoProperties | TObjectPtr< UWorkPlaneProperties > | Properties for 3D workplane / gizmo | Sculpting/MeshSculptToolBase.h | |
| PlaneTransformGizmo | TObjectPtr< UCombinedTransformGizmo > | Plane gizmo | Sculpting/MeshSculptToolBase.h | |
| PlaneTransformProxy | TObjectPtr< UTransformProxy > | Sculpting/MeshSculptToolBase.h | ||
| ViewProperties | TObjectPtr< UMeshEditingViewProperties > | Display / Material | Sculpting/MeshSculptToolBase.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| PendingInputRays | TArray< FInputRayData > | Sculpting/MeshSculptToolBase.h | ||
| PendingStampRays | TArray< FStampRayData > | Sequence of stamps to apply. | Sculpting/MeshSculptToolBase.h | |
| PreviousInputRay | TOptional< FInputRayData > | If this is not the first time we're processing PendingInputRays during a stroke, the previous ray. | Sculpting/MeshSculptToolBase.h | |
| PreviousUnfilteredHitPosition | TOptional< FVector3d > | Sculpting/MeshSculptToolBase.h | ||
| PreviousUnfilteredHitRadius | double | Sculpting/MeshSculptToolBase.h | ||
| StrokeGeometry | TObjectPtr< UPreviewGeometry > | Sculpting/MeshSculptToolBase.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void DecreaseBrushRadiusAction() |
Sculpting/MeshSculptToolBase.h | ||
virtual void DecreaseBrushRadiusSmallStepAction() |
Sculpting/MeshSculptToolBase.h | ||
virtual void DecreaseBrushSpeedAction() |
Sculpting/MeshSculptToolBase.h | ||
bool GetBrushStrengthPressureEnabled() |
Returns true if Pressure Sensitivity for Brush Strength is both supported by the tool and currently enabled. | Sculpting/MeshSculptToolBase.h | |
const TSet< FBrushTypeInfo > & GetRegisteredPrimaryBrushTypes() |
Sculpting/MeshSculptToolBase.h | ||
const TArray< FFalloffTypeInfo > & GetRegisteredPrimaryFalloffTypes() |
Sculpting/MeshSculptToolBase.h | ||
const TSet< FBrushTypeInfo > & GetRegisteredSecondaryBrushTypes() |
Sculpting/MeshSculptToolBase.h | ||
virtual void IncreaseBrushRadiusAction() |
Sculpting/MeshSculptToolBase.h | ||
virtual void IncreaseBrushRadiusSmallStepAction() |
Sculpting/MeshSculptToolBase.h | ||
virtual void IncreaseBrushSpeedAction() |
Client currently needs to implement these... | Sculpting/MeshSculptToolBase.h | |
virtual void NextBrushModeAction() |
Sculpting/MeshSculptToolBase.h | ||
virtual void PreviousBrushModeAction() |
Sculpting/MeshSculptToolBase.h | ||
void SetBrushStrengthPressureEnabled
(
const bool bEnabled |
Sets the Pressure Sensitivity for Brush Strength to be enabled/disabled | Sculpting/MeshSculptToolBase.h | |
virtual void SetPrimaryFalloffType
(
EMeshSculptFalloffType Falloff |
Set the active falloff type for the primary brush | Sculpting/MeshSculptToolBase.h | |
virtual void SetWorld
(
UWorld* World |
Sculpting/MeshSculptToolBase.h |
Overridden from UMeshSurfacePointTool
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool HitTest
(
const FRay& Ray, |
UMeshSurfacePointTool API. | Sculpting/MeshSculptToolBase.h | |
virtual void OnBeginDrag
(
const FRay& Ray |
Sculpting/MeshSculptToolBase.h | ||
virtual void OnCancelDrag() |
Sculpting/MeshSculptToolBase.h | ||
virtual void OnEndDrag
(
const FRay& Ray |
Sculpting/MeshSculptToolBase.h | ||
virtual void OnUpdateDrag
(
const FRay& Ray |
Sculpting/MeshSculptToolBase.h |
Overridden from UInteractiveTool
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void RegisterActions
(
FInteractiveToolActionSet& ActionSet |
Sculpting/MeshSculptToolBase.h | ||
virtual void Render
(
IToolsContextRenderAPI* RenderAPI |
Sculpting/MeshSculptToolBase.h | ||
virtual void Setup() |
Sculpting/MeshSculptToolBase.h | ||
virtual void Shutdown
(
EToolShutdownType ShutdownType |
Sculpting/MeshSculptToolBase.h |
Overridden from IInteractiveToolCameraFocusAPI
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual FBox GetWorldSpaceFocusBox() |
IInteractiveToolCameraFocusAPI override to focus on brush w/ 'F'. | Sculpting/MeshSculptToolBase.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AccumulateStrokeTime
(
float DeltaTime |
Sculpting/MeshSculptToolBase.h | ||
void AlignBrushToView() |
Sculpting/MeshSculptToolBase.h | ||
virtual void CalculateBrushRadius() |
Sculpting/MeshSculptToolBase.h | ||
virtual void CommitResult
(
UBaseDynamicMeshComponent* Component, |
Subclass can override this to change what results are written. | Sculpting/MeshSculptToolBase.h | |
virtual FFrame3d ComputeStampRegionPlane
(
const FFrame3d& StampFrame, |
Sculpting/MeshSculptToolBase.h | ||
virtual FFrame3d ComputeStampRegionPlane
(
const FFrame3d& StampFrame, |
Sculpting/MeshSculptToolBase.h | ||
virtual void ConfigureIndicator
(
bool bVolumetric |
Sculpting/MeshSculptToolBase.h | ||
virtual int32 FindHitSculptMeshTriangle
(
const FRay3d& LocalRay |
These routines handle the actual ray intersection queries againt the sculpt and target meshes. | Sculpting/MeshSculptToolBase.h | |
virtual int32 FindHitSculptMeshTriangleConst
(
const FRay3d& LocalRay |
Sculpting/MeshSculptToolBase.h | ||
virtual int32 FindHitTargetMeshTriangle
(
const FRay3d& LocalRay |
Sculpting/MeshSculptToolBase.h | ||
virtual int32 FindHitTargetMeshTriangleConst
(
const FRay3d& LocalRay |
Sculpting/MeshSculptToolBase.h | ||
virtual TUniquePtr< FMeshSculptBrushOp > & GetActiveBrushOp() |
Sculpting/MeshSculptToolBase.h | ||
virtual double GetActiveBrushRadius() |
Sculpting/MeshSculptToolBase.h | ||
virtual double GetActiveBrushStrength() |
Returns brush strength, factoring in pressure sensitivity if applicable | Sculpting/MeshSculptToolBase.h | |
virtual double GetActivePressure() |
Sculpting/MeshSculptToolBase.h | ||
virtual const FDynamicMesh3 * GetBaseMesh () |
Sculpting/MeshSculptToolBase.h | ||
virtual FDynamicMesh3 * GetBaseMesh () |
Sculpting/MeshSculptToolBase.h | ||
bool GetBrushCanHitBackFaces() |
Sculpting/MeshSculptToolBase.h | ||
const FFrame3d & GetBrushFrameLocal() |
Sculpting/MeshSculptToolBase.h | ||
const FFrame3d & GetBrushFrameWorld() |
Sculpting/MeshSculptToolBase.h | ||
bool GetBrushSizePressureSensitivityEnabled() |
Returns true if BrushSize Pressure Sensitivity is both supported by the tool and currently enabled. | Sculpting/MeshSculptToolBase.h | |
int32 GetBrushTriangleID() |
Sculpting/MeshSculptToolBase.h | ||
virtual double GetCurrentBrushDepth() |
Sculpting/MeshSculptToolBase.h | ||
virtual double GetCurrentBrushFalloff() |
Sculpting/MeshSculptToolBase.h | ||
virtual double GetCurrentBrushRadius() |
Sculpting/MeshSculptToolBase.h | ||
virtual double GetCurrentBrushStrength() |
Sculpting/MeshSculptToolBase.h | ||
virtual const FFrame3d & GetCurrentStrokeReferencePlane() |
Sculpting/MeshSculptToolBase.h | ||
virtual bool GetIndicatorVisibility() |
Sculpting/MeshSculptToolBase.h | ||
virtual bool GetInInvertStroke() |
Sculpting/MeshSculptToolBase.h | ||
virtual bool GetInSmoothingStroke() |
Sculpting/MeshSculptToolBase.h | ||
virtual bool GetIsVolumetricIndicator() |
Sculpting/MeshSculptToolBase.h | ||
FRay3d GetLocalRay
(
const FRay& WorldRay |
Sculpting/MeshSculptToolBase.h | ||
virtual const FRay & GetPendingStampRayWorld() |
Sculpting/MeshSculptToolBase.h | ||
virtual FDynamicMesh3 * GetSculptMesh () |
Sculpting/MeshSculptToolBase.h | ||
virtual const FDynamicMesh3 * GetSculptMesh () |
Sculpting/MeshSculptToolBase.h | ||
virtual UBaseDynamicMeshComponent * GetSculptMeshComponent() |
Subclass must implement this and return relevant rendering component | Sculpting/MeshSculptToolBase.h | |
virtual float GetStampTemporalFlowRate() |
Temporal Flow Rate defines the frequency of stamp placement. 1 is max rate, 0 is no stamps. Defaults to BrushProperties->FlowRate, but subclasses can re-use that setting for other things. | Sculpting/MeshSculptToolBase.h | |
virtual void InitializeBrushSizeRange
(
const UE::Geometry::FAxisAlignedBox3d& TargetBounds |
Sculpting/MeshSculptToolBase.h | ||
virtual void InitializeIndicator() |
Subclasses should call this to create indicator in their Setup() | Sculpting/MeshSculptToolBase.h | |
void InitializeSculptMeshComponent
(
UBaseDynamicMeshComponent* Component, |
Subclass calls this to set up editing component | Sculpting/MeshSculptToolBase.h | |
virtual bool InStroke() |
Sculpting/MeshSculptToolBase.h | ||
virtual bool IsStampPending() |
Sculpting/MeshSculptToolBase.h | ||
virtual UPreviewMesh * MakeBrushIndicatorMesh
(
UObject* Parent, |
Called by InitializeIndicator to create a mesh for the brush ROI indicator. Default is sphere. | Sculpting/MeshSculptToolBase.h | |
void MapHorizontalBrushEditBehaviorToBrushSize
(
ULocalTwoAxisPropertyEditInputBehavior& OutBehavior |
Sculpting/MeshSculptToolBase.h | ||
virtual void OnBeginStroke
(
const FRay& WorldRay |
Sculpting/MeshSculptToolBase.h | ||
virtual void OnCancelStroke() |
Sculpting/MeshSculptToolBase.h | ||
virtual void OnCompleteSetup() |
Sculpting/MeshSculptToolBase.h | ||
virtual void OnEndStroke() |
Sculpting/MeshSculptToolBase.h | ||
virtual void PlaneTransformChanged
(
UTransformProxy* Proxy, |
Sculpting/MeshSculptToolBase.h | ||
void ProcessPerTickStamps
(
TFunction< bool(const FRay&StampRay)> UpdateStampPosition, |
Sculpting/MeshSculptToolBase.h | ||
void ProcessPerTickStamps
(
TFunction< bool(const FRay&StampRay)> UpdateStampPosition, |
Sculpting/MeshSculptToolBase.h | ||
bool ProjectWorldRayOnActivePlane
(
const FRay& WorldRay, |
Sculpting/MeshSculptToolBase.h | ||
bool ProjectWorldRayOnSculptMesh
(
const FRay& WorldRay, |
Sculpting/MeshSculptToolBase.h | ||
bool ProjectWorldRayOnTargetMesh
(
const FRay& WorldRay, |
Sculpting/MeshSculptToolBase.h | ||
void RegisterBrushType
(
int32 Identifier, |
Sculpting/MeshSculptToolBase.h | ||
void RegisterSecondaryBrushType
(
int32 Identifier, |
Sculpting/MeshSculptToolBase.h | ||
void RegisterStandardFalloffTypes() |
Sculpting/MeshSculptToolBase.h | ||
virtual void ResetStrokeTime() |
Sculpting/MeshSculptToolBase.h | ||
virtual void RestoreAllBrushTypeProperties
(
UInteractiveTool* RestoreToTool |
Sculpting/MeshSculptToolBase.h | ||
virtual void SaveActiveStrokeModifiers() |
Sculpting/MeshSculptToolBase.h | ||
virtual void SaveAllBrushTypeProperties
(
UInteractiveTool* SaveFromTool |
Sculpting/MeshSculptToolBase.h | ||
void SetActivePrimaryBrushType
(
int32 Identifier |
Sculpting/MeshSculptToolBase.h | ||
void SetActiveSecondaryBrushType
(
int32 Identifier |
Sculpting/MeshSculptToolBase.h | ||
void SetBrushOpPropsVisibility
(
bool bVisible |
Sculpting/MeshSculptToolBase.h | ||
virtual void SetFixedSculptPlaneFromWorldPos
(
const FVector& Position, |
Sculpting/MeshSculptToolBase.h | ||
virtual void SetIndicatorVisibility
(
bool bVisible |
Sculpting/MeshSculptToolBase.h | ||
virtual void SetupBrushEditBehaviorSetup
(
ULocalTwoAxisPropertyEditInputBehavior& OutBehavior |
Sculpting/MeshSculptToolBase.h | ||
virtual void SetViewPropertiesEnabled
(
bool bNewValue |
Sculpting/MeshSculptToolBase.h | ||
virtual bool SharesBrushPropertiesChanges() |
For any subclass where this returns false, BrushProperties will not be automatically saved/restored, so the class won't use BrushProperties changes made in other tools. | Sculpting/MeshSculptToolBase.h | |
virtual bool ShowWorkPlane() |
Sculpting/MeshSculptToolBase.h | ||
void UpdateBrushFrameWorld
(
const FVector3d& NewPosition, |
Sculpting/MeshSculptToolBase.h | ||
virtual bool UpdateBrushPositionOnActivePlane
(
const FRay& WorldRay |
Sculpting/MeshSculptToolBase.h | ||
virtual bool UpdateBrushPositionOnSculptMesh
(
const FRay& WorldRay, |
Sculpting/MeshSculptToolBase.h | ||
virtual bool UpdateBrushPositionOnTargetMesh
(
const FRay& WorldRay, |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateBrushTargetPlaneFromHit
(
const FRay& WorldRay, |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateColorSetting
(
FLinearColor NewColor |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateCustomMaterial
(
TWeakObjectPtr< UMaterialInterface > NewMaterial |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateFixedPlaneGizmoVisibility
(
bool bVisible |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateFixedSculptPlanePosition
(
const FVector& Position |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateFixedSculptPlaneRotation
(
const FQuat& Rotation |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateFlatShadingSetting
(
bool bNewValue |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateGizmoFromProperties() |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateHitSculptMeshTriangle
(
int32 TriangleID, |
Provides a hook for informing subclasses which triangle was last hit during a brush update. | Sculpting/MeshSculptToolBase.h | |
virtual void UpdateHitTargetMeshTriangle
(
int32 TriangleID, |
Provides a hook for informing subclasses which triangle was last hit during a brush update. | Sculpting/MeshSculptToolBase.h | |
virtual void UpdateHoverStamp
(
const FFrame3d& StampFrameWorld |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateImageSetting
(
UTexture2D* NewImage |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateMaterialMode
(
EMeshEditingMaterialModes NewMode |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateOpacitySetting
(
double Opacity |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateStampPendingState() |
When in a stroke, this function determines when a new stamp should be emitted, based on spacing and flow rate settings | Sculpting/MeshSculptToolBase.h | |
virtual void UpdateStrokeReferencePlaneForROI
(
const FFrame3d& StampFrame, |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateStrokeReferencePlaneFromWorkPlane() |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateTransparentColorSetting
(
FLinearColor NewColor |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateTwoSidedSetting
(
bool bOn |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateWireframeVisibility
(
bool bNewValue |
Sculpting/MeshSculptToolBase.h | ||
virtual void UpdateWorkPlane() |
Sculpting/MeshSculptToolBase.h |
Overridden from UInteractiveTool
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void OnTick
(
float DeltaTime |
Sculpting/MeshSculptToolBase.h |