Ejemplo n.º 1
0
        private void checkIfSimilarToBtn_Click(object sender, EventArgs e)
        {
            if (currentlyLoadedModel == null)
            {
                MessageBox.Show("Please load a model first", "Embedded Data", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            StringBuilder filterStr = new StringBuilder();
            string        allFilter = "All Supported Formats|";

            foreach (KeyValuePair <string, ModelInstantationHelper> kvp in modelImporters)
            {
                filterStr.Append("|" + kvp.Value.ModelInfo.TypeName + "|*." + kvp.Key);
                allFilter += "*." + kvp.Key + ";";
            }
            allFilter = allFilter.Substring(0, allFilter.Length - 1);

            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = allFilter + filterStr.ToString();
            if (ofd.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            ModelInstantationHelper mih = modelImporters[Path.GetExtension(ofd.FileName).Substring(1)];
            Model imported = mih.ModelImporter.DoImportModel(ofd.FileName);

            if (imported == null)
            {
                return;
            }

            WaveformID wave     = currentlyLoadedModel.GetWaveID();
            WaveformID testWave = imported.GetWaveID();

            double similarity = wave.CompareTo(testWave);

            string similarityString = "NOT Similar";

            if (similarity == 0.0)
            {
                similarityString = "Identical";
            }
            else if (similarity < 10.0)
            {
                similarityString = "Almost identical";
            }
            else if (similarity < 500.0)
            {
                similarityString = "Very similar";
            }
            else if (similarity < 1500.0)
            {
                similarityString = "Similar";
            }

            MessageBox.Show("Models are " + similarityString + "\n\nDifference index = " + similarity);
        }
Ejemplo n.º 2
0
        private void saveModelBtn_Click(object sender, EventArgs e)
        {
            StringBuilder filterStr = new StringBuilder();

            foreach (KeyValuePair <string, ModelInstantationHelper> kvp in modelImporters)
            {
                filterStr.Append("|" + kvp.Value.ModelInfo.TypeName + " (*." + kvp.Key + ")|*." + kvp.Key);
            }

            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter   = filterStr.ToString().Substring(1);
            sfd.FileName = currentlyLoadedModel.FilePath;

            if (sfd.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            ModelInstantationHelper mih = modelImporters[Path.GetExtension(sfd.FileName).Substring(1)];

            mih.ModelImporter.DoSaveModel(sfd.FileName, currentlyLoadedModel);
        }
Ejemplo n.º 3
0
        private void loadModelBtn_Click(object sender, EventArgs e)
        {
            StringBuilder filterStr = new StringBuilder();
            string        allFilter = "All Supported Formats|";

            foreach (KeyValuePair <string, ModelInstantationHelper> kvp in modelImporters)
            {
                filterStr.Append("|" + kvp.Value.ModelInfo.TypeName + "|*." + kvp.Key);
                allFilter += "*." + kvp.Key + ";";
            }
            allFilter = allFilter.Substring(0, allFilter.Length - 1);

            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = allFilter + filterStr.ToString();
            if (ofd.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            ModelInstantationHelper mih = modelImporters[Path.GetExtension(ofd.FileName).Substring(1)];
            Model imported = mih.ModelImporter.DoImportModel(ofd.FileName);

            if (imported == null)
            {
                return;
            }

            if (currentlyLoadedModel != null)
            {
                currentlyLoadedModel.Dispose();
            }

            WaveformID lastWave = currentlyLoadedModel != null?currentlyLoadedModel.GetWaveID() : null;

            currentlyLoadedModel        = imported;
            propertyGrid.SelectedObject = new DictionaryPropertyGridAdapter(currentlyLoadedModel.Metadata);
            dmwglControl.UpdateMatrices();

            WaveformID wave = currentlyLoadedModel.GetWaveID();

            waveformChart.Series[0].Points.Clear();
            waveformChart.Series[1].Points.Clear();
            waveformChart.Series[2].Points.Clear();
            for (int i = 0; i < wave.XWave.Length; ++i)
            {
                waveformChart.Series[0].Points.Add(wave.XWave[i]);
                waveformChart.Series[1].Points.Add(wave.YWave[i]);
                waveformChart.Series[2].Points.Add(wave.ZWave[i]);
            }

            if (lastWave != null)
            {
                double similarity = wave.CompareTo(lastWave);

                string similarityString = "NOT Similar";
                if (similarity < 1.0)
                {
                    similarityString = "Identical";
                }
                else if (similarity < 10.0)
                {
                    similarityString = "Almost identical";
                }
                else if (similarity < 500.0)
                {
                    similarityString = "Very similar";
                }
                else if (similarity < 1500.0)
                {
                    similarityString = "Similar";
                }

                MessageBox.Show("Models are " + similarityString + "\n\nDifference index = " + similarity);
            }
        }