The default extension for the name of an environment file is .dat.
[header] { [rest environment] } <end>
The type in [header] of the file must be scene.
[outdoor] | [indoor]
<indoor> <NUMBER> $int$:16 [indoor entity list]
<NUMBER> $int$:16 [outdoor entity list]
The value for <NUMBER> specifying the number of entities in the file is only informative. The entities are read until the end-of-file is reached.
[indoor entity list item] | [indoor entity list]
[exterior] | [interior] | [info]
[outdoor entity list item] | [outdoor entity list]
[flattop] | [tree] | [trunk] | [trunktree] | [ground] | [info]
There is at most one [ground] object allowed.
The following entities are allowed within an outdoor scenario
<interior> { "name" } <{> <NUMBER> $int$:16 [corner list] [height] [material index] <}>
<exterior> { "name" } <{> <NUMBER> $int$:16 [corner list] [height] [material index] <}>
Note that the height of the indoor environment is automatically taken as the largest height of the objects in the file.
<flattop> { "name" } <{> <NUMBER> $int$:16 [corner list] [height] { [ground height] } [material index] <}>
[corner list item] | [corner list]
[point] { ( <nodiff> | <diff> $float$:32 ) } { <stealth> }
The [corner list] must have as many items as the value of <NUMBER> indicates. Marking a corner with <nodiff> means that the corner is not considered for diffraction, marking it with <diff> and a height value means that a diffraction points must lie at least at that height. Marking a corner with <stealth> means that the wall from this corner to the next corner in the list is not considered for reflections.
<ground> <{> ( [height field] | [mesh] ) [material index] <}>
<mesh> <POINT> <NUMBER> $int$:16 [point list] <TRIANGLE> <NUMBER> $int$:16 [index list]
The number of items in the [index list] must be equal to three times the value of the <TRIANGLE> <NUMBER>. An index must not exceed the number of points. Counting starts at zero.
[point list item] | [point list]
[point] [height]
[index list item] | [index list]
$int$:16
<tree> <{> [point] [radius] [height] { [ground height] } [material index] <}>
<trunk> <{> [point] [radius] [height] { [ground height] } [material index] <}>
<trunktree> <{> [point] [radius] [height] [radius] { [ground height] } [material index] <}>
<info> <{> <NUMBER> $int$:16 [points] <}>
The [points] list must have as many items as the value of <NUMBER> indicates.