actions.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { ActionTree } from 'vuex';
  2. import { StateInterface } from '../index';
  3. import { simulationSetupStateInterface } from './state';
  4. import nmiejs from 'src/nmiejs.js';
  5. import { useQuasar } from 'quasar';
  6. const actions: ActionTree<simulationSetupStateInterface, StateInterface> = {
  7. async loadScattnlay({ commit /*state*/ } /* context */) {
  8. const $q = useQuasar();
  9. $q.loading.show({
  10. message: 'Loading Mie calculator. Please wait...',
  11. boxClass: 'bg-grey-2 text-grey-9',
  12. spinnerColor: 'primary',
  13. });
  14. const module = await nmiejs();
  15. const nmies = {
  16. spectrum: new module.nmie(),
  17. nearField: new module.nmie(),
  18. farField: new module.nmie(),
  19. };
  20. commit('setNmies', nmies);
  21. // // Test nmiejs if working
  22. // if (state.nmies.spectrum.instance && !state.nmies.spectrum.isNmieRunning) {
  23. // commit('markNmieAsStarted')
  24. // state.nmies.spectrum.instance.ClearTarget()
  25. // const R = 100.0
  26. // const reN = 4.0
  27. // const imN = 0.01
  28. // state.nmies.spectrum.instance.AddTargetLayerReIm(R, reN, imN)
  29. // state.nmies.spectrum.instance.SetModeNmaxAndType(-1, -1)
  30. // const WL = 800
  31. // state.nmies.spectrum.instance.SetWavelength(WL)
  32. // state.nmies.spectrum.instance.RunMieCalculation()
  33. // console.log(state.nmies.spectrum.instance.GetQsca())
  34. // // outer_arc_points, radius_points, from_Rho, to_Rho,
  35. // // from_Theta, to_Theta, from_Phi, to_Phi, isIgnoreAvailableNmax
  36. // state.nmies.spectrum.instance.RunFieldCalculationPolar(2, 2,
  37. // 0.1, 1.5, 0, 3.1415, 0, 3.1415,
  38. // 0)
  39. // console.log('Field Eabs:', state.nmies.spectrum.instance.GetFieldEabs())
  40. // commit('markNmieAsFinished')
  41. // }
  42. $q.loading.hide();
  43. },
  44. };
  45. export default actions;