Navigation
API > API/Plugins > API/Plugins/MeshModelingToolsExp > API/Plugins/MeshModelingToolsExp/Sculpting
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UInteractiveTool
- USingleSelectionTool
- UMeshSurfacePointTool
- UMeshSculptToolBase
- UClothEditorWeightMapPaintTool
- UMeshGroupPaintTool
- UMeshVertexPaintTool
- UMeshVertexSculptTool
References
| Module | MeshModelingToolsExp |
| Header | /Engine/Plugins/Experimental/MeshModelingToolsetExp/Source/MeshModelingToolsExp/Public/Sculpting/MeshSculptToolBase.h |
| Include | #include "Sculpting/MeshSculptToolBase.h" |
Syntax
UCLASS&40;&41;
class UMeshSculptToolBase : public UMeshSurfacePointTool
Remarks
Base Tool for mesh sculpting tools, provides some shared functionality
Variables
| Type | Name | Description | |
|---|---|---|---|
| FFrame3d | ActiveBrushTargetPlaneWorld | Brush Target Plane is plane that some brushes move on | |
| TObjectPtr< UMaterialInstanceDynamic > | ActiveOverrideMaterial | ||
| double | ActivePressure | ||
| double | ActiveStrokePathArcLen | ||
| double | ActiveStrokeTime | For tracking stroke time and length, to apply spacing and flow rate settings | |
| bool | bBrushOpPropsVisible | ||
| bool | bInStroke | Stroke Modifiers | |
| bool | bInvert | ||
| bool | bIsStampPending | Stamps | |
| bool | bIsVolumetricIndicator | ||
| TObjectPtr< UBrushStampIndicator > | BrushIndicator | ||
| TObjectPtr< UMaterialInstanceDynamic > | BrushIndicatorMaterial | ||
| TObjectPtr< UPreviewMesh > | BrushIndicatorMesh | ||
| TMap< int32, TUniquePtr< FMeshSculptBrushOpFactory > > | BrushOpFactories | ||
| TMap< int32, TObjectPtr< UMeshSculptBrushOpProps > > | BrushOpPropSets | ||
| TObjectPtr< USculptBrushProperties > | BrushProperties | Properties that control brush size/etc | |
| UE::Geometry::FInterval1d | BrushRelativeSizeRange | Brush Size | |
| bool | bSmoothing | ||
| FViewCameraState | CameraState | ||
| double | CurrentBrushFalloff | ||
| double | CurrentBrushRadius | ||
| FSculptBrushStamp | CurrentStamp | ||
| UE::Geometry::FTransformSRT3d | CurTargetTransform | Active transformation on target mesh, includes baked scale | |
| TValueWatcher< FVector > | GizmoPositionWatcher | ||
| TObjectPtr< UWorkPlaneProperties > | GizmoProperties | Properties for 3D workplane / gizmo | |
| TValueWatcher< FQuat > | GizmoRotationWatcher | ||
| FSculptBrushStamp | HoverStamp | ||
| UE::Geometry::FTransformSRT3d | InitialTargetTransform | Initial transformation on target mesh | |
| FFrame3d | LastBrushFrameLocal | ||
| FFrame3d | LastBrushFrameWorld | Brush/Stroke stuff | |
| int32 | LastBrushTriangleID | ||
| int | LastFlowTimeStamp | ||
| int | LastSpacingTimestamp | ||
| FSculptBrushStamp | LastStamp | ||
| FRay | PendingStampRay | ||
| EPendingWorkPlaneUpdate | PendingWorkPlaneUpdate | ||
| TObjectPtr< UCombinedTransformGizmo > | PlaneTransformGizmo | Plane gizmo | |
| TObjectPtr< UTransformProxy > | PlaneTransformProxy | ||
| TUniquePtr< FMeshSculptBrushOp > | PrimaryBrushOp | ||
| TSharedPtr< FMeshSculptFallofFunc > | PrimaryFalloff | ||
| UMeshSculptBrushOpProps * | PrimaryVisiblePropSet | ||
| TArray< FBrushTypeInfo > | RegisteredPrimaryBrushTypes | ||
| TArray< FFalloffTypeInfo > | RegisteredPrimaryFalloffTypes | ||
| TArray< FBrushTypeInfo > | RegisteredSecondaryBrushTypes | ||
| TUniquePtr< FMeshSculptBrushOp > | SecondaryBrushOp | ||
| TMap< int32, TUniquePtr< FMeshSculptBrushOpFactory > > | SecondaryBrushOpFactories | ||
| TMap< int32, TObjectPtr< UMeshSculptBrushOpProps > > | SecondaryBrushOpPropSets | ||
| UMeshSculptBrushOpProps * | SecondaryVisiblePropSet | ||
| FFrame3d | StampRegionPlane | Stamp ROI Plane is a plane used by some brush ops | |
| FFrame3d | StrokePlane | Stroke plane is a plane used by some brush ops | |
| UWorld * | TargetWorld | ||
| TObjectPtr< UMeshEditingViewProperties > | ViewProperties | Display / Material |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AccumulateStrokeTime
(
float DeltaTime |
||
| void | |||
| void | |||
| void | CommitResult
(
UBaseDynamicMeshComponent* Component, |
Subclass can override this to change what results are written. | |
| FFrame3d | ComputeStampRegionPlane
(
const FFrame3d& StampFrame, |
||
| FFrame3d | ComputeStampRegionPlane
(
const FFrame3d& StampFrame, |
||
| void | ConfigureIndicator
(
bool bVolumetric |
||
| void | |||
| void | |||
| void | |||
| int32 | FindHitSculptMeshTriangle
(
const FRay3d& LocalRay |
||
| int32 | FindHitTargetMeshTriangle
(
const FRay3d& LocalRay |
||
| TUniquePtr< FMeshSculptBrushOp > & | |||
| double | |||
| FDynamicMesh3 * | GetBaseMesh () |
||
| const FDynamicMesh3 * | GetBaseMesh () |
||
| bool | |||
| const FFrame3d & | |||
| const FFrame3d & | |||
| int32 | |||
| double | |||
| double | |||
| double | |||
| double | |||
| const FFrame3d & | |||
| bool | |||
| bool | |||
| bool | |||
| bool | |||
| FRay3d | GetLocalRay
(
const FRay& WorldRay |
||
| const FRay & | |||
| const TArray< FBrushTypeInfo > & | |||
| const TArray< FFalloffTypeInfo > & | |||
| const TArray< FBrushTypeInfo > & | |||
| FDynamicMesh3 * | |||
| const FDynamicMesh3 * | |||
| UBaseDynamicMeshComponent * | Subclass must implement this and return relevant rendering component | ||
| float | 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. | ||
| void | |||
| void | |||
| void | Client currently needs to implement these... | ||
| void | InitializeBrushSizeRange
(
const UE::Geometry::FAxisAlignedBox3d& TargetBounds |
||
| void | Subclasses should call this to create indicator in their Setup() | ||
| void | InitializeSculptMeshComponent
(
UBaseDynamicMeshComponent* Component, |
Subclass calls this to set up editing component | |
| bool | InStroke () |
||
| bool | |||
| UPreviewMesh * | MakeBrushIndicatorMesh
(
UObject* Parent, |
Called by InitializeIndicator to create a mesh for the brush ROI indicator. Default is sphere. | |
| void | |||
| void | OnBeginStroke
(
const FRay& WorldRay |
||
| void | |||
| void | OnEndStroke () |
||
| void | PlaneTransformChanged
(
UTransformProxy* Proxy, |
||
| void | |||
| void | RegisterBrushType
(
int32 Identifier, |
||
| void | RegisterSecondaryBrushType
(
int32 Identifier, |
||
| void | |||
| void | |||
| void | RestoreAllBrushTypeProperties
(
UInteractiveTool* RestoreToTool |
||
| void | |||
| void | SaveAllBrushTypeProperties
(
UInteractiveTool* SaveFromTool |
||
| void | SetActivePrimaryBrushType
(
int32 Identifier |
||
| void | SetActiveSecondaryBrushType
(
int32 Identifier |
||
| void | SetBrushOpPropsVisibility
(
bool bVisible |
||
| void | SetFixedSculptPlaneFromWorldPos
(
const FVector& Position, |
||
| void | SetIndicatorVisibility
(
bool bVisible |
||
| void | SetPrimaryFalloffType
(
EMeshSculptFalloffType Falloff |
Set the active falloff type for the primary brush | |
| void | SetViewPropertiesEnabled
(
bool bNewValue |
||
| void | |||
| bool | |||
| void | UpdateBrushFrameWorld
(
const FVector3d& NewPosition, |
||
| bool | UpdateBrushPositionOnActivePlane
(
const FRay& WorldRay |
||
| bool | UpdateBrushPositionOnSculptMesh
(
const FRay& WorldRay, |
||
| bool | UpdateBrushPositionOnTargetMesh
(
const FRay& WorldRay, |
||
| void | UpdateBrushTargetPlaneFromHit
(
const FRay& WorldRay, |
||
| void | UpdateColorSetting
(
FLinearColor NewColor |
||
| void | UpdateCustomMaterial
(
TWeakObjectPtr< UMaterialInterface > NewMaterial |
||
| void | UpdateFixedPlaneGizmoVisibility
(
bool bVisible |
||
| void | UpdateFixedSculptPlanePosition
(
const FVector& Position |
||
| void | UpdateFixedSculptPlaneRotation
(
const FQuat& Rotation |
||
| void | UpdateFlatShadingSetting
(
bool bNewValue |
||
| void | |||
| void | UpdateHoverStamp
(
const FFrame3d& StampFrameWorld |
||
| void | UpdateImageSetting
(
UTexture2D* NewImage |
||
| void | UpdateMaterialMode
(
EMeshEditingMaterialModes NewMode |
||
| void | UpdateOpacitySetting
(
double Opacity |
||
| void | When in a stroke, this function determines when a new stamp should be emitted, based on spacing and flow rate settings | ||
| void | UpdateStrokeReferencePlaneForROI
(
const FFrame3d& StampFrame, |
||
| void | |||
| void | UpdateTransparentColorSetting
(
FLinearColor NewColor |
||
| void | UpdateTwoSidedSetting
(
bool bOn |
||
| void | UpdateWireframeVisibility
(
bool bNewValue |
||
| void |
Overridden from UMeshSurfacePointTool
| Type | Name | Description | |
|---|---|---|---|
| bool | HitTest
(
const FRay& Ray, |
UMeshSurfacePointTool API. | |
| void | OnBeginDrag
(
const FRay& Ray |
This function is called when the user begins a click-drag-release interaction | |
| void | OnEndDrag
(
const FRay& Ray |
This function is called when the user releases the button driving a click-drag-release interaction | |
| void | OnUpdateDrag
(
const FRay& Ray |
This function is called each frame that the user is in a click-drag-release interaction |
Overridden from UInteractiveTool
| Type | Name | Description | |
|---|---|---|---|
| void | OnTick
(
float DeltaTime |
Allow the Tool to do any necessary processing on Tick | |
| void | RegisterActions
(
FInteractiveToolActionSet& ActionSet |
Override this function to register the set of Actions this Tool supports, using FInteractiveToolActionSet::RegisterAction. | |
| void | Render
(
IToolsContextRenderAPI* RenderAPI |
Allow the Tool to do any custom drawing (ie via PDI/RHI) | |
| void | Setup () |
Register InputBehaviors, etc | |
| void | Shutdown
(
EToolShutdownType ShutdownType |
Called by ToolManager to shut down the Tool |
Overridden from IInteractiveToolCameraFocusAPI
| Type | Name | Description | |
|---|---|---|---|
| FBox | IInteractiveToolCameraFocusAPI override to focus on brush w/ 'F'. |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FBrushTypeInfo | Brush Types | ||
| FFalloffTypeInfo | Falloff types |
Enums
| Type | Name | Description | |
|---|---|---|---|
| EPendingWorkPlaneUpdate |
Typedefs
| Name | Description |
|---|---|
| FFrame3d |