bmh/FlightSimulation/Plugins/CesiumForUnreal_5.4/Source/CesiumRuntime/Public/CesiumCamera.h
2025-02-07 22:52:32 +08:00

94 lines
2.5 KiB
C++

// Copyright 2020-2024 CesiumGS, Inc. and Contributors
#pragma once
#include "Math/Rotator.h"
#include "Math/Vector.h"
#include "Math/Vector2D.h"
#include "UObject/ObjectMacros.h"
#include "Cesium3DTilesSelection/ViewState.h"
#include "CesiumCamera.generated.h"
/**
* @brief A camera description that {@link ACesium3DTileset}s can use to decide
* what tiles need to be loaded to sufficiently cover the camera view.
*/
USTRUCT(BlueprintType)
struct CESIUMRUNTIME_API FCesiumCamera {
GENERATED_USTRUCT_BODY()
public:
/**
* @brief The pixel dimensions of the viewport.
*/
UPROPERTY(BlueprintReadWrite, Category = "Cesium")
FVector2D ViewportSize;
/**
* @brief The Unreal location of the camera.
*/
UPROPERTY(BlueprintReadWrite, Category = "Cesium")
FVector Location;
/**
* @brief The Unreal rotation of the camera.
*/
UPROPERTY(BlueprintReadWrite, Category = "Cesium")
FRotator Rotation;
/**
* @brief The horizontal field of view of the camera in degrees.
*/
UPROPERTY(BlueprintReadWrite, Category = "Cesium")
double FieldOfViewDegrees;
/**
* @brief The overriden aspect ratio for this camera.
*
* When this is 0.0f, use the aspect ratio implied by ViewportSize.
*
* This may be different from the aspect ratio implied by the ViewportSize
* and black bars are added as needed in order to achieve this aspect ratio
* within a larger viewport.
*/
UPROPERTY(BlueprintReadWrite, Category = "Cesium")
double OverrideAspectRatio = 0.0;
/**
* @brief Construct an uninitialized FCesiumCamera object.
*/
FCesiumCamera();
/**
* @brief Construct a new FCesiumCamera object.
*
* @param ViewportSize The viewport pixel size.
* @param Location The Unreal location.
* @param Rotation The Unreal rotation.
* @param FieldOfViewDegrees The horizontal field of view in degrees.
*/
FCesiumCamera(
const FVector2D& ViewportSize,
const FVector& Location,
const FRotator& Rotation,
double FieldOfViewDegrees);
/**
* @brief Construct a new FCesiumCamera object.
*
* @param ViewportSize The viewport pixel size.
* @param Location The Unreal location.
* @param Rotation The Unreal rotation.
* @param FieldOfViewDegrees The horizontal field of view in degrees.
* @param OverrideAspectRatio The overriden aspect ratio.
*/
FCesiumCamera(
const FVector2D& ViewportSize,
const FVector& Location,
const FRotator& Rotation,
double FieldOfViewDegrees,
double OverrideAspectRatio);
};