manim-web 0.15.1 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/a11y/ariaNarration.d.ts +70 -0
  2. package/dist/a11y/ariaNarration.d.ts.map +1 -0
  3. package/dist/a11y/captions.d.ts +71 -0
  4. package/dist/a11y/captions.d.ts.map +1 -0
  5. package/dist/a11y/reducedMotion.d.ts +68 -0
  6. package/dist/a11y/reducedMotion.d.ts.map +1 -0
  7. package/dist/core/Scene.d.ts.map +1 -1
  8. package/dist/index.d.ts +7 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -3
  11. package/dist/integrations/react.js +16 -16
  12. package/dist/integrations/vue.js +13 -13
  13. package/dist/manim-web.browser.js +2754 -1841
  14. package/dist/mobjects/graph/DiGraph.d.ts.map +1 -1
  15. package/dist/mobjects/graph/GenericGraph.d.ts +15 -0
  16. package/dist/mobjects/graph/GenericGraph.d.ts.map +1 -1
  17. package/dist/mobjects/graph/graphEdgeDecorations.d.ts +27 -0
  18. package/dist/mobjects/graph/graphEdgeDecorations.d.ts.map +1 -0
  19. package/dist/mobjects/graph/graphTypes.d.ts +8 -0
  20. package/dist/mobjects/graph/graphTypes.d.ts.map +1 -1
  21. package/dist/mobjects/graphing/ContourPlot.d.ts +77 -0
  22. package/dist/mobjects/graphing/ContourPlot.d.ts.map +1 -0
  23. package/dist/mobjects/graphing/HeatMap.d.ts +85 -0
  24. package/dist/mobjects/graphing/HeatMap.d.ts.map +1 -0
  25. package/dist/mobjects/graphing/VectorField.d.ts +53 -2
  26. package/dist/mobjects/graphing/VectorField.d.ts.map +1 -1
  27. package/dist/mobjects/graphing/colormap.d.ts +34 -0
  28. package/dist/mobjects/graphing/colormap.d.ts.map +1 -0
  29. package/dist/mobjects/graphing/index.d.ts +5 -1
  30. package/dist/mobjects/graphing/index.d.ts.map +1 -1
  31. package/dist/mobjects/graphing/marchingSquares.d.ts +26 -0
  32. package/dist/mobjects/graphing/marchingSquares.d.ts.map +1 -0
  33. package/dist/mobjects/three-d/ImplicitSurface.d.ts +122 -0
  34. package/dist/mobjects/three-d/ImplicitSurface.d.ts.map +1 -0
  35. package/dist/mobjects/three-d/index.d.ts +2 -0
  36. package/dist/mobjects/three-d/index.d.ts.map +1 -1
  37. package/dist/mobjects/three-d/marchingCubes.d.ts +47 -0
  38. package/dist/mobjects/three-d/marchingCubes.d.ts.map +1 -0
  39. package/dist/{src-CD-vS04k.js → src-BDtZsFr6.js} +2737 -1824
  40. package/dist/utils/oklab.d.ts +75 -0
  41. package/dist/utils/oklab.d.ts.map +1 -0
  42. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DiGraph.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graph/DiGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,QAAQ,EAAa,cAAc,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,OAAQ,SAAQ,YAAY;gBAC3B,OAAO,GAAE,cAAmB;IAexC;;OAEG;IACH,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAUxC;;OAEG;IACH,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAUvC;;OAEG;IACH,YAAY,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM;IAIjC;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM;IAIvB,IAAI,IAAI,OAAO;CAWzB"}
1
+ {"version":3,"file":"DiGraph.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graph/DiGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,QAAQ,EAAa,cAAc,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,OAAQ,SAAQ,YAAY;gBAC3B,OAAO,GAAE,cAAmB;IAqBxC;;OAEG;IACH,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAUxC;;OAEG;IACH,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAUvC;;OAEG;IACH,YAAY,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM;IAIjC;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM;IAIvB,IAAI,IAAI,OAAO;CAWzB"}
@@ -1,6 +1,7 @@
1
1
  import { Mobject, Vector3Tuple } from '../../core/Mobject';
2
2
  import { Dot } from '../geometry/Dot';
3
3
  import { VertexId, EdgeTuple, LayoutType, VertexStyleOptions, EdgeStyleOptions, VertexConfig, EdgeConfig, LayoutConfig, GenericGraphOptions } from './graphTypes';
