C++ 在其他成员函数中调用成员函数以访问OpenGL(SUMO,netedit)的映射矩阵结构

C++ 在其他成员函数中调用成员函数以访问OpenGL(SUMO,netedit)的映射矩阵结构,c++,class,opengl,C++,Class,Opengl,我想从另一个名为GNEThread的类中的类型GNEEdge调用成员类。它们在继承的类和结构上都有很大的不同,所以我总是得到一个错误,说我需要指定我调用的gnedge函数,这是我不能手动完成的,因为边是在其他地方创建的,它们的数据结构太大,但我需要这个gnedge类的矩阵信息,因此,调用的drawGL函数需要GNEDGE类型。我需要在GNEThread中调用它的全部原因是其中包含了创建地图的代码,我希望在看到地图时在OpenGL中显示一些变化点 void GNEEdge::drawGL(cons

我想从另一个名为GNEThread的类中的类型GNEEdge调用成员类。它们在继承的类和结构上都有很大的不同,所以我总是得到一个错误,说我需要指定我调用的gnedge函数,这是我不能手动完成的,因为边是在其他地方创建的,它们的数据结构太大,但我需要这个gnedge类的矩阵信息,因此,调用的drawGL函数需要GNEDGE类型。我需要在GNEThread中调用它的全部原因是其中包含了创建地图的代码,我希望在看到地图时在OpenGL中显示一些变化点

void GNEEdge::drawGL(const GUIVisualizationSettings& s) const {

glPushName(getGlID());
glPushMatrix();
glTranslated(210, 65, 5);
glColor3f(0.0f, 0.0f, 1.0f); //blau
GLHelper::drawFilledCircle(1.6, 5);
glPopMatrix();
glPopName();
}

我想在另一个函数中调用它:

    FXint GNELoadThread::run() {
//here is some code for creating the map
//in here the GNEEdge::DrawGL member function should be called
//so in the end I can change some viewed points while the map 
//is already displayed via loops
}

甚至有可能在两个.cpp文件之间建立这种连接吗?(我的意思是继承不起作用,因为我会得到构造函数错误)或者为了在加载的贴图中显示非静态点,我需要特定的OpenGL渲染函数?

GNELoadThread::run
中有
GNEEdge
类的实例吗?您是否有可以在调用中使用的
GUIVisualizationSettings
实例?然后只调用函数?这正是问题所在,我在GNELoadThread中没有GNEEdge的实例;因为创建这样的数据结构太大了;所以像Gnedge(,,,,,,,,,,,,)这样的东西;g、 drawGL不起作用。我需要地图的矩阵信息,在创建边的GNEDGE构造函数中,我已经有了这些信息。是否有一个具有指针结构或类似内容的选项,可以调用另一个.cpp成员函数中的某个内容,而无需真正指定它…对
GNEEDge
对象的引用如何?如何实现此引用调用?指向成员类的函数指针是什么样子的,我是说我读过,但是通过查看示例案例来尝试它仍然会给我带来很多错误,我不明白。不是一个“引用调用”,而是一个引用变量。瞧,
run
函数必须能够通过副本、引用或指针(实际上并不重要)访问
GNEEdge
对象实例,但它必须有一个实例。否则,就不能调用该类中的函数。你可能想考虑一下你的项目的重新设计?在<代码> GNEORADTHOL::运行< /COD>你有一个实例吗?<代码> GNGEG/<代码>类?您是否有可以在调用中使用的
GUIVisualizationSettings
实例?然后只调用函数?这正是问题所在,我在GNELoadThread中没有GNEEdge的实例;因为创建这样的数据结构太大了;所以像Gnedge(,,,,,,,,,,,,)这样的东西;g、 drawGL不起作用。我需要地图的矩阵信息,在创建边的GNEDGE构造函数中,我已经有了这些信息。是否有一个具有指针结构或类似内容的选项,可以调用另一个.cpp成员函数中的某个内容,而无需真正指定它…对
GNEEDge
对象的引用如何?如何实现此引用调用?指向成员类的函数指针是什么样子的,我是说我读过,但是通过查看示例案例来尝试它仍然会给我带来很多错误,我不明白。不是一个“引用调用”,而是一个引用变量。瞧,
run
函数必须能够通过副本、引用或指针(实际上并不重要)访问
GNEEdge
对象实例,但它必须有一个实例。否则,就不能调用该类中的函数。你可能会考虑重新设计你的项目吗?