UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TopologicalShapeEntity.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
6
7namespace UE::CADKernel
8{
9class FModelMesh;
10class FTopologicalFace;
11class FTopologyReport;
12
14{
15 friend class FBody;
16 friend class FModel;
17 friend class FShell;
18
19private:
20 FTopologicalShapeEntity* HostedBy = nullptr;
21 FMetadataDictionary Dictionary;
22
23public:
24
25 virtual ~FTopologicalShapeEntity() override
26 {
27 FTopologicalShapeEntity::Empty();
28 }
29
30 virtual void Serialize(FCADKernelArchive& Ar) override
31 {
32 FTopologicalEntity::Serialize(Ar);
33 Dictionary.Serialize(Ar);
34 SerializeIdent(Ar, &HostedBy);
35 }
36
37 virtual void Empty() override
38 {
39 HostedBy = nullptr;
40 FTopologicalEntity::Empty();
41 }
42
44 {
45 return Dictionary;
46 }
47
52
53 virtual void CompleteMetaData() = 0;
54 void CompleteMetaDataWithHostMetaData();
55
56 virtual int32 FaceCount() const = 0;
58
63 virtual void PropagateBodyOrientation() = 0;
64
65#ifdef CADKERNEL_DEV
66 virtual void FillTopologyReport(FTopologyReport& Report) const = 0;
67#endif
68
70 {
71 return HostedBy;
72 }
73
75 {
76 return HostedBy;
77 }
78
80 {
81 if (HostedBy)
82 {
83 HostedBy->Remove(this);
84 }
85 HostedBy = Body;
86 }
87
88 virtual void Remove(const FTopologicalShapeEntity*) = 0;
89
91 {
92 Dictionary.SetHostId(InHostId);
93 }
94
96 {
97 return Dictionary.GetHostId();
98 }
99
101 {
102 Dictionary.SetLayer(InLayerId);
103 }
104
105 void SetName(const FString& InName)
106 {
107 Dictionary.SetName(InName);
108 }
109
110 bool HasName() const
111 {
112 return Dictionary.HasName();
113 }
114
115 const TCHAR* GetName() const
116 {
117 return Dictionary.GetName();
118 }
119
121 {
122 Dictionary.SetColorId(InColorId);
123 }
124
126 {
127 return Dictionary.GetColorId();
128 }
129
131 {
132 Dictionary.SetMaterialId(InMaterialId);
133 }
134
136 {
137 return Dictionary.GetMaterialId();
138 }
139
141 {
142 if (InColorId)
143 {
144 Dictionary.SetColorId(InColorId);
145 }
146 if(InMaterialId)
147 {
148 Dictionary.SetMaterialId(InMaterialId);
149 }
150 }
151
153 {
154 SetDisplayData(DisplayData.GetColorId(), DisplayData.GetMaterialId());
155 }
156
158 {
159 Dictionary.SetPatchId(InPatchId);
160 }
161
163 {
164 return Dictionary.GetPatchId();
165 }
166
167#ifdef CADKERNEL_DEV
168 virtual FInfoEntity& GetInfo(FInfoEntity&) const override;
169#endif
170
171protected:
176 {
177 HostedBy = nullptr;
178 }
179
180};
181
182} // namespace UE::CADKernel
183
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition Body.h:22
Definition CADKernelArchive.h:19
Definition MetadataDictionary.h:12
bool HasName() const
Definition MetadataDictionary.h:115
void SetPatchId(int32 InPatchId)
Definition MetadataDictionary.h:145
uint32 GetMaterialId() const
Definition MetadataDictionary.h:140
void Serialize(FCADKernelArchive &Ar)
Definition MetadataDictionary.h:24
void SetMaterialId(const uint32 &InMaterialId)
Definition MetadataDictionary.h:135
void SetHostId(const int32 InHostId)
Definition MetadataDictionary.h:90
void ExtractMetaData(TMap< FString, FString > &OutMetaData) const
Definition MetadataDictionary.h:62
const TCHAR * GetName() const
Definition MetadataDictionary.h:120
int32 GetPatchId() const
Definition MetadataDictionary.h:150
void SetLayer(const int32 InLayerId)
Definition MetadataDictionary.h:100
void SetName(const FString &InName)
Definition MetadataDictionary.h:110
void SetColorId(const uint32 &InColorId)
Definition MetadataDictionary.h:125
const int32 GetHostId() const
Definition MetadataDictionary.h:95
uint32 GetColorId() const
Definition MetadataDictionary.h:130
Definition Model.h:22
Definition Shell.h:44
Definition TopologicalEntity.h:16
Definition TopologicalShapeEntity.h:14
void SetLayer(const int32 InLayerId)
Definition TopologicalShapeEntity.h:100
virtual ~FTopologicalShapeEntity() override
Definition TopologicalShapeEntity.h:25
const TCHAR * GetName() const
Definition TopologicalShapeEntity.h:115
virtual void Empty() override
Definition TopologicalShapeEntity.h:37
void SetPatchId(int32 InPatchId)
Definition TopologicalShapeEntity.h:157
uint32 GetColorId() const
Definition TopologicalShapeEntity.h:125
virtual void Serialize(FCADKernelArchive &Ar) override
Definition TopologicalShapeEntity.h:30
void SetHostId(const int32 InHostId)
Definition TopologicalShapeEntity.h:90
uint32 GetMaterialId() const
Definition TopologicalShapeEntity.h:135
virtual void GetFaces(TArray< FTopologicalFace * > &OutFaces)=0
const FTopologicalShapeEntity * GetHost() const
Definition TopologicalShapeEntity.h:74
int32 GetHostId() const
Definition TopologicalShapeEntity.h:95
virtual int32 FaceCount() const =0
virtual void Remove(const FTopologicalShapeEntity *)=0
void SetDisplayData(const uint32 &InColorId, const uint32 &InMaterialId)
Definition TopologicalShapeEntity.h:140
void SetName(const FString &InName)
Definition TopologicalShapeEntity.h:105
int32 GetPatchId() const
Definition TopologicalShapeEntity.h:162
void SetHost(FTopologicalShapeEntity *Body)
Definition TopologicalShapeEntity.h:79
FTopologicalShapeEntity * GetHost()
Definition TopologicalShapeEntity.h:69
bool HasName() const
Definition TopologicalShapeEntity.h:110
void SetMaterialId(const uint32 &InMaterialId)
Definition TopologicalShapeEntity.h:130
void SetDisplayData(const FTopologicalShapeEntity &DisplayData)
Definition TopologicalShapeEntity.h:152
void SetColorId(const uint32 &InColorId)
Definition TopologicalShapeEntity.h:120
const FMetadataDictionary & GetMetaDataDictionary() const
Definition TopologicalShapeEntity.h:43
void ResetHost()
Definition TopologicalShapeEntity.h:175
void ExtractMetaData(TMap< FString, FString > &OutMetaData) const
Definition TopologicalShapeEntity.h:48
Definition CADEntity.cpp:23