private boolean checkArgsAndSetParams(TreeMap<String, LinkedList<String>> parsedArgs) { if (parsedArgs.containsKey("help")) { printHelp(); return false; } else if (parsedArgs.containsKey("version")) { printVersion(); return false; } try { user = getStringValue("user", true, parsedArgs); view = getStringValue("view", true, parsedArgs); toolset = getStringValue("toolset", false, parsedArgs); turntables = getStringValues("tt", true, parsedArgs); passes = getStringValues("pass", true, parsedArgs); assets = getAssetValues("asset", true, parsedArgs); { Boolean temp = getBooleanValue("verbose", false, parsedArgs); if (temp == null) verbose = false; else verbose = temp; } } catch (PipelineException ex) { System.err.println(ex.getMessage()); printHelp(); return false; } if (parsedArgs.size() > 0) { printExtraArgs(parsedArgs); return false; } return true; }
@Override public void run() { UIMaster master = UIMaster.getInstance(); MasterMgrClient client = master.acquireMasterMgrClient(); try { MappedSet<String, VersionID> versions = pArchives.get(pIndex); String archiveName = null; String msg = ("Archiving Volume (" + (pIndex + 1) + " of " + pArchives.size() + ")..."); long opID = master.beginDialogOp(msg); master.setDialogOpCancelClient(opID, client); long monitorID = client.addMonitor(new DialogOpMonitor(opID)); try { archiveName = client.archive(pPrefix, versions, pArchiver, pToolset); } catch (PipelineException ex) { showErrorDialog( "Error:", ex.getMessage() + "\n\n" + "Archive operation aborted early without creating " + "(" + (pArchives.size() - pIndex) + " of " + pArchives.size() + ") archive " + "volumes!"); return; } finally { master.endDialogOp(opID, "Archived."); client.removeMonitor(monitorID); } SwingUtilities.invokeLater(new RemoveTask(versions)); ManualArchiveConfirmTask task = new ManualArchiveConfirmTask( pParent, archiveName, pIndex + 1, pPrefix, pArchives, pToolset, pArchiver); SwingUtilities.invokeLater(task); } finally { master.releaseMasterMgrClient(client); } }
@Override public void run() { UIMaster master = UIMaster.getInstance(); MasterMgrClient client = master.acquireMasterMgrClient(); try { DoubleMap<String, VersionID, Long> versionSizes = null; { long opID = master.beginDialogOp("Assigning Versions to Archives..."); long monitorID = client.addMonitor(new DialogOpMonitor(opID)); try { versionSizes = client.getArchivedSizes(pVersions); } catch (PipelineException ex) { showErrorDialog(ex); } finally { master.endDialogOp(opID, "Versions Assigned."); client.removeMonitor(monitorID); } } /* assign the maximum number of versions to each archive volume without exceeding its capacity */ TreeMap<Integer, MappedSet<String, VersionID>> archives = new TreeMap<Integer, MappedSet<String, VersionID>>(); if (versionSizes != null) { long capacity = pArchiver.getCapacity(); int idx = 0; long total = 0L; boolean done = false; DoubleMap<String, VersionID, Long> skippedVersionSizes = new DoubleMap<String, VersionID, Long>(); while (!done) { for (String name : versionSizes.keySet()) { for (VersionID vid : versionSizes.keySet(name)) { Long size = versionSizes.get(name, vid); if ((total + size) >= capacity) { /* the version is too big to fit by itself in a volume */ if (total == 0L) { showErrorDialog( "Error:", "The version (" + vid + ") of node (" + name + ") was larger than " + "the capacity of an entire archive volume! The capacity of the " + "archive volume must be increased to at least " + "(" + formatLong(size) + ") in order to archive this version."); return; } skippedVersionSizes.put(name, vid, size); } /* the version fits, add it to this volume */ else { MappedSet<String, VersionID> versions = archives.get(idx); if (versions == null) { versions = new MappedSet<String, VersionID>(); archives.put(idx, versions); } versions.put(name, vid); total += size; } } } /* some versions wouldn't fit in the current volume, create a new volume and try again... */ if (!skippedVersionSizes.isEmpty()) { idx++; total = 0L; versionSizes = skippedVersionSizes; skippedVersionSizes = new DoubleMap<String, VersionID, Long>(); } else { if (total < pMinSize) { if (idx == 0) { showErrorDialog( "Error:", "The total size (" + formatLong(total) + ") of all versions selected " + "for archiving was less than the minimum archive volume size " + "(" + formatLong(pMinSize) + ")! Either select enough versions to " + "meet this minimum size or specify a smaller minimum size to create " + "an archive volume."); return; } else { archives.remove(idx); } } break; } } } /* perform the archive operations */ if (!archives.isEmpty()) { if (pArchiver.isManual()) { ManualArchiveConfirmTask task = new ManualArchiveConfirmTask( pParent, null, 0, pPrefix, archives, pToolset, pArchiver); SwingUtilities.invokeLater(task); } else { long opID = master.beginDialogOp(); master.setDialogOpCancelClient(opID, client); long monitorID = client.addMonitor(new DialogOpMonitor(opID)); int lastIdx = 0; try { for (Integer idx : archives.keySet()) { master.updateDialogOp( opID, "Archiving Volume (" + (idx + 1) + " of " + archives.size() + ")..."); lastIdx = idx; client.archive(pPrefix, archives.get(idx), pArchiver, pToolset); } } catch (PipelineException ex) { showErrorDialog( "Error:", ex.getMessage() + "\n\n" + "Archive operation aborted early without creating " + "(" + (archives.size() - lastIdx) + " of " + archives.size() + ") archive " + "volumes!"); return; } finally { master.endDialogOp(opID, "Archived."); client.removeMonitor(monitorID); } RemoveAllTask task = new RemoveAllTask(); SwingUtilities.invokeLater(task); } // else } // if(!archives.isEmpty()) { } finally { master.releaseMasterMgrClient(client); } }
@Override public void run(String[] args) { try { TreeMap<String, LinkedList<String>> parsedArgs = argParser(args); if (!checkArgsAndSetParams(parsedArgs)) { return; } } catch (PipelineException ex) { System.err.println("There was a problem reading the arguments.\n" + ex.getMessage()); printHelp(); return; } for (String turntableName : turntables) { logLine("Doing turntable: " + turntableName); for (String passName : passes) { logLine("\tDoing pass: "******"\t\tDoing asset: " + as.assetName); LairTurntable tt = new LairTurntable(as, turntableName, passName); w = new Wrapper(user, view, toolset, client); logLine("\t\tFreezing all the textures"); getLatest(w, as.texGroup, over, froz); logLine("\t\tChecking out the final model scene"); getNewest(w, as.finalScene, keep, pFroz); getNewest(w, as.lr_finalScene, keep, pFroz); logLine("\t\tChecking out the shader scene."); getNewest(w, as.shdScene, keep, pFroz); logLine("\t\tChecking out the turntable scene."); getNewest(w, tt.turntableScene, keep, pFroz); logLine("\t\tChecking out the overRide scene."); getNewest(w, tt.ttCamOverMI, keep, pFroz); logLine("\t\tChecking out the options scene."); getNewest(w, tt.ttOptionsMI, keep, pFroz); logLine("\t\tChecking out the camera MI node."); getNewest(w, tt.ttCamMI, keep, pFroz); logLine("\t\tChecking out the light MI node."); getNewest(w, tt.ttLightMI, keep, pFroz); logLine("\t\tChecking out the shade MI node."); getNewest(w, tt.ttShadeMI, keep, pFroz); logLine("\t\tChecking out the geo MI node."); getNewest(w, tt.ttGeoMI, keep, pFroz); logLine("\t\tChecking out the images node."); getNewest(w, tt.ttImages, keep, pFroz); logLine("\t\tFixing the turntable node"); { NodeMod mod = client.getWorkingVersion(user, view, tt.turntableScene); if (toolset != null) mod.setToolset(toolset); client.modifyProperties(user, view, mod); } logLine("\t\tFixing the camera override node"); { NodeMod mod = client.getWorkingVersion(user, view, tt.ttCamOverMI); if (toolset != null) mod.setToolset(toolset); BaseAction act = mod.getAction(); act.setSingleParamValue("ImageWidth", 1280); act.setSingleParamValue("ImageHeight", 720); act.setSingleParamValue("AspectRatio", 1.777); act.setSingleParamValue("Aperture", 1.41732); act.setSingleParamValue("OverrideFocal", false); act.setSingleParamValue("OverrideClipping", false); mod.setAction(act); client.modifyProperties(user, view, mod); } logLine("\t\tFixing the camera node"); { NodeMod mod = client.getWorkingVersion(user, view, tt.ttCamMI); if (toolset != null) mod.setToolset(toolset); client.modifyProperties(user, view, mod); } logLine("\t\tFixing the light node"); { NodeMod mod = client.getWorkingVersion(user, view, tt.ttLightMI); if (toolset != null) mod.setToolset(toolset); client.modifyProperties(user, view, mod); } logLine("\t\tFixing the geo node"); { NodeMod mod = client.getWorkingVersion(user, view, tt.ttGeoMI); if (toolset != null) mod.setToolset(toolset); BaseAction act = mod.getAction(); act.setSingleParamValue("CustomText", true); mod.setAction(act); client.modifyProperties(user, view, mod); } logLine("\t\tFixing the shader node"); { NodeMod mod = client.getWorkingVersion(user, view, tt.ttShadeMI); if (toolset != null) mod.setToolset(toolset); BaseAction act = mod.getAction(); BaseAction act2 = LairConstants.actionMayaMiShader(); act2.setSingleParamValues(act); mod.setAction(act2); JobReqs req = mod.getJobRequirements(); req.addSelectionKey("MentalRay"); mod.setJobRequirements(req); mod.setExecutionMethod(ExecutionMethod.Parallel); mod.setBatchSize(100); client.modifyProperties(user, view, mod); } logLine("\t\tFixing the images node"); { NodeMod mod = client.getWorkingVersion(user, view, tt.ttImages); if (toolset != null) mod.setToolset(toolset); BaseAction act = mod.getAction(); act.setSingleParamValue("TexturePath", "$WORKING"); mod.setAction(act); JobReqs req = mod.getJobRequirements(); req.addSelectionKey("MentalRay"); mod.setJobRequirements(req); mod.setExecutionMethod(ExecutionMethod.Parallel); mod.setBatchSize(5); client.modifyProperties(user, view, mod); } logLine( "All Done. Remember to set your export set on the mod node " + "if you want to export a custom part of the body"); } catch (PipelineException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }