mirror of
https://github.com/lubosz/overte.git
synced 2025-04-23 07:43:57 +02:00
Fix a bunch of warnings
This commit is contained in:
parent
51bacdebdd
commit
b295a3732e
3 changed files with 35 additions and 36 deletions
|
@ -136,7 +136,6 @@ void FetchItems::configure(const Config& config) {
|
|||
void FetchItems::run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, ItemBounds& outItems) {
|
||||
assert(renderContext->args);
|
||||
assert(renderContext->args->_viewFrustum);
|
||||
RenderArgs* args = renderContext->args;
|
||||
auto& scene = sceneContext->_scene;
|
||||
|
||||
outItems.clear();
|
||||
|
@ -199,7 +198,6 @@ void CullSpatialSelection::run(const SceneContextPointer& sceneContext, const Re
|
|||
assert(renderContext->args->_viewFrustum);
|
||||
RenderArgs* args = renderContext->args;
|
||||
auto& scene = sceneContext->_scene;
|
||||
ViewFrustum* frustum = args->_viewFrustum;
|
||||
|
||||
auto& details = args->_details.edit(_detailType);
|
||||
details._considered += inSelection.numItems();
|
||||
|
@ -300,7 +298,6 @@ void FilterItemSelection::configure(const Config& config) {
|
|||
void FilterItemSelection::run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, const ItemBounds& inItems, ItemBounds& outItems) {
|
||||
assert(renderContext->args);
|
||||
assert(renderContext->args->_viewFrustum);
|
||||
RenderArgs* args = renderContext->args;
|
||||
auto& scene = sceneContext->_scene;
|
||||
|
||||
// Now we have a selection of items to render
|
||||
|
|
|
@ -16,23 +16,23 @@
|
|||
using namespace render;
|
||||
|
||||
|
||||
const double Octree::INV_DEPTH_DIM[] = {
|
||||
1.0,
|
||||
1.0 / 2.0,
|
||||
1.0 / 4.0,
|
||||
1.0 / 8.0,
|
||||
1.0 / 16.0,
|
||||
1.0 / 32.0,
|
||||
1.0 / 64.0,
|
||||
1.0 / 128.0,
|
||||
1.0 / 256.0,
|
||||
1.0 / 512.0,
|
||||
1.0 / 1024.0,
|
||||
1.0 / 2048.0,
|
||||
1.0 / 4096.0,
|
||||
1.0 / 8192.0,
|
||||
1.0 / 16384.0,
|
||||
1.0 / 32768.0 };
|
||||
const float Octree::INV_DEPTH_DIM[] = {
|
||||
1.0f,
|
||||
1.0f / 2.0f,
|
||||
1.0f / 4.0f,
|
||||
1.0f / 8.0f,
|
||||
1.0f / 16.0f,
|
||||
1.0f / 32.0f,
|
||||
1.0f / 64.0f,
|
||||
1.0f / 128.0f,
|
||||
1.0f / 256.0f,
|
||||
1.0f / 512.0f,
|
||||
1.0f / 1024.0f,
|
||||
1.0f / 2048.0f,
|
||||
1.0f / 4096.0f,
|
||||
1.0f / 8192.0f,
|
||||
1.0f / 16384.0f,
|
||||
1.0f / 32768.0f };
|
||||
|
||||
/*
|
||||
const float Octree::COORD_SUBCELL_WIDTH[] = { // 2 ^ MAX_DEPTH / 2 ^ (depth + 1)
|
||||
|
@ -92,8 +92,7 @@ Octree::Indices Octree::indexConcreteCellPath(const Locations& path) const {
|
|||
Index currentIndex = ROOT_CELL;
|
||||
Indices cellPath(1, currentIndex);
|
||||
|
||||
for (int l = 1; l < path.size(); l++) {
|
||||
auto& location = path[l];
|
||||
for (auto& location : path) {
|
||||
auto nextIndex = getConcreteCell(currentIndex).child(location.octant());
|
||||
if (nextIndex == INVALID_CELL) {
|
||||
break;
|
||||
|
@ -233,7 +232,7 @@ Octree::Index Octree::allocateBrick() {
|
|||
void Octree::freeBrick(Index index) {
|
||||
if (checkBrickIndex(index)) {
|
||||
auto & brick = _bricks[index];
|
||||
// brick.free();
|
||||
brick.free();
|
||||
_freeBricks.push_back(index);
|
||||
}
|
||||
}
|
||||
|
@ -280,7 +279,7 @@ Octree::Locations ItemSpatialTree::evalLocations(const ItemBounds& bounds) const
|
|||
|
||||
ItemSpatialTree::Index ItemSpatialTree::insertItem(Index cellIdx, const ItemKey& key, const ItemID& item) {
|
||||
// Add the item to the brick (and a brick if needed)
|
||||
auto brickID = accessCellBrick(cellIdx, [&](Cell& cell, Brick& brick, Octree::Index cellID) {
|
||||
accessCellBrick(cellIdx, [&](Cell& cell, Brick& brick, Octree::Index cellID) {
|
||||
auto& itemIn = (key.isSmall() ? brick.subcellItems : brick.items);
|
||||
|
||||
itemIn.push_back(item);
|
||||
|
@ -302,7 +301,7 @@ bool ItemSpatialTree::updateItem(Index cellIdx, const ItemKey& oldKey, const Ite
|
|||
assert(oldKey != key);
|
||||
|
||||
// Get to the brick where the item is and update where it s stored
|
||||
auto brickID = accessCellBrick(cellIdx, [&](Cell& cell, Brick& brick, Octree::Index cellID) {
|
||||
accessCellBrick(cellIdx, [&](Cell& cell, Brick& brick, Octree::Index cellID) {
|
||||
auto& itemIn = (key.isSmall() ? brick.subcellItems : brick.items);
|
||||
auto& itemOut = (oldKey.isSmall() ? brick.subcellItems : brick.items);
|
||||
|
||||
|
@ -417,9 +416,9 @@ Octree::Location::Intersection Octree::Location::intersectCell(const Location& c
|
|||
struct Tool {
|
||||
static int normalToIndex(const Coord3f& n) {
|
||||
int index = 0;
|
||||
if (n.x >= 0.0) index |= 1;
|
||||
if (n.y >= 0.0) index |= 2;
|
||||
if (n.z >= 0.0) index |= 4;
|
||||
if (n.x >= 0.0f) index |= 1;
|
||||
if (n.y >= 0.0f) index |= 2;
|
||||
if (n.z >= 0.0f) index |= 4;
|
||||
return index;
|
||||
}
|
||||
|
||||
|
@ -484,7 +483,7 @@ int Octree::selectTraverse(Index cellID, CellSelection& selection, const Frustum
|
|||
// Test for lod
|
||||
auto cellLocation = cell.getlocation();
|
||||
float lod = selector.testSolidAngle(cellLocation.getCenter(), Octree::getCoordSubcellWidth(cellLocation.depth));
|
||||
if (lod < 0.0) {
|
||||
if (lod < 0.0f) {
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
|
@ -512,7 +511,7 @@ int Octree::selectBranch(Index cellID, CellSelection& selection, const FrustumS
|
|||
|
||||
auto cellLocation = cell.getlocation();
|
||||
float lod = selector.testSolidAngle(cellLocation.getCenter(), Octree::getCoordSubcellWidth(cellLocation.depth));
|
||||
if (lod < 0.0) {
|
||||
if (lod < 0.0f) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,8 @@ namespace render {
|
|||
public:
|
||||
std::vector<ItemID> items;
|
||||
std::vector<ItemID> subcellItems;
|
||||
|
||||
void free() {};
|
||||
};
|
||||
|
||||
class Octree {
|
||||
|
@ -90,11 +92,12 @@ namespace render {
|
|||
static const Depth ROOT_DEPTH{ 0 };
|
||||
static const Depth MAX_DEPTH{ 15 };
|
||||
static const Depth METRIC_COORD_DEPTH{ 15 };
|
||||
static const double INV_DEPTH_DIM[Octree::MAX_DEPTH + 1];
|
||||
static const float INV_DEPTH_DIM[Octree::MAX_DEPTH + 1];
|
||||
|
||||
static int getDepthDimension(Depth depth) { return 1 << depth; }
|
||||
static double getInvDepthDimension(Depth depth) { return INV_DEPTH_DIM[depth]; }
|
||||
static float getCoordSubcellWidth(Depth depth) { return (float) (1.7320 * getInvDepthDimension(depth) * 0.5); }
|
||||
static float getDepthDimensionf(Depth depth) { return (float) getDepthDimension(depth); }
|
||||
static float getInvDepthDimension(Depth depth) { return INV_DEPTH_DIM[depth]; }
|
||||
static float getCoordSubcellWidth(Depth depth) { return (1.7320f * getInvDepthDimension(depth) * 0.5f); }
|
||||
|
||||
// Need 16bits integer coordinates on each axes: 32768 cell positions
|
||||
using Coord = int16_t;
|
||||
|
@ -363,7 +366,7 @@ namespace render {
|
|||
// The octree only cares about the bound & the key of an item to store it a the right cell location
|
||||
class ItemSpatialTree : public Octree {
|
||||
float _size{ 32768.0f };
|
||||
double _invSize{ 1.0 / _size };
|
||||
float _invSize{ 1.0f / _size };
|
||||
glm::vec3 _origin{ -16384.0f };
|
||||
public:
|
||||
ItemSpatialTree() {}
|
||||
|
@ -371,8 +374,8 @@ namespace render {
|
|||
float getSize() const { return _size; }
|
||||
const glm::vec3& getOrigin() const { return _origin; }
|
||||
|
||||
float getCellWidth(Depth depth) const { return (float) _size * getInvDepthDimension(depth); }
|
||||
float getInvCellWidth(Depth depth) const { return (float) getDepthDimension(depth) * _invSize; }
|
||||
float getCellWidth(Depth depth) const { return _size * getInvDepthDimension(depth); }
|
||||
float getInvCellWidth(Depth depth) const { return getDepthDimensionf(depth) * _invSize; }
|
||||
|
||||
float getCellHalfDiagonalSquare(Depth depth) const {
|
||||
float cellHalfWidth = 0.5f * getCellWidth(depth);
|
||||
|
|
Loading…
Reference in a new issue