UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Session.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
5#include "Core/Database.h"
6#include "Core/CADEntity.h"
7#include "Core/Types.h"
8#include "Math/Geometry.h"
9
10class FArchive;
11
12namespace UE::CADKernel
13{
14class FEntity;
15class FModel;
16
18{
19 friend FEntity;
20 friend FCADKernelArchive;
21 template<typename, ESPMode> friend class SharedPointerInternals::TIntrusiveReferenceController;
22
23protected:
24
28
29public:
30#if defined(CADKERNEL_DEV) || defined(CADKERNEL_STDA)
31 static FSession Session;
32#endif
33
36 {
37 IntersectionTool::SetTolerance(InGeometricTolerance);
38 }
39
40 FModel& GetModel() { return *GetModelAsShared(); }
41 TSharedPtr<FModel> GetModelAsShared();
42
44 {
46 IntersectionTool::SetTolerance(GeometricTolerance);
47 }
48
50 {
51 return Database;
52 }
53
57 void SetGeometricTolerance(double NewTolerance);
58
59 double GetGeometricTolerance() const
60 {
61 return GeometricTolerance;
62 }
63
69 bool SaveDatabase(const TCHAR* FilePath);
70
76 void SaveDatabase(const TCHAR* FileName, const TArray<TSharedPtr<FEntity>>& Entities);
77
83 void SaveDatabase(const TCHAR* FileName, const TArray<FEntity*>& Entities);
84
90 void SaveDatabase(const TCHAR* FileName, FEntity& Entity)
91 {
92 TArray<FEntity*> Entities;
93 Entities.Emplace(&Entity);
94 SaveDatabase(FileName, Entities);
95 }
96
102 void SaveDatabase(const TCHAR* FileName, const TSharedPtr<FEntity> Entity)
103 {
105 Entities.Emplace(Entity);
106 SaveDatabase(FileName, Entities);
107 }
108
113 bool LoadDatabase(const TCHAR* FilePath);
114
115 bool SaveDatabase(TArray<uint8>& Bytes);
116 bool LoadDatabase(const TArray<uint8>& Bytes);
117
122 void AddDatabase(const TArray<uint8>& InRawData);
123
124 void Clear()
125 {
126 Database.Empty();
127 }
128
134 uint32 SpawnEntityIdent(FEntity& SelectedEntity, bool bForceSpawning = false)
135 {
136 return Database.SpawnEntityIdent(SelectedEntity, bForceSpawning);
137 }
138
140 {
141 return Database.SpawnEntityIdents(SelectedEntities, bForceSpawning);
142 }
143
144 uint32 SpawnEntityIdents(const TArray<FEntity*>& SelectedEntities, bool bForceSpawning = false)
145 {
146 return Database.SpawnEntityIdents(SelectedEntities, bForceSpawning);
147 }
148
150 {
151 return LastHostId;
152 }
153
155 {
156 return ++LastHostId;
157 }
158
164 {
165 LastHostId = StartHostId;
166 }
167};
168
169} // namespace UE::CADKernel
170
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 Archive.h:1208
Definition SharedPointerInternals.h:400
Definition Array.h:670
UE_FORCEINLINE_HINT SizeType Emplace(ArgsType &&... Args)
Definition Array.h:2561
Definition SharedPointer.h:692
Definition CADKernelArchive.h:19
Definition Database.h:17
Definition CADEntity.h:56
Definition Model.h:22
Definition Session.h:18
uint32 SpawnEntityIdents(const TArray< FEntity * > &SelectedEntities, bool bForceSpawning=false)
Definition Session.h:144
FDatabase Database
Definition Session.h:26
void SaveDatabase(const TCHAR *FileName, FEntity &Entity)
Definition Session.h:90
void SaveDatabase(const TCHAR *FileName, const TSharedPtr< FEntity > Entity)
Definition Session.h:102
uint32 SpawnEntityIdents(const TArray< TSharedPtr< FEntity > > &SelectedEntities, bool bForceSpawning=false)
Definition Session.h:139
double GeometricTolerance
Definition Session.h:25
int32 GetLastHostId() const
Definition Session.h:149
FModel & GetModel()
Definition Session.h:40
int32 LastHostId
Definition Session.h:27
FDatabase & GetDatabase()
Definition Session.h:49
void SetFirstNewHostId(int32 StartHostId)
Definition Session.h:163
void Clear()
Definition Session.h:124
void Serialize(FCADKernelArchive &Ar)
Definition Session.h:43
int32 NewHostId()
Definition Session.h:154
FSession(double InGeometricTolerance)
Definition Session.h:34
double GetGeometricTolerance() const
Definition Session.h:59
uint32 SpawnEntityIdent(FEntity &SelectedEntity, bool bForceSpawning=false)
Definition Session.h:134
Definition CADEntity.cpp:23