Skip to content

File CollisionAnimationPreviewScene.h

File List > CollisionEditor > Public > Viewport > CollisionAnimationPreviewScene.h

Go to the documentation of this file

#pragma once

#include "CoreMinimal.h"
#include "AdvancedPreviewScene.h"
#include "Components/SkeletalMeshComponent.h"
#include "Data/CollisionData.h"

class APlayerObject;
class FCollisionDataEditorToolkit;

class FCollisionAnimationPreviewScene : public FAdvancedPreviewScene
{
public:
    FCollisionAnimationPreviewScene(ConstructionValues CVS, const TSharedRef<FCollisionDataEditorToolkit>& EditorToolkit);
    virtual ~FCollisionAnimationPreviewScene() override;

    virtual void Tick(float InDeltaTime) override;

    // Switch skeletal mesh on component
    APlayerObject* SetPlayerObject(const UClass* Class);

    // Setup the scene with animation data
    void SetupScene(UCollisionData* CollisionData);

    // Update the animation hitboxes
    void UpdateCollisionView();

private:
    APlayerObject* PreviewPlayerObject = nullptr;
    TWeakPtr<FCollisionDataEditorToolkit> EditorPtr;
    UCollisionData* CurrentCollisionData = nullptr;

    // Functions to update mesh and animations
    void UpdateMeshAndAnimation(float DeltaTime);

    // Draw hitboxes based on loaded collision data
    void DrawCollisionData();
};