UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GeometryCollectionBoneNode.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4#include "Containers/Set.h"
5#include "CoreMinimal.h"
6
7struct /*UE_DEPRECATED(4.22, "Use the split out Level, Parent, Children.. Managed Arrays instead")*/ FGeometryCollectionBoneNode
8{
9 static const int32 InvalidBone = -1;
10 static const int32 InvalidLevel = -1;
11
13 {
14 // A node is currently either a geometry node (bit set) or a null node with a transform only (bit zero)
15 FS_Geometry = 0x00000001,
16
17 // additional flags
18 FS_Clustered = 0x00000002,
19
20 // Gets deleted from world instead of becoming a fractured chunk in the world
21 FS_RemoveOnFracture = 0x00000004
22 };
23
31
37
42
44 {
45 Level = Other.Level;
46 Parent = Other.Parent;
47 Children = Other.Children;
48 StatusFlags = Other.StatusFlags;
49 }
50
51 FORCEINLINE bool IsGeometry() const { return !!(StatusFlags & FS_Geometry); }
52 FORCEINLINE bool IsClustered() const { return !!(StatusFlags & FS_Clustered); }
53 FORCEINLINE bool IsTransform() const { return !IsGeometry(); }
56 FORCEINLINE bool HasFlags(uint32 InFlags) const { return (StatusFlags & InFlags) != 0; }
57
58 // Serializer.
60 {
61 return Ar << Node.Level << Node.Parent << Node.Children << Node.StatusFlags;
62 }
63
65 {
66 Ar << *this;
67 return true;
68 }
69
72 {
73 this->Level = Other.Level;
74 this->Parent = Other.Parent;
75 this->Children = Other.Children;
76 this->StatusFlags = Other.StatusFlags;
77 }
78
79 FORCEINLINE FString ToString() const
80 {
81 FString Result("{");
82
83 Result += "Parent : ";
85 Result += "Root";
86 else
87 Result += FString::Printf(TEXT("%d"), Parent);
88
89 Result += ", Level : ";
90 if (Level == InvalidLevel)
91 Result += "None";
92 else
93 Result += FString::Printf(TEXT("%d"), Level);
94
95 Result += ", Children [";
96 for (auto& Elem : Children)
97 {
98 Result += FString::Printf(TEXT("%d, "), Elem);
99 }
100
101 Result += "]}";
102 return Result;
103 }
104
107
110
113
116};
#define FORCEINLINE
Definition AndroidPlatform.h:140
EForceInit
Definition CoreMiscDefines.h:154
#define TEXT(x)
Definition Platform.h:1272
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 Archive.h:1208
Definition GeometryCollectionBoneNode.h:8
FORCEINLINE bool IsClustered() const
Definition GeometryCollectionBoneNode.h:52
FGeometryCollectionBoneNode()
Definition GeometryCollectionBoneNode.h:32
FGeometryCollectionBoneNode(const FGeometryCollectionBoneNode &Other)
Definition GeometryCollectionBoneNode.h:43
FGeometryCollectionBoneNode(EForceInit)
Definition GeometryCollectionBoneNode.h:38
friend FArchive & operator<<(FArchive &Ar, FGeometryCollectionBoneNode &Node)
Definition GeometryCollectionBoneNode.h:59
int32 Parent
Definition GeometryCollectionBoneNode.h:109
bool Serialize(FArchive &Ar)
Definition GeometryCollectionBoneNode.h:64
FORCEINLINE FString ToString() const
Definition GeometryCollectionBoneNode.h:79
FORCEINLINE void SetFlags(uint32 InFlags)
Definition GeometryCollectionBoneNode.h:54
static const int32 InvalidLevel
Definition GeometryCollectionBoneNode.h:10
ENodeFlags
Definition GeometryCollectionBoneNode.h:13
@ FS_Clustered
Definition GeometryCollectionBoneNode.h:18
@ FS_RemoveOnFracture
Definition GeometryCollectionBoneNode.h:21
@ FS_Geometry
Definition GeometryCollectionBoneNode.h:15
TSet< int32 > Children
Definition GeometryCollectionBoneNode.h:112
FORCEINLINE void ClearFlags(uint32 InFlags)
Definition GeometryCollectionBoneNode.h:55
uint32 StatusFlags
Definition GeometryCollectionBoneNode.h:115
FORCEINLINE bool IsTransform() const
Definition GeometryCollectionBoneNode.h:53
static const int32 InvalidBone
Definition GeometryCollectionBoneNode.h:9
FORCEINLINE bool HasFlags(uint32 InFlags) const
Definition GeometryCollectionBoneNode.h:56
FORCEINLINE bool IsGeometry() const
Definition GeometryCollectionBoneNode.h:51
FORCEINLINE void operator=(const FGeometryCollectionBoneNode &Other)
Definition GeometryCollectionBoneNode.h:71
int32 Level
Definition GeometryCollectionBoneNode.h:106
FGeometryCollectionBoneNode(int32 LevelIn, int32 ParentIn, uint32 StatusFlagsIn)
Definition GeometryCollectionBoneNode.h:24