LScript v2.8 Release Notes 
Features Bug Fixes


 New Features 

  In order to support the new global camera settings in LightWave® 9, the following CS commands
  have been added to the language:
  
    GlobalFrameSize()
    GlobalResolutionMultiplier()
    GlobalPixelAspect()
    GlobalApertureHeight()
    GlobalMotionBlur()
    GlobalParticleBlur()
    GlobalBlurLength()
    GlobalMaskPosition()

  The arguments to these new functions are identical to their non-global counterparts.  Using these
  commands causes the settings in the scene's global camera to be modified, not the currently
  selected camera (please see the LightWave® SDK documentation for more information).


  These CS commands have been added in order to allow access to a camera's global-redirection settings:

      UseGlobalResolution(<state>)

          Sets the <state> of the camera's global-redirection for resolution settings.
          A value of 1 will redirect these settings to the global camera; a value of 0 will
          make the camera's own settings effective.

      UseGlobalBlur(<state>)

          Sets the <state> of the camera's global-redirection for motion blur settings.
          A value of 1 will redirect these settings to the global camera; a value of 0 will
          make the camera's own settings effective.

      UseGlobalMask(<state>)

          Sets the <state> of the camera's global-redirection for mask boundary settings.
          A value of 1 will redirect these settings to the global camera; a value of 0 will
          make the camera's own settings effective.  (Note: the "Use Mask" setting must be
          enabled for a camera's mask boundary settings to be effective.)


  The LScript Camera Object Agent now has the following new methods in order to support camera
  global-redirection:

      globalResolution()

          Returns an integer value that represents the state of the camera's global-redirection
          setting for resolution.  A value of 1 indicates that the setting is active (resolution
          settings for the camera come from the "global" camera); a value of 0 means that the
          camera's own resolution settings are active.

      globalBlur()

          Returns an integer value that represents the state of the camera's global-redirection
          setting for motion blur.  A value of 1 indicates that the setting is active (motion
          blur settings for the camera come from the "global" camera); a value of 0 means that
          the camera's own motion blur settings are active.

      globalMask()

          Returns an integer value that represents the state of the camera's global-redirection
          setting for mask boundary.  A value of 1 indicates that the setting is active (mask
          boundary settings for the camera come from the "global" camera); a value of 0 means that
          the camera's own mask boundary settings are active.


  LScript's internal list for the Mesh Object Agent's server() method has been updated to
  include AnimUV, Camera and Node handlers and interface server types.
  The new types are defined in the script environment by the names SERVER_ANIMUV_H,
  SERVER_ANIMUV_I, SERVER_CAMERA_H, SERVER_CAMERA_I, SERVER_NODE_H,
  and SERVER_NODE_I.


  LScript's Image Object Agent now sports the following new method:

      replace(<imageFile>)

          Given a valid image file, this method will cause the current image for which the Agent
          serves as a proxy to be replaced with the image data within the file.  The following
          is a usage example of the new method (the loaded image being processed is called
          "layers.bmp"):

              @version 2.8
              @warnings

              generic
              {
                  if((replacementName = getfile("Please select replacement image...","*.*",".",true)) == nil)
                      return;

                  if(replacementName.contains("layers.bmp"))
                      return;     // same file that's currently loaded?

                  image = Image("layers.bmp");
                  image.replace(replacementName) || error("Replacement failed!");

                  info("New image: " + image.filename(0));
              }




 Bug Fixes  (top)

                                                                                        
  The Envelope Object Agent's constructor had an issue where it would cause the Graph Editor to
  display an invalid channel group, which would cause a crash when the entry was clicked.




  Icons used in LScript Requester panels were being trashed internally when a panel that used
  them was opened a second time, leading eventually to a crash of the application.