4
+ import { Text } from '../text/Text';
4
5
  /**
5
6
  * GenericGraph - Base class for graph visualization
6
7
  *
@@ -20,6 +21,8 @@ export declare class GenericGraph extends Mobject {
20
21
  protected _vertexMobjects: Map<VertexId, Dot>;
21
22
  /** Map of edge key to Line/Arrow mobject */
22
23
  protected _edgeMobjects: Map<string, Mobject>;
24
+ /** Map of edge key to its weight/label Text mobject */
25
+ protected _edgeLabelMobjects: Map<string, Text>;
23
26
  /** Layout configuration */
24
27
  protected _layoutConfig: LayoutConfig;
25
28
  /** Default vertex style */
@@ -147,12 +150,24 @@ export declare class GenericGraph extends Mobject {
147
150
  * Get the Line/Arrow mobject for an edge
148
151
  */
149
152
  getEdgeMobject(source: VertexId, target: VertexId): Mobject | undefined;
153
+ /**
154
+ * Get the weight/label Text mobject for an edge, if the edge has one.
155
+ */
156
+ getEdgeLabelMobject(source: VertexId, target: VertexId): Text | undefined;
157
+ /**
158
+ * Check whether an edge is a self-loop (connects a vertex to itself).
159
+ */
160
+ isSelfLoop(source: VertexId, target: VertexId): boolean;
150
161
  /**
151
162
  * Change the layout algorithm
152
163
  * @param layout - Layout type or configuration
153
164
  * @returns this for chaining
154
165
  */
155
166
  setLayout(layout: LayoutType | LayoutConfig): this;
167
+ /**
168
+ * Remove and forget the label mobject for an edge, if any.
169
+ */
170
+ protected _removeEdgeLabel(key: string): void;
156
171
  /**
157
172
  * Get all vertex positions
158
173
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GenericGraph.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graph/GenericGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenericGraph.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graph/GenericGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { Vector3Tuple } from '../../core/Mobject';
2
+ import { Arc } from '../geometry/Arc';
3
+ import { Text } from '../text/Text';
4
+ import { EdgeConfig, EdgeStyleOptions } from './graphTypes';
5
+ /** Default gap between a straight edge and its label. */
6
+ export declare const DEFAULT_EDGE_LABEL_BUFF = 0.2;
7
+ /**
8
+ * Return the text to render on an edge, or null when there is nothing to show.
9
+ *
10
+ * An explicit `label` wins. Otherwise a numeric `weight` renders as its string.
11
+ */
12
+ export declare function edgeLabelString(cfg?: EdgeConfig): string | null;
13
+ /**
14
+ * Build the loop arc for a self-loop edge. The arc is a near-full circle above
15
+ * the vertex. For a directed graph it carries an arrow tip at its end.
16
+ */
17
+ export declare function createSelfLoopEdge(vertexCenter: Vector3Tuple, vertexRadius: number, style: EdgeStyleOptions, directed: boolean): Arc;
18
+ /** Point at which to place the label of a self-loop edge (above the loop). */
19
+ export declare function selfLoopLabelPoint(vertexCenter: Vector3Tuple, vertexRadius: number, style: EdgeStyleOptions): Vector3Tuple;
20
+ /**
21
+ * Point at which to place the label of a straight edge: the midpoint, pushed
22
+ * perpendicular to the edge by `buff` so the text clears the line.
23
+ */
24
+ export declare function straightEdgeLabelPoint(start: Vector3Tuple, end: Vector3Tuple, buff: number): Vector3Tuple;
25
+ /** Build the text mobject for an edge label (a weight or an explicit label). */
26
+ export declare function createEdgeLabel(text: string, style: EdgeStyleOptions): Text;
27
+ //# sourceMappingURL=graphEdgeDecorations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphEdgeDecorations.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graph/graphEdgeDecorations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMjE,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAW/D;AAcD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,OAAO,GAChB,GAAG,CAcL;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,gBAAgB,GACtB,YAAY,CAKd;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,GACX,YAAY,CAed;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAM3E"}
@@ -38,6 +38,14 @@ export interface EdgeStyleOptions {
38
38
  tipLength?: number;
39
39
  /** For directed graphs, tip width. Default: 0.12 */
40
40
  tipWidth?: number;
41
+ /** Radius of a self-loop arc (edge from a vertex to itself). Default: 0.3 */
42
+ selfLoopRadius?: number;
43
+ /** Font size for a weight or label rendered on the edge. Default: 24 */
44
+ labelFontSize?: number;
45
+ /** Color for a weight or label rendered on the edge. Default: edge color */
46
+ labelColor?: string;
47
+ /** Gap between a straight edge and its label. Default: 0.2 */
48
+ labelBuff?: number;
41
49
  }
42
50
  /**
43
51
  * Configuration for a single vertex
@@ -1 +1 @@
1
- {"version":3,"file":"graphTypes.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graph/graphTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,QAAQ,GACR,MAAM,GACN,cAAc,GACd,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,qCAAqC;IACrC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,6BAA6B;IAC7B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1E,sDAAsD;IACtD,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClE,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"graphTypes.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graph/graphTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { VMobject } from '../../core/VMobject';
2
+ import { Axes } from './Axes';
3
+ /** A 2D scalar field g(x, y). */
4
+ export type ContourField = (x: number, y: number) => number;
5
+ /**
6
+ * Options for creating a ContourPlot.
7
+ */
8
+ export interface ContourPlotOptions {
9
+ /** The scalar field g(x, y). Contours are the level sets g = level. */
10
+ func: ContourField;
11
+ /** The iso levels to draw. Default: [-2, -1, 0, 1, 2] */
12
+ levels?: number[];
13
+ /** X range [min, max]. Default: [-5, 5] */
14
+ xRange?: [number, number];
15
+ /** Y range [min, max]. Default: [-5, 5] */
16
+ yRange?: [number, number];
17
+ /** Grid cells per axis for the marching-squares sampling. Default: 48 */
18
+ resolution?: number;
19
+ /** Stroke color. Default: '#58c4dd' (Manim blue) */
20
+ color?: string;
21
+ /** Stroke width in pixels. Default: 2 */
22
+ strokeWidth?: number;
23
+ /** Reference axes for coordinate transformation. Optional. */
24
+ axes?: Axes;
25
+ }
26
+ /**
27
+ * ContourPlot - iso-contour lines of a 2D scalar field g(x, y).
28
+ *
29
+ * The field is sampled on a regular grid, then marching squares (see
30
+ * {@link marchingSquares}) extracts the line segments of each requested level.
31
+ * The segments are drawn as one stroked VMobject with a path break between
32
+ * them, so disjoint contours and nested loops all render. When `axes` is given,
33
+ * segment endpoints map through `axes.coordsToPoint`, matching
34
+ * {@link ImplicitFunction}.
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * // Concentric circles: g = x^2 + y^2 contoured at 1, 4, 9
39
+ * const contours = new ContourPlot({
40
+ * func: (x, y) => x * x + y * y,
41
+ * levels: [1, 4, 9],
42
+ * xRange: [-4, 4],
43
+ * yRange: [-4, 4],
44
+ * });
45
+ * ```
46
+ */
47
+ export declare class ContourPlot extends VMobject {
48
+ private _func;
49
+ private _levels;
50
+ private _xRange;
51
+ private _yRange;
52
+ private _resolution;
53
+ private _axes;
54
+ constructor(options: ContourPlotOptions);
55
+ /** Sample the field grid and return the values plus the coordinate axes. */
56
+ private _sampleGrid;
57
+ /** Collect contour segments across every requested level. */
58
+ private _contourSegments;
59
+ /** Map a field-space point to scene space through the axes, if any. */
60
+ private _toScene;
61
+ /** Convert a straight segment into four cubic-Bezier control points. */
62
+ private _segmentToBezier;
63
+ /** Build the stroked path from the contour segments. */
64
+ private _generatePoints;
65
+ /** Get the scalar field. */
66
+ getFunc(): ContourField;
67
+ /** Set the scalar field and rebuild the contours. */
68
+ setFunc(func: ContourField): this;
69
+ /** Get the contour levels. */
70
+ getLevels(): number[];
71
+ /** Set the contour levels and rebuild. */
72
+ setLevels(levels: number[]): this;
73
+ /** Set the reference axes and rebuild. */
74
+ setAxes(axes: Axes | null): this;
75
+ copy(): ContourPlot;
76
+ }
77
+ //# sourceMappingURL=ContourPlot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContourPlot.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graphing/ContourPlot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,iCAAiC;AACjC,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,IAAI,EAAE,YAAY,CAAC;IACnB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACvC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAc;gBAEf,OAAO,EAAE,kBAAkB;IA4BvC,4EAA4E;IAC5E,OAAO,CAAC,WAAW;IAoBnB,6DAA6D;IAC7D,OAAO,CAAC,gBAAgB;IASxB,uEAAuE;IACvE,OAAO,CAAC,QAAQ;IAIhB,wEAAwE;IACxE,OAAO,CAAC,gBAAgB;IAUxB,wDAAwD;IACxD,OAAO,CAAC,eAAe;IAsBvB,4BAA4B;IAC5B,OAAO,IAAI,YAAY;IAIvB,qDAAqD;IACrD,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAMjC,8BAA8B;IAC9B,SAAS,IAAI,MAAM,EAAE;IAIrB,0CAA0C;IAC1C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAMjC,0CAA0C;IAC1C,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAMvB,IAAI,IAAI,WAAW;CAc7B"}
@@ -0,0 +1,85 @@
1
+ import { Vector3Tuple } from '../../core/Mobject';
2
+ import { Mobject3D } from '../three-d/Mobject3D';
3
+ import * as THREE from 'three';
4
+ /** A 2D scalar field g(x, y). */
5
+ export type ScalarField2D = (x: number, y: number) => number;
6
+ /**
7
+ * Options for creating a HeatMap.
8
+ */
9
+ export interface HeatMapOptions {
10
+ /** The scalar field g(x, y) to visualize. */
11
+ func: ScalarField2D;
12
+ /** X range [min, max]. Default: [-5, 5] */
13
+ xRange?: [number, number];
14
+ /** Y range [min, max]. Default: [-5, 5] */
15
+ yRange?: [number, number];
16
+ /** Grid cells per axis, or [nx, ny]. Default: 64 */
17
+ resolution?: number | [number, number];
18
+ /** Value domain [min, max] mapped across the palette. Auto-computed if omitted. */
19
+ domain?: [number, number];
20
+ /** Ordered hex color stops. Default: a viridis-like palette. */
21
+ palette?: readonly string[];
22
+ /** Blend the palette in perceptually-uniform Oklab space. Default: false */
23
+ useOklab?: boolean;
24
+ /** Opacity from 0 to 1. Default: 1 */
25
+ opacity?: number;
26
+ /** Center position [x, y, z]. Default: [0, 0, 0] */
27
+ center?: Vector3Tuple;
28
+ }
29
+ /**
30
+ * HeatMap - a colored plane that encodes a 2D scalar field g(x, y).
31
+ *
32
+ * The region is sampled on a regular grid and rendered as a flat mesh in the
33
+ * z = 0 plane. Each grid vertex is colored by its field value through a color
34
+ * map (see `colormap`), and the GPU interpolates the color across each cell,
35
+ * so the plane shows a smooth heat gradient. The value domain is taken from the
36
+ * sampled minimum and maximum unless an explicit `domain` is given.
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // A 2D Gaussian bump
41
+ * const heat = new HeatMap({
42
+ * func: (x, y) => Math.exp(-(x * x + y * y) / 4),
43
+ * xRange: [-3, 3],
44
+ * yRange: [-3, 3],
45
+ * domain: [0, 1],
46
+ * });
47
+ * ```
48
+ */
49
+ export declare class HeatMap extends Mobject3D {
50
+ private _func;
51
+ private _xRange;
52
+ private _yRange;
53
+ private _nx;
54
+ private _ny;
55
+ private _palette;
56
+ private _useOklab;
57
+ private _centerPoint;
58
+ private _domain;
59
+ private _domainExplicit;
60
+ constructor(options: HeatMapOptions);
61
+ /** The x coordinate of grid column `ix`. */
62
+ private _coordX;
63
+ /** The y coordinate of grid row `iy`. */
64
+ private _coordY;
65
+ /** Scan the grid for the value range when no explicit domain is given. */
66
+ private _autoDomain;
67
+ /** Build the indexed plane geometry with a per-vertex color attribute. */
68
+ private _buildGeometry;
69
+ protected _createThreeObject(): THREE.Object3D;
70
+ protected _syncMaterialToThree(): void;
71
+ /** Rebuild the geometry after the field, domain, or palette changes. */
72
+ private _updateGeometry;
73
+ /** The color (hex) that the map assigns to the field at (x, y). */
74
+ colorAt(x: number, y: number): string;
75
+ /** The value domain [min, max] mapped across the palette. */
76
+ getDomain(): [number, number];
77
+ /** Set the value domain and rebuild. */
78
+ setDomain(domain: [number, number]): this;
79
+ /** Get the scalar field. */
80
+ getFunc(): ScalarField2D;
81
+ /** Set the scalar field and rebuild. Recomputes an auto domain if in use. */
82
+ setFunc(func: ScalarField2D): this;
83
+ copy(): HeatMap;
84
+ }
85
+ //# sourceMappingURL=HeatMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeatMap.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graphing/HeatMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,iCAAiC;AACjC,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,mFAAmF;IACnF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,gEAAgE;IAChE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,OAAQ,SAAQ,SAAS;IACpC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,eAAe,CAAU;gBAErB,OAAO,EAAE,cAAc;IAgCnC,4CAA4C;IAC5C,OAAO,CAAC,OAAO;IAKf,yCAAyC;IACzC,OAAO,CAAC,OAAO;IAKf,0EAA0E;IAC1E,OAAO,CAAC,WAAW;IAoBnB,0EAA0E;IAC1E,OAAO,CAAC,cAAc;IA2CtB,SAAS,CAAC,kBAAkB,IAAI,KAAK,CAAC,QAAQ;cAU3B,oBAAoB,IAAI,IAAI;IAY/C,wEAAwE;IACxE,OAAO,CAAC,eAAe;IASvB,mEAAmE;IACnE,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAKrC,6DAA6D;IAC7D,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAI7B,wCAAwC;IACxC,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAOzC,4BAA4B;IAC5B,OAAO,IAAI,aAAa;IAIxB,6EAA6E;IAC7E,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAOzB,IAAI,IAAI,OAAO;CAezB"}
@@ -7,6 +7,30 @@ export type VectorFunction = (x: number, y: number) => [number, number];
7
7
  * Type for color function that maps magnitude (or x, y, vx, vy) to a color string
8
8
  */
9
9
  export type ColorFunction = (magnitude: number, x: number, y: number, vx: number, vy: number) => string;
10
+ /**
11
+ * Numerical scheme used to trace a streamline through the field.
12
+ *
13
+ * - `'euler'`: first-order explicit Euler. The historical default. Fast, but it
14
+ * drifts on curved flows (a rotational field spirals outward).
15
+ * - `'rk4'`: classical fourth-order Runge-Kutta. Four evaluations per step and
16
+ * far smaller truncation error, so a closed orbit stays closed.
17
+ */
18
+ export type Integrator = 'euler' | 'rk4';
19
+ /**
20
+ * Advance one integration step of dX/dt = func(X) from (x, y) over dt.
21
+ *
22
+ * This is the single source of truth for both schemes, so {@link StreamLines}
23
+ * and direct callers trace identical paths. The `'euler'` branch reproduces the
24
+ * legacy `x + dt * v` update exactly, so the default output never changes.
25
+ *
26
+ * @param func - The field, mapping (x, y) to [vx, vy]
27
+ * @param x - Current X coordinate
28
+ * @param y - Current Y coordinate
29
+ * @param dt - Step size (virtual time)
30
+ * @param integrator - Scheme to use. Default: 'euler'
31
+ * @returns The next [x, y] position
32
+ */
33
+ export declare function stepVectorField(func: VectorFunction, x: number, y: number, dt: number, integrator?: Integrator): [number, number];
10
34
  /**
11
35
  * Base options for all vector field types
12
36
  */
@@ -71,6 +95,11 @@ export interface StreamLinesOptions extends VectorFieldBaseOptions {
71
95
  padding?: number;
72
96
  /** Number of lines per grid point. Default: 1 */
73
97
  nRepeats?: number;
98
+ /**
99
+ * Numerical scheme for tracing streamlines. Default: 'euler' (unchanged
100
+ * behavior). Set to 'rk4' for a far more accurate trace on curved flows.
101
+ */
102
+ integrator?: Integrator;
74
103
  }
75
104
  /**
76
105
  * VectorField - Base class for vector field visualizations
@@ -234,6 +263,12 @@ export interface ContinuousMotionOptions {
234
263
  timeWidth?: number;
235
264
  /** Rate function for opacity within the window. Default: linear */
236
265
  rateFunc?: (t: number) => number;
266
+ /**
267
+ * Seed for the per-line start-phase randomization. When set, the flow is
268
+ * fully reproducible (a seeded mulberry32 PRNG replaces Math.random). When
269
+ * omitted, phases stay nondeterministic, as before.
270
+ */
271
+ seed?: number;
237
272
  }
