EM_Task/TraceInsights/Private/Insights/ViewModels/FrameTrackViewport.h

65 lines
1.9 KiB
C
Raw Normal View History

2026-02-13 16:18:33 +08:00
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Insights/ViewModels/AxisViewportInt32.h"
#include "Insights/ViewModels/AxisViewportDouble.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
class FFrameTrackViewport
{
private:
static constexpr float SLATE_UNITS_TOLERANCE = 0.1f;
public:
FFrameTrackViewport()
{
Reset();
}
void Reset()
{
HorizontalAxisViewport.Reset();
VerticalAxisViewport.Reset();
}
const FAxisViewportInt32& GetHorizontalAxisViewport() const { return HorizontalAxisViewport; }
FAxisViewportInt32& GetHorizontalAxisViewport() { return HorizontalAxisViewport; }
const FAxisViewportDouble& GetVerticalAxisViewport() const { return VerticalAxisViewport; }
FAxisViewportDouble& GetVerticalAxisViewport() { return VerticalAxisViewport; }
float GetWidth() const { return HorizontalAxisViewport.GetSize(); }
float GetHeight() const { return VerticalAxisViewport.GetSize(); }
bool SetSize(const float InWidth, const float InHeight)
{
const bool bWidthChanged = HorizontalAxisViewport.SetSize(InWidth);
const bool bHeightChanged = VerticalAxisViewport.SetSize(InHeight);
if (bWidthChanged || bHeightChanged)
{
OnSizeChanged();
return true;
}
return false;
}
float GetSampleWidth() const { return HorizontalAxisViewport.GetSampleSize(); }
int32 GetNumFramesPerSample() const { return HorizontalAxisViewport.GetNumSamplesPerPixel(); }
int32 GetFirstFrameIndex() const { return HorizontalAxisViewport.GetValueAtOffset(0.0f); }
private:
void OnSizeChanged()
{
}
private:
FAxisViewportInt32 HorizontalAxisViewport;
FAxisViewportDouble VerticalAxisViewport;
};
////////////////////////////////////////////////////////////////////////////////////////////////////