Мы не знаем, какие у вас классы, но просто делаем функцию:
struct glEngine
{
// ...
scene_type& Scene()
{
return scene[current.currentScene];
}
};
Вы также можете сделать это для Scene
, возвращая текущий слой:
struct scene_type
{
// ...
layer_type& Layer()
{
return layer[current.currentScene];
}
};
Giving:
glEngine.Scene().Layer().Shapes.push_back(CGlShape());
Вы можете также рассмотреть возможность разделения строки просто для удобства чтения:
scene_type& scene = glEngine.Scene();
layer_type& layer = scene.Layer();
layer.Shapes.push_back(CGlShape());
Наконец, соглашение об именах кажется немного странным, возможно, переименуйте Scene
и Layer
функционируют до current_scene
и current_layer
.