// Copyright (C) 1997-2004 Alias Systems Corp.
// 
// The information in this file is provided for the exclusive use of the
// licensees of Alias.  Such users have the right to use, modify,
// and incorporate this code into other products for purposes authorized
// by the Alias license agreement, without fee.
// 
// ALIAS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
// EVENT SHALL ALIAS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.

// Description:  This procedure is called to stop the maya software 
//      renderer IPR session.
//
global proc mayaSoftwareStopIprRender()
{
    // Stop IPR if it is still running.
    //
	if (isIprFileLoaded()) {
	    // Delete the IPR engine
	    //
	    if (isIprFileLoaded()) {
	        iprEngine
	            -edit
	            -releaseIprImage
	            defaultIprEngine;
	
	        deleteUI defaultIprEngine;
	    }
	
	    // Delete the IPR default light, if there is one.  If there is indeed one,
	    // it will be the directional light with the dynamic attribute
	    // isIPRDefaultLight.
	    //
	
	    string $directionalLights[] = `ls -type directionalLight`;
	
	    string $light;
	
	    for ($light in $directionalLights)
	    {
	        if (`objExists ($light + ".isIPRDefaultLight")`)
	        {
	            // Delete the transform (i.e., parents[0]), not just the light,
	            // and make sure it doesn't go on undo queue.
	            //
	            string $parents[] = `listRelatives -parent $light`;
	            int $undoOn = `undoInfo -query -swf`;
	            if ($undoOn)
	                undoInfo -swf off;
	
	            delete $parents[0];
	            if ($undoOn)
	                undoInfo -swf on;
	
	            break;
	        }
	    }
	
	    // Update the memory estimate.
	    //
	    updateIPRMemoryEstimate();
	}
}
