You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
89 lines
4.4 KiB
C++
89 lines
4.4 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "MeshDescriptionBase.h"
|
|
#include "StaticMeshAttributes.h"
|
|
#include "UObject/UObjectGlobals.h"
|
|
#include "StaticMeshDescription.generated.h"
|
|
|
|
class UMaterial;
|
|
|
|
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<FVector2D> GetVertexInstanceUVs() { return GetRequiredAttributes().GetVertexInstanceUVs(); }
|
|
TVertexInstanceAttributesConstRef<FVector2D> 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<FVector4> GetVertexInstanceColors() { return GetRequiredAttributes().GetVertexInstanceColors(); }
|
|
TVertexInstanceAttributesConstRef<FVector4> 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
|