Exemple #1
0
        public async Task <bool> StartXRayTracing()
        {
            RayProgressCallback rpc = (value) =>
            {
                Dispatcher.Invoke(new Action(() =>
                {
                    WaveProgress.Maximum      = value.totalWaves;
                    WaveProgress.Value        = value.currentWaves;
                    WaveProgressLabel.Content = value.currentWaves.ToString() + "/" + value.totalWaves.ToString();

                    RaysProgres.Maximum      = value.linkedLibraryTotalOutput;
                    RaysProgres.Value        = value.linkedLibraryMinorOutput;
                    RaysProgresLabel.Content = value.linkedLibraryMinorOutput.ToString() + "/" + value.linkedLibraryTotalOutput.ToString();
                }));
            };

            /*try
             * {
             *  System.IO.Directory.Delete("results/Order_0", true);
             * }
             * catch(Exception expc) { }*/
            //var config_file = System.IO.Directory.GetCurrentDirectory() + parFileName;
            await Task <int> .Factory.StartNew(() => RayTracing(1, parFileName, rpc, WaveTraced, stdOutCallback));

            return(false);
        }
Exemple #2
0
 private static extern int RayTracing(int argc, [MarshalAs(UnmanagedType.LPStr)] string argv,
                                      [MarshalAs(UnmanagedType.FunctionPtr)] RayProgressCallback callbackPointer,
                                      [MarshalAs(UnmanagedType.FunctionPtr)] WaveTracedCallback waveCallbackPointer,
                                      [MarshalAs(UnmanagedType.FunctionPtr)] StdOutCallback stdOutCallback);