//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Constructor. </summary> /// /// <param name="extractionData"> Data for the extraction. </param> public ExtractionJobGbxmodel(IExtractionData extractionData) { mColladaSettings = extractionData.Get <IColladaSettings>(); mModelExtractionData = extractionData.Get <ModelExtractionData>(); JobID = mModelExtractionData.TagFile.AbsoluteTagPath; JobName = mModelExtractionData.TagFile.TagNameWithExtension; }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Constructor. </summary> /// /// <param name="extractionData"> Data for the extraction. </param> public ExtractionJobGbxmodel(IExtractionData extractionData) { mColladaSettings = extractionData.Get<IColladaSettings>(); mModelExtractionData = extractionData.Get<ModelExtractionData>(); JobID = mModelExtractionData.TagFile.AbsoluteTagPath; JobName = mModelExtractionData.TagFile.TagNameWithExtension; }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Gets an extraction job. </summary> /// /// <exception cref="ArgumentException"> /// Thrown when one or more arguments have unsupported or illegal values. /// </exception> /// /// <param name="extension"> The files extension. </param> /// <param name="extractionData"> Information describing the extraction. </param> /// /// <returns> The extraction job. </returns> public IExtractionJob GetExtractionJob(string extension, IExtractionData extractionData) { var trimmedExtension = extension.TrimStart('.'); if (!mExtractorDictionary.ContainsKey(trimmedExtension)) { throw new ArgumentException("Attempted to get a non existant extractor job"); } return(mExtractorDictionary[trimmedExtension].mExtractorJobConstructor.Invoke(new object[] { extractionData }) as IExtractionJob); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Adds a job to the extraction queue</summary> /// /// <param name="modelFile"> The path of the model tag. </param> /// <param name="extractionData"> The extraction data to use. </param> public void AddJob(string modelFile, IExtractionData extractionData) { // Clone the extraction data, then override the model extraction data values var clonedData = extractionData.Clone() as IExtractionData; var modelExtractionData = clonedData.Get <ModelExtractionData>(); var outputFile = GetOutputFile(modelExtractionData.TagsDirectory.AbsoluteFolder, modelExtractionData.DataDirectory.AbsoluteFolder, modelFile); var tagPath = new BlamTagPath(modelExtractionData.TagsDirectory.AbsoluteFolder); tagPath.SetPath(modelFile); modelExtractionData.TagFile = tagPath; modelExtractionData.OutputFile = outputFile; // Add an extraction job to the extraction manager var modelExtractor = mExtractorFactory.GetExtractionJob(Path.GetExtension(modelFile), clonedData); mExtractionManager.Add(modelExtractor); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Gets an extraction job. </summary> /// /// <exception cref="ArgumentException"> /// Thrown when one or more arguments have unsupported or illegal values. /// </exception> /// /// <param name="extension"> The files extension. </param> /// <param name="extractionData"> Information describing the extraction. </param> /// /// <returns> The extraction job. </returns> public IExtractionJob GetExtractionJob(string extension, IExtractionData extractionData) { var trimmedExtension = extension.TrimStart('.'); if (!mExtractorDictionary.ContainsKey(trimmedExtension)) { throw new ArgumentException("Attempted to get a non existant extractor job"); } return mExtractorDictionary[trimmedExtension].mExtractorJobConstructor.Invoke(new object[] { extractionData }) as IExtractionJob; }