37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
// Copyright 2020-2024 CesiumGS, Inc. and Contributors
|
|
|
|
#include "CesiumTileExcluderAdapter.h"
|
|
#include "Cesium3DTilesSelection/Tile.h"
|
|
#include "CesiumGeoreference.h"
|
|
#include "VecMath.h"
|
|
|
|
bool CesiumTileExcluderAdapter::shouldExclude(
|
|
const Cesium3DTilesSelection::Tile& tile) const noexcept {
|
|
if (!this->IsExcluderValid) {
|
|
return false;
|
|
}
|
|
Tile->_tileBounds = tile.getBoundingVolume();
|
|
Tile->UpdateBounds();
|
|
return Excluder->ShouldExclude(Tile);
|
|
}
|
|
|
|
void CesiumTileExcluderAdapter::startNewFrame() noexcept {
|
|
if (!Excluder.IsValid() || !IsValid(Tile) || !IsValid(Georeference)) {
|
|
IsExcluderValid = false;
|
|
return;
|
|
}
|
|
|
|
IsExcluderValid = true;
|
|
Tile->_tileTransform = VecMath::createMatrix4D(
|
|
Georeference->ComputeUnrealToEarthCenteredEarthFixedTransformation());
|
|
}
|
|
|
|
CesiumTileExcluderAdapter::CesiumTileExcluderAdapter(
|
|
TWeakObjectPtr<UCesiumTileExcluder> pExcluder,
|
|
ACesiumGeoreference* pGeoreference,
|
|
UCesiumTile* pTile)
|
|
: Excluder(pExcluder),
|
|
Tile(pTile),
|
|
Georeference(pGeoreference),
|
|
IsExcluderValid(true){};
|