238
273
  /**
239
274
  * StreamLines - Streamline visualization for vector fields
@@ -278,6 +313,7 @@ export declare class StreamLines extends VectorField {
278
313
  private _noiseFactor;
279
314
  private _padding;
280
315
  private _nRepeats;
316
+ private _integrator;
281
317
  private _lineDurations;
282
318
  /** Raw integrated points for each streamline (populated during generation) */
283
319
  private _streamlineData;
@@ -299,8 +335,11 @@ export declare class StreamLines extends VectorField {
299
335
  */
300
336
  private _getStartPoints;
301
337
  /**
302
- * Integrate a streamline from a starting point using simple Euler integration.
303
- * Matches Python manim behavior: magnitude directly scales step size.
338
+ * Integrate a streamline from a starting point.
339
+ *
340
+ * Uses the configured integrator (see {@link Integrator}). The default
341
+ * `'euler'` reproduces Python manim behavior: magnitude directly scales step
342
+ * size. `'rk4'` traces the same field with fourth-order accuracy.
304
343
  * @param startX - Starting X coordinate
305
344
  * @param startY - Starting Y coordinate
306
345
  * @returns Array of points along the streamline
@@ -375,6 +414,18 @@ export declare class StreamLines extends VectorField {
375
414
  * bezier points and opacity.
376
415
  */
377
416
  endAnimation(): this;
417
+ /**
418
+ * Current per-line flow phases (seconds), as a copy.
419
+ *
420
+ * Empty before {@link startAnimation} and after {@link endAnimation}. With a
421
+ * `seed`, the phases right after {@link startAnimation} are reproducible,
422
+ * which makes the flow testable.
423
+ */
424
+ getFlowPhases(): number[];
425
+ /**
426
+ * The numerical scheme used to trace the streamlines.
427
+ */
428
+ getIntegrator(): Integrator;
378
429
  copy(): StreamLines;
379
430
  }
