TEMERITY

us.temerity.pipeline.plugin.MRayShaderIncludeAction.v2_2_1
Class MRayShaderIncludeAction

java.lang.Object
  extended by us.temerity.pipeline.Named
      extended by us.temerity.pipeline.PluginID
          extended by us.temerity.pipeline.BasePlugin
              extended by us.temerity.pipeline.BaseAction
                  extended by us.temerity.pipeline.plugin.CommonActionUtils
                      extended by us.temerity.pipeline.plugin.PythonActionUtils
                          extended by us.temerity.pipeline.plugin.MRayShaderIncludeAction.v2_2_1.MRayShaderIncludeAction
All Implemented Interfaces:
Serializable, Cloneable, Comparable<PluginID>, Glueable

public class MRayShaderIncludeAction
extends PythonActionUtils

Generates a Mental Ray input file which specifies the locations of a set of shader definition files and compiled shader dynamic libraries.

Generates a single Mental Ray input file (.mi) as the primary file sequence of the target node. The primary file sequence of each source node should contain either a Mental Ray shader definition file (.mi) or the dynamic library (.so|.dll) of a compiled Mental Ray shader. This Action generates "$include" or "link" statements for each of these source files suitable to initialize the source Mental Ray custom shaders during rendering.

Normally, the dynamic shader libraries are assumed to have been compiled for a single operating system which must also be used by Mental Ray renders using the generated primary target MI file. If the MultiOS parameter is set, then the dynamic libraries are processed in a more sophisticated manner. Using MultiOS, several alternative dynamic libraries may be supplied for each operating system supported. The fully resolved node names of these alternative dynamic libraries must be identical except that the last directory component must match one of the supported operating system types such as: Unix, MacOS or Windows (see OsType for details). When MultiOS is set, only one "link" statement will be written for each set of dynamic libraries which meet this criteria. The operating system type component of the path will be replaced by the enviromental variable "PIPELINE_OSTYPE" in these link statements. This variable is dynamically added to the Toolset environment used by jobs and therefore will be properly resolved to the correct OS specific dynamic shader library when the job is run.

If the target node also has a Mental Ray input file (.mi) as a secondary file sequence, then the contents of all of the input shader definition files will be concatenated to generate this secondary target file. Typically, this file is generate to provide Maya with the shader definitions it needs to properly initialize a scene containing these shaders. If used for this purpose, the name of the secondary file sequence should match the value of PIPELINE_MI_SHADER_PATH defined in the Toolset environment used to run Maya. The Maya related Editor plugins used this variable to properly setup the Maya environment for Mental Ray custom shaders. The standard name for this secondary file is "mi_shader_defs.mi". This action defines the following single valued parameters:

Multi OS
Whether generate an MI file capable of being used on several different operating systems by replacing occurances of directories with names which match one of the defined operating system types with the PIPELINE_OSTYPE environmental variable.

By default, the "python" program is used by this action to copy the target files. An alternative program can be specified by setting PYTHON_BINARY in the Toolset environment to the name of the Python interpertor this Action should use. When naming an alternative Python interpretor under Windows, make sure to include the ".exe" extension in the program name.

See Also:
Serialized Form

Field Summary
static String aMultiOS
           
 
Fields inherited from class us.temerity.pipeline.plugin.CommonActionUtils
aExtraOptions
 
Fields inherited from class us.temerity.pipeline.BasePlugin
pDescription
 
Fields inherited from class us.temerity.pipeline.PluginID
pVendor, pVersionID
 
Fields inherited from class us.temerity.pipeline.Named
pName
 
Constructor Summary
MRayShaderIncludeAction()
           
 
Method Summary
 SubProcessHeavy prep(ActionAgenda agenda, File outFile, File errFile)
          Construct a SubProcessHeavy instance which when executed will fulfill the given action agenda.
 
Methods inherited from class us.temerity.pipeline.plugin.PythonActionUtils
createPythonSubProcess, createPythonSubProcess, createPythonSubProcess, getPythonFileVerify, getPythonFileVerify, getPythonFileVerify, getPythonFileVerify, getPythonFileVerify, getPythonFileVerify, getPythonIndent, getPythonLaunchHeader, getPythonLaunchPipeHeader, getPythonProgram, getPythonProgram
 
