添加 Source/FLESHEditor/Public/FLESHViewportClient.h

This commit is contained in:
2025-04-21 18:35:51 +08:00
parent 66c147593c
commit d042f24775

View File

@@ -0,0 +1,55 @@
#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;
};