2012-09-18 2 views
1

boost::geometry::point에 익숙해 지려고합니다. 내 클래스에서 매개 변수가없는 기본 생성자가 있고이 경우 0으로 모든 점 값을 초기화하고 싶습니다.부스트 기하 점 초기화

for(std::size_t i = 0; i < pnt.size() ; i++) 
    { 
     pnt.set<i>(0.0); 
    } 

http://www.boost.org/doc/libs/1_51_0/libs/geometry/doc/html/geometry/reference/models/model_point.html

내가 어떤 값 때문에 설정하는 데 필요한 문서를 참조하십시오 :

설정으로/기능 템플릿을 다음 코드 부분은 컴파일시에 오류를 얻을 것입니다 얻을

좌표가 초기화되지 않았습니다. 매개 변수가있는 생성자가 호출되지 않고 set 또는 assign을 사용하여 포인트가 지정되지 않으면 좌표 값에 가비지가 포함됩니다.

컴파일 타임에 모든 값을 0으로 초기화하는 방법이 있습니까? 그렇지 않다면 런타임에?

답변

1

당신은 사용할 수 있습니다 assign_zero 또는 assign_values (이 만 2, 3, 4 구성 요소의 작동) : 당신은 당신이에 BOOST_GEOMETRY_REGISTER_POINT... 중 하나를 사용하여 등록해야합니다 사용자 정의 포인트 클래스를 사용하는 경우

boost::geometry::assign_zero(pnt); 
boost::geometry::assign_values(pnt, 0.0, 0.0); 

Boost Geometry 기능을 사용할 수 있습니다. 몇 가지 예가 here입니다.