380
431
  //# sourceMappingURL=VectorField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VectorField.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graphing/VectorField.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VectorField.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graphing/VectorField.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Perceptual color maps for scalar-field visualization.
3
+ *
4
+ * A color map is an ordered list of hex color stops spread evenly over the
5
+ * unit interval. {@link sampleColormap} reads a color for any `t` in 0..1 by
6
+ * blending the two surrounding stops. Blending runs in sRGB by default, or in
7
+ * perceptually-uniform Oklab (see `utils/oklab`) when `useOklab` is set, which
8
+ * keeps the midpoint of a palette bright instead of muddy.
9
+ */
10
+ /** A built-in viridis-like palette: dark blue through green to yellow. */
11
+ export declare const VIRIDIS: readonly string[];
12
+ /** A built-in warm palette: black through red and orange to white. */
13
+ export declare const INFERNO: readonly string[];
14
+ /** A simple blue-white-red diverging palette, centered on white. */
15
+ export declare const COOLWARM: readonly string[];
16
+ /**
17
+ * Sample a color map at position `t` in 0..1.
18
+ *
19
+ * `t` is clamped to 0..1. A palette with one stop returns that stop. Otherwise
20
+ * `t` is scaled across the stops and the two surrounding stops are blended.
21
+ *
22
+ * @param palette Ordered hex color stops. Must hold at least one color.
23
+ * @param t Position along the palette, clamped to 0..1.
24
+ * @param useOklab Blend in Oklab space for a perceptually-uniform result.
25
+ */
26
+ export declare function sampleColormap(palette: readonly string[], t: number, useOklab?: boolean): string;
27
+ /**
28
+ * Map a scalar `value` in the domain `[min, max]` to a color map color.
29
+ *
30
+ * The value is normalized to 0..1 across the domain, then clamped. A zero-width
31
+ * domain (`min === max`) maps every value to the first stop.
32
+ */
33
+ export declare function valueToColor(value: number, min: number, max: number, palette: readonly string[], useOklab?: boolean): string;
34
+ //# sourceMappingURL=colormap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colormap.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graphing/colormap.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,0EAA0E;AAC1E,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAOpC,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAOpC,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,QAAQ,EAAE,SAAS,MAAM,EAAsC,CAAC;AAE7E;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,CAc9F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,QAAQ,UAAQ,GACf,MAAM,CAIR"}
@@ -12,10 +12,14 @@ export { type VerticalLinesToGraphOptions, type SecantSlopeGroupOptions } from '
12
12
  export { NumberPlane, type NumberPlaneOptions, type BackgroundLineStyle } from './NumberPlane';