Methods inherited from class us.temerity.pipeline.plugin.CommonActionUtils
addExtraOptionsParam, addExtraOptionsParamToLayout, createScriptSubProcess, createSubProcess, createSubProcess, createSubProcess, createSubProcess, createTempCopySubProcess, createTempScript, escPath, escPath, getExtraOptionsArgs, getPrimarySourcePath, getPrimarySourcePath, getPrimarySourcePath, getPrimarySourcePaths, getPrimarySourcePaths, getPrimarySourcePaths, getPrimaryTargetPath, getPrimaryTargetPath, getPrimaryTargetPath, getPrimaryTargetPaths, getPrimaryTargetPaths, getPrimaryTargetPaths, getSecondarySourceBooleanParamValue, getSecondarySourceDoubleParamValue, getSecondarySourceDoubleParamValue, getSecondarySourceEnumParamIndex, getSecondarySourceIntegerParamValue, getSecondarySourceIntegerParamValue, getSecondarySourceLongParamValue, getSecondarySourceLongParamValue, getSecondarySourceOptionalBooleanParamValue, getSecondarySourceStringParamValue, getSecondarySourceStringParamValue, getSingleBooleanParamValue, getSingleDoubleParamValue, getSingleDoubleParamValue, getSingleEnumParamIndex, getSingleIntegerParamValue, getSingleIntegerParamValue, getSingleLongParamValue, getSingleLongParamValue, getSingleOptionalBooleanParamValue, getSingleStringParamValue, getSingleStringParamValue, getSingleTuple2dParamValue, getSingleTuple2dParamValue, getSingleTuple2dParamValue, getSingleTuple2iParamValue, getSingleTuple2iParamValue, getSingleTuple2iParamValue, getSingleTuple3dParamValue, getSingleTuple3dParamValue, getSingleTuple3dParamValue, getSingleTuple3iParamValue, getSingleTuple3iParamValue, getSingleTuple3iParamValue, getSingleTuple4dParamValue, getSingleTuple4dParamValue, getSingleTuple4dParamValue, getSourceBooleanParamValue, getSourceDoubleParamValue, getSourceDoubleParamValue, getSourceEnumParamIndex, getSourceIntegerParamValue, getSourceIntegerParamValue, getSourceLongParamValue, getSourceLongParamValue, getSourceOptionalBooleanParamValue, getSourceStringParamValue, getSourceStringParamValue, getWorkingNodeFilePath, getWorkingNodeFilePath, getWorkingNodeFilePath, getWorkingNodeFilePath, getWorkingNodeFilePaths
 
Methods inherited from class us.temerity.pipeline.BaseAction
addPreset, addPresetValues, addSingleParam, chmod, cleanupLater, clearAllLinkParams, clearLinkParams, clone, createTemp, createTemp, equals, equalSingleParams, equalSourceParams, fromGlue, getInitialSourceParams, getPluginType, getPresetChoices, getPresetValues, getSecondarySequences, getSecondarySourceNames, getSecondarySourceParam, getSecondarySourceParams, getSecondarySourceParamValue, getSingleLayout, getSingleParam, getSingleParams, getSingleParamValue, getSourceLayout, getSourceNames, getSourceParam, getSourceParams, getSourceParamValue, getTempDir, getTempPath, hasSecondarySourceParams, hasSingleParams, hasSourceParams, initSecondarySourceParams, initSourceParams, removeAllSourceParams, removeSecondarySourceParams, removeSecondarySourceParams, removeSourceParams, setSecondarySourceParamValue, setSingleLayout, setSingleParamValue, setSingleParamValues, setSourceLayout, setSourceParamValue, setSourceParamValues, supportsSourceParams, toGlue
 
Methods inherited from class us.temerity.pipeline.BasePlugin
addSupport, compareTo, getDescription, getFullMessage, getPluginID, getResource, getResources, getResourceSize, getSupports, isUnderDevelopment, removeSupport, setSupports, supports, toString, underDevelopment
 
Methods inherited from class us.temerity.pipeline.PluginID
getVendor, getVersionID
 
Methods inherited from class us.temerity.pipeline.Named
getName
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

aMultiOS

public static final String aMultiOS
See Also:
Constant Field Values
Constructor Detail

MRayShaderIncludeAction

public MRayShaderIncludeAction()
Method Detail

prep

public SubProcessHeavy prep(ActionAgenda agenda,
                            File outFile,
                            File errFile)
                     throws PipelineException
Construct a SubProcessHeavy instance which when executed will fulfill the given action agenda.

Overrides:
prep in class BaseAction
Parameters:
agenda - The agenda to be accomplished by the action.
outFile - The file to which all STDOUT output is redirected.
errFile - The file to which all STDERR output is redirected.
Returns:
The SubProcess which will fulfill the agenda.
Throws:
PipelineException - If unable to prepare a SubProcess due to illegal, missing or imcompatable information in the action agenda or a general failure of the prep method code.

TEMERITY