Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .claude/hooks/session-start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash
set -euo pipefail

if [ "${CLAUDE_CODE_REMOTE:-}" != "true" ]; then
exit 0
fi

cd "${CLAUDE_PROJECT_DIR:-$(git rev-parse --show-toplevel)}"

npm install
14 changes: 14 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/session-start.sh"
}
]
}
]
}
}
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ tsconfig.tsbuildinfo
*.sln
*.sw?

# Claude Code
.claude/
# Claude Code - local settings excluded, hooks tracked
.claude/settings.local.json

# Optics simulation template
optics-template/
2 changes: 1 addition & 1 deletion src/common/model/blockers/LineBlocker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
*/

import { BaseSegmentElement } from "../optics/BaseSegmentElement.js";
import { type Point } from "../optics/Geometry.js";
import type { Point } from "../optics/Geometry.js";
import type {
ElementCategory,
IntersectionResult,
Expand Down
6 changes: 1 addition & 5 deletions src/common/model/light-sources/ArcLightSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,7 @@

import type { Point } from "../optics/Geometry.js";
import { normalize, point } from "../optics/Geometry.js";
import {
BRIGHTNESS_CONTINUOUS_THRESHOLD,
POLARIZATION_SPLIT,
RAY_DENSITY_SCALE,
} from "../optics/OpticsConstants.js";
import { BRIGHTNESS_CONTINUOUS_THRESHOLD, POLARIZATION_SPLIT, RAY_DENSITY_SCALE } from "../optics/OpticsConstants.js";
import type { SimulationRay, ViewMode } from "../optics/OpticsTypes.js";
import { BaseLightSource } from "./BaseLightSource.js";
import { GREEN_WAVELENGTH } from "./LightSourceConstants.js";
Expand Down
5 changes: 1 addition & 4 deletions src/common/model/light-sources/BaseLightSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@
*/

import { BaseElement } from "../optics/BaseElement.js";
import {
BRIGHTNESS_CONTINUOUS_THRESHOLD,
BRIGHTNESS_NORMALIZE,
} from "../optics/OpticsConstants.js";
import { BRIGHTNESS_CONTINUOUS_THRESHOLD, BRIGHTNESS_NORMALIZE } from "../optics/OpticsConstants.js";
import type { ElementCategory } from "../optics/OpticsTypes.js";
import { GREEN_WAVELENGTH } from "./LightSourceConstants.js";

Expand Down
6 changes: 1 addition & 5 deletions src/common/model/light-sources/PointSourceElement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,7 @@

import type { Point } from "../optics/Geometry.js";
import { point } from "../optics/Geometry.js";
import {
BRIGHTNESS_CONTINUOUS_THRESHOLD,
POLARIZATION_SPLIT,
RAY_DENSITY_SCALE,
} from "../optics/OpticsConstants.js";
import { BRIGHTNESS_CONTINUOUS_THRESHOLD, POLARIZATION_SPLIT, RAY_DENSITY_SCALE } from "../optics/OpticsConstants.js";
import type { SimulationRay, ViewMode } from "../optics/OpticsTypes.js";
import { BaseLightSource } from "./BaseLightSource.js";
import { GREEN_WAVELENGTH } from "./LightSourceConstants.js";
Expand Down
5 changes: 2 additions & 3 deletions src/common/view/EditContainerNode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
* SimScreenView can supply the callback after selection is triggered.
*/

import { type Property, type TReadOnlyProperty } from "scenerystack/axon";
import { type Bounds2 } from "scenerystack/dot";
import type { Property, TReadOnlyProperty } from "scenerystack/axon";
import type { Bounds2 } from "scenerystack/dot";
import { HBox, Node, Text, VBox } from "scenerystack/scenery";
import { TrashButton } from "scenerystack/scenery-phet";
import { FlatAppearanceStrategy, Panel } from "scenerystack/sun";
Expand Down Expand Up @@ -210,7 +210,6 @@ export class EditContainerNode extends Node {
this._currentPanel.centerX = visibleBounds.centerX;
this._currentPanel.bottom = visibleBounds.maxY - PANEL_BOTTOM_MARGIN;
}

}

opticsLab.register("EditContainerNode", EditContainerNode);
2 changes: 1 addition & 1 deletion src/common/view/EditControlFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

import { NumberProperty, type ReadOnlyProperty } from "scenerystack/axon";
import { Dimension2, Range } from "scenerystack/dot";
import { Node } from "scenerystack/scenery";
import type { Node } from "scenerystack/scenery";
import { NumberControl, WavelengthNumberControl } from "scenerystack/scenery-phet";
import { Tandem } from "scenerystack/tandem";
import { StringManager } from "../../i18n/StringManager.js";
Expand Down
2 changes: 1 addition & 1 deletion src/common/view/glass/GlassView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import { Shape } from "scenerystack/kite";
import type { ModelViewTransform2 } from "scenerystack/phetcommon";
import { Circle, Node, Path, type RichDragListener } from "scenerystack/scenery";
import { BaseOpticalElementView } from "../BaseOpticalElementView.js";
import OpticsLabColors from "../../../OpticsLabColors.js";
import {
GLASS_STROKE_WIDTH,
Expand All @@ -32,6 +31,7 @@ import {
point,
segment,
} from "../../model/optics/Geometry.js";
import { BaseOpticalElementView } from "../BaseOpticalElementView.js";
import { attachEndpointDrag, attachTranslationDrag, createHandle } from "../ViewHelpers.js";

export class GlassView extends BaseOpticalElementView {
Expand Down
1 change: 0 additions & 1 deletion src/common/view/glass/SphericalLensView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ const CORNER_BOTTOM_LEFT = 3; // path[4]
const ROTATION_CORNER = CORNER_TOP_RIGHT;

export class SphericalLensView extends GlassView {

private readonly focalFront: Path;
private readonly focalBack: Path;

Expand Down
2 changes: 1 addition & 1 deletion src/common/view/mirrors/ArcMirrorView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ import {
} from "../../../OpticsLabConstants.js";
import opticsLab from "../../../OpticsLabNamespace.js";
import type { ArcMirror } from "../../model/mirrors/ArcMirror.js";
import { BaseOpticalElementView } from "../BaseOpticalElementView.js";
import { circumcenter, type Point, sampleArcPoints } from "../../model/optics/Geometry.js";
import { BaseOpticalElementView } from "../BaseOpticalElementView.js";
import {
attachCurvatureHandleDrag,
attachEndpointDrag,
Expand Down
2 changes: 1 addition & 1 deletion src/common/view/mirrors/ParabolicMirrorView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ import {
} from "../../../OpticsLabConstants.js";
import opticsLab from "../../../OpticsLabNamespace.js";
import type { ParabolicMirror } from "../../model/mirrors/ParabolicMirror.js";
import { BaseOpticalElementView } from "../BaseOpticalElementView.js";
import type { Point } from "../../model/optics/Geometry.js";
import { BaseOpticalElementView } from "../BaseOpticalElementView.js";
import {
attachCurvatureHandleDrag,
attachEndpointDrag,
Expand Down
Loading