2013-05-09 3 views
1

일부 2D 및 3D 선형 지오메트리 작동 (3D 선과 평면 사이의 2D 선 간 교차점, 그와 같은 것들)에 대한 라이브러리를 찾고 있는데 서늘하고 빨라 보이는 Eigen을 만났습니다. 나는 X, Y, Z 속성과 아이겐 데이터 유형과 벡터 약 2/3D 지오메트리를 생각하는 데 사용하고하위 클래스 고유 유형

확장 성을 포함하기 쉽고, 멀티 플랫폼, 등 내가 그들을 찾을 수 없습니다 :

#include "Eigen/Core" 

... 

Eigen::Vector2d p1; 
double x = p1[0]; 
double y = p1[1]; 

내 개인적인 편의를 위해 Vector2d의 하위 클래스에

과 같은 편안한 메소드를 추가하고 싶습니다.
Vec2D::x() { return this[0]; } 
Vec2D::set(double x, double y) { this[0]=x; this[1]=y; } 
.... 

또는 이와 유사한 방법입니다. 나는 아이겐에서

+0

boost.geometry를 확인 했습니까? 기하학적 계산을위한 훌륭한 라이브러리입니다! 3D 작업이 필요한 경우 CGAL을 사용해보십시오. – tmaric

+0

예 Eigen을 보았지만 Eigen은 멀티 플랫폼 및 라이터에서 더 쉽게 알 수 있습니다. – nkint

답변

1

Vector2d 이미 이러한 방법이있다 ... 내가 어떻게 템플릿을 처리하는 방법이 올바른 방법입니다 묻는하고있어 그래서 프로그래머 경험이 C++ 아니다 :

const T& x(); 
T& x(); 
const T& y(); 
T& y(); 

모든 Vector2d 존재한다. 그들은 참조를 반환하기 때문에, 당신은뿐만 아니라 값을 설정하기 위해 이것을 사용할 수 있습니다 :

Eigen::Vector2d v2d; 
v2d.x() = 1; 
v2d.y() = 2; 

는 고유치 문서 here를 참조하십시오.

+0

ohu, QTCreator 메소드 요약 정보에없는 이유는 무엇입니까? – nkint

관련 문제