Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Property Merge Usage

Boost , ,

/*
Авторское право 2008 Intel Corporation

Использование, модификация и распространение подлежат лицензии Boost Software,
Версия 1.0. (См. сопроводительный файл LICENSE_1_0.txt или копия на
http://www.boost.org/LICENSE_1_0.txt */
#include
#include
namespace gtl = импульс::polygon;


//просто небольшое мета-программирование, чтобы получить вещи на правой ноге
шаблон
struct lookup_polygon_set_type { typedef gtl::polygon_set_data type; };
шаблон
struct lookup_polygon_set_type {
  typedef gtl::polygon_90_set_data type; };

// Эта функция работает как с 90, так и с общими версиями
// свойств слияния/карты алгоритм наложения
шаблон
{
  std::vector test_data;
  test_data.push_back(gtl::rectangle_data(11, 10, 31, 30));
  test_data.push_back(gtl::rectangle_data(1, 0, 21, 20));
  test_data.push_back(gtl::rectangle_data(6, 15, 16, 25));

  pm_type pm;

 /insert нашу тестовую геометрию в алгоритм слияния свойств
  for(unsigned int i = 0; i < test_data.size(); ++i) {
     pm.insert(test_data[i], i); //notice I use the index as the стоимость недвижимости
  }
  typedef name lookup_polygon_set_type::type polygon_set_type;
  typedef std::map, polygon_set_type> property_merge_result_type;

  std::set key;

  // Существует 8 различных комбинаций нашей входной геометрии
Комбинация   //null не интересна, поэтому действительно 7

  property_merge_result_type result;
  pm.merge(результат);

  //леты перечисляют боролеиновые комбинации входов (придерживаться на шляпах)
  for(unsigned int i = 0; i < 8; ++i) {
      bool bits [3] = {i & 1, i & 2, i & 4};       polygon_set_type test_set;
    std::set key;
     для (неподписан int j = 0; j < 3; ++j) {
      if(bits[j]) {
      key.insert(key.end(), j);
       test_set += test_data[j];
      br>     }
     для (неподписан int j = 0; j < 3; ++j) {
      if(bits[j]) {
       test_set *= test_data[j];
      br>     }
     для (неподписан int j = 0; j < 3; ++j) {
     если(!bits[j])
       test_set -= test_data[j];
    }
   если(test_set.empty())) {
      // Только нулевая комбинация не должна существовать
      (i == 0);
      // Сочетание, которое не существует, не должно
      // Присутствовать в результате
     (result.find(key) == result.end());
    } elsebr>        claim(gtl::equivalence(result(key), test_set));
    }
  }
  //Notice that we have to do O(2^n) booleans to compose the same
  // Результат, который производится в одном проходе собственности, сливается
  //given n входных слоев (8 = 2^3 в данном примере)
}

int main() {
  test_pm ();
  test_pm();
  возврат 0;
}
//Теперь вы знаете, как использовать манхаттан и произвольное свойство угла
Алгоритмы /merge для выполнения наложения карты на n слоях входной геометрии
 

Copyright: Copyright © Intel Corporation 2008-2010.
License: Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Статья Property Merge Usage раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 23:13:49/0.0081720352172852/1