/*
 * Copyright (C) 2012-2026 MotionSystems
 *
 * This file is part of ForceSeatMI SDK.
 *
 * www.motionsystems.eu
 *
 */

#pragma once

#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "ForceSeatMI_UStructs.generated.h"

USTRUCT(BlueprintType)
struct FTopTablePositionPhysicalBP
{
	GENERATED_BODY()

	// in radians, roll  < 0 = left,  roll > 0  = right
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ForceSeatMI")
	float Roll;

	// in radians, pitch < 0 = front, pitch > 0 = rear
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ForceSeatMI")
	float Pitch;

	// in radians, yaw   < 0 = right, yaw > 0   = left
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ForceSeatMI")
	float Yaw;

	// in mm, heave < 0 - down, heave > 0 - top
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ForceSeatMI")
	float Heave;

	// in mm, sway  < 0 - left, sway  > 0 - right
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ForceSeatMI")
	float Sway;

	// in mm, surge < 0 - rear, surge > 0 - front
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ForceSeatMI")
	float Surge;

	// 0 to 64k, actual speed is not always equal to max speed due to ramps.
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ForceSeatMI")
	int MaxSpeed;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ForceSeatMI")
	bool Paused;

	FTopTablePositionPhysicalBP()
		: Roll(0.0f)
		, Pitch(0.0f)
		, Yaw(0.0f)
		, Heave(0.0f)
		, Sway(0.0f)
		, Surge(0.0f)
		, MaxSpeed(32000)
		, Paused(false)
	{
	}
};
