From ba8978862d3acde8c6a22091959b968ab723217e Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Thu, 11 Jul 2019 11:17:04 -0700 Subject: [PATCH] improved names for workload::Region constants --- libraries/workload/src/workload/Region.h | 13 ++++++------- libraries/workload/src/workload/RegionTracker.cpp | 2 +- libraries/workload/src/workload/View.cpp | 8 ++++---- libraries/workload/src/workload/View.h | 4 ++-- libraries/workload/src/workload/ViewTask.cpp | 8 ++++---- libraries/workload/src/workload/ViewTask.h | 6 +++--- 6 files changed, 20 insertions(+), 21 deletions(-) diff --git a/libraries/workload/src/workload/Region.h b/libraries/workload/src/workload/Region.h index 6ee3b775ee..b12c5b717c 100644 --- a/libraries/workload/src/workload/Region.h +++ b/libraries/workload/src/workload/Region.h @@ -26,10 +26,9 @@ public: INVALID, // INVALID = not known to workload }; - static const uint8_t NUM_CLASSIFICATIONS = 4; - static const uint8_t NUM_TRANSITIONS = NUM_CLASSIFICATIONS * (NUM_CLASSIFICATIONS - 1); - - static const uint8_t NUM_VIEW_REGIONS = (NUM_CLASSIFICATIONS - 1); + static constexpr uint32_t NUM_KNOWN_REGIONS = uint32_t(Region::R4 - Region::R1 + 1); // R1 through R4 inclusive + static constexpr uint32_t NUM_TRACKED_REGIONS = uint32_t(Region::R3 - Region::R1 + 1); // R1 through R3 inclusive + static const uint8_t NUM_REGION_TRANSITIONS = NUM_KNOWN_REGIONS * (NUM_KNOWN_REGIONS - 1); static uint8_t computeTransitionIndex(uint8_t prevIndex, uint8_t newIndex); @@ -63,11 +62,11 @@ inline uint8_t Region::computeTransitionIndex(uint8_t prevIndex, uint8_t newInde // 3 | | | | | // | 9 | 10 | 11 | -1 | // +-------+-------+-------+-------+ - uint8_t p = prevIndex + Region::NUM_CLASSIFICATIONS * newIndex; - if (0 == (p % (Region::NUM_CLASSIFICATIONS + 1))) { + uint8_t p = prevIndex + Region::NUM_KNOWN_REGIONS * newIndex; + if (0 == (p % (Region::NUM_KNOWN_REGIONS + 1))) { return -1; } - return p - (1 + p / (Region::NUM_CLASSIFICATIONS + 1)); + return p - (1 + p / (Region::NUM_KNOWN_REGIONS + 1)); } } // namespace workload diff --git a/libraries/workload/src/workload/RegionTracker.cpp b/libraries/workload/src/workload/RegionTracker.cpp index 0866c91709..8cd4a67bce 100644 --- a/libraries/workload/src/workload/RegionTracker.cpp +++ b/libraries/workload/src/workload/RegionTracker.cpp @@ -34,7 +34,7 @@ void RegionTracker::run(const WorkloadContextPointer& context, Outputs& outputs) space->categorizeAndGetChanges(outChanges); // use exit/enter lists for each region less than Region::R4 - outRegionChanges.resize(2 * (workload::Region::NUM_CLASSIFICATIONS - 1)); + outRegionChanges.resize(2 * workload::Region::NUM_TRACKED_REGIONS); for (uint32_t i = 0; i < outChanges.size(); ++i) { Space::Change& change = outChanges[i]; if (change.prevRegion < Region::R4) { diff --git a/libraries/workload/src/workload/View.cpp b/libraries/workload/src/workload/View.cpp index a11b1890fd..4d7e610889 100644 --- a/libraries/workload/src/workload/View.cpp +++ b/libraries/workload/src/workload/View.cpp @@ -42,11 +42,11 @@ Sphere View::evalRegionSphere(const View& view, float originRadius, float maxDis } void View::updateRegionsDefault(View& view) { - std::vector config(Region::NUM_VIEW_REGIONS * 2, 0.0f); + std::vector config(Region::NUM_TRACKED_REGIONS * 2, 0.0f); float refFar = 10.0f; float refClose = 2.0f; - for (int i = 0; i < Region::NUM_VIEW_REGIONS; i++) { + for (int i = 0; i < Region::NUM_TRACKED_REGIONS; i++) { float weight = i + 1.0f; config[i * 2] = refClose; config[i * 2 + 1] = refFar * weight; @@ -56,13 +56,13 @@ void View::updateRegionsDefault(View& view) { } void View::updateRegionsFromBackFronts(View& view) { - for (int i = 0; i < Region::NUM_VIEW_REGIONS; i++) { + for (int i = 0; i < Region::NUM_TRACKED_REGIONS; i++) { view.regions[i] = evalRegionSphere(view, view.regionBackFronts[i].x, view.regionBackFronts[i].y); } } void View::updateRegionsFromBackFrontDistances(View& view, const float* configDistances) { - for (int i = 0; i < Region::NUM_VIEW_REGIONS; i++) { + for (int i = 0; i < Region::NUM_TRACKED_REGIONS; i++) { view.regionBackFronts[i] = glm::vec2(configDistances[i * 2], configDistances[i * 2 + 1]); } updateRegionsFromBackFronts(view); diff --git a/libraries/workload/src/workload/View.h b/libraries/workload/src/workload/View.h index 972caf5101..fe7bed0d18 100644 --- a/libraries/workload/src/workload/View.h +++ b/libraries/workload/src/workload/View.h @@ -48,10 +48,10 @@ public: float originRadius{ 0.5f }; // N regions distances - glm::vec2 regionBackFronts[Region::NUM_VIEW_REGIONS + 1]; + glm::vec2 regionBackFronts[Region::NUM_TRACKED_REGIONS]; // N regions spheres - Sphere regions[Region::NUM_VIEW_REGIONS]; + Sphere regions[Region::NUM_TRACKED_REGIONS]; // Set fov properties from angle void setFov(float angleRad); diff --git a/libraries/workload/src/workload/ViewTask.cpp b/libraries/workload/src/workload/ViewTask.cpp index 0a268df9fc..715b93618d 100644 --- a/libraries/workload/src/workload/ViewTask.cpp +++ b/libraries/workload/src/workload/ViewTask.cpp @@ -82,7 +82,7 @@ void SetupViews::run(const WorkloadContextPointer& renderContext, const Input& i ControlViews::ControlViews() { - for (int32_t i = 0; i < workload::Region::NUM_VIEW_REGIONS; i++) { + for (int32_t i = 0; i < workload::Region::NUM_TRACKED_REGIONS; i++) { regionBackFronts[i] = MIN_VIEW_BACK_FRONTS[i]; regionRegulators[i] = Regulator(std::chrono::milliseconds(2), MIN_VIEW_BACK_FRONTS[i], MAX_VIEW_BACK_FRONTS[i], glm::vec2(RELATIVE_STEP_DOWN), glm::vec2(RELATIVE_STEP_UP)); } @@ -166,7 +166,7 @@ glm::vec2 Regulator::clamp(const glm::vec2& backFront) const { void ControlViews::regulateViews(workload::Views& outViews, const workload::Timings& timings) { for (auto& outView : outViews) { - for (int32_t r = 0; r < workload::Region::NUM_VIEW_REGIONS; r++) { + for (int32_t r = 0; r < workload::Region::NUM_TRACKED_REGIONS; r++) { outView.regionBackFronts[r] = regionBackFronts[r]; } } @@ -198,12 +198,12 @@ void ControlViews::enforceRegionContainment() { // and each region should never exceed its min/max limits const glm::vec2 MIN_REGION_GAP = { 1.0f, 2.0f }; // enforce outside --> in - for (int32_t i = workload::Region::NUM_VIEW_REGIONS - 2; i >= 0; --i) { + for (int32_t i = workload::Region::NUM_TRACKED_REGIONS - 2; i >= 0; --i) { int32_t j = i + 1; regionBackFronts[i] = regionRegulators[i].clamp(glm::min(regionBackFronts[i], regionBackFronts[j] - MIN_REGION_GAP)); } // enforce inside --> out - for (int32_t i = 1; i < workload::Region::NUM_VIEW_REGIONS; ++i) { + for (int32_t i = 1; i < workload::Region::NUM_TRACKED_REGIONS; ++i) { int32_t j = i - 1; regionBackFronts[i] = regionRegulators[i].clamp(glm::max(regionBackFronts[i], regionBackFronts[j] + MIN_REGION_GAP)); } diff --git a/libraries/workload/src/workload/ViewTask.h b/libraries/workload/src/workload/ViewTask.h index 207bc04276..f6f2faef87 100644 --- a/libraries/workload/src/workload/ViewTask.h +++ b/libraries/workload/src/workload/ViewTask.h @@ -196,7 +196,7 @@ namespace workload { } data; struct DataExport { - static const int SIZE{ workload::Region::NUM_VIEW_REGIONS }; + static const int SIZE{ workload::Region::NUM_TRACKED_REGIONS }; float timings[SIZE]; glm::vec2 ranges[SIZE]; QList _timings { 6, 2.0 }; @@ -252,8 +252,8 @@ namespace workload { void configure(const Config& config); void run(const workload::WorkloadContextPointer& runContext, const Input& inputs, Output& outputs); - std::array regionBackFronts; - std::array regionRegulators; + std::array regionBackFronts; + std::array regionRegulators; void regulateViews(workload::Views& views, const workload::Timings& timings); void enforceRegionContainment();