public void VisualizeModel(Stream model, ModelMetaBase modelMeta, Stream materialLibrary, Stream[] materialFiles) { PrepareForModel(modelMeta); AcceptMaterialLib(materialLibrary); for (int i = 0; i < materialFiles.Length; ++i) { PrepareForMaterialFile(modelMeta.MaterialFileIds[i]); AcceptMaterialFile(materialFiles[i]); } VisualizeModel(model); }
public void Visualize(Stream model, ModelFormat type) { if (!model.CanSeek) { throw new ArgumentException("model stream cannot be repositioned"); } var modelMeta = new ModelMetaBase(); switch (type) { case ModelFormat.OBJ: modelMeta.ModelType = ModelDataType.OBJ; break; case ModelFormat.STL: modelMeta.ModelType = ModelDataType.STL; break; case ModelFormat.ThreeDS: modelMeta.ModelType = ModelDataType.ThreeDS; break; } ; var modelCopy = new MemoryStream(500 * 1024 * 1024); model.CopyTo(modelCopy); model.Position = 0; Parallel.ForEach(m_registractionHost.Visualizers, visualizer => { modelCopy.Position = 0; visualizer.PrepareForModel(modelMeta); visualizer.VisualizeModel(modelCopy); }); //foreach(var visualizer in m_registractionHost.Visualizers) //{ // model.Position = 0; // visualizer.PrepareForModel(modelMeta); // visualizer.VisualizeModel(model); //} }
public void PrepareForModel(ModelMetaBase modelMetadata) { m_currentModelMeta = modelMetadata; }