Free Electron
FEOperator.h
1 #pragma once
2 
3 #include "CoreMinimal.h"
4 #include "UObject/ObjectMacros.h"
5 
6 #include "Animation/MorphTarget.h"
7 #include "Components/DynamicMeshComponent.h"
8 #include "DynamicMesh/MeshNormals.h"
9 #include "DynamicMesh/MeshAttributeUtil.h"
10 #include "Engine/SkeletalMesh.h"
11 #include "Materials/Material.h"
12 #include "Rendering/SkeletalMeshModel.h"
13 #include "Rendering/SkeletalMeshRenderData.h"
14 #include "Misc/Paths.h"
15 
16 #include "Runtime/Launch/Resources/Version.h"
17 #define FE_UNREAL_5_1_PLUS (ENGINE_MAJOR_VERSION>=6 || (ENGINE_MAJOR_VERSION==5 && ENGINE_MINOR_VERSION>=1))
18 #define FE_UNREAL_5_2_PLUS (ENGINE_MAJOR_VERSION>=6 || (ENGINE_MAJOR_VERSION==5 && ENGINE_MINOR_VERSION>=2))
19 
20 #if FE_UNREAL_5_2_PLUS
21 #include "MaterialDomain.h"
22 #endif
23 
24 #include "IFEOps.h"
25 
26 //* must be last include
27 #include "FEOperator.generated.h"
28 
29 //UCLASS(hidecategories = (Object, LOD),
30 // meta = (BlueprintSpawnableComponent),
31 // ClassGroup = Rendering)
32 UCLASS(Blueprintable,BlueprintType)
33 class AFEOperator: public AActor
34 {
35  GENERATED_UCLASS_BODY()
36 
37  protected:
38 
39 virtual void OperatorCreate(void);
40 virtual void OperatorInit(void) {}
41 virtual void OperatorUpdate(void) {}
42 
43  UPROPERTY(VisibleAnywhere, Category="Operator",
44  DisplayName="Dynamic Mesh")
45  TObjectPtr<UDynamicMeshComponent> m_meshComponent;
46 
47  //* WARNING declaring BeginPlay here will make it not work in Blueprints
48  //* probably true for other events
49 //virtual void BeginPlay(void) override {}
50 
51 virtual void PostActorCreated(void) override;
52 virtual void PostLoad(void) override;
53 
54 virtual bool ShouldTickIfViewportsOnly() const override { return true; }
55 virtual void Tick(float DeltaTime) override;
56 
57 virtual void UpdateMesh(void);
58 
59  fe::sp<fe::SingleMaster> m_spSingleMaster;
60  fe::ext::TerminalNode m_terminalNode;
61 
62  fe::String m_componentName;
63  fe::String m_nodeName;
64  fe::Real m_time;
65 
66  fe::sp<fe::ext::SurfaceAccessibleI> m_spOutputAccessible;
67 
68  //* map UE vertex into surface
69  fe::Array<I32> m_vertexPoint;
70  fe::Array<I32> m_vertexPrimitive;
71  fe::Array<I32> m_vertexSub;
72  I32 m_lastVertexCount;
73  I32 m_lastTriangleCount;
74 };
Terminal control of an OperatorSurfaceI.
Definition: TerminalNode.h:20
Automatically reference-counted string container.
Definition: String.h:128