Exemple #1
0
 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);
            //}
        }
Exemple #3
0
 public void PrepareForModel(ModelMetaBase modelMetadata)
 {
     m_currentModelMeta = modelMetadata;
 }