我试图在c ++中使用过剩来根据我输入主函数的文件中的信息创建一个绘图。
int main (int argc, char** argv) //I think this is all relevant info in main
{
glutDisplayFunc (display);
fstream file = fstream ("Tree.txt");
Tree myTree = Tree(file);
}
static //this is the function I need to draw from but it can't take any parameters
void display(void)
{
}
static void draw_frame(Tree::Node* t) //my draw function needs access to info from my file stream
{
int x = t->xValue; //for example I need to access these variables
int y = t->yValue;
}
我尝试将Tree * myTree作为一个全局变量,但我只是犯了更多错误,它会完全停止在我的文件中读取。如果有人有任何想法,我将非常感激!
答案 0 :(得分:0)
在您的情况下,您需要将Tree作为全局变量。我建议从构造函数中移动“树构建”代码,并从主函数初始化它。有点像:
Tree GTree;
int main (int argc, char** argv) //I think this is all relevant info in main
{
glutDisplayFunc (display);
fstream file = fstream ("Tree.txt");
GTree.Initialize(file);
}
然后,在display
中,您可以使用您的GTree进行渲染。
请注意,如果您需要更新渲染,则需要调用 glutPostRedisplay 或将display
作为 glutIdleFunc