Files
FLESH/Source/FLESHEditor/Public/FLESHViewportClient.h

56 lines
1.4 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "EditorViewportClient.h"
class FFLESHEditor;
class FSceneViewport;
/**
* FLESH Editor Viewport Client
* Handles 3D view rendering and interactions
*/
class FFLESHViewportClient : public FEditorViewportClient
{
public:
/** Constructor */
FFLESHViewportClient(FFLESHEditor* InEditor);
/** Destructor */
virtual ~FFLESHViewportClient();
/** Draw the viewport */
virtual void Draw(const FSceneView* View, FPrimitiveDrawInterface* PDI) override;
/** Handle mouse clicks - deprecated API kept for compatibility with existing code */
virtual bool InputKey(FViewport* InViewport, int32 ControllerId, FKey Key, EInputEvent Event, float AmountDepressed = 1.f, bool bGamepad = false) override;
/** Handle mouse clicks - new API */
virtual bool InputKey(const FInputKeyEventArgs& EventArgs) override;
/** Reset camera */
void ResetCamera();
/** Toggle wireframe mode */
void ToggleWireframe();
/** Toggle bone display */
void ToggleBones();
/** Viewport pointer */
FSceneViewport* Viewport;
private:
/** Editor reference */
FFLESHEditor* Editor;
/** Show wireframe */
bool bShowWireframe;
/** Show bones */
bool bShowBones;
/** Preview scene for the viewport */
TSharedPtr<FPreviewScene> PreviewScene;
};