我正在设计一个应用程序,其中多个几何基本类型(都继承基Primitive
类)存储在 class 的对象中Scene
。
我不想在我的函数中main()
通过构造基元然后调用以编程方式创建场景Scene::add(...)
,而是希望有某种在运行时读取的配置文件。
这将使我不必在每次更改场景时都重新编译,这似乎是一个普遍的好主意(以防无法编程的其他人有时可能需要使用我的程序)
我设计了一个小方案,通过.ini
这样的文件定义场景:
[primitivefoo]
type = sphere
pos = 10 20 30
radius = 5.5
[primitivebar]
type = triangle
vertexA = 10 10 -10
vertexB = ...
...
你明白了。
我的计划是让每个子类在类中注册Primitive
自己的方法。需要某种映射->的映射,以便我知道文件中的哪个类型字符串对应于.interpretINI(...)
Scene
Scene
string
void* (...)
.ini
Primitive
如果整个方法是糟糕的设计,并且已经有一种更优雅的方式来实现我想要实现的目标,我很想听听。如果没有,如果有人能帮助我实现我的设计,我将不胜感激。我被困在如何迭代所有Primitive
子类以让它们在Scene
...中注册自己