Allow, throught an organized options structure:
1) select object individually and configure them,
2) select objects by group and configure them.
For the second point: each individual object is always associated to a group. For each group, none of its object, some of its object or all of its object could be displayed.
A group option is a plural ID. Examples:
--planets a separated comma list of planets object to display
possible values: dry,land,ring,all,none
all keyword is a shortcut for dry,land,ring.
if none is selected, planets are not displayed.
default value: all
--colors a separated comma list of planets object to display
possible values: red, blue, green, all, none.
all keyword is a shortcut for red, blue, green
if none is selected, everything is black and white.
default value: none
Possible group options:
asteroids
biomes
planets
stars
galaxies
massives (dark hole, ...)
colors
Internally, each group of object is always associated to a struct which allow to customize the group.
A struct group option is a plural ID followed with dash and the member ID of the struct. Exemple:
--planets-frequency
Internally, each object is always associated to a struct which allow to customize the object independently to other object of the same group.
A struct object option is the singular of its group ID, followed with dash the object ID, followed with dash and the member ID of the struct. Exemple:
--planet-dry-colornumbers
Some objects can not be rely to a group. Exemple: camera
Allow, throught an organized options structure: 1) select object individually and configure them, 2) select objects by group and configure them.
For the second point: each individual object is always associated to a group. For each group, none of its object, some of its object or all of its object could be displayed. A group option is a plural ID. Examples:
Possible group options:
Internally, each group of object is always associated to a struct which allow to customize the group. A struct group option is a plural ID followed with dash and the member ID of the struct. Exemple:
Internally, each object is always associated to a struct which allow to customize the object independently to other object of the same group. A struct object option is the singular of its group ID, followed with dash the object ID, followed with dash and the member ID of the struct. Exemple:
Some objects can not be rely to a group. Exemple:
camera