Example #1
0
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;
}
Example #2
0
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;
            }
        }
    }
}