我目前的工作代码:
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();
}
这样我也可以使用其他相机类型......!
答案 0 :(得分:0)
只需使用继承来添加不同的相机类型。如果您通过引用
传递它们也可以struct Camera1 : public OpenGLCamera
{
// reimplement something
}
struct Camera2 : public OpenGLCamera
{
}
现在您可以将它们传递给OpenGL::draw(const OpenGLCamera& camera)