anchor.diff:    :joint
     :light
     :camera
  -  :emitter)
  -
  -
  -(defcenum node-param
  +  :emitter
  +  (:terrain 100))
  +
  +
  +(defcenum node-parameter
     "
   The available scene node parameters:
   
  -   :name                - Name of the scene node [type: string]
  +   :name                 - Name of the scene node [type: string]
      :attachment-string    - Optional application-specific meta data for a node
  -                          encapsulated in an 'Attachment' XML string [type: string]
  -
  -   The available Group node parameters:
  -
  -   MinDist - Minimal distance from the viewer for the node to be visible
  -                     (default: 0.0); used for level of detail [type: float]
  -   MaxDist - Maximal distance from the viewer for the node to be visible
  -                               (default: infinite); used for level of detail [type: float]
  -
  -The available Model node parameters.
  -
  -   GeometryRes                     - Geometry resource used for the model [type: ResHandle]
  -   SoftwareSkinning        - Enables or disables software skinning (default: 0) [type: int]
  -
  -   The available Mesh node parameters.
  -
  -   MaterialRes     - Material resource used for the mesh [type: ResHandle]
  -   BatchStart      - First triangle index of mesh in Geometry resource of parent Model node [type: int, read-only]
  -   BatchCount      - Number of triangle indices used for drawing mesh [type: int, read-only]
  -   VertRStart      - First vertex in Geometry resource of parent Model node [type: int, read-only]
  -   VertREnd        - Last vertex in Geometry resource of parent Model node [type: int, read-only]
  -
  -The available Joint node parameters.
  -
  -   JointIndex - Index of joint in Geometry resource of parent Model node [type: int, read-only]
  -
  -The available Light node parameters.
  -
  -   MaterialRes                     - Material resource used for the light [type: ResHandle]
  -   Radius                          - Radius of influence (default: 100.0) [type: float]
  -   FOV                                     - Field of view (FOV) angle (default: 90.0) [type: float]
  -   Col_R                           - Red component of light diffuse color (default: 1.0) [type: float]
  -   Col_G                           - Green component of light diffuse color (default: 1.0) [type: float]
  -   Col_B                           - Blue component of light diffuse color (default: 1.0) [type: float]
  -   ShadowMapCount          - Number of shadow maps used for light source (values: 0, 1, 2, 3, 4; default: 0) [type: int]
  -   ShadowSplitLambda       - Constant determining segmentation of view frustum for Parallel Split Shadow Maps
  +                           encapsulated in an 'Attachment' XML string [type: string]
  +
  +The available Group node parameters:
  +
  +   :min-dist             - Minimal distance from the viewer for the node to be visible
  +                           (default: 0.0); used for level of detail [type: float]
  +   :max-dist             - Maximal distance from the viewer for the node to be visible
  +                           (default: infinite); used for level of detail [type: float]
  +
  +The available Model node parameters:
  +
  +   :geometry             - Geometry resource used for the model [type: ResHandle]
  +   :software-skinning    - Enables or disables software skinning (default: 0) [type: int]
  +
  +   The available Mesh node parameters:
  +
  +   :mesh-material        - Material resource used for the mesh [type: ResHandle]
  +   :batch-start          - First triangle index of mesh in Geometry resource of parent Model node [type: int, read-only]
  +   :batch-count          - Number of triangle indices used for drawing mesh [type: int, read-only]
  +   :vert-r-start         - First vertex in Geometry resource of parent Model node [type: int, read-only]
  +   :vert-r-end           - Last vertex in Geometry resource of parent Model node [type: int, read-only]
  +
  +The available Joint node parameters:
  +
  +   :joint-index          - Index of joint in Geometry resource of parent Model node [type: int, read-only]
  +
  +The available Light node parameters:
  +
  +   :light-material       - Material resource used for the light [type: ResHandle]
  +   :radius               - Radius of influence (default: 100.0) [type: float]
  +   :fov                  - Field of view (FOV) angle (default: 90.0) [type: float]
  +   :col-r                - Red component of light diffuse color (default: 1.0) [type: float]
  +   :col-g                - Green component of light diffuse color (default: 1.0) [type: float]
  +   :col-b                - Blue component of light diffuse color (default: 1.0) [type: float]
  +   :shadow-map-count     - Number of shadow maps used for light source (values: 0, 1, 2, 3, 4; default: 0) [type: int]
  +   :shadow-split-lambda  - Constant determining segmentation of view frustum for Parallel Split Shadow Maps
                                                (default: 0.5) [type: float]
  -   ShadowMapBias           - Bias value for shadow mapping to reduce shadow acne (default: 0.005) [type: float]
  -
  -The available Camera node parameters.
  -
  -   PipelineRes                     - Pipeline resource used for rendering [type: ResHandle]
  -   OutputTex                       - Texture2D resource used as output buffer (can be 0 to use main framebuffer) (default: 0) [type: ResHandle]
  -   OutputBufferIndex       - Index of the output buffer for stereo rendering (values: 0 for left eye, 1 for right eye) (default: 0) [type: int]
  -   LeftPlane                       - Coordinate of left plane relative to near plane center (default: -0.055228457) [type: float]
  -   RightPlane                      - Coordinate of right plane relative to near plane center (default: 0.055228457) [type: float]
  -   BottomPlane                     - Coordinate of bottom plane relative to near plane center (default: -0.041421354f) [type: float]
  -   TopPlane                        - Coordinate of top plane relative to near plane center (default: 0.041421354f) [type: float]
  -   NearPlane                       - Distance of near clipping plane (default: 0.1) [type: float]
  -   FarPlane                        - Distance of far clipping plane (default: 1000) [type: float]
  -   Orthographic            - Flag for setting up an orthographic frustum instead of a perspective one (default: 0) [type:int]
  -   OcclusionCulling        - Flag for enabling occlusion culling (default: 0) [type:int]
  -
  -The available Emitter node parameters.
  -
  -   MaterialRes             - Material resource used for rendering [type: ResHandle]
  -   EffectRes               - Effect resource which configures particle properties [type: ResHandle]
  -   MaxCount                - Maximal number of particles living at the same time [type: int]
  -   RespawnCount    - Number of times a single particle is recreated after dying (-1 for infinite) [type: int]
  -   Delay                   - Time in seconds before emitter begins creating particles (default: 0.0) [type: float]
  -   EmissionRate    - Maximal number of particles to be created per second (default: 0.0) [type: float]
  -   SpreadAngle             - Angle of cone for random emission direction (default: 0.0) [type: float]
  -   ForceX                  - X-component of force vector applied to particles (default: 0.0) [type: float]
  -   ForceY                  - Y-component of force vector applied to particles (default: 0.0) [type: float]
  -   ForceZ                  - Z-component of force vector applied to particles (default: 0.0) [type: float]
  +   :shadow-map-bias      - Bias value for shadow mapping to reduce shadow acne (default: 0.005) [type: float]
  +
  +The available Camera node parameters:
  +
  +   :pipeline             - Pipeline resource used for rendering [type: ResHandle]
  +   :output-tex           - Texture2D resource used as output buffer (can be 0 to use main framebuffer) (default: 0) [type: ResHandle]
  +   :output-buffer-index  - Index of the output buffer for stereo rendering (values: 0 for left eye, 1 for right eye) (default: 0) [type: int]
  +   :left-plane           - Coordinate of left plane relative to near plane center (default: -0.055228457) [type: float]
  +   :right-plane          - Coordinate of right plane relative to near plane center (default: 0.055228457) [type: float]
  +   :bottom-plane         - Coordinate of bottom plane relative to near plane center (default: -0.041421354f) [type: float]
  +   :top-plane            - Coordinate of top plane relative to near plane center (default: 0.041421354f) [type: float]
  +   :near-plane           - Distance of near clipping plane (default: 0.1) [type: float]
  +   :far-plane            - Distance of far clipping plane (default: 1000) [type: float]
  +   :orthographic         - Flag for setting up an orthographic frustum instead of a perspective one (default: 0) [type:int]
  +   :occlusion-culling    - Flag for enabling occlusion culling (default: 0) [type:int]
  +
  +The available Emitter node parameters:
  +
  +   :emitter-material     - Material resource used for rendering [type: ResHandle]
  +   :effect-res           - Effect resource which configures particle properties [type: ResHandle]
  +   :max-count            - Maximal number of particles living at the same time [type: int]
  +   :respawn-count        - Number of times a single particle is recreated after dying (-1 for infinite) [type: int]
  +   :delay                - Time in seconds before emitter begins creating particles (default: 0.0) [type: float]
  +   :emission-rate        - Maximal number of particles to be created per second (default: 0.0) [type: float]
  +   :spread-angle         - Angle of cone for random emission direction (default: 0.0) [type: float]
  +   :force-X              - X-component of force vector applied to particles (default: 0.0) [type: float]
  +   :force-Y              - Y-component of force vector applied to particles (default: 0.0) [type: float]
  +   :force-Z              - Z-component of force vector applied to particles (default: 0.0) [type: float]
  +
  +The available Terrain node parameters:
  +		
  +   :height-map-res       - Height map texture; must be square and a power of two [type: ResHandle, write-only]
  +   :material-res         - Material resource used for rendering the terrain [type: ResHandle]
  +   :mesh-quality         - Constant controlling the overall resolution of the terrain mesh (default: 50.0) [type: float]
  +   :skirt-height         - Height of the skirts used to hide cracks (default: 0.1) [type: float]
  +   :block-size           - Size of a terrain block that is drawn in a single render call; must be 2^n+1 (default: 17) [type: int]
  +
   "
     ;; scene-node-params
     (:name 1)
  
positive.code: 
  ;; NodeHandle pickNode(NodeHandle cameraNode, float nwx, float nwy );
  (defh3ufun ("pickNode" pick-node) node-handle
    " Returns the scene node which is at the specified window coordinates.
  
       This utility function takes normalized window coordinates (ranging from 0 to 1 with the
       origin being the bottom left corner of the window) and returns the scene node which is
       visible at that location. The function is especially useful for selecting objects by clicking
       on them. Currently picking is only working for Meshes.
  
       Parameters:
               cameraNode - camera used for picking
               nwx, nwy   - normalized window coordinates
  
       Returns:
               handle of picked node or 0 if no node was hit
  "
    (camera-node node-handle) (nwx :float) (nwy :float))
  
  
negative.code: 
  ;; void setShaderPreambles( const char *vertPreamble, const char *fragPreamble );
  (defh3fun ("setShaderPreambles" set-shader-preambles) :void
    "Sets preambles of all Shader resources.
  
  This function defines a header that is inserted at the beginning of all
  shaders. The preamble is used when a shader is compiled, so changing it will not
  affect any shaders that are already compiled. The preamble is useful for setting
  platform-specific defines that can be employed for creating several shader code
  paths, e.g. for supporting different hardware capabilities.
  
  Parameters:
          vertPreamble    - preamble text of vertex shaders (default: empty string)
          fragPreamble    - preamble text of fragment shaders (default: empty string)
  
  Returns:
          nothing
  "
    (vert-preamble :string)
    (frag-preamble :string))
  