Navigation
API > API/Plugins > API/Plugins/AvalancheShapes
| Name | UAvaShapeDynamicMeshBase |
| Type | class |
| Header File | /Engine/Plugins/VirtualProduction/Avalanche/Source/AvalancheShapes/Public/DynamicMeshes/AvaShapeDynMeshBase.h |
| Include Path | #include "DynamicMeshes/AvaShapeDynMeshBase.h" |
Syntax
UCLASS (MinimalAPI, ClassGroup="Shape", Abstract, BlueprintType, CustomConstructor, EditInlineNew,
DefaultToInstanced, HideCategories=(Tags, Activation, Cooking, AssetUserData, Navigation))
class UAvaShapeDynamicMeshBase :
public UActorComponent ,
public IAvaInteractiveToolsModeDetailsObject ,
public IAvaGizmoObjectInterface
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UActorComponent → UAvaShapeDynamicMeshBase
Implements Interfaces
- IAsyncPhysicsStateProcessor
- IInterface_AssetUserData
- IAvaGizmoObjectInterface
- IAvaInteractiveToolsModeDetailsObject
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UAvaShapeDynamicMeshBase
(
const FObjectInitializer& ObjectInitializer |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
UAvaShapeDynamicMeshBase
(
const FLinearColor& InVertexColor, |
DynamicMeshes/AvaShapeDynMeshBase.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| DefaultSubdivisions | uint8 | DynamicMeshes/AvaShapeDynMeshBase.h | |
| MaxSubdivisions | uint8 | DynamicMeshes/AvaShapeDynMeshBase.h | |
| MESH_INDEX_ALL | int32 | DynamicMeshes/AvaShapeDynMeshBase.h | |
| MESH_INDEX_NONE | int32 | DynamicMeshes/AvaShapeDynMeshBase.h | |
| MESH_INDEX_PRIMARY | int32 | DynamicMeshes/AvaShapeDynMeshBase.h | |
| MinSize2D | const FVector2D | DynamicMeshes/AvaShapeDynMeshBase.h | |
| MinSize3D | const FVector | DynamicMeshes/AvaShapeDynMeshBase.h | |
| MinSizeValue | float | DynamicMeshes/AvaShapeDynMeshBase.h | |
| OnMaskDisabled | FMaskDisabledDelegate | DynamicMeshes/AvaShapeDynMeshBase.h | |
| OnMaskEnabled | FMaskEnabledDelegate | DynamicMeshes/AvaShapeDynMeshBase.h | |
| OnMaskVisibility | FMaskVisibilityDelegate | DynamicMeshes/AvaShapeDynMeshBase.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bAllMeshDirty | bool | True if all meshes are marked as dirty, false otherwise, use MarkAllMeshesDirty() instead of modifying this | DynamicMeshes/AvaShapeDynMeshBase.h | |
| bAnyMeshDirty | bool | True if at least one meshes is marked as dirty, false otherwise, use MarkMeshDirty(MeshIndex) instead of modifying this | DynamicMeshes/AvaShapeDynMeshBase.h | |
| bHasNewMeshRegenWorldLocation | bool | DynamicMeshes/AvaShapeDynMeshBase.h | ||
| bInCreateMode | bool | Whether we are in the tool shape mode and creating this shape | DynamicMeshes/AvaShapeDynMeshBase.h | |
| bMeshRegistered | bool | Flag to register meshes only once | DynamicMeshes/AvaShapeDynMeshBase.h | |
| bRunAsync | bool | Run mesh updates async | DynamicMeshes/AvaShapeDynMeshBase.h | |
| bVerticesDirty | bool | Should only be used when the shape's vertices have changed, but the overall shape has not changed. | DynamicMeshes/AvaShapeDynMeshBase.h | |
| bZeroScaled | bool | Is the mesh scaled to zero ? | DynamicMeshes/AvaShapeDynMeshBase.h | |
| CachedComponent | TWeakObjectPtr< UDynamicMeshComponent > | Do not access directly use getter to load it if nullptr | DynamicMeshes/AvaShapeDynMeshBase.h | |
| CachedMesh | TOptional< UE::Geometry::FDynamicMesh3 > | Used to quickly restore mesh that has been modified after OnMeshUpdateFinished was called (eg extrude, masking) | DynamicMeshes/AvaShapeDynMeshBase.h | |
| MeshRegenWorldLocation | FVector | DynamicMeshes/AvaShapeDynMeshBase.h | ||
| MeshUpdateStatus | std::atomic< EAvaDynamicMeshUpdateState > | Only change this value from the base class to avoid thread lock, use RunUpdate() or RequireUpdate() | DynamicMeshes/AvaShapeDynMeshBase.h | |
| NonGizmoMeshData | TMap< int32, FAvaShapeMeshData > | Stores select settings to allow restoration when Gizmo mode turned off | DynamicMeshes/AvaShapeDynMeshBase.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool ApplyUVsTransform
(
FAvaShapeMesh& InMesh, |
Apply scale, offset, rotation on dynamic mesh section | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool ClearDynamicMesh() |
Clear the whole dynamic mesh | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool ClearDynamicMeshSection
(
int32 MeshIndex |
Clear the dynamic mesh section with a specific index | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool ExportToStaticMesh
(
UStaticMesh* DestinationMesh |
Converts dynamic mesh to static mesh | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual FAvaColorChangeData GetActiveColor() |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool GetAllowEditSize() |
Can we change the size of this shape | DynamicMeshes/AvaShapeDynMeshBase.h |
|
virtual void GetBounds
(
FVector& Origin, |
Gets the bounds of the shape, override this in child classes for custom bounds Origin is the center of the box, BoxExtent is half the size, pivot is the default location of the pivot for this shape | DynamicMeshes/AvaShapeDynMeshBase.h | |
FAvaShapeMaterialUVParameters * GetInUseMaterialUVParams
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
const FAvaShapeMaterialUVParameters * GetInUseMaterialUVParams
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
void GetLocalSnapPoints
(
TArray< FAvaSnapPoint >& Points |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual TArray< FAvaSnapPoint > GetLocalSnapPoints () |
Generate a list of 3d-space snap points for this shape. | DynamicMeshes/AvaShapeDynMeshBase.h | |
UMaterialInterface * GetMaterial
(
int32 InMeshIndex |
Get the material of a mesh section | DynamicMeshes/AvaShapeDynMeshBase.h |
|
bool GetMaterialHorizontalFlip
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
EMaterialType GetMaterialType
(
int32 InMeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
const FVector2D & GetMaterialUVAnchor
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
EAvaAnchors GetMaterialUVAnchorPreset
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
EAvaShapeUVMode GetMaterialUVMode
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
const FVector2D & GetMaterialUVOffset
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
const FAvaShapeMaterialUVParameters & GetMaterialUVParams
(
int32 InMeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
FAvaShapeMaterialUVParameters * GetMaterialUVParamsPtr
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
float GetMaterialUVRotation
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
const FVector2D & GetMaterialUVScale
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool GetMaterialVerticalFlip
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
FAvaShapeMeshData * GetMeshData
(
int32 MeshIndex |
Find a registered mesh and gets a pointer to it | DynamicMeshes/AvaShapeDynMeshBase.h | |
TSet< int32 > GetMeshesIndexes() |
Get the registered meshes indexes | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual const FString & GetMeshName() |
Get the name of the shape | DynamicMeshes/AvaShapeDynMeshBase.h | |
const FVector & GetMeshRegenWorldLocation() |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
| Returns the name of the sections composing this mesh | DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
bool GetOverridePrimaryUVParams
(
int32 InMeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
const FAvaShapeParametricMaterial & GetParametricMaterial
(
int32 InMeshIndex |
Get parametric material of a mesh section | DynamicMeshes/AvaShapeDynMeshBase.h |
|
FAvaShapeParametricMaterial * GetParametricMaterialPtr
(
int32 InMeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool GetRunAsync() |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
AAvaShapeActor * GetShapeActor() |
Converts the Outer of this object to a AAvaShapeActor. | DynamicMeshes/AvaShapeDynMeshBase.h | |
UDynamicMeshComponent * GetShapeMeshComponent() |
Gets the Dynamic Mesh component from the Shape actor, this will load it if its nullptr. | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual FVector2D GetSize2D() |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
virtual FVector GetSize3D() |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
FTransform GetTransform() |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
float GetUniformScaledSize() |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
bool GetUsePrimaryMaterialEverywhere() |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
bool HasMeshRegenWorldLocation() |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool IsMaterialType
(
int32 MeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool IsMeshSectionVisible
(
int32 InIndex |
Checks if a mesh section is currently visible | DynamicMeshes/AvaShapeDynMeshBase.h |
|
bool IsValidMeshIndex
(
int32 InMeshIndex |
Checks if the mesh section is valid | DynamicMeshes/AvaShapeDynMeshBase.h |
|
virtual void OnColorPicked
(
const FAvaColorChangeData& InNewColorData |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
void SetMaterial
(
int32 InMeshIndex, |
Set the material of a mesh section | DynamicMeshes/AvaShapeDynMeshBase.h |
|
bool SetMaterialHorizontalFlip
(
int32 MeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
void SetMaterialType
(
int32 InMeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
bool SetMaterialUVAnchor
(
int32 MeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool SetMaterialUVAnchorPreset
(
int32 MeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool SetMaterialUVMode
(
int32 MeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool SetMaterialUVOffset
(
int32 MeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
void SetMaterialUVParams
(
int32 InMeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
bool SetMaterialUVRotation
(
int32 MeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool SetMaterialUVScale
(
int32 MeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool SetMaterialVerticalFlip
(
int32 MeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
void SetMeshRegenWorldLocation
(
const FVector& NewLocation, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
void SetOverridePrimaryUVParams
(
int32 InMeshIndex, |
Use custom uv params per mesh section instead of using the primary one | DynamicMeshes/AvaShapeDynMeshBase.h |
|
void SetParametricMaterial
(
int32 InMeshIndex, |
Set parametric material of a section, internal materials are not copied over, only settings | DynamicMeshes/AvaShapeDynMeshBase.h |
|
void SetRunAsync
(
bool bInAsync |
Set whether mesh update should run async or not | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual void SetSize2D
(
const FVector2D& InSize2D |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
virtual void SetSize3D
(
const FVector& InSize |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
void SetUniformScaledSize
(
float InSize |
DynamicMeshes/AvaShapeDynMeshBase.h |
|
|
void SetUsePrimaryMaterialEverywhere
(
bool bInUse |
Set Primary material override | DynamicMeshes/AvaShapeDynMeshBase.h |
|
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void ApplyMeshSectionChanges() |
Pushed mesh section data updates to dynamic mesh and creates/updates geometry data | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool ApplyUVsBoxProjection
(
FAvaShapeMesh& InMesh, |
Apply a box projection on a dynamic mesh section | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool ApplyUVsManually
(
FAvaShapeMesh& InMesh |
Sets the uvs manually on a dynamic mesh section | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool ApplyUVsPlanarProjection
(
FAvaShapeMesh& InMesh, |
Apply a planar projection on a dynamic mesh section | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool CheckMaterialSlotChanges() |
Used to check for material changes in slot of DMC to match with our current material settings | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual bool ClearMesh() |
Clears the mesh sections that are dirty. | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool CreateDynamicMesh
(
FAvaShapeMesh& InMesh |
Creates a section in the dynamic mesh component. | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual bool CreateMesh
(
FAvaShapeMesh& InMesh |
Override this in child classes to create the mesh if it's visible | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual bool CreateUVs
(
FAvaShapeMesh& InMesh, |
Override this in child classes when you create UV for a specific mesh | DynamicMeshes/AvaShapeDynMeshBase.h | |
const TArray< UMaterialInterface * > GetMeshDataMaterials() |
Returns the materials used by every mesh | DynamicMeshes/AvaShapeDynMeshBase.h | |
FName GetMeshSectionName
(
int32 InMeshIndex |
Returns the name of the mesh | DynamicMeshes/AvaShapeDynMeshBase.h | |
EAvaDynamicMeshUpdateState GetMeshUpdateStatus() |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool HasSameTopology
(
FAvaShapeMesh& InMesh |
Checks whether the topology of the mesh has changed (different vertices count and different triangles count than current) | DynamicMeshes/AvaShapeDynMeshBase.h | |
void InitializeDynamicMesh() |
Clears everything and reinitialize the DM to use it properly | DynamicMeshes/AvaShapeDynMeshBase.h | |
void InvalidateSection
(
bool& bInvalidatedSection, |
Invalidates a section and runs the mesh update if necessary. | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool IsDynamicMeshInitialized() |
Checks to see if attributes are initialized and mesh is ready | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual bool IsMeshDirty
(
int32 MeshIndex |
Returns whether the mesh is dirty, called before creating mesh if visible | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool IsMeshSizeValid() |
Checks if shape size is render-able and not minimal | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual bool IsMeshVisible
(
int32 MeshIndex |
Override this in child classes, called before creating mesh if visible | DynamicMeshes/AvaShapeDynMeshBase.h | |
void MarkAllMeshesDirty() |
Flag all mesh sections dirty to regenerate them | DynamicMeshes/AvaShapeDynMeshBase.h | |
void MarkMeshDirty
(
int32 MeshIndex |
Flag a mesh section dirty to regenerate it | DynamicMeshes/AvaShapeDynMeshBase.h | |
void MarkVerticesDirty() |
Only update vertices from mesh | DynamicMeshes/AvaShapeDynMeshBase.h | |
| Triggers when we drop an asset (material) onto our actor | DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void OnMaterialChanged
(
int32 MaterialIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void OnMaterialTypeChanged
(
int32 MaterialIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void OnMeshChanged
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual bool OnMeshSectionUpdated
(
FAvaShapeMesh& InMesh |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void OnMeshUpdateFinished() |
Called once the mesh is done updating | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual void OnParametricMaterialChanged
(
int32 MaterialIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void OnPixelSizeChanged() |
Called once the pixel size has changed, only in editor | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual void OnRegisteredMesh
(
int32 MeshIndex |
Called when a new mesh has been registered | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual void OnRegisteredMeshes() |
Called when all the meshes have been registered and the setup is done | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual void OnScaledSizeChanged() |
Override this in child classes | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual void OnSizeChanged() |
Override this in child classes, for 2D and 3D shape to update the scale | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual void OnUsesPrimaryUVParamsChanged
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void OnUVParamsChanged
(
int32 MeshIndex |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool RegisterMesh
(
FAvaShapeMeshData& NewMeshData |
Call to register meshes used for this shape, call this inside RegisterMeshes() | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual void RegisterMeshes() |
Override this in child classes, to register new meshes | DynamicMeshes/AvaShapeDynMeshBase.h | |
void RequestUpdate() |
Runs the update for this mesh, async by default | DynamicMeshes/AvaShapeDynMeshBase.h | |
void ScaleVertices
(
const FVector2D& InScale |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
void ScaleVertices
(
const FVector& InScale |
Scale the vertices on all sections of the mesh | DynamicMeshes/AvaShapeDynMeshBase.h | |
bool SetMaterialDirect
(
int32 MeshIndex, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
void SetShapeComponentMaterial
(
int32 InMaterialIndex, |
Changes the material on the shape component and keeps the MDI up to date. | DynamicMeshes/AvaShapeDynMeshBase.h | |
void SetupMeshes() |
Register all meshes once, calls RegisterMeshes() | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual void ToggleGizmo_Implementation
(
const UAvaGizmoComponent* InGizmoComponent, |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
bool UpdateDynamicMesh
(
FAvaShapeMesh& InMesh |
Updates a section in the dynamic mesh component. | DynamicMeshes/AvaShapeDynMeshBase.h | |
void UpdateMesh() |
Takes all dirty flags, regenerate whatever is needed and updates the DMC, called by RunUpdate or RequireUpdate. | DynamicMeshes/AvaShapeDynMeshBase.h | |
virtual void UpdateVertices() |
Special case when the mesh is scaled, rather than reconfigured. | DynamicMeshes/AvaShapeDynMeshBase.h |
Overridden from UActorComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void OnComponentCreated() |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void OnComponentDestroyed
(
bool bDestroyingHierarchy |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void OnRegister() |
DynamicMeshes/AvaShapeDynMeshBase.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostDuplicate
(
EDuplicateMode::Type DuplicateMode |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void PostEditChangeChainProperty
(
FPropertyChangedChainEvent& PropertyChangedEvent |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void PostEditImport() |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void PostEditUndo() |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void PostLoad() |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
virtual void PreEditUndo() |
DynamicMeshes/AvaShapeDynMeshBase.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static EAvaAnchors GetAnchorFromNumerics
(
const FVector2D& AnchorNumeric |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
static FVector2D GetNumericsFromAnchor
(
EAvaAnchors AnchorEnum |
DynamicMeshes/AvaShapeDynMeshBase.h | ||
static bool SetAlignmentSize
(
AActor* InActor, |
DynamicMeshes/AvaShapeDynMeshBase.h |