// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved. #pragma once #include "VisualLog.h" #if ENABLE_VISUAL_LOG class FVisualLog; struct FActorsVisLog; /** Actual implementation of LogVisualizer, private inside module */ class FLogVisualizer : public ILogVisualizer { public: virtual void SummonUI(UWorld* InWorld) override; virtual void CloseUI(UWorld* InWorld) override; virtual bool IsOpenUI(UWorld* InWorld) override; virtual bool IsRecording(); // End ILogVisualizer interface /** Change the current recording state */ void SetIsRecording(bool bNewRecording); FLogVisualizer() { } virtual ~FLogVisualizer() { CleanUp(); } DECLARE_EVENT( FLogVisualizer, FVisLogsChangedEvent ); FVisLogsChangedEvent& OnLogAdded() { return LogAddedEvent; } void CleanUp(); void PullDataFromVisualLog(const FVisualLog& VisualLog); int32 GetLogIndexForActor(const class AActor* Actor); void AddLoadedLog(TSharedPtr Log); UWorld* GetWorld() { return World.Get(); } protected: void OnNewLog(const class AActor* Actor, TSharedPtr Log); public: /** All hosted logs */ TArray > Logs; private: /** Event called when a new log is created */ FVisLogsChangedEvent LogAddedEvent; TWeakObjectPtr World; TWeakPtr LogWindow; }; #endif //ENABLE_VISUAL_LOG