bool Frustum::isBoxVisible(Vector3D min, Vector3D max) { if(isPointVisible(min.x, min.y, min.z)) return true; if(isPointVisible(max.x, min.y, min.z)) return true; if(isPointVisible(min.x, max.y, min.z)) return true; if(isPointVisible(max.x, max.y, min.z)) return true; if(isPointVisible(min.x, min.y, max.z)) return true; if(isPointVisible(max.x, min.y, max.z)) return true; if(isPointVisible(min.x, max.y, max.z)) return true; if(isPointVisible(max.x, max.y, max.z)) return true; return false; }
void CoverageCalculator::calcMask(const std::vector<std::vector<int> > &map) { maskMap.clear(); for(size_t x = 0; x < map.size(); x++) { maskMap.push_back(std::vector<long int>()); for(size_t y = 0; y < map.at(x).size(); y++) maskMap.at(x).push_back(0); } //HERE WILL BE GPU CODE for(size_t x = 0; x < maskMap.size(); x++) { for(size_t y = 0; y < maskMap.at(x).size(); y++) { int mask = 1; for(size_t i = 0; i < stations.size(); i++) { if(isPointVisible(x, y, *stations.at(i), map)) { maskMap.at(x).at(y) |= mask; } mask = mask << 1; } } } }