13
13
  export { FunctionGraph, type FunctionGraphOptions } from './FunctionGraph';
14
14
  export { ImplicitFunction, type ImplicitFunctionOptions } from './ImplicitFunction';
15
+ export { sampleColormap, valueToColor, VIRIDIS, INFERNO, COOLWARM } from './colormap';
16
+ export { marchingSquares, type ContourSegment } from './marchingSquares';
17
+ export { HeatMap, type HeatMapOptions, type ScalarField2D } from './HeatMap';
18
+ export { ContourPlot, type ContourPlotOptions, type ContourField } from './ContourPlot';
15
19
  export { ParametricFunction, type ParametricFunctionOptions } from './ParametricFunction';
16
20
  export { VectorFieldVector, type VectorFieldVectorOptions } from './Vector';
17
21
  export { ComplexPlane, type ComplexPlaneOptions, type Complex } from './ComplexPlane';
18
22
  export { PolarPlane, type PolarPlaneOptions } from './ComplexPlane';
19
23
  export { BarChart, type BarChartOptions } from './BarChart';
20
- export { VectorField, ArrowVectorField, StreamLines, type VectorFunction, type ColorFunction, type VectorFieldBaseOptions, type ArrowVectorFieldOptions, type StreamLinesOptions, type ContinuousMotionOptions, } from './VectorField';
24
+ export { VectorField, ArrowVectorField, StreamLines, stepVectorField, type Integrator, type VectorFunction, type ColorFunction, type VectorFieldBaseOptions, type ArrowVectorFieldOptions, type StreamLinesOptions, type ContinuousMotionOptions, } from './VectorField';
21
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graphing/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGtF,OAAO,EAAE,KAAK,2BAA2B,EAAE,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAGjG,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAG/F,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG3E,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGpF,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAG1F,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGtF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAG5D,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graphing/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGtF,OAAO,EAAE,KAAK,2BAA2B,EAAE,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAGjG,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAG/F,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG3E,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGpF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtF,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAGxF,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAG1F,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGtF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAG5D,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,eAAe,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Marching-squares iso-contour extraction for a 2D scalar field.
3
+ *
4
+ * The algorithm walks a regular grid of sampled values and emits the line
5
+ * segments of the iso-contour `value = iso` within each cell. Unlike the
6
+ * adaptive, zero-level marching squares embedded in {@link ImplicitFunction},
7
+ * this is a fixed-grid routine that takes an arbitrary iso level, so one grid
8
+ * can be contoured at many levels. {@link ContourPlot} uses it for that.
9
+ *
10
+ * A cell is classified by whether each of its four corners is above `iso`.
11
+ * The 16 cases map to zero, one, or two segments. Saddle cases (5 and 10) are
12
+ * resolved with the average of the four corners, the common asymptotic decider.
13
+ */
14
+ /** A line segment of an iso-contour, in field coordinates. */
15
+ export type ContourSegment = [[number, number], [number, number]];
16
+ /**
17
+ * Extract the iso-contour segments of a sampled scalar field.
18
+ *
19
+ * @param values Grid values indexed `values[iy][ix]`, dimensions
20
+ * `(ys.length) x (xs.length)`.
21
+ * @param xs The x coordinate of each grid column, length `nx + 1`.
22
+ * @param ys The y coordinate of each grid row, length `ny + 1`.
23
+ * @param iso The contour level. A corner is "set" when its value is above iso.
24
+ */
25
+ export declare function marchingSquares(values: number[][], xs: number[], ys: number[], iso?: number): ContourSegment[];
26
+ //# sourceMappingURL=marchingSquares.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marchingSquares.d.ts","sourceRoot":"","sources":["../../../src/mobjects/graphing/marchingSquares.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,8DAA8D;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AA8ElE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,EAAE,EAAE,MAAM,EAAE,EACZ,EAAE,EAAE,MAAM,EAAE,EACZ,GAAG,SAAI,GACN,cAAc,EAAE,CA6ClB"}