/********************************************************************** This script is provided as part of the Daz Script Documentation. The contents of this script, and\or any portion thereof, may only be used in accordance with the following license: Creative Commons Attribution 3.0 Unported (CC BY 3.0) - http://creativecommons.org/licenses/by/3.0 To contact Daz 3D or for more information about Daz Script visit the Daz 3D website: - http://www.daz3d.com **********************************************************************/ // Source: /public/software/dazstudio/4/referenceguide/scripting/api_reference/samples/elements/callback_property_map_changed_renderer/start // Define an anonymous function; // limits the scope of variables (function(){ // 'CallBack' is a global transient variable, available when // this script is executed by a DzCallBack // If we did not find the 'CallBack' global transient; // this script was executed outside the context of a DzCallBack if( typeof( CallBack ) == "undefined" ){ // We are done... return; } // Get the object that prompted the callback var oSender = CallBack.getSender(); // If we do not have a sender or the sender is not a property if( !oSender || !oSender.inherits( "DzNumericProperty" ) ){ // We are done... return; } // oScript, sBasePath, and sProperty are assumed to be defined in the script // that includes this script; i.e., the CallBack // created in Callbacks_Element_Post_Load_Create.ds* // Get the path of the FindProperty script. Doing it this way, we can debug // with an ascii file and ship a binary [encrypted] file with the same // name... without having to update the contents of the script or manually // handle the file extensions. var sFindPropertyPath = oScript.getScriptFile( "%1/FindProperty".arg( sBasePath ) ); // If the script was not found if( sFindPropertyPath.isEmpty() ){ // We are done... return; } // Include the FindProperty script include( sFindPropertyPath ); // Find the property var oProperty = findRendererProperty( "DzIrayRenderer", "", sProperty, false, false ); // If the property was not found if( !oProperty ){ // We are done... return; } // Get the value of the sender var oTexture = oSender.getMapValue(); // If the value of the target is the same as the source if( !pointersAreEqual( oProperty.getMapValue(), oTexture ) ){ // Update the value of the target with the sender's value oProperty.setMap( oTexture ); } // Finalize the function and invoke })();