Exemple #1
0
        //DEBUG
        private void _ButtonDebugLoadMeshFromFileAndSetReference_Click(object sender, RoutedEventArgs e)
        {
            this._ButtonDebugLoadMeshFromFileAndSetReference.IsEnabled = false;
            Task t = Task.Factory.StartNew(() =>
            {
                Microsoft.Win32.OpenFileDialog dialog = new Microsoft.Win32.OpenFileDialog();
                dialog.FileName = "";
                dialog.Title    = "Load Mesh/es to set as reference";
                dialog.Filter   = "STL Mesh Files|*.stl|All Files|*.*";

                int loop = 0;
                while (true == dialog.ShowDialog())
                {
                    loop++;

                    if (loop == 1)
                    {
                        _DataManager.DebugSetReferenceCloud(new DataIntegration.PointCloud(dialog.FileName));
                        _DataManager.currentReferenceCloud.downsamplePointcloud(Config.ServerConfigManager._ServerConfigObject.serverAlgorithmConfig.downsamplingFactor);
                    }
                    else
                    {
                        DataIntegration.PointCloud pcl = new DataIntegration.PointCloud(dialog.FileName);
                        pcl.downsamplePointcloud(Config.ServerConfigManager._ServerConfigObject.serverAlgorithmConfig.downsamplingFactor);
                        double[,] transformationMatrix = new double[4, 4];
                        this.Dispatcher.Invoke(() =>
                        {
                            DebugTransformationMatrix traWin = new DebugTransformationMatrix();
                            traWin.ShowDialog();
                            transformationMatrix = traWin.transformationMatrix;
                        });
                        _DataManager.currentReferenceCloud.addPointcloudToReference(pcl,
                                                                                    transformationMatrix,
                                                                                    Config.ServerConfigManager._ServerConfigObject.serverAlgorithmConfig.ICP_perform,
                                                                                    Config.ServerConfigManager._ServerConfigObject.serverAlgorithmConfig.ICP_indis);
                    }
                }
            });

            t.ContinueWith((continuation) =>
            {
                this.Dispatcher.Invoke(() =>
                {
                    UpdateClientConnectionSatus();
                    this._DataManager_OnNewPointPicturesEvent(_DataManager.currentReferenceCloud.pictures);
                    this._ButtonSelectPlanes.IsEnabled  = true;
                    this._ButtonEuclidianScan.IsEnabled = true;
                    this._ButtonDebugLoadMeshFromFileAndSetReference.IsEnabled = true;
                });
            });
        }
Exemple #2
0
        //DEBUG
        private void _ButtonDebugLoadMeshFromFileAndScan_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.OpenFileDialog dialog = new Microsoft.Win32.OpenFileDialog();
            dialog.Title    = "Load Mesh to scan";
            dialog.FileName = "";
            dialog.Filter   = "STL Mesh Files|*.stl|All Files|*.*";

            if (true == dialog.ShowDialog())
            {
                Task t = new Task(() =>
                {
                    DataIntegration.PointCloud pcl = new DataIntegration.PointCloud(dialog.FileName);
                    pcl.downsamplePointcloud(Config.ServerConfigManager._ServerConfigObject.serverAlgorithmConfig.downsamplingFactor);
                    _DataManager._DataIntegrationManager_OnNewScanProcessEvent(pcl);
                });
                t.ContinueWith((continuation) => UpdateClientConnectionSatus());
                t.Start();
            }
        }