0

我当前的工作代码:

void GraphicFunctions::drawECM(const OpenGLCamera& camera)
{
   gl->drawECMEdges(camera, ecm, layerID);
}

OpenGL 类:

void OpenGL::draw(const OpenGLCamera& camera)
{
   const vector<double>& cameraBBox = camera.getBoundingBox();
}

是否可以使“OpenGLCamera”更通用,使其成为指针或其他东西?例如这样的:

void GraphicFunctions::drawECM(const OpenGLCamera& camera)
{
   const int* camerapointer = camera;
   gl->drawECMEdges(camerapointer, ecm, layerID);
}

OpenGL 类:

void OpenGL::draw(const int& camera)
{
   const vector<double>& cameraBBox = camera->getBoundingBox();
}

这样我也可以使用其他类型的相机......!

4

1 回答 1

0

只需使用继承来添加不同的相机类型。如果您通过引用传递它们,这也将起作用

struct Camera1 : public OpenGLCamera
{
  // reimplement something
}
struct Camera2 : public OpenGLCamera
{
}

现在您可以将它们传递给OpenGL::draw(const OpenGLCamera& camera)

于 2013-03-26T11:48:26.330 回答