!W:      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None  4HV 0      Safe%7g  codeworld-apiAn infinite list of colors.-  !"#$%&' Safe codeworld-api"(AffineTransformation a b c d e f)+ represents an affine transformation matrix a c e b d f 0 0 1 References:  Shttps://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/transform Jhttps://en.wikipedia.org/wiki/Transformation_matrix#Affine_transformations codeworld-apiA , if already chosen. !"#$%&' Noned( None7qA80 codeworld-apiPlain letters with no style1 codeworld-api(Heavy, thick lettering used for emphasis2 codeworld-api/Slanted script-like lettering used for emphasis3 codeworld-apiVA design, diagram, or drawing that can be displayed and seen. In technical terms, a picture is an assignment of a color to every point of the coordinate plane. CodeWorld contains functions to create pictures from simple geometry primitives, to transform existing pictures, and to combine simpler pictures into more complex compositions.bUltimately, a picture can be drawn on the screen using one of the CodeWorld entry points such as  drawingOf.4 codeworld-apiA two-dimensional vector5 codeworld-apiA point in two dimensions. A point is written with the x coordinate first, and the y coordinate second. For example, (3, -2) is the point with x coordinate 3 a y coordinate -2.6 codeworld-api,Moves a given point by given x and y offsetstranslatedPoint 1 2 (10, 10) (11.0, 12.0) translatedPoint (-1) (-2) (0, 0) (-1.0, -2.0)7 codeworld-api0Rotates a given point by given angle, in radiansrotatedPoint 45 (10, 0)(7.071, 7.071)8 codeworld-apiReflects a given point across a line through the origin at this angle, in radians. For example, an angle of 0 reflects the point vertically across the x axis, while an angle of pi / 24 reflects the point horizontally across the y axis.9 codeworld-apitScales a given point by given x and y scaling factor. Scaling by a negative factor also reflects across that axis.scaledPoint 2 3 (10, 10)(20, 30): codeworld-apiwDilates a given point by given uniform scaling factor. Dilating by a negative factor also reflects across the origin.dilatedPoint 2 (10, 10)(20, 20); codeworld-apiThe length of the given vector.vectorLength (10, 10)14.14< codeworld-apiQThe counter-clockwise angle, in radians, that a given vector make with the X-axisvectorDirection (1,0)0.0vectorDirection (1,1)0.7853981633974483vectorDirection (0,1)1.5707963267948966= codeworld-apiThe sum of two vectors> codeworld-apiThe difference of two vectors? codeworld-api3Scales a given vector by a given scalar multiplier.scaledPoint 2 (10, 10)(20, 20)@ codeworld-api2Rotates a given vector by a given angle in radiansrotatedVector pi (1.0, 0.0)(-1.0, 1.2246467991473532e-16)!rotatedVector (pi / 2) (1.0, 0.0)(6.123233995736766e-17, 1.0)A codeworld-apiThe dot product of two vectorsB codeworld-apiA blank pictureC codeworld-api@A thin sequence of line segments, with these points as endpointsD codeworld-api@A thin sequence of line segments, with these points as endpointsE codeworld-apiFA thick sequence of line segments, with given line width and endpointsF codeworld-apiFA thick sequence of line segments, with given line width and endpointsG codeworld-api,A thin polygon with these points as verticesH codeworld-apiBA thick polygon with this line width and these points as verticesI codeworld-api-A solid polygon with these points as verticesJ codeworld-api,A smooth curve passing through these points.K codeworld-apiHA thick smooth curve with this line width, passing through these points.L codeworld-api3A smooth closed curve passing through these points.M codeworld-apiOA thick smooth closed curve with this line width, passing through these points.N codeworld-api9A solid smooth closed curve passing through these points.O codeworld-api,A thin rectangle, with this width and heightP codeworld-api-A solid rectangle, with this width and heightQ codeworld-api=A thick rectangle, with this line width, and width and heightR codeworld-apiA thin circle, with this radiusS codeworld-api/A thick circle, with this line width and radiusT codeworld-apiAA thin arc, starting and ending at these angles, with this radiusAngles are in radians.U codeworld-apiYA thick arc with this line width, starting and ending at these angles, with this radius.Angles are in radians.V codeworld-api A solid circle, with this radiusW codeworld-apieA solid sector of a circle (i.e., a pie slice) starting and ending at these angles, with this radiusAngles are in radians.X codeworld-apiA rendering of text characters.Y codeworld-apiA rendering of text characters.Z codeworld-apiIA rendering of text characters, with a specific choice of font and style.[ codeworld-apiYA rendering of text characters onto a Picture, with a specific choice of font and style.\ codeworld-api'A picture drawn entirely in this color.] codeworld-api(A picture drawn entirely in this colour.^ codeworld-api/A picture drawn translated in these directions._ codeworld-apizA picture scaled by these factors in the x and y directions. Scaling by a negative factoralso reflects across that axis.` codeworld-apiA picture scaled uniformly in all directions by this scale factor. Dilating by a negative factor also reflects across the origin.a codeworld-api1A picture rotated by this angle about the origin.Angles are in radians.b codeworld-apiA picture reflected across a line through the origin at this angle, in radians. For example, an angle of 0 reflects the picture vertically across the x axis, while an angle of pi / 26 reflects the picture horizontally across the y axis.c codeworld-apiNA picture clipped to a rectangle around the origin with this width and height.e codeworld-apiBinary composition of pictures.f codeworld-apibA coordinate plane. Adding this to your pictures can help you measure distances more accurately. Example: D main = drawingOf (myPicture <> coordinatePlane) myPicture = ... g codeworld-apiThe CodeWorld logo.h codeworld-apiAn image from a standard image format. The image can be any universally supported format, including SVG, PNG, JPG, etc. SVG should be preferred, as it behaves better with transformations.h codeworld-api(Name for the picture, used for debugging codeworld-api"Data-scheme URI for the image data codeworld-api Width, in CodeWorld screen units codeworld-api!Height, in CodeWorld screen unitse(.-,+*)/2103)*+,-./0123456789:;<=>?@ABCDEFGHI456789:;<=>?@ABCDEFGHIJKLMNJOPQRSTUVWXYZ[\]^_`abcdefghKLe0Nones7:ijklmnopqrstuvwxyz{|}~:ijklmnopqrstuvwxyz{|}~Noneu=hh NonegR codeworld-apiAn event initiated by the user.bValues of this type represent events that the user triggers when using an interactive program.Key events describe the key as M#. Most keys are represented by a single character text string, with the capital letter or other symbol from the key. Keys that don't correspond to a single character use longer names from the following list. Keep in mind that not all of these keys appear on all keyboards..Up, Down, Left, and Right for the cursor keys.F1, F2, etc. for function keys. BackspaceTabEnterShiftCtrlAltEscPageUpPageDownEndHomeInsertDeleteCapsLockNumLock ScrollLock PrintScreenBreak SeparatorCancelHelpNone "#.17=>?@ACHMNSVX  codeworld-api;Type class for the builder monad of a CodeWorld/Reflex app. codeworld-apiEGets an Event of key presses. The event value is a logical key name. codeworld-apiEGets an Event of key presses. The event value is a logical key name. codeworld-apiBGets an Event of text entered. The event value is the typed text. codeworld-apiPGets an event of pointer clicks. The event value is the location of the click. codeworld-api)Gets the Dynamic position of the pointer. codeworld-api:Gets a Dynamic indicator whether the pointer is held down. codeworld-api-Gets an Event indicating the passage of time. codeworld-api8Emits a given Dynamic picture to be drawn to the screen.N codeworld-api Applies the affine transformation from the DrawState and prepares to draw with it. This does not set the color at the same time, because different pictures need to apply the color, if any, in different ways, often outside of the action that sets up the geometry.O codeworld-apiA slower way to draw a picture, which has some useful properties. It can draw images in non-standard colors, and apply transparent colors properly to overlapping compositions of basic shapes. There must be a color in the DrawState.P codeworld-api#Handle the event channel used with runTriggerEventT.hQRSTUVWXYZ[\]^_`abcdefghijklmnopqNrsOtuvwxyz{|}~PNone"#>NSXg codeworld-api)Runs a reactive program, discharging the J constraint. This is the starting point for Reflex programs in CodeWorld. codeworld-api A variant of { that includes some on-screen debugging controls. You can use this during development, but should usually switch back to  when you're done debugging.g  ()*+,-./012345679:;<=>?@ABCEGHIJKLMNOPQRSTUVWY[\]^_`abcdefgg3BCEGHIJKLMNOPQRVSTWUY/012()*+,-.[\]^_`abcdefg5679:4;<=>?@A  None "#&'4FH  codeworld-api7Runs an interactive CodeWorld program that responds to fs. Activities can interact with the user, change over time, and remember information about the past.qExample: a program which draws a circle and changes its radius when user presses Up or Down keys on her keyboard  {-# LANGUAGE OverloadedStrings #-} import CodeWorld main = activityOf initialRadius updateRadius circle where initialRadius = 1 updateRadius event radius = case event of KeyPress Up# -> radius + 1 KeyPress Down2 -> radius - 1 _ -> radius  codeworld-apiRuns an interactive event-driven CodeWorld program. This is a generalization of simulations that can respond to events like key presses and mouse movement. codeworld-apiDraws a 3-. This is the simplest CodeWorld entry point.KExample: a program which draws a circle of radius 1 in the middle of canvas main = drawingOf $ circle 1  codeworld-apiHShows an animation, with a picture for each time given by the parameter.HExample: a program showing a square which rotates once every two seconds main = animationOf rotatingSquare rotatingSquare :: Double -> Picture rotatingSquare seconds = rotated angle square where square = rectangle 2 2 angle = pi * seconds  codeworld-api}Shows a simulation, which is essentially a continuous-time dynamical system described by an initial value and step function. codeworld-api A version of  which runs an interactive CodeWorld program in debugging mode. In this mode, the program gets controls to pause and manipulate time, and even go back in time to look at past states. codeworld-apikRuns an interactive multi-user CodeWorld program that is joined by several participants over the internet.-Example: a skeleton of a game for two players {-# LANGUAGE StaticPointers, OverloadedStrings #-} import CodeWorld main = groupActivityOf 2 init step view where init = static (\gen -> {- initialize state of the game world, possibly using random number generator -}) step = static (\playerNumber event world -> {- modify world based on event occuring for given player -}) view = static (\playerNumber world -> {- generate a picture that will be shown to given player in the given state of the world-})  codeworld-api A version of B that avoids static pointers, and does not check for consistency. codeworld-api A version of L that avoids static pointers, and does not check for consistent parameters. codeworld-apieRuns an interactive multi-user CodeWorld program, involving multiple participants over the internet. codeworld-apiPrints a debug message to the CodeWorld console when a value is forced. This is equivalent to the similarly named function in J, except that it sets appropriate buffering to use the CodeWorld console.  codeworld-api"The initial state of the activity. codeworld-apiGThe event handling function, which updates the state given an event. codeworld-apiRThe visualization function, which converts the state into a picture to display. codeworld-api%The initial state of the interaction. codeworld-apiNThe time step function, which advances the state given the time difference. codeworld-apiUThe event handling function, which updates the state given a user interface event. codeworld-apiRThe visualization function, which converts the state into a picture to display. codeworld-api"The picture to show on the screen. codeworld-apiHA function that produces animation frames, given the time in seconds. codeworld-api$The initial state of the simulation. codeworld-apiNThe time step function, which advances the state given the time difference. codeworld-apiRThe visualization function, which converts the state into a picture to display. codeworld-api$The initial state of the simulation. codeworld-apiNThe time step function, which advances the state given the time difference. codeworld-apiRThe visualization function, which converts the state into a picture to display. codeworld-api%The initial state of the interaction. codeworld-apiNThe time step function, which advances the state given the time difference. codeworld-apiUThe event handling function, which updates the state given a user interface event. codeworld-apiRThe visualization function, which converts the state into a picture to display. codeworld-api%The initial state of the interaction. codeworld-apiGThe event handling function, which updates the state given an event. codeworld-apiRThe visualization function, which converts the state into a picture to display. codeworld-apiXThe number of participants to expect. The participants will be numbered starting at 0. codeworld-api6The function to create initial state of the activity. 2 parameter can be used to generate random numbers. codeworld-apilThe event handling function, which updates the state given a participant number and user interface event. codeworld-apikThe visualization function, which converts a participant number and the state into a picture to display. codeworld-apiXThe number of participants to expect. The participants will be numbered starting at 0. codeworld-api"The initial state of the activity. codeworld-apilThe event handling function, which updates the state given a participant number and user interface event. codeworld-apikThe visualization function, which converts a participant number and the state into a picture to display. codeworld-apiXThe number of participants to expect. The participants will be numbered starting at 0. codeworld-api'The initial state of the collaboration. codeworld-apiNThe time step function, which advances the state given the time difference. codeworld-apilThe event handling function, which updates the state given a participant number and user interface event. codeworld-apikThe visualization function, which converts a participant number and the state into a picture to display. codeworld-apiXThe number of participants to expect. The participants will be numbered starting at 0. codeworld-api'The initial state of the collaboration. codeworld-apiNThe time step function, which advances the state given the time difference. codeworld-apilThe event handling function, which updates the state given a participant number and user interface event. codeworld-apikThe visualization function, which converts a participant number and the state into a picture to display.PNone %&'.HJVg codeworld-apiThe UI state, indexed by the  codeworld-api-Possible steps taken from a given setup phase codeworld-apisThe enumeration type contains all the high-level states that the game UI can be in. It is used as a type-index to 9 to ensure that the UI state matches the abstract state.FThe possible UI-triggered transitions of this state are described by . codeworld-api*Handling a UI event. May change the phase.Noneg$}  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg}3/012()*+,-.BCDEFGHIJKLMNOPQRVSTWUXYZ[\]^_`abcdefg56789:4;<=>?@A!"$%&#'  None&'JSX9O codeworld-apiThe state of a framedParam, which includes the original parameter, its location, whether it's open (expanded) or not, and the anchor if it is currently being dragged. codeworld-apiThe source for a parameter that can be adjusted in a parametric drawing. Parameters can get their values from sliders, buttons, counters, timers, etc. codeworld-apioBounds information for a parameter UI. The fields are the left and top coordinate, then the width and height. codeworld-api A drawing that depends on parameters. The first argument is a list of parameters. The second is a picture, which depends on the values of those parameters. Each number used to retrieve the picture is the value of the corresponding parameter in the first list. codeworld-apiCWraps a list of parameters in frames to lay them out on the screen. codeworld-apiFinds the first element of a list that matches the predicate, if any, and removes it from the list, returning it separately from the remaining elements. codeworld-apiFDetermines if a point is inside the screen area for a given parameter.  codeworld-api*Builds a parameter from an explicit state. codeworld-apiAdjusts the output of a parameter by passing it through a conversion function. Built-in parameters usually range from 0 to 1, and conversions can be used to rescale the output to a different range. codeworld-api*Changes the name of an existing parameter. codeworld-apiA 0 with a constant value, and no way to change it.  codeworld-api Builder for * types that are clickable and 5x1 in size. codeworld-apiA 0 that can be toggled between 0 (off) and 1 (on). codeworld-apiA 0 that counts how many times it has been clicked. codeworld-apiA 3 that can be adjusted continuously between 0 and 1. codeworld-apiA P that has a randomly chosen value. It offers a button to regenerate its value. codeworld-apiA 3 that changes over time. It can be paused or reset. codeworld-apiA z that tracks the current hour, in local time. The hour is on a scale from 0 (meaning midnight) to 23 (meaning 11:00 pm). codeworld-apiA I that tracks the current minute, in local time. It ranges from 0 to 59. codeworld-apiA  that tracks the current second, in local time. It ranges from 0.0 up to (but not including) 60.0. This includes fractions of a second. If that's not what you want, you can use withConversion to truncate the number. None'H9 None'H:             ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | }~             i !"#$% & ' ( ) * + , - , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y  Z [ \]^_`abcddeffghijjklmnopqrstuvwxyz{|}~~     *codeworld-api-0.6.0-6cxb0ZcWeACALk3FkEqzpkCodeWorld.Reflex CodeWorldCodeWorld.ImageCodeWorld.SketchesCodeWorld.ParameterCodeWorld.App2 CodeWorld.AppCodeWorld.CanvasMCodeWorld.ColorCodeWorld.DrawStateUtil.EmbedAsUrlCodeWorld.PictureCodeWorld.EventCodeWorld.DriverCodeWorld.EntryPointsDebugTraceCodeWorld.CollaborationUIbaseGHC.Base<>ColourColorRGBAHSLRGBmixedlighterlightdarkerdarkbrighterbrightdullerdull translucentassortedColorshue saturation luminosityalphawhiteblackgraygreyredorangeyellowgreenbluepurplepinkbrowncyanmagenta chartreuse aquamarineazurevioletroseFont SansSerifSerif Monospace HandwritingFancy NamedFont TextStylePlainBoldItalicPictureVectorPointtranslatedPoint rotatedPointreflectedPoint scaledPoint dilatedPoint vectorLengthvectorDirection vectorSumvectorDifference scaledVector rotatedVector dotProductblankpolylinepath thickPolyline thickPathpolygon thickPolygon solidPolygoncurve thickCurve closedCurvethickClosedCurvesolidClosedCurve rectanglesolidRectanglethickRectanglecircle thickCirclearcthickArc solidCirclesectortext lettering styledTextstyledLetteringcoloredcoloured translatedscaleddilatedrotated reflectedclippedpictures&coordinatePlane codeWorldLogoimagesketchedAirplane sketchedClock sketchedAlien sketchedApplesketchedAstronaut sketchedBabysketchedBalloon sketchedBall sketchedBell sketchedBird sketchedBoat sketchedBook sketchedBoysketchedBubble sketchedBug sketchedCarsketchedChatBubble sketchedChest sketchedCloud sketchedCoin sketchedDogsketchedDragonsketchedExplosion sketchedFish sketchedFlag sketchedFlamesketchedFlower sketchedGear sketchedGhost sketchedGirl sketchedGrass sketchedHeartsketchedHotAirBalloon sketchedHouse sketchedJewel sketchedKey sketchedCatsketchedLightBulbsketchedLightningsketchedMonster sketchedMoon sketchedNotesketchedPawnBlacksketchedPawnBluesketchedPawnGreensketchedPawnRedsketchedPawnWhitesketchedRaindrop sketchedRobotsketchedRocketsketchedScroll sketchedSignsketchedSparkle sketchedStar sketchedSunsketchedThoughtBubble sketchedBlock sketchedTreeEventKeyPress KeyRelease PointerPressPointerReleasePointerMovement TextEntry TimePassingReflexCodeWorld getKeyPress getKeyRelease getTextEntrygetPointerClickgetPointerPosition isPointerDowngetTimePassingdrawreflexOf debugReflexOf activityOf interactionOf drawingOf animationOf simulationOfdebugSimulationOfdebugInteractionOfdebugActivityOfgroupActivityOfunsafeGroupActivityOfunsafeCollaborationOfcollaborationOftrace ParameterparametricDrawingOf convertedrenamedconstanttogglecountersliderrandomtimer currentHour currentMinute currentSecond ApplicationdefaultApplication withTimeStepwithEventHandler withPicturewithMultiEventHandlerwithMultiPicturesubapplication applicationOfRuletimeRule eventRule pictureRulemultiEventRulemultiPictureRulesubrulerulesunsafeMultiApplicationOfCanvasMPureOpNativeOpCanvasOp MonadCanvasgetScreenHeightgetScreenWidthisPointInStroke textMiddle textCenter fillColor strokeColor drawImgURL withImage builtinImage translate transformstrokesaverestorerectquadraticCurveTomoveTo lineWidthlineToglobalCompositeOperation globalAlphafontfillTextfillRect drawImage closePathclip bezierCurveTo beginPathnewImage isPointInPath measureTextfillscaleImage saveRestoredoCanvas interpCanvas runCanvasM bindCanvas liftCanvasfencewrapNum fenceColorfromHSLtoHSL sameAlphaAffineTransformation DrawStateinitialAffineTransformationmapDSAT mapDSColor initialDS translateDSscaleDSrotateDS reflectDS setColorDSopaqueDS getColorDS embedAsUrl PictureAndPicturesSketchCoordinatePlaneReflectDilate LetteringStyledLetteringThickArcSector ThickCircle SolidCircleCircle ThickCurve ThickPolylinePolylineThickClosedCurve ClosedCurveThickRectangleSolidRectangle Rectangle ThickPolygonPolygonSolidClosedCurve SolidPolygonBlankCurveArcClipRotateScale TranslaterectangleVerticesgetDebugSrcLoc srcContains text-1.2.3.1Data.Text.InternalTextwithDS viaOffscreenasyncProcessEventTriggers EventChannelReactiveProgramunReactiveProgramReactiveOutput systemPicture userTransform userPictures ReactiveInput timePassing pointerDownpointerPositionpointerRelease pointerPress textEntry keyReleasekeyPress GameToken PartialToken SteplessToken FullToken tokenDraw tokenEvent tokenStep tokenInitialtokenNumPlayerstokenDeployHashPortNodeId getNodeIdsetColor applyColor followPatheuclideanDistance drawFigure fillFigure drawPicturepictureContains isSimplePicisOpaque drawPolygonpolygonContainsdrawPath pathContains drawSectorsectorContainsdrawArc arcContainsdrawText textContains fontString imageContainscoordinatePlanePic clearScreen drawFrame pixelSizesetupScreenContext getChildNodes findTopShapefindTopShapeFromPointtrim showFloat showPoints showColordescribePicturegetPictureSrcLoc haskellModereadPortFromEnvrunBlankCanvas keyCodeToTextisUniversallyConstant ifDifferentmodifyMVarIfDifferent getMousePostoEventonEventsrun runInspect getDeployHashrunGamerunReactiveProgramwithReactiveInputgetReactiveInput systemDrawtransformUserPicturegateDyn sendEvent runReactive!random-1.1-3ypV4EIycgb35PKjTYYr5q System.RandomStdGenWrappedisDraggingZoomisDraggingHistoryisDraggingSpeedpanDraggingAnchor panCenterlastInteractionTime playbackSpeed zoomFactorstate StrictMaybeSJustSNothing StrictPointSPControl HistorySlider RedoButton UndoButton ZoomSlider SpeedSlider TimeLabel BackButtonStartOverButtonFastForwardButtonResetViewButton PanningLayer ZoomOutButton ZoomInButton RestartButton StepButton PauseButton PlayButtonTimelinefuturepresentpast newTimelineapplyToTimeline undoTimeline redoTimelinerestartTimelinetimelineLength travelToTime timelinePoswrappedInitial identicaltoState wrappedStep wrappedEvent scaleRange snapSliderxToPlaybackSpeedplaybackSpeedToX zoomIncrement yToZoomFactor zoomFactorToY handleControl wrappedDrawdrawControlPanel drawControldrawingControlsanimationControlssimulationControlsstatefulDebugControlsUIState SetupPhaseStepeventJoin ContinueMainCreateContinueConnect CancelConnect ContinueWait CancelWaitSMainSConnectSWaitstepinitial startWaiting updatePlayerspicture FrameStateBounds layoutParams pullMatchhitTest parameterOfbuttonOf