| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- import Rectangle from "./rectangle"
 - import Circle from "./circle"
 - import Ellipse from "./ellipse"
 - import Polyline from "./polyline"
 - import Dot from "./dot"
 - import Ray from "./ray"
 - import Line from "./line"
 - import Vector from "./vector"
 - import Utils from "./utils"
 - import { NumberControl, VectorControl, codeControls, controls } from "./control"
 - import { codeShapes } from "./index"
 - import { CodeControl } from "types"
 - 
 - const baseScope = {
 -   Dot,
 -   Circle,
 -   Ellipse,
 -   Ray,
 -   Line,
 -   Polyline,
 -   Rectangle,
 -   Vector,
 -   Utils,
 -   VectorControl,
 -   NumberControl,
 - }
 - 
 - /**
 -  * Evaluate code, collecting generated shapes in the shape set. Return the
 -  * collected shapes as an array.
 -  * @param code
 -  */
 - export function generateFromCode(code: string) {
 -   codeControls.clear()
 -   codeShapes.clear()
 -   ;(window as any).isUpdatingCode = false
 - 
 -   const scope = { ...baseScope, controls }
 - 
 -   new Function(...Object.keys(scope), `${code}`)(...Object.values(scope))
 - 
 -   const generatedShapes = Array.from(codeShapes.values()).map(
 -     (instance) => instance.shape
 -   )
 - 
 -   const generatedControls = Array.from(codeControls.values())
 - 
 -   return { shapes: generatedShapes, controls: generatedControls }
 - }
 - 
 - /**
 -  * Evaluate code, collecting generated shapes in the shape set. Return the
 -  * collected shapes as an array.
 -  * @param code
 -  */
 - export function updateFromCode(
 -   code: string,
 -   controls: Record<string, CodeControl>
 - ) {
 -   codeShapes.clear()
 -   ;(window as any).isUpdatingCode = true
 - 
 -   const scope = {
 -     ...baseScope,
 -     controls: Object.fromEntries(
 -       Object.entries(controls).map(([id, control]) => [
 -         control.label,
 -         control.value,
 -       ])
 -     ),
 -   }
 - 
 -   new Function(...Object.keys(scope), `${code}`)(...Object.values(scope))
 - 
 -   const generatedShapes = Array.from(codeShapes.values()).map(
 -     (instance) => instance.shape
 -   )
 - 
 -   return { shapes: generatedShapes }
 - }
 
 
  |