94 lines
2.5 KiB
C++
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);
|
|
};
|