Scene Parsing Options

### 5.2.3 Scene Parsing Options

POV-Ray reads in your scene file and processes it to create an internal model of your scene. The process is called `parsing`. As your file is parsed other files may be read along the way. This section covers options concerning what to parse, where to find it and what version specific assumptions it should make while parsing it.

#### 5.2.3.1 Constant

`Declare=IDENTIFIER=FLOAT` | Declares an identifier with a float value

You can now declare a constant in an INI file, and that constant will be available to the scene. Since INI file statements may also be laced on the command-line, you can therefore also declare on the command-line (though there is no switch for it).

      Declare=MyValue=24

This would be the same as a `#declare MyValue=24;` in a scene file. The value on the right-hand side must be a constant float value.

A possible use could be switching off radiosity or photons from commandline:

      --in INI-file / on command-line

      Declare=RAD=0

      --in scenefile

      global_settings {
         #if (RAD)
            radiosity {
               ...
            }
         #end
      }

#### 5.2.3.2 Input File Name

`Input_File_Name=`file | Sets input file name to file
`+I`file | Same as `Input_File_Name=`file

Note: there may be no space between `+I` and `file`.

You will probably always set this option but if you do not the default input filename is `object.pov`. If you do not have an extension then `.pov` is assumed. On case-sensitive operating systems both `.pov` and `.POV` are tried. A full path specification may be used (on MS-DOS systems `+Ic:\povray3\mystuff\myfile.pov` is allowed for example). In addition to specifying the input file name this also establishes the scene name.

The scene name is the input name with drive, path and extension stripped. In the above example the scene name is `myfile`. This name is used to create a default output file name and it is referenced other places.

Note: as per version 3.5 you can now specify a POV file on the command-line without the use of the +i switch (i.e. it works the same way as specifying an INI file without a switch), the POV file then should be the last on the commandline.

If you use "-" as the input file name the input will be read from standard input. Thus you can pipe a scene created by a program to POV-Ray and render it without having a scene file.

Under MS-DOS you can try this feature by typing.

     type ANYSCENE.POV | povray +I-

#### 5.2.3.3 Include File Name

`Include_Header=`file | Sets primary include file name to file
`+HI`file | Same as `Include_Header=`file

This option allows you to include a file as the first include file of a scene file. You can for example use this option to always include a specific set of default include files used by all your scenes.

#### 5.2.3.4 Library Paths

`Library_Path=`path | Add path to list of library paths
`+L`path | Same as `Library_Path=`path

POV-Ray looks for files in the current directory. If it does not find a file it needs it looks in various other library directories which you specify. POV-Ray does not search your operating system path. It only searches the current directory and directories which you specify with this option. For example the standard include files are usually kept in one special directory. You tell POV-Ray to look there with...

     Library_Path=c:\povray3\include

You must not specify any final path separators ("\" or "/") at the end.

Multiple uses of this option switch do not override previous settings. Up to twenty unique paths may be specified. If you specify the exact same path twice it is only counted once. The current directory will be searched first followed by the indicated library directories in the order in which you specified them.

#### 5.2.3.5 Language Version

`Version=`n.n | Set initial language compatibility to version n.n
`+MV`n.n | Same as `Version=`n.n

As POV-Ray has evolved from version 1.0 through to today we have made every effort to maintain some amount of backwards compatibility with earlier versions. Some old or obsolete features can be handled directly without any special consideration by the user. Some old or obsolete features can no longer be handled at all. However some old features can still be used if you warn POV-Ray that this is an older scene. In the POV-Ray scene language you can use the `#version` directive to switch version compatibility to different settings. See section "The #version Directive" for more details about the language version directive. Additionally you may use the `Version=`n.n option or the `+MV`n.n switch to establish the initial setting. For example one feature introduced in 2.0 that was incompatible with any 1.0 scene files is the parsing of float expressions. Setting `Version=1.0` or using `+MV1.0` turns off expression parsing as well as many warning messages so that nearly all 1.0 files will still work. Naturally the default setting for this option is `Version=3.5`.

Note: some obsolete or re-designed features are totally unavailable in the current version of POV-Ray REGARDLES OF THE VERSION SETTING. Details on these features are noted throughout this documentation.