1

私はいくつかの 2D および 3D 線形ジオメトリ操作 (2D 線の間、3D 線と平面の間の交差、そのようなもの) 用のライブラリを探しています。マルチプラットフォームなど

私は、x、y、z プロパティと Eigen データ型を持つベクトルで 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; }
....

または同様の方法。私は C++ の経験豊富なプログラマーではないので、これが正しい方法であるかどうか、およびテンプレートの処理方法を尋ねています..

4

1 に答える 1

1

Vector2dEigen にはすでに次のメソッドがあります。

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

のすべてが存在しVector2dます。これらは参照を返すため、これを値の設定にも使用できます。

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

ここで Eigen のドキュメントを参照してください。

于 2013-05-09T11:50:29.060 に答える