子类特征类型

Subclass Eigen types

本文关键字:类型 特征 子类      更新时间:2023-10-16

我正在寻找一些2D和3D线性几何操作的库(2D线之间,3D线与平面之间的交集,类似的东西),我遇到了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; }
....

或类似方法。我不是一个c++经验丰富的程序员,所以我问如果这是正确的方式,以及如何处理模板。

Vector2d in Eigen已经有了这些方法:

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

对于Vector2d都存在。因为它们返回引用,所以您也可以使用它来设置值:

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

查看Eigen文档