2010-06-04 5 views
1

부스트 그래프 라이브러리를 사용하여 정점을 배치하려고합니다. 그러나 필자가 확신 할 수없는 컴파일 문제를 겪고있다. 부적절한 방식으로 BGL을 사용하고 있습니까? 내 코드는 다음과 같습니다부스트 그래프 라이브러리를 사용하여 버텍스를 배치하려면 어떻게해야합니까?

PositionVec position_vec(2); 
PositionMap position(position_vec.begin(), get(vertex_index, g)); 
int iterations = 100; 
double width = 100.0; 
double height = 100.0; 
minstd_rand gen; 
rectangle_topology<> topology(gen, 0, 0, 100, 100); 
fruchterman_reingold_force_directed_layout(g, position, topology); //Compile fails on this line 

그 소리에 의해 생성 된 진단 ++ (나는 또한 GCC를 시도했다)입니다 : p가 필요 내가 않는 경우 :

In file included from test.cpp:2: 
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:95:3: error: no member named 'dimensions' in 
     'boost::simple_point<double>' 
    BOOST_STATIC_ASSERT (Point::dimensions == 2); 
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
In file included from test.cpp:2: 
In file included from /Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:13: 
In file included from /Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/graph_traits.hpp:15: 
In file included from /Volumes/Data/mike/Downloads/boost_1_43_0/boost/tuple/tuple.hpp:24: 
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/static_assert.hpp:118:49: note: instantiated from: 
     sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST(B) >)>\ 
               ^
In file included from test.cpp:2: 
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:95:3: note: instantiated from: 
    BOOST_STATIC_ASSERT (Point::dimensions == 2); 
^     ~~~~~~~ 
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:95:31: note: instantiated from: 
    BOOST_STATIC_ASSERT (Point::dimensions == 2); 
         ~~~~~~~^ 
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:417:19: note: in instantiation of template class 
     'boost::grid_force_pairs<boost::rectangle_topology<boost::random::linear_congruential<int, 48271, 0, 2147483647, 399268537> >, 
     boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::simple_point<double> *, 
     std::vector<boost::simple_point<double>, std::allocator<boost::simple_point<double> > > >, 
     boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, unsigned 
     long>, boost::simple_point<double>, boost::simple_point<double> &> >' requested here 
        make_grid_force_pairs(topology, position, g)), 
       ^
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:431:3: note: in instantiation of function template 
     specialization 
     'boost::fruchterman_reingold_force_directed_layout<boost::rectangle_topology<boost::random::linear_congruential<int, 48271, 0, 
     2147483647, 399268537> >, boost::adjacency_list<boost::listS, boost::vecS, boost::undirectedS, 
     boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, boost::no_property, boost::no_property, 
     boost::listS>, boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::simple_point<double> *, 
     std::vector<boost::simple_point<double>, std::allocator<boost::simple_point<double> > > >, 
     boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, unsigned 
     long>, boost::simple_point<double>, boost::simple_point<double> &>, boost::square_distance_attractive_force, 
     boost::attractive_force_t, boost::no_property>' requested here 
    fruchterman_reingold_force_directed_layout 
^
test.cpp:48:3: note: in instantiation of function template specialization 
     'boost::fruchterman_reingold_force_directed_layout<boost::rectangle_topology<boost::random::linear_congruential<int, 48271, 0, 
     2147483647, 399268537> >, boost::adjacency_list<boost::listS, boost::vecS, boost::undirectedS, 
     boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, boost::no_property, boost::no_property, 
     boost::listS>, boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::simple_point<double> *, 
     std::vector<boost::simple_point<double>, std::allocator<boost::simple_point<double> > > >, 
     boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, unsigned 
     long>, boost::simple_point<double>, boost::simple_point<double> &> >' requested here 
    fruchterman_reingold_force_directed_layout(g, position, topology); 
^
1 error generated. 

답변

0

내가 머리 또는 BGL 코드의 꼬리 하나를 만들 수 없다 무언가에 그것을 사용하기 위해 나는 보통 사용하고자하는 함수에 대해 포함 된 유닛 테스트/예제 파일을 체크 아웃한다. 여러 번 거기에 쉽게 수정할 수있는 예제가 있습니다.

관련 문제