// 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 pExcluder, ACesiumGeoreference* pGeoreference, UCesiumTile* pTile) : Excluder(pExcluder), Tile(pTile), Georeference(pGeoreference), IsExcluderValid(true){};