Skip to content

Commit

Permalink
Add ConcaveDiffractionGrating object and rotation with +/- keys
Browse files Browse the repository at this point in the history
  • Loading branch information
birdylife committed Feb 5, 2025
1 parent 43f0066 commit deadd4d
Show file tree
Hide file tree
Showing 7 changed files with 462 additions and 0 deletions.
5 changes: 5 additions & 0 deletions locales/de/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@
"description": "Ein Spiegel bestehend aus einem Kreisbogen, definiert durch drei Punkte.",
"instruction": "Ziehen oder Klicken zum Erzeugen. Die ersten 2 Punkte definieren die Länge des Bogens, der letzte die Bogenkrümmung."
},
"ConcaveDiffractionGrating": {
"title": "Konkaves Reflexionsgitter",
"description": "Ein konkaver Gitterspiegel, welcher auf ArcMirror sowie DiffractionGrating basiert",
"instruction": "Ziehen oder Klicken zum Erzeugen. Die ersten 2 Punkte definieren die Länge des Bogens, der letzte die Bogenkrümmung."
},
"ParabolicMirror": {
"title": "Parabolspiegel",
"description": "Ein parabolischer Spiegel, definiert durch drei Punkte.",
Expand Down
8 changes: 8 additions & 0 deletions src/simulator/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,10 @@
<input type="radio" class="btn-check" name="toolsradio" autocomplete="off" id="tool_ArcMirror">
<label id="tool_ArcMirror_label" class="btn shadow-none btn-primary dropdown-item" for="tool_ArcMirror" data-bs-placement="right" data-bs-offset="40,8"></label>
</li>
<li>
<input type="radio" class="btn-check" name="toolsradio" autocomplete="off" id="tool_ConcaveDiffractionGrating">
<label id="tool_ConcaveDiffractionGrating_label" class="btn shadow-none btn-primary dropdown-item" for="tool_ConcaveDiffractionGrating" data-bs-placement="right" data-bs-offset="40,8"></label>
</li>
<li>
<input type="radio" class="btn-check" name="toolsradio" autocomplete="off" id="tool_ParabolicMirror">
<label id="tool_ParabolicMirror_label" class="btn shadow-none btn-primary dropdown-item" for="tool_ParabolicMirror" data-bs-placement="right" data-bs-offset="40,8"></label>
Expand Down Expand Up @@ -758,6 +762,10 @@
<input type="radio" class="btn-check" name="toolsradio_mobile" autocomplete="off" id="tool_ArcMirror_mobile">
<label id="tool_ArcMirror_mobile_label" class="btn btn-primary dropdown-item" for="tool_ArcMirror_mobile"></label>
</li>
<li>
<input type="radio" class="btn-check" name="toolsradio_mobile" autocomplete="off" id="tool_ConcaveDiffractionGrating_mobile">
<label id="tool_ConcaveDiffractionGrating_mobile_label" class="btn btn-primary dropdown-item" for="tool_ConcaveDiffractionGrating_mobile"></label>
</li>
<li>
<input type="radio" class="btn-check" name="toolsradio_mobile" autocomplete="off" id="tool_ParabolicMirror_mobile">
<label id="tool_ParabolicMirror_mobile_label" class="btn btn-primary dropdown-item" for="tool_ParabolicMirror_mobile"></label>
Expand Down
12 changes: 12 additions & 0 deletions src/simulator/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -482,6 +482,16 @@ async function startApp() {
return false;
}

//Plus and Minus Keys for rotation
if (e.keyCode == 107 || e.keyCode == 187) { // + key for rotate clockwise
scene.objs[editor.selectedObjIndex].rotate(1);
simulator.updateSimulation(!scene.objs[editor.selectedObjIndex].constructor.isOptical, true);
}
if (e.keyCode == 109 || e.keyCode == 189) { // - key for rotate c-clockwise
scene.objs[editor.selectedObjIndex].rotate(-1);
simulator.updateSimulation(!scene.objs[editor.selectedObjIndex].constructor.isOptical, true);
}

//Arrow Keys
if (e.keyCode >= 37 && e.keyCode <= 40) {
var step = scene.snapToGrid ? scene.gridSize : 1;
Expand Down Expand Up @@ -1193,6 +1203,7 @@ function initUIText() {
setText('mirrorToolsDropdown', i18next.t('main:tools.categories.mirror'));
setText('tool_Mirror_label', i18next.t('main:tools.Mirror.title'), null, i18next.t('main:meta.parentheses', {main: i18next.t('main:tools.Mirror.description'), sub: i18next.t('main:tools.common.lineInstruction')}), 'Mirror.svg');
setText('tool_ArcMirror_label', i18next.t('main:tools.ArcMirror.title'), null, i18next.t('main:meta.parentheses', {main: i18next.t('main:tools.ArcMirror.description'), sub: i18next.t('main:tools.ArcMirror.instruction')}), 'ArcMirror.svg');
setText('tool_ConcaveDiffractionGrating_label', i18next.t('main:tools.ConcaveDiffractionGrating.title'), null, i18next.t('main:meta.parentheses', {main: i18next.t('main:tools.ConcaveDiffractionGrating.description'), sub: i18next.t('main:tools.ConcaveDiffractionGrating.instruction')}), 'ConcaveDiffractionGrating.svg');
setText('tool_ParabolicMirror_label', i18next.t('main:tools.ParabolicMirror.title'), null, i18next.t('main:meta.parentheses', {main: i18next.t('main:tools.ParabolicMirror.description'), sub: i18next.t('main:tools.ParabolicMirror.instruction')}), 'ParabolicMirror.svg');
setText('tool_CustomMirror_label', i18next.t('main:tools.CustomMirror.title'), null, i18next.t('main:meta.parentheses', {main: i18next.t('main:tools.CustomMirror.description'), sub: i18next.t('main:tools.common.lineInstruction')}), 'CustomMirror.svg');
setText('tool_IdealMirror_label', i18next.t('main:tools.IdealMirror.title'), null, i18next.t('main:meta.parentheses', {main: i18next.t('main:tools.IdealMirror.description'), sub: i18next.t('main:tools.common.lineInstruction')}), 'IdealMirror.svg');
Expand Down Expand Up @@ -1283,6 +1294,7 @@ function initUIText() {
setText('tool_AngleSource_mobile_label', i18next.t('main:tools.PointSource.title') + ' (<360\u00B0)');
setText('tool_Mirror_mobile_label', i18next.t('main:tools.Mirror.title'));
setText('tool_ArcMirror_mobile_label', i18next.t('main:tools.ArcMirror.title'));
setText('tool_ConcaveDiffractionGrating_mobile_label', i18next.t('main:tools.ConcaveDiffractionGrating.title'));
setText('tool_ParabolicMirror_mobile_label', i18next.t('main:tools.ParabolicMirror.title'));
setText('tool_CustomMirror_mobile_label', i18next.t('main:tools.CustomMirror.title'));
setText('tool_IdealMirror_mobile_label', i18next.t('main:tools.IdealMirror.title'));
Expand Down
1 change: 1 addition & 0 deletions src/simulator/js/sceneObjs.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export const PointSource = require('./sceneObjs/lightSource/PointSource.js').def
export const AngleSource = require('./sceneObjs/lightSource/AngleSource.js').default;
export const Mirror = require('./sceneObjs/mirror/Mirror.js').default;
export const ArcMirror = require('./sceneObjs/mirror/ArcMirror.js').default;
export const ConcaveDiffractionGrating = require('./sceneObjs/mirror/ConcaveDiffractionGrating.js').default;
export const ParabolicMirror = require('./sceneObjs/mirror/ParabolicMirror.js').default;
export const CustomMirror = require('./sceneObjs/mirror/CustomMirror.js').default;
export const IdealMirror = require('./sceneObjs/mirror/IdealMirror.js').default;
Expand Down
Loading

0 comments on commit deadd4d

Please sign in to comment.