RapyutaSimulationPlugins
RRSceneDirector.h
Go to the documentation of this file.
1 
15 #pragma once
16 
17 
18 
19 #include "CoreMinimal.h"
20 
21 
22 
23 // UE
24 
25 #include "Engine/DirectionalLight.h"
26 
27 #include "Engine/PostProcessVolume.h"
28 
29 #include "GameFramework/GameStateBase.h"
30 
31 
32 
33 // RapyutaSimulationPlugins
34 
35 #include "Core/RRActorCommon.h"
36 
37 #include "Core/RRBaseActor.h"
38 
39 #include "Core/RRCamera.h"
40 
41 #include "Core/RRGameSingleton.h"
42 
44 
45 #include "Core/RRTypeUtils.h"
46 
48 
49 
50 
51 #include "RRSceneDirector.generated.h"
52 
53 
54 
55 DECLARE_DELEGATE_OneParam(FOnSpawnedActorsSettled, bool /*bIsForNewOperationBatch*/);
56 
57 
58 
71 #define UE_LOG_WITH_SCENE_ID(CategoryName, Verbosity, ...) \
72 
73  { \
74 
75  UE_LOG_WITH_INFO(CategoryName, Verbosity, TEXT("SceneInstance[%d] %s"), SceneInstanceId, *FString::Printf(__VA_ARGS__)); \
76 
77  }
78 
79 
80 
92 class RAPYUTASIMULATIONPLUGINS_API ARRSceneDirector : public ARRBaseActor
93 
94 {
95 
96 
97 
98 public:
99 
101 
102 
103 
104 
109  int32 OperationBatchId = 0;
110 
111 
112 
113 
118  FString SceneName;
119 
120 
121 
122 
127  APostProcessVolume* MainPostProcessVolume = nullptr;
128 
129 
130 
131 
136  ARRCamera* SceneCamera = nullptr;
137 
138 
139 
140 
146 
147  {
148 
149  return bSceneInitialized;
150 
151  }
152 
153 
154 
155  FOnSpawnedActorsSettled OnSpawnedActorsSettled;
156 
157 
158 
159  virtual bool HasOperationCompleted(bool bIsLogged = false);
160 
161 
162 
163 
168  double DataCollectionTimeStamp = 0.f;
169 
170 
171 
172 
178 
179 
180 
181 protected:
182 
195  virtual bool Initialize() override;
196 
197 
198 
200 
201 
202 
203 
204 
217  virtual bool InitializeOperation();
218 
219 
220 
229  virtual void RunOperation();
230 
231 
232 
233  virtual void ContinueOperation(bool bIsLastOperationSuccessful, bool bContinueRGBRandomizing)
234 
235  {
236 
237  }
238 
239 
240 
241  virtual void OnDataCollectionPhaseDone(bool bIsFinalDataCollectingPhase);
242 
243  virtual void EndSceneInstance();
244 
245 
246 
247 
253 
254 
255 
256 
262 
263  // Also use this if needed: FTimerDelegate DataCollectionTimerDelegate;
264 
265 
266 
267 
272  uint8 bIsDataCollecting : 1;
273 
274 
275 
276  virtual void DoDataCollecting()
277 
278  {
279 
280  bIsDataCollecting = true;
281 
282  }
283 
284 
285 
286 
291  uint8 bIsOperating : 1;
292 
293 
294 
295 
300  int32 OperationBatchLoopLeft = 0;
301 
302  virtual void SpawnActors()
303 
304  {
305 
306  }
307 
308 
309 
310  virtual void ResetScene();
311 
312 
313 
314 private:
315 
329  void TryInitializeOperation();
330 
331 
332 
333 
338  FDateTime LastTimeStamp;
339 
340 
341 
342 
347  uint8 bSceneInitialized : 1;
348 
349 };
350 
ARRSceneDirector::LastTimeStamp
FDateTime LastTimeStamp
Definition: RRSceneDirector.h:338
RapyutaSimulationPlugins.h
Unreal Engine Mudule class.
ARRBaseActor::Initialize
virtual bool Initialize()
Set #GameMode #GameState #GameSingleton #PlayerController.
RRTypeUtils.h
UE type related utils.
RRGameSingleton.h
GameSingleton.
ARRSceneDirector::OnSpawnedActorsSettled
FOnSpawnedActorsSettled OnSpawnedActorsSettled
Definition: RRSceneDirector.h:155
ARRSceneDirector::SceneName
FString SceneName
Definition: RRSceneDirector.h:118
ARRSceneDirector::bSceneInitialized
uint8 bSceneInitialized
Definition: RRSceneDirector.h:347
ARRBaseActor
Base actor class for all Rapyuta Sim actors:
Definition: RRBaseActor.h:70
ARRSceneDirector::bIsDataCollecting
uint8 bIsDataCollecting
Definition: RRSceneDirector.h:272
ARRSceneDirector::SpawnActors
virtual void SpawnActors()
Definition: RRSceneDirector.h:302
ARRSceneDirector::ContinueOperation
virtual void ContinueOperation(bool bIsLastOperationSuccessful, bool bContinueRGBRandomizing)
Definition: RRSceneDirector.h:233
RRPlayerController.h
Player controller with ARRGameMode, ARRGameState, URRGameInstance and URRActorCommon.
ARRSceneDirector::HasSceneInitialized
bool HasSceneInitialized()
Definition: RRSceneDirector.h:145
RRActorCommon.h
Asset utils.
RRCamera.h
Standalone camera actor formed by #UCameraComponent.
ARRCamera
Standalone camera actor which can be placed in the level with #UCameraComponent.
Definition: RRCamera.h:118
ARRSceneDirector::DoDataCollecting
virtual void DoDataCollecting()
Definition: RRSceneDirector.h:276
RRBaseActor.h
Base actor class for all Rapyuta Sim actors.
DECLARE_DELEGATE_OneParam
DECLARE_DELEGATE_OneParam(FOnSpawnedActorsSettled, bool)
ARRSceneDirector::SceneEntityMaskValueList
TArray< int32 > SceneEntityMaskValueList
Definition: RRSceneDirector.h:177
ARRSceneDirector
Execute Init/Run/Continue Sim type-specific operations (Data synthesizer/collection or Robot operatio...
Definition: RRSceneDirector.h:92
ARRSceneDirector::DataCollectionTimerHandle
FTimerHandle DataCollectionTimerHandle
Definition: RRSceneDirector.h:261
ARRSceneDirector::InitializationTimerHandle
FTimerHandle InitializationTimerHandle
Definition: RRSceneDirector.h:252
ARRSceneDirector::bIsOperating
uint8 bIsOperating
Definition: RRSceneDirector.h:291