我试图在本页底部(How to convert a 3D point into 2D perspective projection?)的答案中使用反模式提供的代码。我已将其复制到.hpp文件中并将其包含在我的项目中。它汇编得很好。我的理解是我需要创建Vectors并将它们添加到VecArr中以便使用ProjectAndClip函数。这是我的代码:
struct Vector
{
float x;
float y;
float z;
float w;
Vector() : x( 0 ), y( 0 ), z( 0 ), w( 1 ) {}
Vector( float a, float b, float c ) : x( a ), y( b ), z( c ), w( 1 ) {}
};
typedef std::vector<Vector> VecArr;
int main(){
Vector vec1(0.1,0.2,0.3);
VecArr myVecArr;
myVecArr.push_back(vec1);
}
但是这给了我以下错误:
Invalid arguments '
Candidates are:
void push_back(const Vector &)
'
我尝试了几种尝试将我的Vector设为const
,或调用myVecArr.push_back(&vec1)
,或const
,*
和{{1}的任意组合但无济于事。如果有人能帮助我理解为什么我会收到此错误以及如何解决此问题,我将不胜感激。
谢谢!
答案 0 :(得分:0)
事实证明,Eclipse Neon可能只是一个错误!我查看了我的代码并清理了一下,但无法找到错误。我最终得到了与上面相同的代码(除了我清理过的其他部分),它仍然可以编译上面的错误。但是,当我运行代码时,它工作正常!