// =========================================================================== // Copyright 2018 Autodesk, Inc. All rights reserved. // // Use of this software is subject to the terms of the Autodesk license // agreement provided at the time of installation or download, or which // otherwise accompanies this software in either electronic or hard copy form. // =========================================================================== // // // Creation Date: 21 Nov 2001 // // Description: // Option box and execution of doSetFluidAttrFromCurve. // // proc setOptionVars(int $forceFactorySettings) { // Which attribute // if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveDoDensity` ) { optionVar -intValue setFluidAttrFromCurveDoDensity 0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveDensity` ) { optionVar -floatValue setFluidAttrFromCurveDensity 1.0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveDoVelocityTangent` ) { optionVar -intValue setFluidAttrFromCurveDoVelocityTangent 1; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveVelocityTangent` ) { optionVar -floatValue setFluidAttrFromCurveVelocityTangent 1; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveDoTemperature` ) { optionVar -floatValue setFluidAttrFromCurveDoTemperature 0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveTemperature` ) { optionVar -floatValue setFluidAttrFromCurveTemperature 1.0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveDoFuel` ) { optionVar -intValue setFluidAttrFromCurveDoFuel 0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveFuel` ) { optionVar -floatValue setFluidAttrFromCurveFuel 1.0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveDoColor` ) { optionVar -intValue setFluidAttrFromCurveDoColor 0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveColorR` ) { optionVar -floatValue setFluidAttrFromCurveColorR 1.0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveColorG` ) { optionVar -floatValue setFluidAttrFromCurveColorG 0.0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveColorB` ) { optionVar -floatValue setFluidAttrFromCurveColorB 0.0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveDoFalloff` ) { optionVar -intValue setFluidAttrFromCurveDoFalloff 0; } if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveFalloff` ) { optionVar -floatValue setFluidAttrFromCurveFalloff 1.0; } // Operation // if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveOperation` ) { optionVar -intValue setFluidAttrFromCurveOperation 2.0; } // Number of Samples at which to evaluate the curve // if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveNumSamples` ) { optionVar -intValue setFluidAttrFromCurveNumSamples 100; } // Radius of effect around curve // if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveRadius` ) { optionVar -floatValue setFluidAttrFromCurveRadius 0.65; } // Magnitude Type // if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveMagnitudeType` ) { optionVar -intValue setFluidAttrFromCurveMagnitudeType 0; } // Set Initial State // if( $forceFactorySettings ||! `optionVar -exists setFluidAttrFromCurveSetInitialState` ) { optionVar -intValue setFluidAttrFromCurveSetInitialState 1; } } global proc setFluidAttrFromCurveEnabling() { int $isDensity = `checkBox -q -v setFluidAttrFromCurveDensity`; floatSliderGrp -e -enable $isDensity setFluidAttrFromCurveDensity; int $isVelocityT = `checkBox -q -v setFluidAttrFromCurveVelocityTangent`; floatSliderGrp -e -enable $isVelocityT setFluidAttrFromCurveVelocityTangent; int $isTemp = `checkBox -q -v setFluidAttrFromCurveTemperature`; floatSliderGrp -e -enable $isTemp setFluidAttrFromCurveTemperature; int $isFuel = `checkBox -q -v setFluidAttrFromCurveFuel`; floatSliderGrp -e -enable $isFuel setFluidAttrFromCurveFuel; int $isFalloff = `checkBox -q -v setFluidAttrFromCurveFalloff`; floatSliderGrp -e -enable $isFalloff setFluidAttrFromCurveFalloff; int $isColor = `checkBox -q -v setFluidAttrFromCurveColor`; colorSliderGrp -e -enable $isColor setFluidAttrFromCurveColor; checkBoxGrp -e -enable $isVelocityT setFluidAttrFromCurveMagnitudeType; } // // Procedure Name: // setFluidAttrFromCurveSetup // // Description: // Update the state of the option box UI to reflect the option values. // // Input Arguments: // parent - Top level parent layout of the option box UI. // Required so that UI object names can be // successfully resolved. // // forceFactorySettings - Whether the option values should be set to // default values. // // Return Value: // None. // global proc setFluidAttrFromCurveSetup(string $parent, int $forceFactorySettings) { // Retrieve the option settings // setOptionVars($forceFactorySettings); setParent $parent; // Attributes // checkBox -e -v `optionVar -q setFluidAttrFromCurveDoDensity` setFluidAttrFromCurveDensity; floatSliderGrp -e -v `optionVar -q setFluidAttrFromCurveDensity` setFluidAttrFromCurveDensity; checkBox -e -v `optionVar -q setFluidAttrFromCurveDoVelocityTangent` setFluidAttrFromCurveVelocityTangent; floatSliderGrp -e -v `optionVar -q setFluidAttrFromCurveVelocityTangent` setFluidAttrFromCurveVelocityTangent; checkBox -e -v `optionVar -q setFluidAttrFromCurveDoTemperature` setFluidAttrFromCurveTemperature; floatSliderGrp -e -v `optionVar -q setFluidAttrFromCurveTemperature` setFluidAttrFromCurveTemperature; checkBox -e -v `optionVar -q setFluidAttrFromCurveDoFuel` setFluidAttrFromCurveFuel; floatSliderGrp -e -v `optionVar -q setFluidAttrFromCurveFuel` setFluidAttrFromCurveFuel; checkBox -e -v `optionVar -q setFluidAttrFromCurveDoColor` setFluidAttrFromCurveColor; colorSliderGrp -e -rgb `optionVar -q setFluidAttrFromCurveColorR` `optionVar -q setFluidAttrFromCurveColorG` `optionVar -q setFluidAttrFromCurveColorB` setFluidAttrFromCurveColor; checkBox -e -v `optionVar -q setFluidAttrFromCurveDoFalloff` setFluidAttrFromCurveFalloff; floatSliderGrp -e -v `optionVar -q setFluidAttrFromCurveFalloff` setFluidAttrFromCurveFalloff; // Operation // radioButtonGrp -e -sl `optionVar -q setFluidAttrFromCurveOperation` setFluidAttrFromCurveOperation; // Sampling // intSliderGrp -e -value `optionVar -query setFluidAttrFromCurveNumSamples` setFluidAttrFromCurveNumSamples; // Radius // floatSliderGrp -e -value `optionVar -query setFluidAttrFromCurveRadius` setFluidAttrFromCurveRadius; // Vector Magnitude // checkBoxGrp -e -v1 `optionVar -query setFluidAttrFromCurveMagnitudeType` setFluidAttrFromCurveMagnitudeType; // Set Initial State // checkBoxGrp -e -v1 `optionVar -query setFluidAttrFromCurveSetInitialState` setFluidAttrFromCurveSetInitialState; setFluidAttrFromCurveEnabling(); } // // Procedure Name: // setFluidAttrFromCurveCallback // // Description: // Update the option values with the current state of the option box UI. // // Input Arguments: // parent - Top level parent layout of the option box UI. Required so // that UI object names can be successfully resolved. // // doIt - Whether the command should execute. // // Return Value: // None. // global proc setFluidAttrFromCurveCallback(string $parent, int $doIt) { setParent $parent; // Attribute // optionVar -intValue setFluidAttrFromCurveDoDensity `checkBox -q -v setFluidAttrFromCurveDensity`; optionVar -floatValue setFluidAttrFromCurveDensity `floatSliderGrp -q -v setFluidAttrFromCurveDensity`; optionVar -intValue setFluidAttrFromCurveDoVelocityTangent `checkBox -q -v setFluidAttrFromCurveVelocityTangent`; optionVar -floatValue setFluidAttrFromCurveVelocityTangent `floatSliderGrp -q -v setFluidAttrFromCurveVelocityTangent`; optionVar -intValue setFluidAttrFromCurveDoTemperature `checkBox -q -v setFluidAttrFromCurveTemperature`; optionVar -floatValue setFluidAttrFromCurveTemperature `floatSliderGrp -q -v setFluidAttrFromCurveTemperature`; optionVar -intValue setFluidAttrFromCurveDoFuel `checkBox -q -v setFluidAttrFromCurveFuel`; optionVar -floatValue setFluidAttrFromCurveFuel `floatSliderGrp -q -v setFluidAttrFromCurveFuel`; optionVar -intValue setFluidAttrFromCurveDoColor `checkBox -q -v setFluidAttrFromCurveColor`; optionVar -intValue setFluidAttrFromCurveDoFalloff `checkBox -q -v setFluidAttrFromCurveFalloff`; optionVar -floatValue setFluidAttrFromCurveFalloff `floatSliderGrp -q -v setFluidAttrFromCurveFalloff`; float $color[] = `colorSliderGrp -q -rgb setFluidAttrFromCurveColor`; optionVar -floatValue setFluidAttrFromCurveColorR $color[0]; optionVar -floatValue setFluidAttrFromCurveColorG $color[1]; optionVar -floatValue setFluidAttrFromCurveColorB $color[2]; // Operation // optionVar -intValue setFluidAttrFromCurveOperation `radioButtonGrp -q -sl setFluidAttrFromCurveOperation`; // Number of Samples // optionVar -intValue setFluidAttrFromCurveNumSamples `intSliderGrp -q -value setFluidAttrFromCurveNumSamples`; // Radius // optionVar -floatValue setFluidAttrFromCurveRadius `floatSliderGrp -q -value setFluidAttrFromCurveRadius`; // Velocity Magnitude Type // optionVar -intValue setFluidAttrFromCurveMagnitudeType `checkBoxGrp -q -v1 setFluidAttrFromCurveMagnitudeType`; // Set Initial State // optionVar -intValue setFluidAttrFromCurveSetInitialState `checkBoxGrp -q -v1 setFluidAttrFromCurveSetInitialState`; if( $doIt ) { performSetFluidAttrFromCurve 0; } } // // Procedure Name: // setFluidAttrFromCurveOptions // // Description: // Construct the option box UI. Involves accessing the standard option // box and customizing the UI accordingly. // // Input Arguments: // None. // // Return Value: // None. // proc setFluidAttrFromCurveOptions() { // Name of the command for this option box. // string $commandName = "setFluidAttrFromCurve"; // Build the option box actions. // string $callback = ($commandName + "Callback"); string $setup = ($commandName + "Setup"); string $layout = getOptionBox(); setParent $layout; setUITemplate -pushTemplate DefaultTemplate; tabLayout -tv false -scr true; string $parent = `columnLayout -adjustableColumn 1`; $parent = `rowColumnLayout -numberOfColumns 3 -columnWidth 1 170 -columnWidth 2 15 -columnAttach 2 "left" 1 -columnWidth 3 250 -columnAttach 3 "left" 1 attributeLayout`; string $densityAnnot = (uiRes("m_performSetFluidAttrFromCurve.kDensityAnnot")); text -label (uiRes("m_performSetFluidAttrFromCurve.kDensity")) -annotation $densityAnnot setFluidAttrFromCurveDensity; checkBox -label "" -cc setFluidAttrFromCurveEnabling -annotation $densityAnnot setFluidAttrFromCurveDensity; floatSliderGrp -cw 1 1 -ss 0.1 -min -1.0 -max 1.0 -fmn -10.0 -fmx 10.0 -annotation (uiRes("m_performSetFluidAttrFromCurve.kDensitySliderAnnot")) setFluidAttrFromCurveDensity; string $velocityAnnot = (uiRes("m_performSetFluidAttrFromCurve.kVelocityAnnot")); text -label (uiRes("m_performSetFluidAttrFromCurve.kVelocity")) -annotation $velocityAnnot setFluidAttrFromCurveVelocityTangent; checkBox -label "" -cc setFluidAttrFromCurveEnabling -annotation $velocityAnnot setFluidAttrFromCurveVelocityTangent; floatSliderGrp -cw 1 1 -ss 0.1 -min -5.0 -max 5.0 -fmn -100.0 -fmx 100.0 -annotation (uiRes("m_performSetFluidAttrFromCurve.kVelocitySliderAnnot")) setFluidAttrFromCurveVelocityTangent; string $temperatureAnnot = (uiRes("m_performSetFluidAttrFromCurve.kTemperatureAnnot")); text -label (uiRes("m_performSetFluidAttrFromCurve.kTemperature")) -annotation $temperatureAnnot setFluidAttrFromCurveTemperature; checkBox -label "" -cc setFluidAttrFromCurveEnabling -annotation $temperatureAnnot setFluidAttrFromCurveTemperature; floatSliderGrp -cw 1 1 -ss 0.1 -min -1.0 -max 1.0 -fmn -10.0 -fmx 10.0 -annotation (uiRes("m_performSetFluidAttrFromCurve.kTemperatureSliderAnnot")) setFluidAttrFromCurveTemperature; string $fuelAnnot = (uiRes("m_performSetFluidAttrFromCurve.kFuelAnnot")); text -label (uiRes("m_performSetFluidAttrFromCurve.kFuel")) -annotation $fuelAnnot setFluidAttrFromCurveFuel; checkBox -label "" -cc setFluidAttrFromCurveEnabling -annotation $fuelAnnot setFluidAttrFromCurveFuel; floatSliderGrp -cw 1 1 -ss 0.1 -min -1.0 -max 1.0 -fmn -10.0 -fmx 10.0 -annotation (uiRes("m_performSetFluidAttrFromCurve.kFuelSliderAnnot")) setFluidAttrFromCurveFuel; string $colorAnnot = (uiRes("m_performSetFluidAttrFromCurve.kColorAnnot")); text -label (uiRes("m_performSetFluidAttrFromCurve.kColor")) -annotation $colorAnnot setFluidAttrFromCurveColor; checkBox -label "" -cc setFluidAttrFromCurveEnabling -annotation $colorAnnot setFluidAttrFromCurveColor; colorSliderGrp -cw 1 2 -annotation (uiRes("m_performSetFluidAttrFromCurve.kColorSliderAnnot")) setFluidAttrFromCurveColor; string $falloffAnnot = (uiRes("m_performSetFluidAttrFromCurve.kFalloffAnnot")); text -label (uiRes("m_performSetFluidAttrFromCurve.kFalloff")) -annotation $falloffAnnot setFluidAttrFromCurveFalloff; checkBox -label "" -cc setFluidAttrFromCurveEnabling -annotation $falloffAnnot setFluidAttrFromCurveFalloff; floatSliderGrp -cw 1 1 -ss 0.1 -min -1.0 -max 1.0 -fmn -10.0 -fmx 10.0 -annotation (uiRes("m_performSetFluidAttrFromCurve.kFalloffSliderAnnot")) setFluidAttrFromCurveFalloff; setParent ..; separator -h 8 -style "none"; radioButtonGrp -label (uiRes("m_performSetFluidAttrFromCurve.kOperation")) -nrb 2 -label1 (uiRes("m_performSetFluidAttrFromCurve.kAdd")) -label2 (uiRes("m_performSetFluidAttrFromCurve.kReplace")) -annotation (uiRes("m_performSetFluidAttrFromCurve.kOperationAnnot")) setFluidAttrFromCurveOperation; separator -h 5 -style "none"; intSliderGrp -label (uiRes("m_performSetFluidAttrFromCurve.kNumberOfCurve")) -annotation (uiRes("m_performSetFluidAttrFromCurve.kNumberOfCurveAnnot")) -cw 2 100 -min 1 -max 100 -fmx 1000 setFluidAttrFromCurveNumSamples; floatSliderGrp -label (uiRes("m_performSetFluidAttrFromCurve.kRadius")) -annotation (uiRes("m_performSetFluidAttrFromCurve.kRadiusAnnot")) -cw 2 100 -min 0 -max 10 -fmx 100 setFluidAttrFromCurveRadius; separator -h 5 -style "none"; checkBoxGrp -label (uiRes("m_performSetFluidAttrFromCurve.kCurvatureBased")) -label1 "" -ncb 1 -annotation (uiRes("m_performSetFluidAttrFromCurve.kCurvatureBasedAnnot")) setFluidAttrFromCurveMagnitudeType; checkBoxGrp -label (uiRes("m_performSetFluidAttrFromCurve.kSetInitialState")) -label1 "" -ncb 1 -annotation (uiRes("m_performSetFluidAttrFromCurve.kSetInitialStateAnnot")) setFluidAttrFromCurveSetInitialState; setUITemplate -popTemplate; // Somehow, specifying the alignments before the // controls were created didn't have any effect. // rowColumnLayout -e -cal 1 "right" attributeLayout; // 'Apply' button. // string $applyBtn = getOptionBoxApplyBtn(); button -edit -label (uiRes("m_performSetFluidAttrFromCurve.kApply")) -command ($callback + " " + $parent + " " + 1) $applyBtn; // 'Save' button. // string $saveBtn = getOptionBoxSaveBtn(); button -edit -command ($callback + " " + $parent + " " + 0 + "; hideOptionBox") $saveBtn; // 'Reset' button. // string $resetBtn = getOptionBoxResetBtn(); button -edit -command ($setup + " " + $parent + " " + 1) $resetBtn; // Set the option box title. // setOptionBoxTitle (uiRes("m_performSetFluidAttrFromCurve.kSetFluidContentsWithCurve")); setOptionBoxCommandName($commandName); setOptionBoxHelpTag( "SetFluidContentsWithCurve" ); // Set the current values of the option box. // eval( $setup + " " + $parent + " " + 0 ); // Show the option box. // showOptionBox(); } // // Procedure Name: // assembleCmd // // Description: // Construct the command that will apply the option box values. // // Input Arguments: // None. // // Return Value: // None. // proc string assembleCmd() { setOptionVars(false); string $cmd = "doSetFluidAttrFromCurve 1 { " + "\"" + `optionVar -query setFluidAttrFromCurveDoDensity` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveDoVelocityTangent` + "\"" + // ",\"" + `optionVar -query setFluidAttrFromCurveDoVelocityNormal` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveDoTemperature` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveDoFuel` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveDoColor` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveDoFalloff` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveDensity` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveVelocityTangent` + "\"" + // ",\"" + `optionVar -query setFluidAttrFromCurveVelocityNormal` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveTemperature` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveFuel` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveColorR` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveColorG` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveColorB` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveFalloff` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveOperation` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveNumSamples` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveRadius` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveMagnitudeType` + "\"" + ",\"" + `optionVar -query setFluidAttrFromCurveSetInitialState` + "\"" + " };"; return $cmd; } // // Procedure Name: // performSetFluidAttrFromCurve // // Description: // Perform the command using the corresponding // option values. This procedure will also show the option box // window if necessary as well as construct the command string // that will invoke the command with the current // option box values. // // Input Arguments: // 0 - Execute the command. // 1 - Show the option box dialog. // 2 - Return the command. // // Return Value: // None. // global proc string performSetFluidAttrFromCurve(int $action) { string $cmd = ""; switch ($action) { // Execute the command from option settings. // case 0: setOptionVars(false); $cmd = `assembleCmd`; eval($cmd); break; // Show the option box. // case 1: setFluidAttrFromCurveOptions(); break; // Return the command string. // case 2: setOptionVars (false); $cmd = `assembleCmd`; break; } return $cmd; }