x
Yes
No
Do you want to visit DriveHQ English website?
首页
产品服务
价格
免费试用
下载客户端
关于我们
云文件服务
|
云备份服务
|
FTP服务
|
企业邮箱服务
|
网站托管
|
客户端软件
云文件服务
云备份服务
FTP服务
企业级邮箱服务
网站托管
客户端软件
boyer_myrvold_planar_test.hpp - Hosted on DriveHQ Cloud IT Platform
返回上层目录
上传
下载
共享
发布
新建文件夹
新建文件
复制
剪切
删除
粘贴
评论
升级服务
路径: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\graph\boyer_myrvold_planar_test.hpp
旋转
特效
属性
历史版本
//======================================================================= // Copyright 2007 Aaron Windsor // // 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) //======================================================================= #ifndef __BOYER_MYRVOLD_PLANAR_TEST_HPP__ #define __BOYER_MYRVOLD_PLANAR_TEST_HPP__ #include
#include
#include
#include
namespace boost { struct no_kuratowski_subgraph_isolation {}; struct no_planar_embedding {}; namespace boyer_myrvold_params { BOOST_PARAMETER_KEYWORD(tag, graph) BOOST_PARAMETER_KEYWORD(tag, embedding) BOOST_PARAMETER_KEYWORD(tag, kuratowski_subgraph) BOOST_PARAMETER_KEYWORD(tag, vertex_index_map) BOOST_PARAMETER_KEYWORD(tag, edge_index_map) typedef parameter::parameters< parameter::required
, tag::embedding, tag::kuratowski_subgraph, tag::vertex_index_map, tag::edge_index_map > boyer_myrvold_params_t; namespace core { template
bool dispatched_boyer_myrvold(ArgumentPack const& args, mpl::true_, mpl::true_ ) { //Dispatch for no planar embedding, no kuratowski subgraph isolation typedef typename remove_const < typename remove_reference < typename parameter::binding < ArgumentPack, tag::graph>::type >::type >::type graph_t; typedef typename parameter::binding < ArgumentPack, tag::vertex_index_map, typename property_map < typename remove_reference
::type, vertex_index_t>::const_type >::type vertex_index_map_t; boyer_myrvold_impl
planarity_tester(args[graph], args[vertex_index_map | get(vertex_index, args[graph]) ] ); return planarity_tester.is_planar() ? true : false; } template
bool dispatched_boyer_myrvold(ArgumentPack const& args, mpl::true_, mpl::false_ ) { //Dispatch for no planar embedding, kuratowski subgraph isolation typedef typename remove_const < typename remove_reference < typename parameter::binding < ArgumentPack, tag::graph>::type >::type >::type graph_t; typedef typename parameter::binding < ArgumentPack, tag::vertex_index_map, typename property_map
::type >::type vertex_index_map_t; boyer_myrvold_impl
planarity_tester(args[graph], args[vertex_index_map | get(vertex_index, args[graph]) ] ); if (planarity_tester.is_planar()) return true; else { planarity_tester.extract_kuratowski_subgraph (args[kuratowski_subgraph], args[edge_index_map|get(edge_index, args[graph])] ); return false; } } template
bool dispatched_boyer_myrvold(ArgumentPack const& args, mpl::false_, mpl::true_ ) { //Dispatch for planar embedding, no kuratowski subgraph isolation typedef typename remove_const < typename remove_reference < typename parameter::binding < ArgumentPack, tag::graph>::type >::type >::type graph_t; typedef typename parameter::binding < ArgumentPack, tag::vertex_index_map, typename property_map
::type >::type vertex_index_map_t; boyer_myrvold_impl
planarity_tester(args[graph], args[vertex_index_map | get(vertex_index, args[graph]) ] ); if (planarity_tester.is_planar()) { planarity_tester.make_edge_permutation(args[embedding]); return true; } else return false; } template
bool dispatched_boyer_myrvold(ArgumentPack const& args, mpl::false_, mpl::false_ ) { //Dispatch for planar embedding, kuratowski subgraph isolation typedef typename remove_const < typename remove_reference < typename parameter::binding < ArgumentPack, tag::graph>::type >::type >::type graph_t; typedef typename parameter::binding < ArgumentPack, tag::vertex_index_map, typename property_map
::type >::type vertex_index_map_t; boyer_myrvold_impl
planarity_tester(args[graph], args[vertex_index_map | get(vertex_index, args[graph]) ] ); if (planarity_tester.is_planar()) { planarity_tester.make_edge_permutation(args[embedding]); return true; } else { planarity_tester.extract_kuratowski_subgraph (args[kuratowski_subgraph], args[edge_index_map | get(edge_index, args[graph])] ); return false; } } template
bool boyer_myrvold_planarity_test(ArgumentPack const& args) { typedef typename parameter::binding < ArgumentPack, tag::kuratowski_subgraph, const no_kuratowski_subgraph_isolation& >::type kuratowski_arg_t; typedef typename parameter::binding < ArgumentPack, tag::embedding, const no_planar_embedding& >::type embedding_arg_t; return dispatched_boyer_myrvold (args, boost::is_same
(), boost::is_same
() ); } } //namespace core } //namespace boyer_myrvold_params template
bool boyer_myrvold_planarity_test(A0 const& arg0) { return boyer_myrvold_params::core::boyer_myrvold_planarity_test (boyer_myrvold_params::boyer_myrvold_params_t()(arg0)); } template
// bool boyer_myrvold_planarity_test(A0 const& arg0, A1 const& arg1) bool boyer_myrvold_planarity_test(A0 const& arg0, A1 const& arg1) { return boyer_myrvold_params::core::boyer_myrvold_planarity_test (boyer_myrvold_params::boyer_myrvold_params_t()(arg0,arg1)); } template
bool boyer_myrvold_planarity_test(A0 const& arg0, A1 const& arg1, A2 const& arg2 ) { return boyer_myrvold_params::core::boyer_myrvold_planarity_test (boyer_myrvold_params::boyer_myrvold_params_t()(arg0,arg1,arg2)); } template
bool boyer_myrvold_planarity_test(A0 const& arg0, A1 const& arg1, A2 const& arg2, A3 const& arg3 ) { return boyer_myrvold_params::core::boyer_myrvold_planarity_test (boyer_myrvold_params::boyer_myrvold_params_t()(arg0,arg1,arg2,arg3)); } template
bool boyer_myrvold_planarity_test(A0 const& arg0, A1 const& arg1, A2 const& arg2, A3 const& arg3, A4 const& arg4 ) { return boyer_myrvold_params::core::boyer_myrvold_planarity_test (boyer_myrvold_params::boyer_myrvold_params_t() (arg0,arg1,arg2,arg3,arg4) ); } } #endif //__BOYER_MYRVOLD_PLANAR_TEST_HPP__
boyer_myrvold_planar_test.hpp
网页地址
文件地址
上一页
12/95
下一页
下载
( 10 KB )
Comments
Total ratings:
0
Average rating:
无评论
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.