// The following is the Bakaus Naur Form of the OsgMP Camera Configuration file

<Configuration>            ::= <CameraGroup> | <RenderSurface> | <Camera>
<CameraGroup>              ::= CameraGroup '{' {<SharedCameraAttribute>} {<Camera>} '}'
<Camera>                   ::= Camera [<name>] '{' {<camera_attribute> ';'} '}'
<CameraAttribute>          ::= RenderSurface <name>  |
			       <RenderSurface>     |
			       ProjectionRect <real> <real> <real> <real> |
			       <Lens> |
                               <CameraOffset> 

<ShareCameraAttribute>     ::= <RenderSurface> | RenderSurface <name> | <Lens>

<RenderSurface>            ::=  RenderSurface ["<name>"] '{' {<RenderSurfaceAttribute> ';'} '}'
<RenderSurfaceAttribute>   ::=  VisualQuality |  
				WindowRect <integer> <integer> <integer> <integer>   |
 				Hostname <name>   |
				Screen  <integer> |
                CustomFullScreenRectangle <integer> <integer> <integer> <integer> |
				Border  <boolean> 
<VisualQuality>            ::=  VisualQuality '{' {<VisualQualityAttribute>} '}'
<VisualQualityAttribute>   ::=  Default | VisualID <hex_integer> | 
				BUFFER_SIZE      <integer> |
				LEVEL            <integer> |
				RGBA                       |
				DOUBLEBUFFER               |
				STEREO                     |
				AUX_BUFFERS      <integer> |
				RED_SIZE         <integer> |
				GREEN_SIZE       <integer> |
				BLUE_SIZE        <integer> |
				ALPHA_SIZE       <integer> |
				DEPTH_SIZE       <integer> |
				STENCIL_SIZE     <integer> |
				ACCUM_RED_SIZE   <integer> |
				ACCUM_GREEN_SIZE <integer> |
				ACCUM_BLUE_SIZE  <integer> |
				ACCUM_ALPHA_SIZE <integer> 
<Lens>                     ::= Lens '{' {<lens_attribute> ';'} '}'
<LensAttribute>            ::= Ortho <real> <real> <real> <real> <real> <real> [<real> <real>] |
                               Perspective <real> <real> <real> <real> [<real> <real>]         |
			       Frustum <real> <real> <real> <real> <real> <real> [<real> <real>] 
<CameraOffset>		   ::= Offset '{' {<CameraOffsetAttribute>} '}'
<CameraOffsetAttribute>    ::= Shear <real> <real> ';'  |
                               Rotate <real> <real> <real> <real> ';'
                               Translate <real> <real> <real> ';'
                               Scale <real> <real> <real> ';'
<name>                     ::= '"' <identifier> '"' 
<identifier>               ::= {A-Za-z}+{A-Za-z0-9_ \t}*
<real>                     ::= {-}?{0-9}+.{0-9}*{f|F}? | {-}?{0-9}*.{0-9}+{f|F}? | <integer>{F|f}?
<hex_integer>              ::= {-}?0x{0-9}+
<integer>                  ::= {-}?{0-9}+


				
                               
