Files
UnrealEngineUWP/Engine/Source/Runtime/StaticMeshDescription/Public/StaticMeshDescription.h
Bryan sefcik b4a6e947d8 Ran IWYU on Public headers under Engine/Source/Runtime/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21065896 by bryan.sefcik
#preflight 62d4b1a5a6141b6adfb0c892
#jira

#ROBOMERGE-OWNER: Bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf

[CL 21181076 by Bryan sefcik in ue5-main branch]
2022-07-20 11:31:36 -04:00

100 lines
4.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Math/UnrealMathSSE.h"
#include "Math/Vector2D.h"
#include "Math/Vector4.h"
#include "MeshDescription.h"
#include "MeshDescriptionBase.h"
#include "MeshTypes.h"
#include "StaticMeshAttributes.h"
#include "Templates/UniquePtr.h"
#include "UObject/NameTypes.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UObjectGlobals.h"
#include "StaticMeshDescription.generated.h"
class UMaterial;
class UObject;
struct FFrame;
PRAGMA_DISABLE_DEPRECATION_WARNINGS
/**
* A wrapper for MeshDescription, customized for static meshes
*/
UCLASS(BlueprintType)
class STATICMESHDESCRIPTION_API UStaticMeshDescription : public UMeshDescriptionBase
{
public:
GENERATED_BODY()
/** Register attributes required by static mesh description */
virtual void RegisterAttributes() override;
virtual FStaticMeshAttributes& GetRequiredAttributes() override
{
return static_cast<FStaticMeshAttributes&>(*RequiredAttributes);
}
virtual const FStaticMeshAttributes& GetRequiredAttributes() const override
{
return static_cast<const FStaticMeshAttributes&>(*RequiredAttributes);
}
UFUNCTION(BlueprintPure, Category="MeshDescription")
FVector2D GetVertexInstanceUV(FVertexInstanceID VertexInstanceID, int32 UVIndex = 0) const;
UFUNCTION(BlueprintCallable, Category="MeshDescription")
void SetVertexInstanceUV(FVertexInstanceID VertexInstanceID, FVector2D UV, int32 UVIndex = 0);
UFUNCTION(BlueprintCallable, Category="MeshDescription")
void CreateCube(FVector Center, FVector HalfExtents, FPolygonGroupID PolygonGroup,
FPolygonID& PolygonID_PlusX,
FPolygonID& PolygonID_MinusX,
FPolygonID& PolygonID_PlusY,
FPolygonID& PolygonID_MinusY,
FPolygonID& PolygonID_PlusZ,
FPolygonID& PolygonID_MinusZ);
UFUNCTION(BlueprintCallable, Category="MeshDescription")
void SetPolygonGroupMaterialSlotName(FPolygonGroupID PolygonGroupID, const FName& SlotName);
public:
UE_DEPRECATED(4.25, "This attribute is no longer supported, please remove code pertaining to it.")
TVertexAttributesRef<float> GetVertexCornerSharpnesses() { return GetRequiredAttributes().GetVertexCornerSharpnesses(); }
UE_DEPRECATED(4.25, "This attribute is no longer supported, please remove code pertaining to it.")
TVertexAttributesConstRef<float> GetVertexCornerSharpnesses() const { return GetRequiredAttributes().GetVertexCornerSharpnesses(); }
TVertexInstanceAttributesRef<FVector2f> GetVertexInstanceUVs() { return GetRequiredAttributes().GetVertexInstanceUVs(); }
TVertexInstanceAttributesConstRef<FVector2f> GetVertexInstanceUVs() const { return GetRequiredAttributes().GetVertexInstanceUVs(); }
TVertexInstanceAttributesRef<FVector3f> GetVertexInstanceNormals() { return GetRequiredAttributes().GetVertexInstanceNormals(); }
TVertexInstanceAttributesConstRef<FVector3f> GetVertexInstanceNormals() const { return GetRequiredAttributes().GetVertexInstanceNormals(); }
TVertexInstanceAttributesRef<FVector3f> GetVertexInstanceTangents() { return GetRequiredAttributes().GetVertexInstanceTangents(); }
TVertexInstanceAttributesConstRef<FVector3f> GetVertexInstanceTangents() const { return GetRequiredAttributes().GetVertexInstanceTangents(); }
TVertexInstanceAttributesRef<float> GetVertexInstanceBinormalSigns() { return GetRequiredAttributes().GetVertexInstanceBinormalSigns(); }
TVertexInstanceAttributesConstRef<float> GetVertexInstanceBinormalSigns() const { return GetRequiredAttributes().GetVertexInstanceBinormalSigns(); }
TVertexInstanceAttributesRef<FVector4f> GetVertexInstanceColors() { return GetRequiredAttributes().GetVertexInstanceColors(); }
TVertexInstanceAttributesConstRef<FVector4f> GetVertexInstanceColors() const { return GetRequiredAttributes().GetVertexInstanceColors(); }
TEdgeAttributesRef<bool> GetEdgeHardnesses() { return GetRequiredAttributes().GetEdgeHardnesses(); }
TEdgeAttributesConstRef<bool> GetEdgeHardnesses() const { return GetRequiredAttributes().GetEdgeHardnesses(); }
UE_DEPRECATED(4.25, "This attribute is no longer supported, please remove code pertaining to it.")
TEdgeAttributesRef<float> GetEdgeCreaseSharpnesses() { return GetRequiredAttributes().GetEdgeCreaseSharpnesses(); }
UE_DEPRECATED(4.25, "This attribute is no longer supported, please remove code pertaining to it.")
TEdgeAttributesConstRef<float> GetEdgeCreaseSharpnesses() const { return GetRequiredAttributes().GetEdgeCreaseSharpnesses(); }
TPolygonGroupAttributesRef<FName> GetPolygonGroupMaterialSlotNames() { return GetRequiredAttributes().GetPolygonGroupMaterialSlotNames(); }
TPolygonGroupAttributesConstRef<FName> GetPolygonGroupMaterialSlotNames() const { return GetRequiredAttributes().GetPolygonGroupMaterialSlotNames(); }
};
PRAGMA_ENABLE_DEPRECATION_WARNINGS