{
	"id": 0,
	"name": "Mat",
	"kind": 0,
	"flags": {},
	"children": [
		{
			"id": 1672,
			"name": "\"index\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/index.ts",
			"sources": [
				{
					"fileName": "index.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 226,
			"name": "\"src/bezier-piece\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/bezier-piece.ts",
			"children": [
				{
					"id": 227,
					"name": "BezierPiece",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 228,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"comment": {},
							"signatures": [
								{
									"id": 231,
									"name": "new BezierPiece",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {},
									"parameters": [
										{
											"id": 232,
											"name": "curve",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {},
											"type": {
												"type": "reference",
												"name": "Curve",
												"id": 30
											}
										},
										{
											"id": 233,
											"name": "ts",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The start and end t parameter of the original bezier curve\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "BezierPiece",
										"id": 227
									}
								}
							],
							"sources": [
								{
									"fileName": "src/bezier-piece.ts",
									"line": 4,
									"character": 19
								}
							]
						},
						{
							"id": 229,
							"name": "curve",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/bezier-piece.ts",
									"line": 11,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"name": "Curve",
								"id": 30
							}
						},
						{
							"id": 230,
							"name": "ts",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The start and end t parameter of the original bezier curve\n"
							},
							"sources": [
								{
									"fileName": "src/bezier-piece.ts",
									"line": 12,
									"character": 21
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								228
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								229,
								230
							]
						}
					],
					"sources": [
						{
							"fileName": "src/bezier-piece.ts",
							"line": 4,
							"character": 17
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						227
					]
				}
			],
			"sources": [
				{
					"fileName": "src/bezier-piece.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 890,
			"name": "\"src/bounding-box/find-bb-intersections\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/bounding-box/find-bb-intersections.ts",
			"children": [
				{
					"id": 891,
					"name": "Event_",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 892,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"comment": {
								"shortText": "Event class constructor"
							},
							"signatures": [
								{
									"id": 896,
									"name": "new Event_",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {
										"shortText": "Event class constructor"
									},
									"parameters": [
										{
											"id": 897,
											"name": "type",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "0 -> left side, 1 -> right side"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 898,
											"name": "box",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "An axis-aligned 2-box described by 2 points"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											}
										},
										{
											"id": 899,
											"name": "p",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "A point.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "Event_",
										"id": 891
									}
								}
							],
							"sources": [
								{
									"fileName": "src/bounding-box/find-bb-intersections.ts",
									"line": 52,
									"character": 14
								}
							]
						},
						{
							"id": 894,
							"name": "box",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "An axis-aligned 2-box described by 2 points"
							},
							"sources": [
								{
									"fileName": "src/bounding-box/find-bb-intersections.ts",
									"line": 62,
									"character": 22
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						},
						{
							"id": 895,
							"name": "p",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "A point.\n"
							},
							"sources": [
								{
									"fileName": "src/bounding-box/find-bb-intersections.ts",
									"line": 63,
									"character": 20
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						},
						{
							"id": 893,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "0 -> left side, 1 -> right side"
							},
							"sources": [
								{
									"fileName": "src/bounding-box/find-bb-intersections.ts",
									"line": 61,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 900,
							"name": "compare",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true
							},
							"signatures": [
								{
									"id": 901,
									"name": "compare",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Compare two Events by their x-axis and then by their type. Since it is\nopen boxes that are compare we must let the right endpoint type come\nbefore the left."
									},
									"parameters": [
										{
											"id": 902,
											"name": "a",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"text": "A point (within an object)"
											},
											"type": {
												"type": "reference",
												"name": "Event_",
												"id": 891
											}
										},
										{
											"id": 903,
											"name": "b",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"text": "A point (within an object)\n"
											},
											"type": {
												"type": "reference",
												"name": "Event_",
												"id": 891
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/bounding-box/find-bb-intersections.ts",
									"line": 74,
									"character": 18
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								892
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								894,
								895,
								893
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								900
							]
						}
					],
					"sources": [
						{
							"fileName": "src/bounding-box/find-bb-intersections.ts",
							"line": 52,
							"character": 12
						}
					]
				},
				{
					"id": 904,
					"name": "EVENT_LEFT",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/bounding-box/find-bb-intersections.ts",
							"line": 2,
							"character": 16
						}
					],
					"type": {
						"type": "unknown",
						"name": "0"
					},
					"defaultValue": "0"
				},
				{
					"id": 905,
					"name": "EVENT_RIGHT",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/bounding-box/find-bb-intersections.ts",
							"line": 3,
							"character": 17
						}
					],
					"type": {
						"type": "unknown",
						"name": "1"
					},
					"defaultValue": "1"
				},
				{
					"id": 912,
					"name": "areBoxesIntersecting",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 913,
							"name": "areBoxesIntersecting",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns true if the 2 given (open) boxes intersect. At this stage we already\nknow their x-axis intersect."
							},
							"parameters": [
								{
									"id": 914,
									"name": "a",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 915,
									"name": "b",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/bounding-box/find-bb-intersections.ts",
							"line": 92,
							"character": 29
						}
					]
				},
				{
					"id": 906,
					"name": "findBbIntersections",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 907,
							"name": "findBbIntersections",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Find and return axis-aligned open boxes that intersect via a sweepline\nalgorithm."
							},
							"parameters": [
								{
									"id": 908,
									"name": "boxes",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reflection",
									"declaration": {
										"id": 909,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {},
										"children": [
											{
												"id": 910,
												"name": "box1",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/bounding-box/find-bb-intersections.ts",
														"line": 37,
														"character": 28
													}
												],
												"type": {
													"type": "array",
													"elementType": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												},
												"defaultValue": " box"
											},
											{
												"id": 911,
												"name": "box2",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/bounding-box/find-bb-intersections.ts",
														"line": 37,
														"character": 39
													}
												],
												"type": {
													"type": "array",
													"elementType": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												},
												"defaultValue": " activeBox"
											}
										],
										"groups": [
											{
												"title": "Variables",
												"kind": 32,
												"children": [
													910,
													911
												]
											}
										]
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/bounding-box/find-bb-intersections.ts",
							"line": 10,
							"character": 28
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						891
					]
				},
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						904,
						905
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						912,
						906
					]
				}
			],
			"sources": [
				{
					"fileName": "src/bounding-box/find-bb-intersections.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 63,
			"name": "\"src/circle\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/circle.ts",
			"children": [
				{
					"id": 64,
					"name": "Circle",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 65,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"comment": {},
							"signatures": [
								{
									"id": 68,
									"name": "new Circle",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {},
									"parameters": [
										{
											"id": 69,
											"name": "center",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										},
										{
											"id": 70,
											"name": "radius",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								}
							],
							"sources": [
								{
									"fileName": "src/circle.ts",
									"line": 5,
									"character": 14
								}
							]
						},
						{
							"id": 66,
							"name": "center",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/circle.ts",
									"line": 12,
									"character": 30
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						},
						{
							"id": 67,
							"name": "radius",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/circle.ts",
									"line": 13,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 75,
							"name": "engulfsCircle",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 76,
									"name": "engulfsCircle",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Returns true if the first circle engulfs the second."
									},
									"parameters": [
										{
											"id": 77,
											"name": "c1",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {},
											"type": {
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										},
										{
											"id": 78,
											"name": "c2",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"text": "\n"
											},
											"type": {
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/circle.ts",
									"line": 32,
									"character": 31
								}
							]
						},
						{
							"id": 71,
							"name": "scale",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 72,
									"name": "scale",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Returns a scaled version of the given circle without changing its center."
									},
									"parameters": [
										{
											"id": 73,
											"name": "circle",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {},
											"type": {
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										},
										{
											"id": 74,
											"name": "s",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"text": "multiplier\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								}
							],
							"sources": [
								{
									"fileName": "src/circle.ts",
									"line": 22,
									"character": 23
								}
							]
						},
						{
							"id": 79,
							"name": "toString",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 80,
									"name": "toString",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Returns a human-readable string description of the given circle."
									},
									"parameters": [
										{
											"id": 81,
											"name": "circle",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"text": "\n"
											},
											"type": {
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/circle.ts",
									"line": 49,
									"character": 26
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								65
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								66,
								67
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								75,
								71,
								79
							]
						}
					],
					"sources": [
						{
							"fileName": "src/circle.ts",
							"line": 5,
							"character": 12
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						64
					]
				}
			],
			"sources": [
				{
					"fileName": "src/circle.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 160,
			"name": "\"src/contact-point\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/contact-point.ts",
			"children": [
				{
					"id": 161,
					"name": "ContactPoint",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 162,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"comment": {
								"shortText": "Representation of a point on a loop (or shape)."
							},
							"signatures": [
								{
									"id": 167,
									"name": "new ContactPoint",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {
										"shortText": "Representation of a point on a loop (or shape)."
									},
									"parameters": [
										{
											"id": 168,
											"name": "pointOnShape",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {},
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										},
										{
											"id": 169,
											"name": "circle",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										},
										{
											"id": 170,
											"name": "order",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 171,
											"name": "order2",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "ContactPoint",
										"id": 161
									}
								}
							],
							"sources": [
								{
									"fileName": "src/contact-point.ts",
									"line": 6,
									"character": 20
								}
							]
						},
						{
							"id": 164,
							"name": "circle",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true
							},
							"sources": [
								{
									"fileName": "src/contact-point.ts",
									"line": 15,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"name": "Circle",
								"id": 64
							}
						},
						{
							"id": 165,
							"name": "order",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true
							},
							"sources": [
								{
									"fileName": "src/contact-point.ts",
									"line": 16,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 166,
							"name": "order2",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true
							},
							"sources": [
								{
									"fileName": "src/contact-point.ts",
									"line": 17,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 163,
							"name": "pointOnShape",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true
							},
							"sources": [
								{
									"fileName": "src/contact-point.ts",
									"line": 14,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"name": "PointOnShape",
								"id": 83
							}
						},
						{
							"id": 172,
							"name": "compare",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true
							},
							"signatures": [
								{
									"id": 173,
									"name": "compare",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 174,
											"name": "a",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "ContactPoint",
												"id": 161
											}
										},
										{
											"id": 175,
											"name": "b",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "ContactPoint",
												"id": 161
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/contact-point.ts",
									"line": 21,
									"character": 15
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								162
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								164,
								165,
								166,
								163
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								172
							]
						}
					],
					"sources": [
						{
							"fileName": "src/contact-point.ts",
							"line": 6,
							"character": 18
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						161
					]
				}
			],
			"sources": [
				{
					"fileName": "src/contact-point.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1673,
			"name": "\"src/corner\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/corner.ts",
			"children": [
				{
					"id": 1674,
					"name": "Corner",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 1675,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"signatures": [
								{
									"id": 1682,
									"name": "new Corner",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"parameters": [
										{
											"id": 1683,
											"name": "tans",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											}
										},
										{
											"id": 1684,
											"name": "crossTangents",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 1685,
											"name": "isSharp",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 1686,
											"name": "isDull",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 1687,
											"name": "isQuiteSharp",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 1688,
											"name": "isQuiteDull",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "Corner",
										"id": 1674
									}
								}
							],
							"sources": [
								{
									"fileName": "src/corner.ts",
									"line": 2,
									"character": 14
								}
							]
						},
						{
							"id": 1677,
							"name": "crossTangents",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/corner.ts",
									"line": 5,
									"character": 32
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 1679,
							"name": "isDull",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/corner.ts",
									"line": 7,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 1681,
							"name": "isQuiteDull",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/corner.ts",
									"line": 9,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 1680,
							"name": "isQuiteSharp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/corner.ts",
									"line": 8,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 1678,
							"name": "isSharp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/corner.ts",
									"line": 6,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 1676,
							"name": "tans",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/corner.ts",
									"line": 4,
									"character": 23
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								1675
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1677,
								1679,
								1681,
								1680,
								1678,
								1676
							]
						}
					],
					"sources": [
						{
							"fileName": "src/corner.ts",
							"line": 2,
							"character": 12
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						1674
					]
				}
			],
			"sources": [
				{
					"fileName": "src/corner.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 797,
			"name": "\"src/cp-node\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/cp-node.ts",
			"children": [
				{
					"id": 798,
					"name": "CpNode",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Representation of a ContactPoint node having special edges, two of which\n(prev and next) enforce a cycle ordering on the CpNodes (due to the shape\nbeing a loop). The other two (prevOnCircle and nextOnCircle) allows one to\ngo clockwise (and anti-clockwise resp.) around the maximal disks implied by\nthe CpNode. This is equivalent to following other branches.",
						"text": "Any single CpNode object represents the entire MAT, and at the same time, the\nshape boundary (recall that the MAT and the shape boundary can, by\ndefinition, be recovered from each other). This is because each\nCpNode can be seen as a node of the MAT tree that can be traversed.\n\nIt is worth mentioning that by traversing from the CpNode by following its\n.next property repetetitevly until one is back at the same CpNode allows one\nto 'go around' the shape and at the same time traverse the MAT twice.\n",
						"tags": [
							{
								"tag": "doc",
								"text": "CpNode\n"
							}
						]
					},
					"children": [
						{
							"id": 799,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"comment": {},
							"signatures": [
								{
									"id": 808,
									"name": "new CpNode",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {},
									"parameters": [
										{
											"id": 809,
											"name": "cp",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The actual item stored at a node"
											},
											"type": {
												"type": "reference",
												"name": "ContactPoint",
												"id": 161
											}
										},
										{
											"id": 810,
											"name": "isHoleClosing",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 811,
											"name": "isIntersection",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 812,
											"name": "prev",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The next contact point on the inscribed circle"
											},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											},
											"defaultValue": " undefined"
										},
										{
											"id": 813,
											"name": "next",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The next contact point on the boundary"
											},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											},
											"defaultValue": " undefined"
										},
										{
											"id": 814,
											"name": "prevOnCircle",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The previous contact point on the inscribed circle"
											},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											},
											"defaultValue": " undefined"
										},
										{
											"id": 815,
											"name": "nextOnCircle",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											},
											"defaultValue": " undefined"
										},
										{
											"id": 816,
											"name": "matCurve",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The actual medial axis curve from this ContactPoint's\ncircle to the next ContactPoint's circle. It is a bezier curve of order\n1 to 3."
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											},
											"defaultValue": " undefined"
										}
									],
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 41,
									"character": 39
								}
							]
						},
						{
							"id": 800,
							"name": "cp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isExported": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The actual item stored at a node"
							},
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 55,
									"character": 21
								}
							],
							"type": {
								"type": "reference",
								"name": "ContactPoint",
								"id": 161
							}
						},
						{
							"id": 801,
							"name": "isHoleClosing",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isExported": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 56,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 802,
							"name": "isIntersection",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isExported": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 57,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 807,
							"name": "matCurve",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isExported": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The actual medial axis curve from this ContactPoint's\ncircle to the next ContactPoint's circle. It is a bezier curve of order\n1 to 3."
							},
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 62,
									"character": 18
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						},
						{
							"id": 804,
							"name": "next",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isExported": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The next contact point on the boundary"
							},
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 59,
									"character": 14
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						},
						{
							"id": 806,
							"name": "nextOnCircle",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isExported": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 61,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						},
						{
							"id": 803,
							"name": "prev",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isExported": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The previous contact point on the boundary"
							},
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 58,
									"character": 14
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						},
						{
							"id": 805,
							"name": "prevOnCircle",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isExported": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The previous contact point on the inscribed circle"
							},
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 60,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						},
						{
							"id": 821,
							"name": "clone",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 822,
									"name": "clone",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 70,
									"character": 13
								}
							]
						},
						{
							"id": 834,
							"name": "getCpNodesOnCircle",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 835,
									"name": "getCpNodesOnCircle",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Return this and the the other CpNodes around the vertex circle in order.",
										"tags": [
											{
												"tag": "doc",
												"text": "CpNode\n"
											}
										]
									},
									"parameters": [
										{
											"id": 836,
											"name": "exclThis",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											},
											"defaultValue": "false"
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 165,
									"character": 26
								}
							]
						},
						{
							"id": 847,
							"name": "getProngCount",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 848,
									"name": "getProngCount",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Returns the number of prongs on the circle of this CpNode. One-prongs and\nsharp corners will return 2; if this is not desired use\ngetRealProngCount."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 224,
									"character": 21
								}
							]
						},
						{
							"id": 849,
							"name": "getRealProngCount",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 850,
									"name": "getRealProngCount",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 239,
									"character": 25
								}
							]
						},
						{
							"id": 845,
							"name": "isOneProng",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 846,
									"name": "isOneProng",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Returns true if this ListNode is a one-prong (including\nsharp corners)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 203,
									"character": 18
								}
							]
						},
						{
							"id": 843,
							"name": "isSharp",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 844,
									"name": "isSharp",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 194,
									"character": 15
								}
							]
						},
						{
							"id": 841,
							"name": "isTerminating",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 842,
									"name": "isTerminating",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 189,
									"character": 21
								}
							]
						},
						{
							"id": 830,
							"name": "remove",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 831,
									"name": "remove",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 832,
											"name": "cpTree",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										},
										{
											"id": 833,
											"name": "cpNode",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 150,
									"character": 14
								}
							]
						},
						{
							"id": 851,
							"name": "advanceNSteps",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isExported": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 852,
									"name": "advanceNSteps",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Advances the node by the given number of steps. This is slow ( O(n) );\nuse mostly for debugging."
									},
									"parameters": [
										{
											"id": 853,
											"name": "node",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"text": "Node to start counting from"
											},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										},
										{
											"id": 854,
											"name": "n",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"text": "Number of steps to advance\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 252,
									"character": 28
								}
							]
						},
						{
							"id": 817,
							"name": "comparator",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 818,
									"name": "comparator",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 819,
											"name": "a",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										},
										{
											"id": 820,
											"name": "b",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 66,
									"character": 18
								}
							]
						},
						{
							"id": 823,
							"name": "insert",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isExported": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 824,
									"name": "insert",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Insert an item into the linked loop after the specified point and returns\nthe freshly inserted item."
									},
									"parameters": [
										{
											"id": 825,
											"name": "isHoleClosing",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 826,
											"name": "isIntersection",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 827,
											"name": "cpTree",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										},
										{
											"id": 828,
											"name": "cp",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"text": "Item to insert"
											},
											"type": {
												"type": "reference",
												"name": "ContactPoint",
												"id": 161
											}
										},
										{
											"id": 829,
											"name": "prev_",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"text": "Inserts the new item right after this item if the loop is\nnot empty, else insert the new item as the only item in the loop.\n"
											},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 110,
									"character": 21
								}
							]
						},
						{
							"id": 837,
							"name": "isOnSameCircle",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 838,
									"name": "isOnSameCircle",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 839,
											"name": "cpNode1",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										},
										{
											"id": 840,
											"name": "cpNode2",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 182,
									"character": 22
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								799
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								800,
								801,
								802,
								807,
								804,
								806,
								803,
								805
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								821,
								834,
								847,
								849,
								845,
								843,
								841,
								830,
								851,
								817,
								823,
								837
							]
						}
					],
					"sources": [
						{
							"fileName": "src/cp-node.ts",
							"line": 41,
							"character": 20
						}
					],
					"implementedTypes": [
						{
							"type": "reflection",
							"declaration": {
								"id": 855,
								"name": "__type",
								"kind": 65536,
								"kindString": "Type literal",
								"flags": {},
								"sources": [
									{
										"fileName": "src/cp-node.ts",
										"line": 41,
										"character": 31
									}
								]
							}
						}
					]
				},
				{
					"id": 857,
					"name": "Edge",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/cp-node.ts",
							"line": 12,
							"character": 16
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "stringLiteral",
								"value": "prev"
							},
							{
								"type": "stringLiteral",
								"value": "next"
							},
							{
								"type": "stringLiteral",
								"value": "prevOnCircle"
							},
							{
								"type": "stringLiteral",
								"value": "nextOnCircle"
							}
						]
					}
				},
				{
					"id": 858,
					"name": "Edges",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/cp-node.ts",
							"line": 18,
							"character": 17
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 859,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {},
							"sources": [
								{
									"fileName": "src/cp-node.ts",
									"line": 18,
									"character": 19
								}
							]
						}
					}
				},
				{
					"id": 860,
					"name": "EDGES",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/cp-node.ts",
							"line": 20,
							"character": 11
						}
					],
					"type": {
						"type": "array",
						"elementType": {
							"type": "reference",
							"name": "Edge",
							"id": 857
						}
					},
					"defaultValue": " ['prev', 'next', 'prevOnCircle', 'nextOnCircle']"
				},
				{
					"id": 856,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/cp-node.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						798
					]
				},
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						857,
						858
					]
				},
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						860,
						856
					]
				}
			],
			"sources": [
				{
					"fileName": "src/cp-node.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 29,
			"name": "\"src/curve\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/curve.ts",
			"children": [
				{
					"id": 30,
					"name": "Curve",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 31,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"comment": {
								"shortText": "Representation of a curve in a linked loop (of bezier curves)."
							},
							"signatures": [
								{
									"id": 37,
									"name": "new Curve",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {
										"shortText": "Representation of a curve in a linked loop (of bezier curves)."
									},
									"parameters": [
										{
											"id": 38,
											"name": "loop",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The linked loop this node belongs to."
											},
											"type": {
												"type": "reference",
												"name": "Loop",
												"id": 10
											}
										},
										{
											"id": 39,
											"name": "ps",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The bezier points."
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											}
										},
										{
											"id": 40,
											"name": "prev",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The previous curve."
											},
											"type": {
												"type": "reference",
												"name": "Curve",
												"id": 30
											}
										},
										{
											"id": 41,
											"name": "next",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The next curve."
											},
											"type": {
												"type": "reference",
												"name": "Curve",
												"id": 30
											}
										},
										{
											"id": 42,
											"name": "idx",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The curve's ordered index in the loop.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								}
							],
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 10,
									"character": 13
								}
							]
						},
						{
							"id": 36,
							"name": "idx",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The curve's ordered index in the loop.\n"
							},
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 24,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 32,
							"name": "loop",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The linked loop this node belongs to."
							},
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 20,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"name": "Loop",
								"id": 10
							}
						},
						{
							"id": 35,
							"name": "next",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The next curve."
							},
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 23,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"name": "Curve",
								"id": 30
							}
						},
						{
							"id": 34,
							"name": "prev",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The previous curve."
							},
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 22,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"name": "Curve",
								"id": 30
							}
						},
						{
							"id": 33,
							"name": "ps",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The bezier points."
							},
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 21,
									"character": 21
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						},
						{
							"id": 43,
							"name": "getCornerAtEnd",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 44,
									"name": "getCornerAtEnd",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 45,
											"name": "curve",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "Curve",
												"id": 30
											}
										}
									],
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 46,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {},
											"children": [
												{
													"id": 48,
													"name": "crossTangents",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/curve.ts",
															"line": 61,
															"character": 15
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												},
												{
													"id": 50,
													"name": "isDull",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/curve.ts",
															"line": 63,
															"character": 8
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "boolean"
													},
													"defaultValue": " crossTangents > 0"
												},
												{
													"id": 52,
													"name": "isQuiteDull",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/curve.ts",
															"line": 65,
															"character": 13
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "boolean"
													},
													"defaultValue": " crossTangents > +DEGREE_LIMIT"
												},
												{
													"id": 51,
													"name": "isQuiteSharp",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/curve.ts",
															"line": 64,
															"character": 14
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "boolean"
													},
													"defaultValue": " crossTangents < -DEGREE_LIMIT"
												},
												{
													"id": 49,
													"name": "isSharp",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/curve.ts",
															"line": 62,
															"character": 9
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "boolean"
													},
													"defaultValue": " crossTangents < 0"
												},
												{
													"id": 47,
													"name": "tans",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/curve.ts",
															"line": 60,
															"character": 6
														}
													],
													"type": {
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													}
												}
											],
											"groups": [
												{
													"title": "Variables",
													"kind": 32,
													"children": [
														48,
														50,
														52,
														51,
														49,
														47
													]
												}
											]
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 28,
									"character": 29
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								31
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								36,
								32,
								35,
								34,
								33
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								43
							]
						}
					],
					"sources": [
						{
							"fileName": "src/curve.ts",
							"line": 10,
							"character": 11
						}
					]
				},
				{
					"id": 58,
					"name": "DEGREE_LIMIT",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/curve.ts",
							"line": 43,
							"character": 18
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "number"
					},
					"defaultValue": " DEGREES[1]"
				},
				{
					"id": 59,
					"name": "getCornerAtEnd",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"comment": {
						"shortText": "Gets the cross of the unit tangents of the vector at the end of this\ncurve and the start of the next curve."
					},
					"sources": [
						{
							"fileName": "src/curve.ts",
							"line": 50,
							"character": 18
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 60,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {},
							"signatures": [
								{
									"id": 61,
									"name": "__call",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 62,
											"name": "a",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "typeParameter",
												"name": "T"
											}
										}
									],
									"type": {
										"type": "typeParameter",
										"name": "U"
									}
								}
							]
						}
					},
					"defaultValue": " memoize(function(curve: Curve) {\r\n\r\n\tlet tans = [\r\n\t\ttangent(curve.ps,      1), \r\n\t\ttangent(curve.next.ps, 0)\r\n\t];\r\n\r\n\tlet crossTangents = cross(tans[0], tans[1]);\r\n\r\n\treturn { \r\n\t\ttans, \r\n\t\tcrossTangents, \r\n\t\tisSharp      : crossTangents < 0,\r\n\t\tisDull       : crossTangents > 0, \r\n\t\tisQuiteSharp : crossTangents < -DEGREE_LIMIT,\r\n\t\tisQuiteDull  : crossTangents > +DEGREE_LIMIT \r\n\t};\r\n})"
				},
				{
					"id": 53,
					"name": "DEGREES",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isConst": true
					},
					"children": [
						{
							"id": 54,
							"name": "0.25",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 37,
									"character": 5
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"defaultValue": "0.005"
						},
						{
							"id": 55,
							"name": "1",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 38,
									"character": 2
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"defaultValue": "0.0167"
						},
						{
							"id": 57,
							"name": "16",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 40,
									"character": 3
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"defaultValue": "0.2756"
						},
						{
							"id": 56,
							"name": "4",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/curve.ts",
									"line": 39,
									"character": 2
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"defaultValue": "0.0698"
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								54,
								55,
								57,
								56
							]
						}
					],
					"sources": [
						{
							"fileName": "src/curve.ts",
							"line": 35,
							"character": 13
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						30
					]
				},
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						58,
						59
					]
				},
				{
					"title": "Object literals",
					"kind": 2097152,
					"children": [
						53
					]
				}
			],
			"sources": [
				{
					"fileName": "src/curve.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 694,
			"name": "\"src/debug/cp-node-for-debugging\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/cp-node-for-debugging.ts",
			"children": [
				{
					"id": 695,
					"name": "CpNodeForDebugging",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"comment": {
						"shortText": "Class used for debugging only."
					},
					"children": [
						{
							"id": 697,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"signatures": [
								{
									"id": 700,
									"name": "new CpNodeForDebugging",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"parameters": [
										{
											"id": 701,
											"name": "generated",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "Generated",
												"id": 739
											}
										},
										{
											"id": 702,
											"name": "cpNode",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "CpNodeForDebugging",
										"id": 695
									}
								}
							],
							"sources": [
								{
									"fileName": "src/debug/cp-node-for-debugging.ts",
									"line": 12,
									"character": 26
								}
							]
						},
						{
							"id": 699,
							"name": "cpNode",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/cp-node-for-debugging.ts",
									"line": 16,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						},
						{
							"id": 696,
							"name": "cpsSimple",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/cp-node-for-debugging.ts",
									"line": 12,
									"character": 13
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							}
						},
						{
							"id": 698,
							"name": "generated",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/cp-node-for-debugging.ts",
									"line": 15,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"name": "Generated",
								"id": 739
							}
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								697
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								699,
								696,
								698
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/cp-node-for-debugging.ts",
							"line": 11,
							"character": 24
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						695
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/cp-node-for-debugging.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 703,
			"name": "\"src/debug/debug\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/debug.ts",
			"children": [
				{
					"id": 739,
					"name": "Generated",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 742,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 745,
									"name": "new Generated",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"parameters": [
										{
											"id": 746,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "SVGPathElement"
											}
										},
										{
											"id": 747,
											"name": "g",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "SVGGElement"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "Generated",
										"id": 739
									}
								}
							],
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 77,
									"character": 20
								}
							]
						},
						{
							"id": 740,
							"name": "elems",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 76,
									"character": 9
								}
							],
							"type": {
								"type": "reference",
								"name": "GeneratedElems",
								"id": 704
							},
							"implementationOf": {
								"type": "reference",
								"name": "IGenerated.elems",
								"id": 737
							}
						},
						{
							"id": 744,
							"name": "g",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isExported": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 81,
									"character": 20
								}
							],
							"type": {
								"type": "reference",
								"name": "SVGGElement"
							}
						},
						{
							"id": 743,
							"name": "path",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isExported": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 80,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"name": "SVGPathElement"
							}
						},
						{
							"id": 741,
							"name": "timing",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 77,
									"character": 10
								}
							],
							"type": {
								"type": "reference",
								"name": "ITiming",
								"id": 729
							},
							"implementationOf": {
								"type": "reference",
								"name": "IGenerated.timing",
								"id": 738
							}
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								742
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								740,
								744,
								743,
								741
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/debug.ts",
							"line": 75,
							"character": 22
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"name": "IGenerated",
							"id": 736
						}
					]
				},
				{
					"id": 782,
					"name": "MatDebug",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 787,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"comment": {},
							"signatures": [
								{
									"id": 788,
									"name": "new MatDebug",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {},
									"parameters": [
										{
											"id": 789,
											"name": "draw",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "IDrawFunctions"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "MatDebug",
										"id": 782
									}
								}
							],
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 145,
									"character": 32
								}
							]
						},
						{
							"id": 786,
							"name": "directives",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 145,
									"character": 14
								}
							],
							"type": {
								"type": "reference",
								"name": "IDirectives",
								"id": 776
							}
						},
						{
							"id": 785,
							"name": "fs",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 144,
									"character": 6
								}
							],
							"type": {
								"type": "reference",
								"name": "IDebugFunctions",
								"id": 748
							}
						},
						{
							"id": 783,
							"name": "generated",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 140,
									"character": 13
								}
							],
							"type": {
								"type": "reference",
								"name": "Generated",
								"id": 739
							},
							"defaultValue": " undefined"
						},
						{
							"id": 784,
							"name": "generatedAll",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 143,
									"character": 16
								}
							],
							"type": {
								"type": "reference",
								"name": "Map",
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											}
										}
									},
									{
										"type": "reference",
										"name": "Generated",
										"id": 739
									}
								]
							},
							"defaultValue": " new Map()"
						},
						{
							"id": 790,
							"name": "createNewGenerated",
							"kind": 2048,
							"kindString": "Method",
							"flags": {},
							"signatures": [
								{
									"id": 791,
									"name": "createNewGenerated",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 792,
											"name": "bezierLoops",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													}
												}
											}
										},
										{
											"id": 793,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "SVGPathElement"
											}
										},
										{
											"id": 794,
											"name": "g",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "SVGGElement"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 179,
									"character": 22
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								787
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								786,
								785,
								783,
								784
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								790
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/debug.ts",
							"line": 138,
							"character": 14
						}
					]
				},
				{
					"id": 704,
					"name": "GeneratedElems",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 718,
							"name": "boundingHull",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 46,
									"character": 16
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							}
						},
						{
							"id": 721,
							"name": "cpNode",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 49,
									"character": 10
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "CpNodeForDebugging",
									"id": 695
								}
							}
						},
						{
							"id": 726,
							"name": "culls",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 54,
									"character": 9
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								}
							}
						},
						{
							"id": 716,
							"name": "dullCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 44,
									"character": 14
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "PointOnShape",
									"id": 83
								}
							}
						},
						{
							"id": 727,
							"name": "intersection",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 55,
									"character": 16
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "X",
									"id": 147
								}
							}
						},
						{
							"id": 725,
							"name": "leaves",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 53,
									"character": 10
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							}
						},
						{
							"id": 722,
							"name": "loop",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 50,
									"character": 8
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "Loop",
									"id": 10
								}
							}
						},
						{
							"id": 723,
							"name": "loops",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 51,
									"character": 9
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							}
						},
						{
							"id": 710,
							"name": "looseBoundingBox",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 38,
									"character": 20
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							}
						},
						{
							"id": 719,
							"name": "mat",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 47,
									"character": 7
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "Mat",
									"id": 862
								}
							}
						},
						{
							"id": 724,
							"name": "maxVertex",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 52,
									"character": 13
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "CpNode",
									"id": 798
								}
							}
						},
						{
							"id": 717,
							"name": "minY",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 45,
									"character": 8
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "PointOnShape",
									"id": 83
								}
							}
						},
						{
							"id": 712,
							"name": "oneProng",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 40,
									"character": 12
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "PointOnShape",
									"id": 83
								}
							}
						},
						{
							"id": 713,
							"name": "oneProngAtDullCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 41,
									"character": 24
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "PointOnShape",
									"id": 83
								}
							}
						},
						{
							"id": 720,
							"name": "sat",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 48,
									"character": 7
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "Mat",
									"id": 862
								}
							}
						},
						{
							"id": 715,
							"name": "sharpCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 43,
									"character": 15
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "PointOnShape",
									"id": 83
								}
							}
						},
						{
							"id": 714,
							"name": "threeProng",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 42,
									"character": 14
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "ThreeProngForDebugging",
									"id": 346
								}
							}
						},
						{
							"id": 711,
							"name": "tightBoundingBox",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 39,
									"character": 20
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							}
						},
						{
							"id": 708,
							"name": "twoProng_deleted",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 36,
									"character": 20
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "TwoProngForDebugging",
									"id": 235
								}
							}
						},
						{
							"id": 706,
							"name": "twoProng_failed",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 34,
									"character": 19
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "TwoProngForDebugging",
									"id": 235
								}
							}
						},
						{
							"id": 709,
							"name": "twoProng_holeClosing",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 37,
									"character": 24
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "TwoProngForDebugging",
									"id": 235
								}
							}
						},
						{
							"id": 707,
							"name": "twoProng_notAdded",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 35,
									"character": 21
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "TwoProngForDebugging",
									"id": 235
								}
							}
						},
						{
							"id": 705,
							"name": "twoProng_regular",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 33,
									"character": 20
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "TwoProngForDebugging",
									"id": 235
								}
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								718,
								721,
								726,
								716,
								727,
								725,
								722,
								723,
								710,
								719,
								724,
								717,
								712,
								713,
								720,
								715,
								714,
								711,
								708,
								706,
								709,
								707,
								705
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/debug.ts",
							"line": 32,
							"character": 31
						}
					],
					"extendedTypes": [
						{
							"type": "reflection",
							"declaration": {
								"id": 728,
								"name": "__type",
								"kind": 65536,
								"kindString": "Type literal",
								"flags": {},
								"sources": [
									{
										"fileName": "src/debug/debug.ts",
										"line": 32,
										"character": 39
									}
								]
							}
						}
					]
				},
				{
					"id": 748,
					"name": "IDebugFunctions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 749,
							"name": "draw",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 122,
									"character": 8
								}
							],
							"type": {
								"type": "reference",
								"name": "IDrawFunctions"
							}
						},
						{
							"id": 752,
							"name": "drawElem",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 125,
									"character": 12
								}
							],
							"type": {
								"type": "reference",
								"name": "IDrawElemFunctions",
								"id": 558
							}
						},
						{
							"id": 753,
							"name": "nameObj",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 8,
									"character": 8
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 754,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 755,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 756,
													"name": "obj",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "any"
													}
												},
												{
													"id": 757,
													"name": "pre",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/general.ts",
											"line": 8,
											"character": 14
										}
									]
								}
							},
							"inheritedFrom": {
								"type": "reference",
								"name": "IGeneralDebugFunctions.nameObj",
								"id": 178
							}
						},
						{
							"id": 766,
							"name": "pointToStr",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 11,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 767,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 768,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 769,
													"name": "p",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												},
												{
													"id": 770,
													"name": "decimalPlaces",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/general.ts",
											"line": 11,
											"character": 14
										}
									]
								}
							},
							"inheritedFrom": {
								"type": "reference",
								"name": "IGeneralDebugFunctions.pointToStr",
								"id": 191
							}
						},
						{
							"id": 771,
							"name": "pointsToStr",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 12,
									"character": 12
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 772,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 773,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 774,
													"name": "ps",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													}
												},
												{
													"id": 775,
													"name": "decimalPlaces",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/general.ts",
											"line": 12,
											"character": 14
										}
									]
								}
							},
							"inheritedFrom": {
								"type": "reference",
								"name": "IGeneralDebugFunctions.pointsToStr",
								"id": 196
							}
						},
						{
							"id": 751,
							"name": "threeProng",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 124,
									"character": 14
								}
							],
							"type": {
								"type": "reference",
								"name": "IThreeProngDebugFunctions",
								"id": 365
							}
						},
						{
							"id": 750,
							"name": "twoProng",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 123,
									"character": 12
								}
							],
							"type": {
								"type": "reference",
								"name": "ITwoProngDebugFunctions",
								"id": 275
							}
						},
						{
							"id": 758,
							"name": "δToString",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 9,
									"character": 10
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 759,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 760,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 761,
													"name": "cpNodes",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "reference",
															"name": "CpNode",
															"id": 798
														}
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/general.ts",
											"line": 9,
											"character": 14
										}
									]
								}
							},
							"inheritedFrom": {
								"type": "reference",
								"name": "IGeneralDebugFunctions.δToString",
								"id": 183
							}
						},
						{
							"id": 762,
							"name": "δsToString",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 10,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 763,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 764,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 765,
													"name": "cpNodes",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "reference",
																"name": "CpNode",
																"id": 798
															}
														}
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/general.ts",
											"line": 10,
											"character": 14
										}
									]
								}
							},
							"inheritedFrom": {
								"type": "reference",
								"name": "IGeneralDebugFunctions.δsToString",
								"id": 187
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								749,
								752,
								753,
								766,
								771,
								751,
								750,
								758,
								762
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/debug.ts",
							"line": 121,
							"character": 32
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"name": "IGeneralDebugFunctions",
							"id": 177
						}
					]
				},
				{
					"id": 776,
					"name": "IDirectives",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 777,
							"name": "stopAfterHoleClosers",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 130,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 778,
							"name": "stopAfterHoleClosersNum",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 131,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 781,
							"name": "stopAfterThreeProngs",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 134,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 779,
							"name": "stopAfterTwoProngs",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 132,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 780,
							"name": "stopAfterTwoProngsNum",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 133,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								777,
								778,
								781,
								779,
								780
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/debug.ts",
							"line": 129,
							"character": 28
						}
					]
				},
				{
					"id": 736,
					"name": "IGenerated",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 737,
							"name": "elems",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 70,
									"character": 9
								}
							],
							"type": {
								"type": "reference",
								"name": "GeneratedElems",
								"id": 704
							}
						},
						{
							"id": 738,
							"name": "timing",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 71,
									"character": 10
								}
							],
							"type": {
								"type": "reference",
								"name": "ITiming",
								"id": 729
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								737,
								738
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/debug.ts",
							"line": 69,
							"character": 27
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"name": "Generated",
							"id": 739
						}
					]
				},
				{
					"id": 729,
					"name": "ITiming",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 731,
							"name": "holeClosers",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 61,
									"character": 15
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						},
						{
							"id": 734,
							"name": "mats",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 64,
									"character": 8
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						},
						{
							"id": 732,
							"name": "oneAnd2Prongs",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 62,
									"character": 17
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						},
						{
							"id": 735,
							"name": "sats",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 65,
									"character": 8
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						},
						{
							"id": 730,
							"name": "simplify",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 60,
									"character": 12
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						},
						{
							"id": 733,
							"name": "threeProngs",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 63,
									"character": 15
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								731,
								734,
								732,
								735,
								730,
								733
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/debug.ts",
							"line": 59,
							"character": 24
						}
					]
				},
				{
					"id": 795,
					"name": "GeneratedElemTypes",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/debug/debug.ts",
							"line": 27,
							"character": 30
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 796,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/debug.ts",
									"line": 27,
									"character": 32
								}
							]
						}
					}
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						739,
						782
					]
				},
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						704,
						748,
						776,
						736,
						729
					]
				},
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						795
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/debug.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 420,
			"name": "\"src/debug/debug-elem-types\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/debug-elem-types.ts",
			"children": [
				{
					"id": 421,
					"name": "DebugElemType",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {},
					"sources": [
						{
							"fileName": "src/debug/debug-elem-types.ts",
							"line": 5,
							"character": 18
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "reference",
								"name": "ElemType_TwoProng",
								"id": 273
							},
							{
								"type": "stringLiteral",
								"value": "oneProng"
							},
							{
								"type": "stringLiteral",
								"value": "minY"
							},
							{
								"type": "stringLiteral",
								"value": "looseBoundingBox"
							},
							{
								"type": "stringLiteral",
								"value": "tightBoundingBox"
							},
							{
								"type": "stringLiteral",
								"value": "sharpCorner"
							},
							{
								"type": "stringLiteral",
								"value": "dullCorner"
							},
							{
								"type": "stringLiteral",
								"value": "oneProng"
							},
							{
								"type": "stringLiteral",
								"value": "oneProngAtDullCorner"
							},
							{
								"type": "stringLiteral",
								"value": "threeProng"
							},
							{
								"type": "stringLiteral",
								"value": "boundingHull"
							},
							{
								"type": "stringLiteral",
								"value": "mat"
							},
							{
								"type": "stringLiteral",
								"value": "sat"
							},
							{
								"type": "stringLiteral",
								"value": "loop"
							},
							{
								"type": "stringLiteral",
								"value": "loops"
							},
							{
								"type": "stringLiteral",
								"value": "maxVertex"
							},
							{
								"type": "stringLiteral",
								"value": "leaves"
							},
							{
								"type": "stringLiteral",
								"value": "culls"
							},
							{
								"type": "stringLiteral",
								"value": "intersection"
							}
						]
					}
				}
			],
			"groups": [
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						421
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/debug-elem-types.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 460,
			"name": "\"src/debug/functions/draw-elem/bounding-hull\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/bounding-hull.ts",
			"children": [
				{
					"id": 461,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/bounding-hull.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 462,
					"name": "boundingHull",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 463,
							"name": "boundingHull",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 464,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 465,
									"name": "hull",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 466,
									"name": "style",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"thin5 black nofill\""
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/bounding-hull.ts",
							"line": 7,
							"character": 21
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						461
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						462
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/bounding-hull.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 535,
			"name": "\"src/debug/functions/draw-elem/culls\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/culls.ts",
			"children": [
				{
					"id": 536,
					"name": "culls",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 537,
							"name": "culls",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 538,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 539,
									"name": "culls",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Circle",
											"id": 64
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/culls.ts",
							"line": 5,
							"character": 14
						}
					]
				},
				{
					"id": 540,
					"name": "drawCircle",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 541,
							"name": "drawCircle",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 542,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 543,
									"name": "center",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 544,
									"name": "radiusPercent",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 545,
									"name": "classes",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "SVGCircleElement"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/culls.ts",
							"line": 18,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						536,
						540
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/culls.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 523,
			"name": "\"src/debug/functions/draw-elem/draw-circle-percent\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/draw-circle-percent.ts",
			"children": [
				{
					"id": 524,
					"name": "drawCirclePercent",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 525,
							"name": "drawCirclePercent",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 526,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 527,
									"name": "center",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 528,
									"name": "radiusPercent",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 529,
									"name": "classes",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "SVGCircleElement"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/draw-circle-percent.ts",
							"line": 2,
							"character": 26
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						524
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/draw-circle-percent.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 557,
			"name": "\"src/debug/functions/draw-elem/draw-elem\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/draw-elem.ts",
			"children": [
				{
					"id": 558,
					"name": "IDrawElemFunctions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 614,
							"name": "boundingHull",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 48,
									"character": 13
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 615,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 616,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 617,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 618,
													"name": "hull",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													}
												},
												{
													"id": 619,
													"name": "style",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 48,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 657,
							"name": "culls",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 56,
									"character": 6
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 658,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 659,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 660,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 661,
													"name": "culls",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "reference",
															"name": "Circle",
															"id": 64
														}
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 56,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 625,
							"name": "dullCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 50,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 626,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 627,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 628,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 629,
													"name": "pos",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "PointOnShape",
														"id": 83
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 50,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 662,
							"name": "intersection",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 57,
									"character": 13
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 663,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 664,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 665,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 666,
													"name": "x",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "X",
														"id": 147
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 57,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 652,
							"name": "leaves",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 55,
									"character": 7
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 653,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 654,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 655,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 656,
													"name": "leaves",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "reference",
															"name": "CpNode",
															"id": 798
														}
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 55,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 637,
							"name": "loop",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 52,
									"character": 5
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 638,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 639,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 640,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 641,
													"name": "loop",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "Loop",
														"id": 10
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 52,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 642,
							"name": "loops",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 53,
									"character": 6
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 643,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 644,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 645,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 646,
													"name": "loops",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "reference",
															"name": "Loop",
															"id": 10
														}
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 53,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 604,
							"name": "looseBoundingBox",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 46,
									"character": 17
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 605,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 606,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 607,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 608,
													"name": "box",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 46,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 647,
							"name": "maxVertex",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 54,
									"character": 10
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 648,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 649,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 650,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 651,
													"name": "cpNode",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 54,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 599,
							"name": "minY",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 45,
									"character": 5
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 600,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 601,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 602,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 603,
													"name": "pos",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "PointOnShape",
														"id": 83
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 45,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 559,
							"name": "oneProng",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 37,
									"character": 9
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 560,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 561,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 562,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 563,
													"name": "pos",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "PointOnShape",
														"id": 83
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 37,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 564,
							"name": "oneProngAtDullCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 38,
									"character": 21
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 565,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 566,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 567,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 568,
													"name": "pos",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "PointOnShape",
														"id": 83
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 38,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 620,
							"name": "sharpCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 49,
									"character": 12
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 621,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 622,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 623,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 624,
													"name": "pos",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "PointOnShape",
														"id": 83
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 49,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 594,
							"name": "threeProng",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 44,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 595,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 596,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 597,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 598,
													"name": "threeProng",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "ThreeProngForDebugging",
														"id": 346
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 44,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 609,
							"name": "tightBoundingBox",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 47,
									"character": 17
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 610,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 611,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 612,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 613,
													"name": "box",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 47,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 584,
							"name": "twoProng_deleted",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 42,
									"character": 17
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 585,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 586,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 587,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 588,
													"name": "twoProng",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "TwoProngForDebugging",
														"id": 235
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 42,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 574,
							"name": "twoProng_failed",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 40,
									"character": 16
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 575,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 576,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 577,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 578,
													"name": "twoProng",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "TwoProngForDebugging",
														"id": 235
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 40,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 589,
							"name": "twoProng_holeClosing",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 43,
									"character": 21
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 590,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 591,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 592,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 593,
													"name": "twoProng",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "TwoProngForDebugging",
														"id": 235
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 43,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 579,
							"name": "twoProng_notAdded",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 41,
									"character": 18
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 580,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 581,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 582,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 583,
													"name": "twoProng",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "TwoProngForDebugging",
														"id": 235
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 41,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 569,
							"name": "twoProng_regular",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 39,
									"character": 17
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 570,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 571,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 572,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 573,
													"name": "twoProng",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "TwoProngForDebugging",
														"id": 235
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 39,
											"character": 23
										}
									]
								}
							}
						},
						{
							"id": 630,
							"name": "vertex",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 51,
									"character": 7
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 631,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 632,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 633,
													"name": "g",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "SVGGElement"
													}
												},
												{
													"id": 634,
													"name": "node",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												},
												{
													"id": 635,
													"name": "visible",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "boolean"
													}
												},
												{
													"id": 636,
													"name": "displayDelay",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "SVGElement"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
											"line": 51,
											"character": 23
										}
									]
								}
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								614,
								657,
								625,
								662,
								652,
								637,
								642,
								604,
								647,
								599,
								559,
								564,
								620,
								594,
								609,
								584,
								574,
								589,
								579,
								569,
								630
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
							"line": 36,
							"character": 35
						}
					],
					"extendedTypes": [
						{
							"type": "reflection",
							"declaration": {
								"id": 667,
								"name": "__type",
								"kind": 65536,
								"kindString": "Type literal",
								"flags": {},
								"sources": [
									{
										"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
										"line": 36,
										"character": 43
									}
								]
							}
						}
					]
				},
				{
					"id": 668,
					"name": "TDrawElemFunctions",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
							"line": 32,
							"character": 30
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 669,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 32,
									"character": 32
								}
							]
						}
					}
				},
				{
					"id": 670,
					"name": "drawElemFunctions",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isLet": true
					},
					"children": [
						{
							"id": 680,
							"name": "boundingHull",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 71,
									"character": 13
								}
							],
							"type": {
								"type": "reference",
								"name": "boundingHull",
								"id": 462
							}
						},
						{
							"id": 692,
							"name": "culls",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 83,
									"character": 6
								}
							],
							"type": {
								"type": "reference",
								"name": "culls",
								"id": 536
							}
						},
						{
							"id": 684,
							"name": "dullCorner",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 75,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "dullCorner",
								"id": 487
							}
						},
						{
							"id": 693,
							"name": "intersection",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 84,
									"character": 13
								}
							],
							"type": {
								"type": "reference",
								"name": "intersection",
								"id": 547
							}
						},
						{
							"id": 691,
							"name": "leaves",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 82,
									"character": 7
								}
							],
							"type": {
								"type": "reference",
								"name": "leaves",
								"id": 531
							}
						},
						{
							"id": 688,
							"name": "loop",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 79,
									"character": 5
								}
							],
							"type": {
								"type": "reference",
								"name": "loop",
								"id": 508
							}
						},
						{
							"id": 689,
							"name": "loops",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 80,
									"character": 6
								}
							],
							"type": {
								"type": "reference",
								"name": "loops",
								"id": 513
							}
						},
						{
							"id": 681,
							"name": "looseBoundingBox",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 72,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"name": "looseBoundingBox",
								"id": 469
							}
						},
						{
							"id": 686,
							"name": "mat",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 77,
									"character": 4
								}
							],
							"type": {
								"type": "reference",
								"name": "f"
							},
							"defaultValue": " mat('mat', true)"
						},
						{
							"id": 690,
							"name": "maxVertex",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 81,
									"character": 10
								}
							],
							"type": {
								"type": "reference",
								"name": "maxVertex",
								"id": 519
							}
						},
						{
							"id": 679,
							"name": "minY",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 70,
									"character": 5
								}
							],
							"type": {
								"type": "reference",
								"name": "minY",
								"id": 456
							}
						},
						{
							"id": 671,
							"name": "oneProng",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 62,
									"character": 9
								}
							],
							"type": {
								"type": "reference",
								"name": "oneProng",
								"id": 425
							}
						},
						{
							"id": 672,
							"name": "oneProngAtDullCorner",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 63,
									"character": 21
								}
							],
							"type": {
								"type": "reference",
								"name": "oneProngAtDullCorner",
								"id": 553
							}
						},
						{
							"id": 687,
							"name": "sat",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 78,
									"character": 4
								}
							],
							"type": {
								"type": "reference",
								"name": "f"
							},
							"defaultValue": " mat('sat', true)"
						},
						{
							"id": 683,
							"name": "sharpCorner",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 74,
									"character": 12
								}
							],
							"type": {
								"type": "reference",
								"name": "sharpCorner",
								"id": 481
							}
						},
						{
							"id": 678,
							"name": "threeProng",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 69,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "threeProng",
								"id": 442
							}
						},
						{
							"id": 682,
							"name": "tightBoundingBox",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 73,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"name": "tightBoundingBox",
								"id": 475
							}
						},
						{
							"id": 676,
							"name": "twoProng_deleted",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 67,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"name": "twoProng",
								"id": 435
							},
							"defaultValue": " twoProng"
						},
						{
							"id": 674,
							"name": "twoProng_failed",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 65,
									"character": 16
								}
							],
							"type": {
								"type": "reference",
								"name": "twoProng",
								"id": 435
							},
							"defaultValue": " twoProng"
						},
						{
							"id": 677,
							"name": "twoProng_holeClosing",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 68,
									"character": 21
								}
							],
							"type": {
								"type": "reference",
								"name": "twoProng",
								"id": 435
							},
							"defaultValue": " twoProng"
						},
						{
							"id": 675,
							"name": "twoProng_notAdded",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 66,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"name": "twoProng",
								"id": 435
							},
							"defaultValue": " twoProng"
						},
						{
							"id": 673,
							"name": "twoProng_regular",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 64,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"name": "twoProng",
								"id": 435
							},
							"defaultValue": " twoProng"
						},
						{
							"id": 685,
							"name": "vertex",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
									"line": 76,
									"character": 7
								}
							],
							"type": {
								"type": "reference",
								"name": "vertex",
								"id": 448
							}
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								680,
								692,
								684,
								693,
								691,
								688,
								689,
								681,
								686,
								690,
								679,
								671,
								672,
								687,
								683,
								678,
								682,
								676,
								674,
								677,
								675,
								673,
								685
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
							"line": 61,
							"character": 21
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				}
			],
			"groups": [
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						558
					]
				},
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						668
					]
				},
				{
					"title": "Object literals",
					"kind": 2097152,
					"children": [
						670
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/draw-elem.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 485,
			"name": "\"src/debug/functions/draw-elem/dull-corner\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/dull-corner.ts",
			"children": [
				{
					"id": 486,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/dull-corner.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 487,
					"name": "dullCorner",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 488,
							"name": "dullCorner",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 489,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 490,
									"name": "pos",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/dull-corner.ts",
							"line": 9,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						486
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						487
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/dull-corner.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 546,
			"name": "\"src/debug/functions/draw-elem/intersection\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/intersection.ts",
			"children": [
				{
					"id": 547,
					"name": "intersection",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 548,
							"name": "intersection",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 549,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 550,
									"name": "x",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "X",
										"id": 147
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGCircleElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/intersection.ts",
							"line": 6,
							"character": 21
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						547
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/intersection.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 530,
			"name": "\"src/debug/functions/draw-elem/leaves\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/leaves.ts",
			"children": [
				{
					"id": 531,
					"name": "leaves",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 532,
							"name": "leaves",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 533,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 534,
									"name": "leaves",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/leaves.ts",
							"line": 7,
							"character": 15
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						531
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/leaves.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 507,
			"name": "\"src/debug/functions/draw-elem/loop\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/loop.ts",
			"children": [
				{
					"id": 508,
					"name": "loop",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 509,
							"name": "loop",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 510,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 511,
									"name": "loop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/loop.ts",
							"line": 5,
							"character": 13
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						508
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/loop.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 512,
			"name": "\"src/debug/functions/draw-elem/loops\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/loops.ts",
			"children": [
				{
					"id": 513,
					"name": "loops",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 514,
							"name": "loops",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 515,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 516,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/loops.ts",
							"line": 6,
							"character": 14
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						513
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/loops.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 467,
			"name": "\"src/debug/functions/draw-elem/loose-bounding-box\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/loose-bounding-box.ts",
			"children": [
				{
					"id": 468,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/loose-bounding-box.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 469,
					"name": "looseBoundingBox",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 470,
							"name": "looseBoundingBox",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 471,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 472,
									"name": "box",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/loose-bounding-box.ts",
							"line": 7,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						468
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						469
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/loose-bounding-box.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 501,
			"name": "\"src/debug/functions/draw-elem/mat\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/mat.ts",
			"children": [
				{
					"id": 502,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/mat.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 503,
					"name": "mat",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 504,
							"name": "mat",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 505,
									"name": "type",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "stringLiteral",
												"value": "mat"
											},
											{
												"type": "stringLiteral",
												"value": "sat"
											}
										]
									}
								},
								{
									"id": 506,
									"name": "smooth",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "f"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/mat.ts",
							"line": 13,
							"character": 12
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						502
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						503
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/mat.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 517,
			"name": "\"src/debug/functions/draw-elem/max-vertex\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/max-vertex.ts",
			"children": [
				{
					"id": 518,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/max-vertex.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 519,
					"name": "maxVertex",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 520,
							"name": "maxVertex",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 521,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 522,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/max-vertex.ts",
							"line": 9,
							"character": 18
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						518
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						519
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/max-vertex.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 454,
			"name": "\"src/debug/functions/draw-elem/min-y\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/min-y.ts",
			"children": [
				{
					"id": 455,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/min-y.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 456,
					"name": "minY",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 457,
							"name": "minY",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 458,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 459,
									"name": "pos",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/min-y.ts",
							"line": 11,
							"character": 13
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						455
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						456
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/min-y.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 422,
			"name": "\"src/debug/functions/draw-elem/one-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/one-prong.ts",
			"children": [
				{
					"id": 423,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/one-prong.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 424,
					"name": "scaleFactor",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/one-prong.ts",
							"line": 9,
							"character": 17
						}
					],
					"type": {
						"type": "unknown",
						"name": "0.5"
					},
					"defaultValue": "0.5"
				},
				{
					"id": 425,
					"name": "oneProng",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 426,
							"name": "oneProng",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 427,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 428,
									"name": "pos",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/one-prong.ts",
							"line": 12,
							"character": 17
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						423,
						424
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						425
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/one-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 551,
			"name": "\"src/debug/functions/draw-elem/one-prong-at-dull-corner\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/one-prong-at-dull-corner.ts",
			"children": [
				{
					"id": 552,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/one-prong-at-dull-corner.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 553,
					"name": "oneProngAtDullCorner",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 554,
							"name": "oneProngAtDullCorner",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 555,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 556,
									"name": "pos",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/one-prong-at-dull-corner.ts",
							"line": 9,
							"character": 29
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						552
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						553
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/one-prong-at-dull-corner.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 479,
			"name": "\"src/debug/functions/draw-elem/sharp-corner\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/sharp-corner.ts",
			"children": [
				{
					"id": 480,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/sharp-corner.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 481,
					"name": "sharpCorner",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 482,
							"name": "sharpCorner",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 483,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 484,
									"name": "pos",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/sharp-corner.ts",
							"line": 9,
							"character": 20
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						480
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						481
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/sharp-corner.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 439,
			"name": "\"src/debug/functions/draw-elem/three-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/three-prong.ts",
			"children": [
				{
					"id": 440,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/three-prong.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 441,
					"name": "scaleFactor",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/three-prong.ts",
							"line": 10,
							"character": 17
						}
					],
					"type": {
						"type": "unknown",
						"name": "0.3"
					},
					"defaultValue": "0.3"
				},
				{
					"id": 442,
					"name": "threeProng",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 443,
							"name": "threeProng",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 444,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 445,
									"name": "threeProng",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "ThreeProngForDebugging",
										"id": 346
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/three-prong.ts",
							"line": 13,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						440,
						441
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						442
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/three-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 473,
			"name": "\"src/debug/functions/draw-elem/tight-bounding-box\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/tight-bounding-box.ts",
			"children": [
				{
					"id": 474,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/tight-bounding-box.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 475,
					"name": "tightBoundingBox",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 476,
							"name": "tightBoundingBox",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 477,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 478,
									"name": "box",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/tight-bounding-box.ts",
							"line": 7,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						474
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						475
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/tight-bounding-box.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 433,
			"name": "\"src/debug/functions/draw-elem/two-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/two-prong.ts",
			"children": [
				{
					"id": 434,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/two-prong.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 435,
					"name": "twoProng",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 436,
							"name": "twoProng",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 437,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 438,
									"name": "twoProng",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "TwoProngForDebugging",
										"id": 235
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/two-prong.ts",
							"line": 11,
							"character": 17
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						434
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						435
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/two-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 446,
			"name": "\"src/debug/functions/draw-elem/vertex\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/draw-elem/vertex.ts",
			"children": [
				{
					"id": 447,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/vertex.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 448,
					"name": "vertex",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 449,
							"name": "vertex",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 450,
									"name": "g",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGGElement"
									}
								},
								{
									"id": 451,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								},
								{
									"id": 452,
									"name": "visible",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"defaultValue": "true"
								},
								{
									"id": 453,
									"name": "displayDelay",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isOptional": true
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "SVGElement"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/draw-elem/vertex.ts",
							"line": 9,
							"character": 15
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						447
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						448
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/draw-elem/vertex.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 176,
			"name": "\"src/debug/functions/general\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/general.ts",
			"children": [
				{
					"id": 177,
					"name": "IGeneralDebugFunctions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 178,
							"name": "nameObj",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 8,
									"character": 8
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 179,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 180,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 181,
													"name": "obj",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "any"
													}
												},
												{
													"id": 182,
													"name": "pre",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/general.ts",
											"line": 8,
											"character": 14
										}
									]
								}
							}
						},
						{
							"id": 191,
							"name": "pointToStr",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 11,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 192,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 193,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 194,
													"name": "p",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												},
												{
													"id": 195,
													"name": "decimalPlaces",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/general.ts",
											"line": 11,
											"character": 14
										}
									]
								}
							}
						},
						{
							"id": 196,
							"name": "pointsToStr",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 12,
									"character": 12
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 197,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 198,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 199,
													"name": "ps",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													}
												},
												{
													"id": 200,
													"name": "decimalPlaces",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/general.ts",
											"line": 12,
											"character": 14
										}
									]
								}
							}
						},
						{
							"id": 183,
							"name": "δToString",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 9,
									"character": 10
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 184,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 185,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 186,
													"name": "cpNodes",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "reference",
															"name": "CpNode",
															"id": 798
														}
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/general.ts",
											"line": 9,
											"character": 14
										}
									]
								}
							}
						},
						{
							"id": 187,
							"name": "δsToString",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 10,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 188,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 189,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 190,
													"name": "cpNodes",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "reference",
																"name": "CpNode",
																"id": 798
															}
														}
													}
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/general.ts",
											"line": 10,
											"character": 14
										}
									]
								}
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								178,
								191,
								196,
								183,
								187
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/general.ts",
							"line": 7,
							"character": 39
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"name": "IDebugFunctions",
							"id": 748
						}
					]
				},
				{
					"id": 201,
					"name": "i",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/general.ts",
							"line": 16,
							"character": 5
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "number"
					},
					"defaultValue": "0"
				},
				{
					"id": 202,
					"name": "nameObj",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 203,
							"name": "nameObj",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Name the given object - for debugging purposes only"
							},
							"parameters": [
								{
									"id": 204,
									"name": "o",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "any"
									}
								},
								{
									"id": 205,
									"name": "pre",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"\""
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/general.ts",
							"line": 18,
							"character": 16
						}
					]
				},
				{
					"id": 216,
					"name": "pointToStr",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 217,
							"name": "pointToStr",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Converts the given point into a human readable string."
							},
							"parameters": [
								{
									"id": 218,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The point"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 219,
									"name": "decimalPlaces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "number of decimal places\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": "3"
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/general.ts",
							"line": 56,
							"character": 19
						}
					]
				},
				{
					"id": 212,
					"name": "pointsToStr",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 213,
							"name": "pointsToStr",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Convert the given points into a human readable string."
							},
							"parameters": [
								{
									"id": 214,
									"name": "ps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 215,
									"name": "decimalPlaces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": "3"
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "string"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/general.ts",
							"line": 46,
							"character": 20
						}
					]
				},
				{
					"id": 206,
					"name": "δToString",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 207,
							"name": "δToString",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Transforms a boundary piece (δ) into a human readable string."
							},
							"parameters": [
								{
									"id": 208,
									"name": "cpNodes",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A boundary piece given by two CpNodes.\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "string"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/general.ts",
							"line": 26,
							"character": 18
						}
					]
				},
				{
					"id": 209,
					"name": "δsToString",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 210,
							"name": "δsToString",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Transforms an array of boundary pieces (δs) into a human readable string."
							},
							"parameters": [
								{
									"id": 211,
									"name": "cpNodes",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "An array of boundary pieces.\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/general.ts",
							"line": 37,
							"character": 19
						}
					]
				},
				{
					"id": 220,
					"name": "generalDebugFunctions",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isLet": true
					},
					"children": [
						{
							"id": 225,
							"name": "nameObj",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 66,
									"character": 8
								}
							],
							"type": {
								"type": "reference",
								"name": "nameObj",
								"id": 202
							}
						},
						{
							"id": 223,
							"name": "pointToStr",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 64,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "pointToStr",
								"id": 216
							}
						},
						{
							"id": 224,
							"name": "pointsToStr",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 65,
									"character": 12
								}
							],
							"type": {
								"type": "reference",
								"name": "pointsToStr",
								"id": 212
							}
						},
						{
							"id": 221,
							"name": "δToString",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 62,
									"character": 10
								}
							],
							"type": {
								"type": "reference",
								"name": "δToString",
								"id": 206
							}
						},
						{
							"id": 222,
							"name": "δsToString",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/general.ts",
									"line": 63,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "δsToString",
								"id": 209
							}
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								225,
								223,
								224,
								221,
								222
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/general.ts",
							"line": 61,
							"character": 25
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				}
			],
			"groups": [
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						177
					]
				},
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						201
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						202,
						216,
						212,
						206,
						209
					]
				},
				{
					"title": "Object literals",
					"kind": 2097152,
					"children": [
						220
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/general.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 364,
			"name": "\"src/debug/functions/three-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/three-prong.ts",
			"children": [
				{
					"id": 365,
					"name": "IThreeProngDebugFunctions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 366,
							"name": "drawSpokes",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/three-prong.ts",
									"line": 14,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 367,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 368,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 369,
													"name": "n",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/three-prong.ts",
											"line": 14,
											"character": 19
										}
									]
								}
							}
						},
						{
							"id": 384,
							"name": "logNearest",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/three-prong.ts",
									"line": 18,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 385,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 386,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 387,
													"name": "showSpokes",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "boolean"
													}
												},
												{
													"id": 388,
													"name": "showTrace",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "boolean"
													}
												},
												{
													"id": 389,
													"name": "showBoundaries",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "boolean"
													}
												}
											],
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 390,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {},
													"signatures": [
														{
															"id": 391,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {},
															"parameters": [
																{
																	"id": 392,
																	"name": "p",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {},
																	"type": {
																		"type": "array",
																		"elementType": {
																			"type": "intrinsic",
																			"name": "number"
																		}
																	}
																},
																{
																	"id": 393,
																	"name": "showDelay",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isOptional": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "void"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/debug/functions/three-prong.ts",
															"line": 22,
															"character": 5
														}
													]
												}
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/three-prong.ts",
											"line": 18,
											"character": 19
										}
									]
								}
							}
						},
						{
							"id": 380,
							"name": "logδs",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/three-prong.ts",
									"line": 17,
									"character": 6
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 381,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 382,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 383,
													"name": "n",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/three-prong.ts",
											"line": 17,
											"character": 19
										}
									]
								}
							}
						},
						{
							"id": 375,
							"name": "showBoundary",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/three-prong.ts",
									"line": 16,
									"character": 13
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 376,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 377,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 378,
													"name": "n",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												},
												{
													"id": 379,
													"name": "indx",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/three-prong.ts",
											"line": 16,
											"character": 19
										}
									]
								}
							}
						},
						{
							"id": 370,
							"name": "traceConvergence",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/debug/functions/three-prong.ts",
									"line": 15,
									"character": 17
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 371,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 372,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 373,
													"name": "n",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												},
												{
													"id": 374,
													"name": "indx",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/three-prong.ts",
											"line": 15,
											"character": 19
										}
									]
								}
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								366,
								384,
								380,
								375,
								370
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/three-prong.ts",
							"line": 13,
							"character": 42
						}
					]
				},
				{
					"id": 394,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/three-prong.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 395,
					"name": "drawSpokes",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 396,
							"name": "drawSpokes",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Draws 3 lines from the given 3-prong center to its 3 contact points."
							},
							"parameters": [
								{
									"id": 397,
									"name": "n",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The 3-prong's zero-based index.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/three-prong.ts",
							"line": 30,
							"character": 19
						}
					]
				},
				{
					"id": 409,
					"name": "logNearest",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 410,
							"name": "logNearest",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 411,
									"name": "showSpokes",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"defaultValue": "true"
								},
								{
									"id": 412,
									"name": "showTrace",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"defaultValue": "true"
								},
								{
									"id": 413,
									"name": "showBoundaries",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"defaultValue": "true"
								}
							],
							"type": {
								"type": "reference",
								"name": "(Anonymous function)"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/three-prong.ts",
							"line": 177,
							"character": 19
						}
					]
				},
				{
					"id": 406,
					"name": "logδs",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 407,
							"name": "logδs",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 408,
									"name": "n",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The 3-prong's zero-based index.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/three-prong.ts",
							"line": 166,
							"character": 14
						}
					]
				},
				{
					"id": 402,
					"name": "showBoundary",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 403,
							"name": "showBoundary",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Shows the actual boundary for each iteration."
							},
							"parameters": [
								{
									"id": 404,
									"name": "n",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The 3-prong's zero-based index."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 405,
									"name": "idx",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The specific boundary iteration index to view. If ommitted will\nshow all.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/three-prong.ts",
							"line": 109,
							"character": 21
						}
					]
				},
				{
					"id": 398,
					"name": "traceConvergence",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 399,
							"name": "traceConvergence",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Shows the circle for each boundary iteration."
							},
							"parameters": [
								{
									"id": 400,
									"name": "n_",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The 3-prong's zero-based index. If ommitted, all will be shown."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 401,
									"name": "idx",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The specific boundary iteration index to view. If ommitted, all\nwill be shown.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/three-prong.ts",
							"line": 48,
							"character": 25
						}
					]
				},
				{
					"id": 414,
					"name": "threeProngDebugFunctions",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isLet": true
					},
					"children": [
						{
							"id": 415,
							"name": "drawSpokes",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/three-prong.ts",
									"line": 245,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "drawSpokes",
								"id": 395
							}
						},
						{
							"id": 419,
							"name": "logNearest",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/three-prong.ts",
									"line": 249,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "logNearest",
								"id": 409
							}
						},
						{
							"id": 418,
							"name": "logδs",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/three-prong.ts",
									"line": 248,
									"character": 6
								}
							],
							"type": {
								"type": "reference",
								"name": "logδs",
								"id": 406
							}
						},
						{
							"id": 417,
							"name": "showBoundary",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/three-prong.ts",
									"line": 247,
									"character": 13
								}
							],
							"type": {
								"type": "reference",
								"name": "showBoundary",
								"id": 402
							}
						},
						{
							"id": 416,
							"name": "traceConvergence",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/three-prong.ts",
									"line": 246,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"name": "traceConvergence",
								"id": 398
							}
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								415,
								419,
								418,
								417,
								416
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/three-prong.ts",
							"line": 244,
							"character": 28
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				}
			],
			"groups": [
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						365
					]
				},
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						394
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						395,
						409,
						406,
						402,
						398
					]
				},
				{
					"title": "Object literals",
					"kind": 2097152,
					"children": [
						414
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/three-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 274,
			"name": "\"src/debug/functions/two-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/functions/two-prong.ts",
			"children": [
				{
					"id": 275,
					"name": "ITwoProngDebugFunctions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {},
					"children": [
						{
							"id": 286,
							"name": "drawNormal",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 22,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 287,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 288,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 289,
													"name": "n",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												},
												{
													"id": 290,
													"name": "showDelay",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/two-prong.ts",
											"line": 22,
											"character": 13
										}
									]
								}
							}
						},
						{
							"id": 281,
							"name": "log",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 21,
									"character": 4
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 282,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 283,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 284,
													"name": "n",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												},
												{
													"id": 285,
													"name": "type",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "reference",
														"name": "ElemType_TwoProng",
														"id": 273
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/two-prong.ts",
											"line": 21,
											"character": 13
										}
									]
								}
							}
						},
						{
							"id": 295,
							"name": "logNearest",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 24,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 296,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 297,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 298,
													"name": "p",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												},
												{
													"id": 299,
													"name": "showDelay",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/two-prong.ts",
											"line": 24,
											"character": 13
										}
									]
								}
							}
						},
						{
							"id": 276,
							"name": "logδ",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 20,
									"character": 5
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 277,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 278,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 279,
													"name": "n",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												},
												{
													"id": 280,
													"name": "type",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "reference",
														"name": "ElemType_TwoProng",
														"id": 273
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/two-prong.ts",
											"line": 20,
											"character": 13
										}
									]
								}
							}
						},
						{
							"id": 291,
							"name": "logδBasic",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 23,
									"character": 10
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 292,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 293,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 294,
													"name": "n",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/two-prong.ts",
											"line": 23,
											"character": 13
										}
									]
								}
							}
						},
						{
							"id": 300,
							"name": "traceConvergence",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 25,
									"character": 17
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 301,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 302,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 303,
													"name": "n",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												},
												{
													"id": 304,
													"name": "finalOnly",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "boolean"
													}
												},
												{
													"id": 305,
													"name": "showDelay",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												},
												{
													"id": 306,
													"name": "range",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												},
												{
													"id": 307,
													"name": "type",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isOptional": true
													},
													"type": {
														"type": "reference",
														"name": "ElemType_TwoProng",
														"id": 273
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/debug/functions/two-prong.ts",
											"line": 25,
											"character": 18
										}
									]
								}
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								286,
								281,
								295,
								276,
								291,
								300
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/two-prong.ts",
							"line": 19,
							"character": 33
						}
					]
				},
				{
					"id": 308,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/debug/functions/two-prong.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 317,
					"name": "drawNormal",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 318,
							"name": "drawNormal",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 319,
									"name": "n",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 320,
									"name": "showDelay",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": "1000"
								},
								{
									"id": 321,
									"name": "type",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "ElemType_TwoProng",
										"id": 273
									},
									"defaultValue": "\"twoProng_regular\""
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/two-prong.ts",
							"line": 52,
							"character": 19
						}
					]
				},
				{
					"id": 313,
					"name": "log",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 314,
							"name": "log",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 315,
									"name": "n",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 316,
									"name": "type",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "ElemType_TwoProng",
										"id": 273
									},
									"defaultValue": "\"twoProng_regular\""
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/two-prong.ts",
							"line": 43,
							"character": 12
						}
					]
				},
				{
					"id": 326,
					"name": "logNearest",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 327,
							"name": "logNearest",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 328,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 329,
									"name": "showDelay",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": "1000"
								},
								{
									"id": 330,
									"name": "type",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "ElemType_TwoProng",
										"id": 273
									},
									"defaultValue": "\"twoProng_regular\""
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/two-prong.ts",
							"line": 103,
							"character": 19
						}
					]
				},
				{
					"id": 309,
					"name": "logδ",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 310,
							"name": "logδ",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 311,
									"name": "n",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 312,
									"name": "type",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "ElemType_TwoProng",
										"id": 273
									},
									"defaultValue": "\"twoProng_regular\""
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/two-prong.ts",
							"line": 33,
							"character": 13
						}
					]
				},
				{
					"id": 322,
					"name": "logδBasic",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 323,
							"name": "logδBasic",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 324,
									"name": "n",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 325,
									"name": "type",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "ElemType_TwoProng",
										"id": 273
									},
									"defaultValue": "\"twoProng_regular\""
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/two-prong.ts",
							"line": 81,
							"character": 18
						}
					]
				},
				{
					"id": 331,
					"name": "traceConvergence",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 332,
							"name": "traceConvergence",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 333,
									"name": "n",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The 2-prong's zero-based index."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 334,
									"name": "finalOnly",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								},
								{
									"id": 335,
									"name": "showDelay",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": "1000"
								},
								{
									"id": 336,
									"name": "range",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\ncascade of convergence)\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									},
									"defaultValue": " undefined"
								},
								{
									"id": 337,
									"name": "type",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "ElemType_TwoProng",
										"id": 273
									},
									"defaultValue": "\"twoProng_regular\""
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/two-prong.ts",
							"line": 141,
							"character": 25
						}
					]
				},
				{
					"id": 338,
					"name": "twoProngDebugFunctions",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isLet": true
					},
					"children": [
						{
							"id": 341,
							"name": "drawNormal",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 193,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "drawNormal",
								"id": 317
							}
						},
						{
							"id": 340,
							"name": "log",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 192,
									"character": 4
								}
							],
							"type": {
								"type": "reference",
								"name": "log",
								"id": 313
							}
						},
						{
							"id": 344,
							"name": "logNearest",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 196,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "logNearest",
								"id": 326
							}
						},
						{
							"id": 339,
							"name": "logδ",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 191,
									"character": 5
								}
							],
							"type": {
								"type": "reference",
								"name": "logδ",
								"id": 309
							}
						},
						{
							"id": 342,
							"name": "logδBasic",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 194,
									"character": 10
								}
							],
							"type": {
								"type": "reference",
								"name": "logδBasic",
								"id": 322
							}
						},
						{
							"id": 343,
							"name": "traceConvergence",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/debug/functions/two-prong.ts",
									"line": 195,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"name": "traceConvergence",
								"id": 331
							}
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								341,
								340,
								344,
								339,
								342,
								343
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/functions/two-prong.ts",
							"line": 190,
							"character": 26
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				}
			],
			"groups": [
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						275
					]
				},
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						308
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						317,
						313,
						326,
						309,
						322,
						331
					]
				},
				{
					"title": "Object literals",
					"kind": 2097152,
					"children": [
						338
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/functions/two-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 345,
			"name": "\"src/debug/three-prong-for-debugging\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/three-prong-for-debugging.ts",
			"children": [
				{
					"id": 346,
					"name": "ThreeProngForDebugging",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"comment": {
						"shortText": "Class used in debugging. A three-prong is a maximally inscribed circle that\ntouches the shape boundary (tangentially) at 3 points."
					},
					"children": [
						{
							"id": 360,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"comment": {},
							"signatures": [
								{
									"id": 361,
									"name": "new ThreeProngForDebugging",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "ThreeProngForDebugging",
										"id": 346
									}
								}
							],
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 26,
									"character": 37
								}
							]
						},
						{
							"id": 352,
							"name": "bestIndx",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 19,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 358,
							"name": "boundaries",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 25,
									"character": 21
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							}
						},
						{
							"id": 353,
							"name": "candidateThreeProngs",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 20,
									"character": 31
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reflection",
									"declaration": {
										"id": 354,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {},
										"children": [
											{
												"id": 355,
												"name": "circle",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/debug/three-prong-for-debugging.ts",
														"line": 21,
														"character": 14
													}
												],
												"type": {
													"type": "reference",
													"name": "Circle",
													"id": 64
												}
											},
											{
												"id": 356,
												"name": "ps",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/debug/three-prong-for-debugging.ts",
														"line": 22,
														"character": 10
													}
												],
												"type": {
													"type": "array",
													"elementType": {
														"type": "reference",
														"name": "PointOnShape",
														"id": 83
													}
												}
											}
										],
										"groups": [
											{
												"title": "Variables",
												"kind": 32,
												"children": [
													355,
													356
												]
											}
										],
										"sources": [
											{
												"fileName": "src/debug/three-prong-for-debugging.ts",
												"line": 20,
												"character": 33
											}
										]
									}
								}
							}
						},
						{
							"id": 348,
							"name": "circle",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 15,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"name": "Circle",
								"id": 64
							}
						},
						{
							"id": 350,
							"name": "cp3ss",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 17,
									"character": 16
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							}
						},
						{
							"id": 351,
							"name": "cpss",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 18,
									"character": 15
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							}
						},
						{
							"id": 347,
							"name": "generated",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 14,
									"character": 20
								}
							],
							"type": {
								"type": "reference",
								"name": "Generated",
								"id": 739
							}
						},
						{
							"id": 349,
							"name": "poss",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 16,
									"character": 15
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "PointOnShape",
									"id": 83
								}
							}
						},
						{
							"id": 359,
							"name": "traces",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 26,
									"character": 17
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							}
						},
						{
							"id": 357,
							"name": "visitedCps",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 24,
									"character": 21
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "CpNode",
									"id": 798
								}
							}
						},
						{
							"id": 362,
							"name": "cpsSimple",
							"kind": 262144,
							"kindString": "Accessor",
							"flags": {},
							"getSignature": {
								"id": 363,
								"name": "__get",
								"kind": 524288,
								"kindString": "Get signature",
								"flags": {},
								"type": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "string"
										}
									}
								}
							},
							"sources": [
								{
									"fileName": "src/debug/three-prong-for-debugging.ts",
									"line": 43,
									"character": 17
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								360
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								352,
								358,
								353,
								348,
								350,
								351,
								347,
								349,
								359,
								357
							]
						},
						{
							"title": "Accessors",
							"kind": 262144,
							"children": [
								362
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/three-prong-for-debugging.ts",
							"line": 12,
							"character": 28
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						346
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/three-prong-for-debugging.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 234,
			"name": "\"src/debug/two-prong-for-debugging\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/debug/two-prong-for-debugging.ts",
			"children": [
				{
					"id": 235,
					"name": "TwoProngForDebugging",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 236,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"signatures": [
								{
									"id": 254,
									"name": "new TwoProngForDebugging",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"parameters": [
										{
											"id": 255,
											"name": "generated",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "Generated",
												"id": 739
											}
										},
										{
											"id": 256,
											"name": "bezierPieces",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "BezierPiece",
													"id": 227
												}
											}
										},
										{
											"id": 257,
											"name": "pos",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										},
										{
											"id": 258,
											"name": "δ",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "CpNode",
													"id": 798
												}
											}
										},
										{
											"id": 259,
											"name": "z",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										},
										{
											"id": 260,
											"name": "circle",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										},
										{
											"id": 261,
											"name": "xs",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reflection",
													"declaration": {
														"id": 262,
														"name": "__type",
														"kind": 65536,
														"kindString": "Type literal",
														"flags": {},
														"children": [
															{
																"id": 266,
																"name": "t",
																"kind": 32,
																"kindString": "Variable",
																"flags": {},
																"sources": [
																	{
																		"fileName": "src/debug/two-prong-for-debugging.ts",
																		"line": 21,
																		"character": 17
																	}
																],
																"type": {
																	"type": "intrinsic",
																	"name": "number"
																}
															},
															{
																"id": 263,
																"name": "x",
																"kind": 32,
																"kindString": "Variable",
																"flags": {},
																"sources": [
																	{
																		"fileName": "src/debug/two-prong-for-debugging.ts",
																		"line": 18,
																		"character": 17
																	}
																],
																"type": {
																	"type": "array",
																	"elementType": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															},
															{
																"id": 264,
																"name": "y",
																"kind": 32,
																"kindString": "Variable",
																"flags": {},
																"sources": [
																	{
																		"fileName": "src/debug/two-prong-for-debugging.ts",
																		"line": 19,
																		"character": 17
																	}
																],
																"type": {
																	"type": "reference",
																	"name": "PointOnShape",
																	"id": 83
																}
															},
															{
																"id": 265,
																"name": "z",
																"kind": 32,
																"kindString": "Variable",
																"flags": {},
																"sources": [
																	{
																		"fileName": "src/debug/two-prong-for-debugging.ts",
																		"line": 20,
																		"character": 17
																	}
																],
																"type": {
																	"type": "reference",
																	"name": "PointOnShape",
																	"id": 83
																}
															}
														],
														"groups": [
															{
																"title": "Variables",
																"kind": 32,
																"children": [
																	266,
																	263,
																	264,
																	265
																]
															}
														],
														"sources": [
															{
																"fileName": "src/debug/two-prong-for-debugging.ts",
																"line": 17,
																"character": 22
															}
														]
													}
												}
											}
										},
										{
											"id": 267,
											"name": "failed",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 268,
											"name": "holeClosing",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 269,
											"name": "notAdded",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 270,
											"name": "deleted",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 271,
											"name": "cpNode",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											},
											"defaultValue": " undefined"
										}
									],
									"type": {
										"type": "reference",
										"name": "TwoProngForDebugging",
										"id": 235
									}
								}
							],
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 9,
									"character": 28
								}
							]
						},
						{
							"id": 238,
							"name": "bezierPieces",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 12,
									"character": 31
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "BezierPiece",
									"id": 227
								}
							}
						},
						{
							"id": 242,
							"name": "circle",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 16,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"name": "Circle",
								"id": 64
							}
						},
						{
							"id": 253,
							"name": "cpNode",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 27,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						},
						{
							"id": 252,
							"name": "deleted",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 26,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 249,
							"name": "failed",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 23,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 237,
							"name": "generated",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 11,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"name": "Generated",
								"id": 739
							}
						},
						{
							"id": 250,
							"name": "holeClosing",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 24,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 251,
							"name": "notAdded",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 25,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 239,
							"name": "pos",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 13,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"name": "PointOnShape",
								"id": 83
							}
						},
						{
							"id": 243,
							"name": "xs",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 17,
									"character": 21
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reflection",
									"declaration": {
										"id": 244,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {},
										"children": [
											{
												"id": 248,
												"name": "t",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/debug/two-prong-for-debugging.ts",
														"line": 21,
														"character": 17
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "number"
												}
											},
											{
												"id": 245,
												"name": "x",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/debug/two-prong-for-debugging.ts",
														"line": 18,
														"character": 17
													}
												],
												"type": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											},
											{
												"id": 246,
												"name": "y",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/debug/two-prong-for-debugging.ts",
														"line": 19,
														"character": 17
													}
												],
												"type": {
													"type": "reference",
													"name": "PointOnShape",
													"id": 83
												}
											},
											{
												"id": 247,
												"name": "z",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/debug/two-prong-for-debugging.ts",
														"line": 20,
														"character": 17
													}
												],
												"type": {
													"type": "reference",
													"name": "PointOnShape",
													"id": 83
												}
											}
										],
										"groups": [
											{
												"title": "Variables",
												"kind": 32,
												"children": [
													248,
													245,
													246,
													247
												]
											}
										],
										"sources": [
											{
												"fileName": "src/debug/two-prong-for-debugging.ts",
												"line": 17,
												"character": 22
											}
										]
									}
								}
							}
						},
						{
							"id": 241,
							"name": "z",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 15,
									"character": 20
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						},
						{
							"id": 240,
							"name": "δ",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/debug/two-prong-for-debugging.ts",
									"line": 14,
									"character": 20
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "CpNode",
									"id": 798
								}
							}
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								236
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								238,
								242,
								253,
								252,
								249,
								237,
								250,
								251,
								239,
								243,
								241,
								240
							]
						}
					],
					"sources": [
						{
							"fileName": "src/debug/two-prong-for-debugging.ts",
							"line": 9,
							"character": 26
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						235
					]
				}
			],
			"sources": [
				{
					"fileName": "src/debug/two-prong-for-debugging.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 9,
			"name": "\"src/loop\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/loop.ts",
			"children": [
				{
					"id": 10,
					"name": "Loop",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"comment": {
						"shortText": "Represents a two-way linked loop of Curves."
					},
					"children": [
						{
							"id": 13,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isPrivate": true
							},
							"comment": {},
							"signatures": [
								{
									"id": 15,
									"name": "new Loop",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {},
									"parameters": [
										{
											"id": 16,
											"name": "beziers",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "A pre-ordered array of items to add initially\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												}
											},
											"defaultValue": " []"
										}
									],
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"sources": [
								{
									"fileName": "src/loop.ts",
									"line": 14,
									"character": 28
								}
							]
						},
						{
							"id": 14,
							"name": "beziers",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "A pre-ordered array of items to add initially\n"
							},
							"sources": [
								{
									"fileName": "src/loop.ts",
									"line": 21,
									"character": 26
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							}
						},
						{
							"id": 11,
							"name": "curves",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/loop.ts",
									"line": 13,
									"character": 19
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "Curve",
									"id": 30
								}
							}
						},
						{
							"id": 12,
							"name": "head",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/loop.ts",
									"line": 14,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"name": "Curve",
								"id": 30
							}
						},
						{
							"id": 17,
							"name": "toBeziers",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true
							},
							"signatures": [
								{
									"id": 18,
									"name": "toBeziers",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/loop.ts",
									"line": 59,
									"character": 20
								}
							]
						},
						{
							"id": 22,
							"name": "fromBeziers",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true
							},
							"signatures": [
								{
									"id": 23,
									"name": "fromBeziers",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 24,
											"name": "items",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												}
											},
											"defaultValue": " []"
										}
									],
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"sources": [
								{
									"fileName": "src/loop.ts",
									"line": 74,
									"character": 22
								}
							]
						},
						{
							"id": 19,
							"name": "fromCubicBeziers",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true
							},
							"signatures": [
								{
									"id": 20,
									"name": "fromCubicBeziers",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 21,
											"name": "items",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												}
											},
											"defaultValue": " []"
										}
									],
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"sources": [
								{
									"fileName": "src/loop.ts",
									"line": 69,
									"character": 27
								}
							]
						},
						{
							"id": 25,
							"name": "perturb",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true
							},
							"signatures": [
								{
									"id": 26,
									"name": "perturb",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 27,
											"name": "loop",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "Loop",
												"id": 10
											}
										},
										{
											"id": 28,
											"name": "x",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"sources": [
								{
									"fileName": "src/loop.ts",
									"line": 91,
									"character": 18
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								13
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								14,
								11,
								12
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								17,
								22,
								19,
								25
							]
						}
					],
					"sources": [
						{
							"fileName": "src/loop.ts",
							"line": 12,
							"character": 10
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						10
					]
				}
			],
			"sources": [
				{
					"fileName": "src/loop.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 861,
			"name": "\"src/mat\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat.ts",
			"children": [
				{
					"id": 862,
					"name": "Mat",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"comment": {
						"shortText": "Represents a complete Medial Axis Transform (MAT)."
					},
					"children": [
						{
							"id": 863,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"comment": {},
							"signatures": [
								{
									"id": 866,
									"name": "new Mat",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {},
									"parameters": [
										{
											"id": 867,
											"name": "cpNode",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {},
											"type": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										},
										{
											"id": 868,
											"name": "cpTrees",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "\n"
											},
											"type": {
												"type": "reference",
												"name": "Map",
												"typeArguments": [
													{
														"type": "reference",
														"name": "Loop",
														"id": 10
													},
													{
														"type": "reference",
														"name": "LlRbTree",
														"typeArguments": [
															{
																"type": "reference",
																"name": "CpNode",
																"id": 798
															}
														]
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "Mat",
										"id": 862
									}
								}
							],
							"sources": [
								{
									"fileName": "src/mat.ts",
									"line": 11,
									"character": 11
								}
							]
						},
						{
							"id": 864,
							"name": "cpNode",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/mat.ts",
									"line": 17,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						},
						{
							"id": 865,
							"name": "cpTrees",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/mat.ts",
									"line": 18,
									"character": 26
								}
							],
							"type": {
								"type": "reference",
								"name": "Map",
								"typeArguments": [
									{
										"type": "reference",
										"name": "Loop",
										"id": 10
									},
									{
										"type": "reference",
										"name": "LlRbTree",
										"typeArguments": [
											{
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										]
									}
								]
							}
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								863
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								864,
								865
							]
						}
					],
					"sources": [
						{
							"fileName": "src/mat.ts",
							"line": 11,
							"character": 9
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						862
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1150,
			"name": "\"src/mat/add-to-cp-graph\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/add-to-cp-graph.ts",
			"children": [
				{
					"id": 1151,
					"name": "addToCpGraph",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1152,
							"name": "addToCpGraph",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1153,
									"name": "circle",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								},
								{
									"id": 1154,
									"name": "orders",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1155,
									"name": "cpTrees",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1156,
									"name": "poss",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isOptional": true
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "PointOnShape",
											"id": 83
										}
									}
								},
								{
									"id": 1157,
									"name": "neighbors",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isOptional": true
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/add-to-cp-graph.ts",
							"line": 13,
							"character": 21
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1151
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/add-to-cp-graph.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1513,
			"name": "\"src/mat/closest-boundary-point/closest-point-on-bezier\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/closest-boundary-point/closest-point-on-bezier.ts",
			"children": [
				{
					"id": 1514,
					"name": "closestPointOnBezier",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1515,
							"name": "closestPointOnBezier",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1516,
									"name": "ps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1517,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The point from which to check"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1518,
									"name": "tRange",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The allowed t range"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									},
									"defaultValue": " [0,1]"
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1519,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1520,
											"name": "p",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/closest-boundary-point/closest-point-on-bezier.ts",
													"line": 98,
													"character": 20
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											},
											"defaultValue": " ev(root)"
										},
										{
											"id": 1521,
											"name": "t",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"comment": {
												"text": "The t value of the bezier that locates p\n"
											},
											"sources": [
												{
													"fileName": "src/mat/closest-boundary-point/closest-point-on-bezier.ts",
													"line": 98,
													"character": 33
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											},
											"defaultValue": " root"
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1520,
												1521
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/closest-point-on-bezier.ts",
							"line": 17,
							"character": 29
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1514
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/closest-boundary-point/closest-point-on-bezier.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1065,
			"name": "\"src/mat/closest-boundary-point/closest-point-on-curve\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/closest-boundary-point/closest-point-on-curve.ts",
			"children": [
				{
					"id": 1066,
					"name": "closestPointOnCurve",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1067,
							"name": "closestPointOnCurve",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1068,
									"name": "curve",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The bezier"
									},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								},
								{
									"id": 1069,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The point from which to check"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1070,
									"name": "tRange",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The allowed t range"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									},
									"defaultValue": " [0,1]"
								},
								{
									"id": 1071,
									"name": "touchedCurve",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isOptional": true
									},
									"comment": {
										"text": "The bezier on which p is located"
									},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								},
								{
									"id": 1072,
									"name": "t",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isOptional": true
									},
									"comment": {
										"text": "The t value of the bezier that locates p\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1073,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1074,
											"name": "p",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/closest-boundary-point/closest-point-on-curve.ts",
													"line": 145,
													"character": 20
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											},
											"defaultValue": " ev(root)"
										},
										{
											"id": 1075,
											"name": "t",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/closest-boundary-point/closest-point-on-curve.ts",
													"line": 145,
													"character": 33
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											},
											"defaultValue": " root"
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1074,
												1075
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/closest-point-on-curve.ts",
							"line": 18,
							"character": 28
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1066
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/closest-boundary-point/closest-point-on-curve.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1350,
			"name": "\"src/mat/closest-boundary-point/closest-points-on-curve\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/closest-boundary-point/closest-points-on-curve.ts",
			"children": [
				{
					"id": 1351,
					"name": "closestPointsOnCurve",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1352,
							"name": "closestPointsOnCurve",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1353,
									"name": "curve",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The bezier"
									},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								},
								{
									"id": 1354,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The point from which to check"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1355,
									"name": "tRange",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The allowed t range"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									},
									"defaultValue": " [0,1]"
								},
								{
									"id": 1356,
									"name": "touchedCurve",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The bezier on which p is located"
									},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								},
								{
									"id": 1357,
									"name": "t",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The t value of the bezier that locates p\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1358,
									"name": "distance",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1359,
									"name": "distanceTolerance",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reflection",
									"declaration": {
										"id": 1360,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {},
										"children": [
											{
												"id": 1361,
												"name": "p",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/mat/closest-boundary-point/closest-points-on-curve.ts",
														"line": 133,
														"character": 20
													}
												],
												"type": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												},
												"defaultValue": " ev(root)"
											},
											{
												"id": 1362,
												"name": "t",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/mat/closest-boundary-point/closest-points-on-curve.ts",
														"line": 133,
														"character": 33
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "number"
												},
												"defaultValue": " root"
											}
										],
										"groups": [
											{
												"title": "Variables",
												"kind": 32,
												"children": [
													1361,
													1362
												]
											}
										]
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/closest-points-on-curve.ts",
							"line": 18,
							"character": 29
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1351
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/closest-boundary-point/closest-points-on-curve.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1060,
			"name": "\"src/mat/closest-boundary-point/cull-bezier-pieces\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/closest-boundary-point/cull-bezier-pieces.ts",
			"children": [
				{
					"id": 1061,
					"name": "cullBezierPieces",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1062,
							"name": "cullBezierPieces",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1063,
									"name": "bezierPieces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "BezierPiece",
											"id": 227
										}
									}
								},
								{
									"id": 1064,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "BezierPiece",
									"id": 227
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/cull-bezier-pieces.ts",
							"line": 15,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1061
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/closest-boundary-point/cull-bezier-pieces.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1043,
			"name": "\"src/mat/closest-boundary-point/cull-by-loose-bounding-box\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/closest-boundary-point/cull-by-loose-bounding-box.ts",
			"children": [
				{
					"id": 1044,
					"name": "cullByLooseBoundingBox",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1045,
							"name": "cullByLooseBoundingBox",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "When checking distances, ignore all those with closest possible distance\nfurther than 'bestSquaredDistance', i.e. cull them."
							},
							"parameters": [
								{
									"id": 1046,
									"name": "bezierPieces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "BezierPiece",
											"id": 227
										}
									}
								},
								{
									"id": 1047,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1048,
									"name": "dSquared",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "BezierPiece",
									"id": 227
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/cull-by-loose-bounding-box.ts",
							"line": 16,
							"character": 31
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1044
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/closest-boundary-point/cull-by-loose-bounding-box.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1054,
			"name": "\"src/mat/closest-boundary-point/cull-by-tight-boundary-box\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/closest-boundary-point/cull-by-tight-boundary-box.ts",
			"children": [
				{
					"id": 1055,
					"name": "cullByTightBoundingBox",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1056,
							"name": "cullByTightBoundingBox",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "When checking distances, ignore all those with closest possible distance\nfurther than 'bestSquaredDistance', i.e. cull them."
							},
							"parameters": [
								{
									"id": 1057,
									"name": "bezierPieces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "BezierPiece",
											"id": 227
										}
									}
								},
								{
									"id": 1058,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1059,
									"name": "bestSquaredDistance",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "BezierPiece",
									"id": 227
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/cull-by-tight-boundary-box.ts",
							"line": 17,
							"character": 31
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1055
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/closest-boundary-point/cull-by-tight-boundary-box.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1033,
			"name": "\"src/mat/closest-boundary-point/get-best-distance-squared\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/closest-boundary-point/get-best-distance-squared.ts",
			"children": [
				{
					"id": 1034,
					"name": "getBestDistanceSquared",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1035,
							"name": "getBestDistanceSquared",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Finds an initial distance such that the closest point can not be further than\nthis distance away."
							},
							"parameters": [
								{
									"id": 1036,
									"name": "bezierPieces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "BezierPiece",
											"id": 227
										}
									}
								},
								{
									"id": 1037,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/get-best-distance-squared.ts",
							"line": 13,
							"character": 31
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1034
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/closest-boundary-point/get-best-distance-squared.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1363,
			"name": "\"src/mat/closest-boundary-point/get-close-boundary-points\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/closest-boundary-point/get-close-boundary-points.ts",
			"children": [
				{
					"id": 1364,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/get-close-boundary-points.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1365,
					"name": "getCloseBoundaryPoints",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1366,
							"name": "getCloseBoundaryPoints",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns the closest boundary point to the given point, limited to the given\nbezier pieces, including the beziers actually checked after culling."
							},
							"parameters": [
								{
									"id": 1367,
									"name": "bezierPieces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "BezierPiece",
											"id": 227
										}
									}
								},
								{
									"id": 1368,
									"name": "point",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1369,
									"name": "touchedCurve",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								},
								{
									"id": 1370,
									"name": "t",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1371,
									"name": "distance",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reflection",
									"declaration": {
										"id": 1372,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {},
										"children": [
											{
												"id": 1374,
												"name": "d",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/mat/closest-boundary-point/get-close-boundary-points.ts",
														"line": 36,
														"character": 37
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "number"
												}
											},
											{
												"id": 1373,
												"name": "pos",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/mat/closest-boundary-point/get-close-boundary-points.ts",
														"line": 36,
														"character": 20
													}
												],
												"type": {
													"type": "reference",
													"name": "PointOnShape",
													"id": 83
												}
											}
										],
										"groups": [
											{
												"title": "Variables",
												"kind": 32,
												"children": [
													1374,
													1373
												]
											}
										]
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/get-close-boundary-points.ts",
							"line": 25,
							"character": 31
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1364
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1365
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/closest-boundary-point/get-close-boundary-points.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1076,
			"name": "\"src/mat/closest-boundary-point/get-closest-boundary-point\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/closest-boundary-point/get-closest-boundary-point.ts",
			"children": [
				{
					"id": 1077,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/get-closest-boundary-point.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1078,
					"name": "getClosestBoundaryPoint",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1079,
							"name": "getClosestBoundaryPoint",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns the closest boundary point to the given point, limited to the given\nbezier pieces, including the beziers actually checked after culling."
							},
							"parameters": [
								{
									"id": 1080,
									"name": "bezierPieces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "BezierPiece",
											"id": 227
										}
									}
								},
								{
									"id": 1081,
									"name": "point",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1082,
									"name": "touchedCurve",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								},
								{
									"id": 1083,
									"name": "t",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1084,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1086,
											"name": "d",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/closest-boundary-point/get-closest-boundary-point.ts",
													"line": 34,
													"character": 36
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 1085,
											"name": "pos",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/closest-boundary-point/get-closest-boundary-point.ts",
													"line": 34,
													"character": 19
												}
											],
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1086,
												1085
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/closest-boundary-point/get-closest-boundary-point.ts",
							"line": 25,
							"character": 32
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1077
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1078
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/closest-boundary-point/get-closest-boundary-point.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1689,
			"name": "\"src/mat/cmp-cp-on-delta\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/cmp-cp-on-delta.ts",
			"children": [
				{
					"id": 1690,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/cmp-cp-on-delta.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1691,
					"name": "cmpCpOnδ",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1692,
							"name": "cmpCpOnδ",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Note: For debugging only\nChecks the position of the ContactPoint (cp) on the boundary piece.\nReturns < 0 if the cp is not on δ, > 0 if it is on the boundary piece\nexcluding the endpoints and 0 if it is on the endpoints. Also returns > 0 if\nδ === undefined."
							},
							"parameters": [
								{
									"id": 1693,
									"name": "δ",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The boundary piece"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								},
								{
									"id": 1694,
									"name": "cp",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The contact point\n"
									},
									"type": {
										"type": "reference",
										"name": "ContactPoint",
										"id": 161
									}
								}
							],
							"type": {
								"type": "union",
								"types": [
									{
										"type": "unknown",
										"name": "0"
									},
									{
										"type": "unknown",
										"name": "1"
									},
									{
										"type": "unknown",
										"name": "-1"
									}
								]
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/cmp-cp-on-delta.ts",
							"line": 19,
							"character": 17
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1690
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1691
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/cmp-cp-on-delta.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1467,
			"name": "\"src/mat/create-new-cp-tree\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/create-new-cp-tree.ts",
			"children": [
				{
					"id": 1468,
					"name": "createNewCpTree",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1469,
							"name": "createNewCpTree",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1470,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "Map",
								"typeArguments": [
									{
										"type": "reference",
										"name": "Loop",
										"id": 10
									},
									{
										"type": "reference",
										"name": "LlRbTree",
										"typeArguments": [
											{
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										]
									}
								]
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/create-new-cp-tree.ts",
							"line": 10,
							"character": 24
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1468
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/create-new-cp-tree.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 272,
			"name": "\"src/mat/elem-type-two-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/elem-type-two-prong.ts",
			"children": [
				{
					"id": 273,
					"name": "ElemType_TwoProng",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/elem-type-two-prong.ts",
							"line": 2,
							"character": 22
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "stringLiteral",
								"value": "twoProng_regular"
							},
							{
								"type": "stringLiteral",
								"value": "twoProng_holeClosing"
							}
						]
					}
				}
			],
			"groups": [
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						273
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/elem-type-two-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1301,
			"name": "\"src/mat/find-mat/add-1-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/add-1-prong.ts",
			"children": [
				{
					"id": 1302,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-1-prong.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1303,
					"name": "add1Prong",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1304,
							"name": "add1Prong",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Add a 1-prong to the MAT."
							},
							"parameters": [
								{
									"id": 1305,
									"name": "maxOsculatingCircleRadius",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1306,
									"name": "cpGraphs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1307,
									"name": "pos",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-1-prong.ts",
							"line": 21,
							"character": 18
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1302
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1303
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/add-1-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1404,
			"name": "\"src/mat/find-mat/add-2-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/add-2-prong.ts",
			"children": [
				{
					"id": 1405,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-2-prong.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1406,
					"name": "add2Prong",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1407,
							"name": "add2Prong",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Adds a 2-prong contact circle to the shape."
							},
							"parameters": [
								{
									"id": 1408,
									"name": "cpGraphs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1409,
									"name": "circle",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "Circle containing the 2 contact points"
									},
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								},
								{
									"id": 1410,
									"name": "posSource",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The source point on shape"
									},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								},
								{
									"id": 1411,
									"name": "posAntipodes",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reflection",
											"declaration": {
												"id": 1412,
												"name": "__type",
												"kind": 65536,
												"kindString": "Type literal",
												"flags": {},
												"children": [
													{
														"id": 1414,
														"name": "d",
														"kind": 32,
														"kindString": "Variable",
														"flags": {},
														"sources": [
															{
																"fileName": "src/mat/find-mat/add-2-prong.ts",
																"line": 34,
																"character": 43
															}
														],
														"type": {
															"type": "intrinsic",
															"name": "number"
														}
													},
													{
														"id": 1413,
														"name": "pos",
														"kind": 32,
														"kindString": "Variable",
														"flags": {},
														"sources": [
															{
																"fileName": "src/mat/find-mat/add-2-prong.ts",
																"line": 34,
																"character": 26
															}
														],
														"type": {
															"type": "reference",
															"name": "PointOnShape",
															"id": 83
														}
													}
												],
												"groups": [
													{
														"title": "Variables",
														"kind": 32,
														"children": [
															1414,
															1413
														]
													}
												],
												"sources": [
													{
														"fileName": "src/mat/find-mat/add-2-prong.ts",
														"line": 34,
														"character": 20
													}
												]
											}
										}
									}
								},
								{
									"id": 1415,
									"name": "holeClosing",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "True if this is a hole-closing 2-prong, false otherwise"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								},
								{
									"id": 1416,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The maximum coordinate value used to calculate floating point\ntolerances.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-2-prong.ts",
							"line": 29,
							"character": 18
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1405
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1406
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/add-2-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1169,
			"name": "\"src/mat/find-mat/add-3-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/add-3-prong.ts",
			"children": [
				{
					"id": 1170,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-3-prong.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1171,
					"name": "add3Prong",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1172,
							"name": "add3Prong",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Adds a 3-prong MAT circle according to the 3 given (previously calculated)\npoints on the shape."
							},
							"parameters": [
								{
									"id": 1173,
									"name": "cpTrees",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1174,
									"name": "orders",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1175,
									"name": "threeProng",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 1176,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {},
											"children": [
												{
													"id": 1177,
													"name": "circle",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/mat/find-mat/add-3-prong.ts",
															"line": 28,
															"character": 12
														}
													],
													"type": {
														"type": "reference",
														"name": "Circle",
														"id": 64
													}
												},
												{
													"id": 1178,
													"name": "ps",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/mat/find-mat/add-3-prong.ts",
															"line": 29,
															"character": 5
														}
													],
													"type": {
														"type": "array",
														"elementType": {
															"type": "reference",
															"name": "PointOnShape",
															"id": 83
														}
													}
												},
												{
													"id": 1179,
													"name": "δ3s",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/mat/find-mat/add-3-prong.ts",
															"line": 30,
															"character": 6
														}
													],
													"type": {
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "reference",
																"name": "CpNode",
																"id": 798
															}
														}
													}
												}
											],
											"groups": [
												{
													"title": "Variables",
													"kind": 32,
													"children": [
														1177,
														1178,
														1179
													]
												}
											],
											"sources": [
												{
													"fileName": "src/mat/find-mat/add-3-prong.ts",
													"line": 27,
													"character": 13
												}
											]
										}
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "Circle",
								"id": 64
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-3-prong.ts",
							"line": 24,
							"character": 18
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1170
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1171
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/add-3-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1223,
			"name": "\"src/mat/find-mat/add-debug-info\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/add-debug-info.ts",
			"children": [
				{
					"id": 1224,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-debug-info.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1225,
					"name": "addDebugInfo1",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1226,
							"name": "addDebugInfo1",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1227,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-debug-info.ts",
							"line": 16,
							"character": 22
						}
					]
				},
				{
					"id": 1228,
					"name": "addDebugInfo2",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1229,
							"name": "addDebugInfo2",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1230,
									"name": "pointOnShapeArrPerLoop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-debug-info.ts",
							"line": 49,
							"character": 22
						}
					]
				},
				{
					"id": 1231,
					"name": "addDebugInfo3",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1232,
							"name": "addDebugInfo3",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-debug-info.ts",
							"line": 72,
							"character": 22
						}
					]
				},
				{
					"id": 1233,
					"name": "addDebugInfo4",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1234,
							"name": "addDebugInfo4",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1235,
									"name": "mat",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Mat",
										"id": 862
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/add-debug-info.ts",
							"line": 84,
							"character": 22
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1224
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1225,
						1228,
						1231,
						1233
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/add-debug-info.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1274,
			"name": "\"src/mat/find-mat/create-get-interesting-points-on-loop\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/create-get-interesting-points-on-loop.ts",
			"children": [
				{
					"id": 1275,
					"name": "createGetInterestingPointsOnLoop",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1276,
							"name": "createGetInterestingPointsOnLoop",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Get useful points on the shape - these incude points of maximum curvature and\npoints at the bezier-bezier interfaces."
							},
							"parameters": [
								{
									"id": 1277,
									"name": "additionalPointCount",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": "3"
								}
							],
							"type": {
								"type": "reference",
								"name": "(Anonymous function)"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/create-get-interesting-points-on-loop.ts",
							"line": 16,
							"character": 41
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1275
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/create-get-interesting-points-on-loop.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1214,
			"name": "\"src/mat/find-mat/create-initial-cp-graph\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/create-initial-cp-graph.ts",
			"children": [
				{
					"id": 1215,
					"name": "createInitialCpGraph",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1216,
							"name": "createInitialCpGraph",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Creates the initial ContactPoint loops from the given sharp corners."
							},
							"parameters": [
								{
									"id": 1217,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								},
								{
									"id": 1218,
									"name": "cpTrees",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1219,
									"name": "sharpCornerss",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										}
									}
								},
								{
									"id": 1220,
									"name": "xMap",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											},
											{
												"type": "reflection",
												"declaration": {
													"id": 1221,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {},
													"children": [
														{
															"id": 1222,
															"name": "ps",
															"kind": 32,
															"kindString": "Variable",
															"flags": {},
															"sources": [
																{
																	"fileName": "src/mat/find-mat/create-initial-cp-graph.ts",
																	"line": 20,
																	"character": 33
																}
															],
															"type": {
																"type": "array",
																"elementType": {
																	"type": "array",
																	"elementType": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															}
														}
													],
													"groups": [
														{
															"title": "Variables",
															"kind": 32,
															"children": [
																1222
															]
														}
													],
													"sources": [
														{
															"fileName": "src/mat/find-mat/create-initial-cp-graph.ts",
															"line": 20,
															"character": 29
														}
													]
												}
											}
										]
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/create-initial-cp-graph.ts",
							"line": 16,
							"character": 29
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1215
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/create-initial-cp-graph.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1315,
			"name": "\"src/mat/find-mat/find-2-prong/add-debug-info\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-2-prong/add-debug-info.ts",
			"children": [
				{
					"id": 1316,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-2-prong/add-debug-info.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1317,
					"name": "addDebugInfo",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1318,
							"name": "addDebugInfo",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1319,
									"name": "bezierPieces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "BezierPiece",
											"id": 227
										}
									}
								},
								{
									"id": 1320,
									"name": "failed",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								},
								{
									"id": 1321,
									"name": "pos",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								},
								{
									"id": 1322,
									"name": "circle",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								},
								{
									"id": 1323,
									"name": "z",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								},
								{
									"id": 1324,
									"name": "δ",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								},
								{
									"id": 1325,
									"name": "xs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "TXForDebugging",
											"id": 1309
										}
									}
								},
								{
									"id": 1326,
									"name": "holeClosing",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-2-prong/add-debug-info.ts",
							"line": 18,
							"character": 21
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1316
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1317
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-2-prong/add-debug-info.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1327,
			"name": "\"src/mat/find-mat/find-2-prong/cull-bezier-pieces\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-2-prong/cull-bezier-pieces.ts",
			"children": [
				{
					"id": 1328,
					"name": "cullBezierPieces",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1329,
							"name": "cullBezierPieces",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Cull all bezierPieces not within given radius of a given point."
							},
							"parameters": [
								{
									"id": 1330,
									"name": "bezierPieces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "BezierPiece",
											"id": 227
										}
									}
								},
								{
									"id": 1331,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1332,
									"name": "rSquared",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "BezierPiece",
									"id": 227
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-2-prong/cull-bezier-pieces.ts",
							"line": 16,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1328
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-2-prong/cull-bezier-pieces.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1375,
			"name": "\"src/mat/find-mat/find-2-prong/find-2-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-2-prong/find-2-prong.ts",
			"children": [
				{
					"id": 1376,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-2-prong/find-2-prong.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1377,
					"name": "find2Prong",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1378,
							"name": "find2Prong",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Adds a 2-prong to the MAT. The first point on the shape boundary is given and\nthe second one is found by the algorithm.",
								"text": "A 2-prong is defined as a MAT circle that touches the shape at exactly 2\npoints.\n\nBefore any 2-prongs are added the entire shape is our δΩ (1-prongs do not\nreduce the boundary).\n\nAs per the paper by Choi, Choi, Moon and Wee:\n  \"The starting point of this algorithm is a choice of a circle Br(x)\n   centered at an interior point x which contains two boundary portions c and\n   d of dΩ as in Fig. 19.\"\nIn fact, we (and they) start by fixing one point on the boundary beforehand."
							},
							"parameters": [
								{
									"id": 1379,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A shape represented by path loops"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								},
								{
									"id": 1380,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The extreme coordinate value of the shape"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1381,
									"name": "squaredDiagonalLength",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The squared diagonal length of the shape\nbounding box."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1382,
									"name": "cpTrees",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1383,
									"name": "y",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The source point of the 2-prong to be found"
									},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								},
								{
									"id": 1384,
									"name": "isHoleClosing",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "True if this is a hole-closing two-prong, false otherwise"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								},
								{
									"id": 1385,
									"name": "k",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The loop array index\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1386,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1387,
											"name": "circle",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-2-prong/find-2-prong.ts",
													"line": 227,
													"character": 37
												}
											],
											"type": {
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										},
										{
											"id": 1388,
											"name": "zs",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-2-prong/find-2-prong.ts",
													"line": 227,
													"character": 41
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reflection",
													"declaration": {
														"id": 1389,
														"name": "__type",
														"kind": 65536,
														"kindString": "Type literal",
														"flags": {},
														"children": [
															{
																"id": 1391,
																"name": "d",
																"kind": 32,
																"kindString": "Variable",
																"flags": {},
																"sources": [
																	{
																		"fileName": "src/mat/find-mat/find-2-prong/find-2-prong.ts",
																		"line": 198,
																		"character": 31
																	}
																],
																"type": {
																	"type": "intrinsic",
																	"name": "number"
																}
															},
															{
																"id": 1390,
																"name": "pos",
																"kind": 32,
																"kindString": "Variable",
																"flags": {},
																"sources": [
																	{
																		"fileName": "src/mat/find-mat/find-2-prong/find-2-prong.ts",
																		"line": 198,
																		"character": 14
																	}
																],
																"type": {
																	"type": "reference",
																	"name": "PointOnShape",
																	"id": 83
																}
															}
														],
														"groups": [
															{
																"title": "Variables",
																"kind": 32,
																"children": [
																	1391,
																	1390
																]
															}
														]
													}
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1387,
												1388
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-2-prong/find-2-prong.ts",
							"line": 55,
							"character": 19
						}
					]
				},
				{
					"id": 1398,
					"name": "getCircleCenterFrom2PointsAndNormal",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1399,
							"name": "getCircleCenterFrom2PointsAndNormal",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1400,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1401,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A point on the circle with normal pointing to x towards the center\nof the circle."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1402,
									"name": "x",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1403,
									"name": "p1",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "Another point on the circle.\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-2-prong/find-2-prong.ts",
							"line": 287,
							"character": 44
						}
					]
				},
				{
					"id": 1392,
					"name": "reduceRadius",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1393,
							"name": "reduceRadius",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Reduces the circle radius initially as an optimization step."
							},
							"parameters": [
								{
									"id": 1394,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1395,
									"name": "bezierPieces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "BezierPiece",
											"id": 227
										}
									}
								},
								{
									"id": 1396,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1397,
									"name": "x",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-2-prong/find-2-prong.ts",
							"line": 235,
							"character": 21
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1376
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1377,
						1398,
						1392
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-2-prong/find-2-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1333,
			"name": "\"src/mat/find-mat/find-2-prong/find-equidistant-point-on-line\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-2-prong/find-equidistant-point-on-line.ts",
			"children": [
				{
					"id": 1334,
					"name": "findEquidistantPointOnLine",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1335,
							"name": "findEquidistantPointOnLine",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"returns": "The point on the line from y to x that is equidistant from y and z.\n"
							},
							"parameters": [
								{
									"id": 1336,
									"name": "x",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1337,
									"name": "y",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1338,
									"name": "z",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-2-prong/find-equidistant-point-on-line.ts",
							"line": 9,
							"character": 35
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1334
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-2-prong/find-equidistant-point-on-line.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1339,
			"name": "\"src/mat/find-mat/find-2-prong/get-initial-bezier-pieces\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-2-prong/get-initial-bezier-pieces.ts",
			"children": [
				{
					"id": 1340,
					"name": "getInitialBezierPieces",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1341,
							"name": "getInitialBezierPieces",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1342,
									"name": "isHoleClosing",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								},
								{
									"id": 1343,
									"name": "k",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1344,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								},
								{
									"id": 1345,
									"name": "cpTrees",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1346,
									"name": "y",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1347,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1348,
											"name": "bezierPieces",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-2-prong/get-initial-bezier-pieces.ts",
													"line": 50,
													"character": 25
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "BezierPiece",
													"id": 227
												}
											}
										},
										{
											"id": 1349,
											"name": "δ",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-2-prong/get-initial-bezier-pieces.ts",
													"line": 50,
													"character": 28
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "CpNode",
													"id": 798
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1348,
												1349
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-2-prong/get-initial-bezier-pieces.ts",
							"line": 13,
							"character": 31
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1340
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-2-prong/get-initial-bezier-pieces.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1308,
			"name": "\"src/mat/find-mat/find-2-prong/x-for-debugging\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-2-prong/x-for-debugging.ts",
			"children": [
				{
					"id": 1309,
					"name": "TXForDebugging",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-2-prong/x-for-debugging.ts",
							"line": 5,
							"character": 19
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 1310,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {},
							"children": [
								{
									"id": 1314,
									"name": "t",
									"kind": 32,
									"kindString": "Variable",
									"flags": {},
									"sources": [
										{
											"fileName": "src/mat/find-mat/find-2-prong/x-for-debugging.ts",
											"line": 9,
											"character": 5
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1311,
									"name": "x",
									"kind": 32,
									"kindString": "Variable",
									"flags": {},
									"sources": [
										{
											"fileName": "src/mat/find-mat/find-2-prong/x-for-debugging.ts",
											"line": 6,
											"character": 5
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1312,
									"name": "y",
									"kind": 32,
									"kindString": "Variable",
									"flags": {},
									"sources": [
										{
											"fileName": "src/mat/find-mat/find-2-prong/x-for-debugging.ts",
											"line": 7,
											"character": 5
										}
									],
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								},
								{
									"id": 1313,
									"name": "z",
									"kind": 32,
									"kindString": "Variable",
									"flags": {},
									"sources": [
										{
											"fileName": "src/mat/find-mat/find-2-prong/x-for-debugging.ts",
											"line": 8,
											"character": 5
										}
									],
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										1314,
										1311,
										1312,
										1313
									]
								}
							],
							"sources": [
								{
									"fileName": "src/mat/find-mat/find-2-prong/x-for-debugging.ts",
									"line": 5,
									"character": 21
								}
							]
						}
					}
				}
			],
			"groups": [
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						1309
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-2-prong/x-for-debugging.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1098,
			"name": "\"src/mat/find-mat/find-3-prong/calc-better-x\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-3-prong/calc-better-x.ts",
			"children": [
				{
					"id": 1099,
					"name": "calcBetterX",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1100,
							"name": "calcBetterX",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Find new x and ps that are a better estimate of the 3-prong circle.\nThe potential function, V, is defined as the distance to the actual 3 prong\ncircle center."
							},
							"parameters": [
								{
									"id": 1101,
									"name": "bezierPiece3s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The three boundary pieces, each of which should contain\na point of the 3-prong to be found."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "BezierPiece",
												"id": 227
											}
										}
									}
								},
								{
									"id": 1102,
									"name": "x",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The currently best guess at the center of the 3-prong circle."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1103,
									"name": "vectorToZeroV",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1104,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1107,
											"name": "newPs",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-3-prong/calc-better-x.ts",
													"line": 53,
													"character": 30
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "PointOnShape",
													"id": 83
												}
											}
										},
										{
											"id": 1106,
											"name": "newV",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-3-prong/calc-better-x.ts",
													"line": 53,
													"character": 23
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 1105,
											"name": "newX",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-3-prong/calc-better-x.ts",
													"line": 53,
													"character": 17
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1107,
												1106,
												1105
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-3-prong/calc-better-x.ts",
							"line": 20,
							"character": 20
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1099
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-3-prong/calc-better-x.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1087,
			"name": "\"src/mat/find-mat/find-3-prong/calc-initial-3-prong-center\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-3-prong/calc-initial-3-prong-center.ts",
			"children": [
				{
					"id": 1088,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-3-prong/calc-initial-3-prong-center.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1089,
					"name": "calcInitial3ProngCenter",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1090,
							"name": "calcInitial3ProngCenter",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Finds an initial 3-prong circle center point from which to iterate. The point\nmust be within the shape."
							},
							"parameters": [
								{
									"id": 1091,
									"name": "δ3s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The three boundary pieces of which we need to find the three\n3-prong points."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										}
									}
								},
								{
									"id": 1092,
									"name": "bezierPiece3s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "BezierPiece",
												"id": 227
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-3-prong/calc-initial-3-prong-center.ts",
							"line": 23,
							"character": 32
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1088
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1089
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-3-prong/calc-initial-3-prong-center.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1133,
			"name": "\"src/mat/find-mat/find-3-prong/find-3-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-3-prong/find-3-prong.ts",
			"children": [
				{
					"id": 1134,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-3-prong/find-3-prong.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1135,
					"name": "find3Prong",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1136,
							"name": "find3Prong",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Find and return a 3-prong from the given boundary piece."
							},
							"parameters": [
								{
									"id": 1137,
									"name": "δs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A boundary piece"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										}
									}
								},
								{
									"id": 1138,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The maximum coordinate value used to calculate floating point\ntolerances.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1139,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1140,
											"name": "circle",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-3-prong/find-3-prong.ts",
													"line": 50,
													"character": 14
												}
											],
											"type": {
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										},
										{
											"id": 1141,
											"name": "ps",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-3-prong/find-3-prong.ts",
													"line": 51,
													"character": 10
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "PointOnShape",
													"id": 83
												}
											}
										},
										{
											"id": 1142,
											"name": "δ3s",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-3-prong/find-3-prong.ts",
													"line": 52,
													"character": 11
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1140,
												1141,
												1142
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-3-prong/find-3-prong.ts",
							"line": 24,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1134
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1135
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-3-prong/find-3-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1108,
			"name": "\"src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts",
			"children": [
				{
					"id": 1109,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts",
							"line": 1,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1110,
					"name": "calcVectorToZeroV_StraightToIt",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts",
							"line": 26,
							"character": 36
						}
					],
					"type": {
						"type": "reference",
						"name": "fromTo"
					},
					"defaultValue": " fromTo"
				},
				{
					"id": 1111,
					"name": "find3ProngForDelta3s",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1112,
							"name": "find3ProngForDelta3s",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Finds a 3-prong using only the 3 given δs."
							},
							"parameters": [
								{
									"id": 1113,
									"name": "δs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The boundary pieces"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										}
									}
								},
								{
									"id": 1114,
									"name": "idx",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "δ identifier"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1115,
									"name": "k",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1116,
									"name": "bezierPiecess",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "BezierPiece",
												"id": 227
											}
										}
									}
								},
								{
									"id": 1117,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The maximum coordinate value used to calculate floating point\ntolerances.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1118,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1120,
											"name": "circle",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts",
													"line": 231,
													"character": 23
												}
											],
											"type": {
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										},
										{
											"id": 1121,
											"name": "error",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts",
													"line": 231,
													"character": 30
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 1119,
											"name": "ps",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts",
													"line": 231,
													"character": 15
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "PointOnShape",
													"id": 83
												}
											}
										},
										{
											"id": 1122,
											"name": "δ3s",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts",
													"line": 231,
													"character": 35
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1120,
												1121,
												1119,
												1122
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts",
							"line": 37,
							"character": 29
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1109,
						1110
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1111
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-3-prong/find-3-prong-for-delta3s.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1093,
			"name": "\"src/mat/find-mat/find-3-prong/get-closest-points\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-3-prong/get-closest-points.ts",
			"children": [
				{
					"id": 1094,
					"name": "getClosestPoints",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1095,
							"name": "getClosestPoints",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1096,
									"name": "x",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1097,
									"name": "bezierPiece3s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "BezierPiece",
												"id": 227
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "PointOnShape",
									"id": 83
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-3-prong/get-closest-points.ts",
							"line": 15,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1094
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-3-prong/get-closest-points.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1417,
			"name": "\"src/mat/find-mat/find-and-add-2-prongs\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-and-add-2-prongs.ts",
			"children": [
				{
					"id": 1418,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-2-prongs.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1419,
					"name": "findAndAdd2Prongs",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1420,
							"name": "findAndAdd2Prongs",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Find and add two-prongs."
							},
							"parameters": [
								{
									"id": 1421,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								},
								{
									"id": 1422,
									"name": "cpGraphs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1423,
									"name": "k",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1424,
									"name": "for2Prongs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "PointOnShape",
											"id": 83
										}
									}
								},
								{
									"id": 1425,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The maximum coordinate value used to calculate floating point\ntolerances.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-2-prongs.ts",
							"line": 26,
							"character": 26
						}
					]
				},
				{
					"id": 1429,
					"name": "indexInterlaced",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1430,
							"name": "indexInterlaced",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Creates a kind of interlaced index vector."
							},
							"parameters": [
								{
									"id": 1431,
									"name": "n",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-2-prongs.ts",
							"line": 97,
							"character": 24
						}
					]
				},
				{
					"id": 1426,
					"name": "indexLinear",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1427,
							"name": "indexLinear",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Simple linear array indexing."
							},
							"parameters": [
								{
									"id": 1428,
									"name": "n",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-2-prongs.ts",
							"line": 83,
							"character": 20
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1418
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1419,
						1429,
						1426
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-and-add-2-prongs.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1432,
			"name": "\"src/mat/find-mat/find-and-add-2-prongs-on-all-paths\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-and-add-2-prongs-on-all-paths.ts",
			"children": [
				{
					"id": 1433,
					"name": "findAndAdd2ProngsOnAllPaths",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1434,
							"name": "findAndAdd2ProngsOnAllPaths",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Add 2 prongs. See comments on the add2Prong function."
							},
							"parameters": [
								{
									"id": 1435,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								},
								{
									"id": 1436,
									"name": "cpGraphs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1437,
									"name": "for2Prongss",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										}
									}
								},
								{
									"id": 1438,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The maximum coordinate value used to calculate floating point\ntolerances.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-2-prongs-on-all-paths.ts",
							"line": 18,
							"character": 36
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1433
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-and-add-2-prongs-on-all-paths.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1180,
			"name": "\"src/mat/find-mat/find-and-add-3-prongs\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-and-add-3-prongs.ts",
			"children": [
				{
					"id": 1181,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-3-prongs.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1210,
					"name": "add3ProngDebugInfo",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1211,
							"name": "add3ProngDebugInfo",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1212,
									"name": "circle",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								},
								{
									"id": 1213,
									"name": "visitedCps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-3-prongs.ts",
							"line": 192,
							"character": 27
						}
					]
				},
				{
					"id": 1205,
					"name": "findAndAdd3Prong",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1206,
							"name": "findAndAdd3Prong",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Finds and add a 3-prong MAT circle to the given shape."
							},
							"parameters": [
								{
									"id": 1207,
									"name": "cpGraphs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1208,
									"name": "visitedCps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								},
								{
									"id": 1209,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The maximum coordinate value used to calculate floating point\ntolerances.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-3-prongs.ts",
							"line": 165,
							"character": 25
						}
					]
				},
				{
					"id": 1200,
					"name": "findAndAdd3Prongs",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1201,
							"name": "findAndAdd3Prongs",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Starting from some ContactPoint, traverses the shape going around Vertices\nand if more than two Vertices have been visited in total then recursively\nadds 3-prongs until only one or two Vertices have been visited.",
								"text": "This process further subdivides the shape."
							},
							"parameters": [
								{
									"id": 1202,
									"name": "cpGraphs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1203,
									"name": "cpStart",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The ContactPoint from where to start the process."
									},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								},
								{
									"id": 1204,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The maximum coordinate value used to calculate floating point\ntolerances.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "CpNode",
									"id": 798
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-3-prongs.ts",
							"line": 139,
							"character": 26
						}
					]
				},
				{
					"id": 1182,
					"name": "findAndAddAll3Prongs",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1183,
							"name": "findAndAddAll3Prongs",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Finds and adds all 3-prongs."
							},
							"parameters": [
								{
									"id": 1184,
									"name": "cpGraphs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1185,
									"name": "cpStart",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The CpNode to start traversing from."
									},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								},
								{
									"id": 1186,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The maximum coordinate value used to calculate floating point\ntolerances.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-3-prongs.ts",
							"line": 24,
							"character": 29
						}
					]
				},
				{
					"id": 1192,
					"name": "hasEdgeBeenTaken",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1193,
							"name": "hasEdgeBeenTaken",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1194,
									"name": "visitedEdges",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "CpNode",
												"id": 798
											},
											{
												"type": "reference",
												"name": "Set",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1195,
									"name": "cp1",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								},
								{
									"id": 1196,
									"name": "cp2",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-3-prongs.ts",
							"line": 81,
							"character": 25
						}
					]
				},
				{
					"id": 1187,
					"name": "markEdgeAsTaken",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1188,
							"name": "markEdgeAsTaken",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Marks the given edge as already taken."
							},
							"parameters": [
								{
									"id": 1189,
									"name": "visitedEdges",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "CpNode",
												"id": 798
											},
											{
												"type": "reference",
												"name": "Set",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1190,
									"name": "cp1",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								},
								{
									"id": 1191,
									"name": "cp2",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-3-prongs.ts",
							"line": 60,
							"character": 24
						}
					]
				},
				{
					"id": 1197,
					"name": "traverseShape",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1198,
							"name": "traverseShape",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Traverses the shape from the given ContactPoint going around contact circles\nso that only a piece of the shape is traversed and returns the visited\nCpNodes (starting from the given CpNode)."
							},
							"parameters": [
								{
									"id": 1199,
									"name": "cpStart",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The ContactPoint from where to start the traversal.\n"
									},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "CpNode",
									"id": 798
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-3-prongs.ts",
							"line": 106,
							"character": 22
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1181
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1210,
						1205,
						1200,
						1182,
						1192,
						1187,
						1197
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-and-add-3-prongs.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1444,
			"name": "\"src/mat/find-mat/find-and-add-hole-closing-2-prongs\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-and-add-hole-closing-2-prongs.ts",
			"children": [
				{
					"id": 1445,
					"name": "findAndAddHoleClosing2Prongs",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1446,
							"name": "findAndAddHoleClosing2Prongs",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Find and add two-prongs that remove any holes in the shape."
							},
							"parameters": [
								{
									"id": 1447,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								},
								{
									"id": 1448,
									"name": "cpTrees",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1449,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The maximum coordinate value used to calculate floating point\ntolerances.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-and-add-hole-closing-2-prongs.ts",
							"line": 19,
							"character": 37
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1445
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-and-add-hole-closing-2-prongs.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1450,
			"name": "\"src/mat/find-mat/find-mats\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/find-mats.ts",
			"children": [
				{
					"id": 1451,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-mats.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1463,
					"name": "ascendingByTopmostPoint",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1464,
							"name": "ascendingByTopmostPoint",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1465,
									"name": "loopA",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								},
								{
									"id": 1466,
									"name": "loopB",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-mats.ts",
							"line": 132,
							"character": 32
						}
					]
				},
				{
					"id": 1452,
					"name": "findMats",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1453,
							"name": "findMats",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Find the Medial Axis Transforms (MATs) from the given array of bezier loops.",
								"tags": [
									{
										"tag": "doc",
										"text": "_\n"
									}
								]
							},
							"parameters": [
								{
									"id": 1454,
									"name": "bezierLoops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "An array of (possibly intersecting) loops with each loop\nrepresenting one or more piecewise smooth closed curves (i.e. shapes). Each\nloop consists of an array of beziers represented by an array of control\npoints with 2,3 or 4 elements corresponding to linear, quadratic and cubic\nbeziers respectively. Each point is a two-element array (ordered pair), the\nfirst of which is the x-coordinate and the second the y-coordinate."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											}
										}
									}
								},
								{
									"id": 1455,
									"name": "additionalPointCount",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "Additional points per bezier where a MAT circle\nwill be added. Defaults to 3."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": "3"
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "Mat",
									"id": 862
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-mats.ts",
							"line": 38,
							"character": 17
						}
					]
				},
				{
					"id": 1456,
					"name": "findPartialMat",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1457,
							"name": "findPartialMat",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1458,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								},
								{
									"id": 1459,
									"name": "xMap",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											},
											{
												"type": "reflection",
												"declaration": {
													"id": 1460,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {},
													"children": [
														{
															"id": 1461,
															"name": "ps",
															"kind": 32,
															"kindString": "Variable",
															"flags": {},
															"sources": [
																{
																	"fileName": "src/mat/find-mat/find-mats.ts",
																	"line": 67,
																	"character": 27
																}
															],
															"type": {
																"type": "array",
																"elementType": {
																	"type": "array",
																	"elementType": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															}
														}
													],
													"groups": [
														{
															"title": "Variables",
															"kind": 32,
															"children": [
																1461
															]
														}
													],
													"sources": [
														{
															"fileName": "src/mat/find-mat/find-mats.ts",
															"line": 67,
															"character": 23
														}
													]
												}
											}
										]
									}
								},
								{
									"id": 1462,
									"name": "additionalPointCount",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": "3"
								}
							],
							"type": {
								"type": "reference",
								"name": "Mat",
								"id": 862
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/find-mats.ts",
							"line": 65,
							"character": 23
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1451
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1463,
						1452,
						1456
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/find-mats.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1236,
			"name": "\"src/mat/find-mat/get-potential-2-prongs\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/get-potential-2-prongs.ts",
			"children": [
				{
					"id": 1237,
					"name": "getPotential2Prongs",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1238,
							"name": "getPotential2Prongs",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1239,
									"name": "possPerLoop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/get-potential-2-prongs.ts",
							"line": 5,
							"character": 28
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1237
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/get-potential-2-prongs.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1278,
			"name": "\"src/mat/find-mat/get-sharp-corners\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/get-sharp-corners.ts",
			"children": [
				{
					"id": 1279,
					"name": "getSharpCorners",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1280,
							"name": "getSharpCorners",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1281,
									"name": "possPerLoop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/get-sharp-corners.ts",
							"line": 5,
							"character": 24
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1279
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/get-sharp-corners.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1722,
			"name": "\"src/mat/find-mat/get-total-abs-curvature\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/get-total-abs-curvature.ts",
			"children": [
				{
					"id": 1723,
					"name": "getTotalAbsoluteCurvature",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"comment": {},
					"sources": [
						{
							"fileName": "src/mat/find-mat/get-total-abs-curvature.ts",
							"line": 12,
							"character": 29
						}
					],
					"type": {
						"type": "reference",
						"name": "(Anonymous function)"
					},
					"defaultValue": " getTotalBy(\r\n    curve => (\r\n        totalAbsoluteCurvature(curve.ps, [0,1]) + \r\n        Math.abs(getCurvatureAtInterface(curve))\r\n    )\r\n)"
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1723
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/get-total-abs-curvature.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1715,
			"name": "\"src/mat/find-mat/get-total-by\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/find-mat/get-total-by.ts",
			"children": [
				{
					"id": 1716,
					"name": "getTotalBy",
					"kind": 64,
					"kindString": "Function",
					"flags": {
						"isPrivate": true
					},
					"signatures": [
						{
							"id": 1717,
							"name": "getTotalBy",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isPrivate": true
							},
							"comment": {
								"shortText": "Helper function."
							},
							"parameters": [
								{
									"id": 1718,
									"name": "f",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 1719,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {},
											"signatures": [
												{
													"id": 1720,
													"name": "__call",
													"kind": 4096,
													"kindString": "Call signature",
													"flags": {},
													"parameters": [
														{
															"id": 1721,
															"name": "curve",
															"kind": 32768,
															"kindString": "Parameter",
															"flags": {},
															"type": {
																"type": "reference",
																"name": "Curve",
																"id": 30
															}
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											],
											"sources": [
												{
													"fileName": "src/mat/find-mat/get-total-by.ts",
													"line": 11,
													"character": 22
												}
											]
										}
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "(Anonymous function)"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/find-mat/get-total-by.ts",
							"line": 11,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1716
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/find-mat/get-total-by.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1038,
			"name": "\"src/mat/geometry/get-closest-square-distance-to-rect\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/geometry/get-closest-square-distance-to-rect.ts",
			"children": [
				{
					"id": 1039,
					"name": "getClosestSquareDistanceToRect",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1040,
							"name": "getClosestSquareDistanceToRect",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1041,
									"name": "box",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1042,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/geometry/get-closest-square-distance-to-rect.ts",
							"line": 8,
							"character": 39
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1039
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/geometry/get-closest-square-distance-to-rect.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1049,
			"name": "\"src/mat/geometry/get-closest-squared-distance-to-rotated-rect\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/geometry/get-closest-squared-distance-to-rotated-rect.ts",
			"children": [
				{
					"id": 1050,
					"name": "getClosestSquaredDistanceToRotatedRect",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1051,
							"name": "getClosestSquaredDistanceToRotatedRect",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1052,
									"name": "ps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1053,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/geometry/get-closest-squared-distance-to-rotated-rect.ts",
							"line": 10,
							"character": 47
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1050
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/geometry/get-closest-squared-distance-to-rotated-rect.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1724,
			"name": "\"src/mat/geometry/get-line-bezier-intersection\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/geometry/get-line-bezier-intersection.ts",
			"children": [
				{
					"id": 1725,
					"name": "getLineBezierIntersection",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1726,
							"name": "getLineBezierIntersection",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Get all intersection points between a line and a bezier within a certain t\nrange."
							},
							"parameters": [
								{
									"id": 1727,
									"name": "line",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1728,
									"name": "ps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1729,
									"name": "tRange",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reflection",
									"declaration": {
										"id": 1730,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {},
										"children": [
											{
												"id": 1731,
												"name": "p",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/mat/geometry/get-line-bezier-intersection.ts",
														"line": 32,
														"character": 31
													}
												],
												"type": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												},
												"defaultValue": " ev(t)"
											},
											{
												"id": 1732,
												"name": "t",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/mat/geometry/get-line-bezier-intersection.ts",
														"line": 32,
														"character": 41
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										],
										"groups": [
											{
												"title": "Variables",
												"kind": 32,
												"children": [
													1731,
													1732
												]
											}
										]
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/geometry/get-line-bezier-intersection.ts",
							"line": 12,
							"character": 34
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1725
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/geometry/get-line-bezier-intersection.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1733,
			"name": "\"src/mat/geometry/get-line-boundary-intersection\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/geometry/get-line-boundary-intersection.ts",
			"children": [
				{
					"id": 1734,
					"name": "getLineBoundaryIntersectionPoints",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1735,
							"name": "getLineBoundaryIntersectionPoints",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Get intersection between line and boundary piece."
							},
							"parameters": [
								{
									"id": 1736,
									"name": "line",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A line described by two points"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1737,
									"name": "cpNodes",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A boundary piece described by start and end contact points\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/geometry/get-line-boundary-intersection.ts",
							"line": 13,
							"character": 42
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1734
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/geometry/get-line-boundary-intersection.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1286,
			"name": "\"src/mat/geometry/line-line-intersection\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/geometry/line-line-intersection.ts",
			"children": [
				{
					"id": 1287,
					"name": "lineLineIntersection",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1288,
							"name": "lineLineIntersection",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Find point where two lines intersect. Returns he point where the two lines\nintersect or undefined if they don't intersect or are the same line."
							},
							"parameters": [
								{
									"id": 1289,
									"name": "l1",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A line"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1290,
									"name": "l2",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "Another line\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/geometry/line-line-intersection.ts",
							"line": 8,
							"character": 29
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1287
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/geometry/line-line-intersection.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1262,
			"name": "\"src/mat/get-bezier-curvature-extrema\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/get-bezier-curvature-extrema.ts",
			"children": [
				{
					"id": 1263,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/get-bezier-curvature-extrema.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1264,
					"name": "getBezierCurvatureExtrema",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1265,
							"name": "getBezierCurvatureExtrema",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Finds the osculating circles and inflection points for the given bezier."
							},
							"parameters": [
								{
									"id": 1266,
									"name": "curve",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1267,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1268,
											"name": "maxCurvaturePoss",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/get-bezier-curvature-extrema.ts",
													"line": 58,
													"character": 26
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "PointOnShape",
													"id": 83
												}
											}
										},
										{
											"id": 1269,
											"name": "maxNegativeCurvaturePoss",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/get-bezier-curvature-extrema.ts",
													"line": 58,
													"character": 52
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "PointOnShape",
													"id": 83
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1268,
												1269
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-bezier-curvature-extrema.ts",
							"line": 21,
							"character": 34
						}
					]
				},
				{
					"id": 1270,
					"name": "lookForRoot",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1271,
							"name": "lookForRoot",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1272,
									"name": "ps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1273,
									"name": "__namedParameters",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"originalName": "__1",
									"type": {
										"type": "tuple",
										"elements": [
											{
												"type": "intrinsic",
												"name": "number"
											},
											{
												"type": "intrinsic",
												"name": "number"
											}
										]
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-bezier-curvature-extrema.ts",
							"line": 62,
							"character": 20
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1263
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1264,
						1270
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/get-bezier-curvature-extrema.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1244,
			"name": "\"src/mat/get-bezier-curvature-extrema-brackets\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/get-bezier-curvature-extrema-brackets.ts",
			"children": [
				{
					"id": 1245,
					"name": "DELTA",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/mat/get-bezier-curvature-extrema-brackets.ts",
							"line": 2,
							"character": 11
						}
					],
					"type": {
						"type": "unknown",
						"name": "0.000001"
					},
					"defaultValue": "0.000001"
				},
				{
					"id": 1246,
					"name": "calcBezierCurvatureExtremaBrackets",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1247,
							"name": "calcBezierCurvatureExtremaBrackets",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Calculates the curvature extrema brackets of the given cubic bezier.\nSee the paper at http://ac.els-cdn.com/S037704270000529X/1-s2.0-S037704270000529X-main.pdf?_tid=0b25a2cc-ad35-11e5-a728-00000aacb362&acdnat=1451288083_86359fc83af9dec3232c90a6d2e71031\nNote that naming conventions is roughly as in the paper above."
							},
							"parameters": [
								{
									"id": 1248,
									"name": "ps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-bezier-curvature-extrema-brackets.ts",
							"line": 11,
							"character": 43
						}
					]
				},
				{
					"id": 1249,
					"name": "clipBoundary",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1250,
							"name": "clipBoundary",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Clips to [0,1] or returns undefined if not within [0,1]."
							},
							"parameters": [
								{
									"id": 1251,
									"name": "range",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-bezier-curvature-extrema-brackets.ts",
							"line": 196,
							"character": 21
						}
					]
				},
				{
					"id": 1252,
					"name": "deParameterize",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1253,
							"name": "deParameterize",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1254,
									"name": "λ",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1255,
									"name": "μ",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1256,
									"name": "a",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "(Anonymous function)"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-bezier-curvature-extrema-brackets.ts",
							"line": 216,
							"character": 23
						}
					]
				},
				{
					"id": 1257,
					"name": "deParameterizeBoundary",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1258,
							"name": "deParameterizeBoundary",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1259,
									"name": "λ",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1260,
									"name": "μ",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1261,
									"name": "a",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "(Anonymous function)"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-bezier-curvature-extrema-brackets.ts",
							"line": 227,
							"character": 31
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1245
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1246,
						1249,
						1252,
						1257
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/get-bezier-curvature-extrema-brackets.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1123,
			"name": "\"src/mat/get-boundary-piece-beziers\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/get-boundary-piece-beziers.ts",
			"children": [
				{
					"id": 1127,
					"name": "addSkippedBeziers",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1128,
							"name": "addSkippedBeziers",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Adds pieces of skipped beziers"
							},
							"parameters": [
								{
									"id": 1129,
									"name": "bezierPieces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "BezierPiece",
											"id": 227
										}
									}
								},
								{
									"id": 1130,
									"name": "curveStart",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								},
								{
									"id": 1131,
									"name": "curveEnd",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								},
								{
									"id": 1132,
									"name": "t1",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-boundary-piece-beziers.ts",
							"line": 71,
							"character": 26
						}
					]
				},
				{
					"id": 1124,
					"name": "getBoundaryPieceBeziers",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1125,
							"name": "getBoundaryPieceBeziers",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns the ordered cubic bezier pieces (i.e a bezier with a t range)\nfrom the given boundary piece."
							},
							"parameters": [
								{
									"id": 1126,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "An ordered pair that represents the start and end points of\nthe boundary piece\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "BezierPiece",
									"id": 227
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-boundary-piece-beziers.ts",
							"line": 16,
							"character": 32
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1127,
						1124
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/get-boundary-piece-beziers.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1240,
			"name": "\"src/mat/get-contact-circles-at-interface\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/get-contact-circles-at-interface.ts",
			"children": [
				{
					"id": 1241,
					"name": "getContactCirclesAtInterface",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1242,
							"name": "getContactCirclesAtInterface",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1243,
									"name": "curve",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "PointOnShape",
									"id": 83
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-contact-circles-at-interface.ts",
							"line": 6,
							"character": 37
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1241
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/get-contact-circles-at-interface.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1695,
			"name": "\"src/mat/get-edges-as-array\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/get-edges-as-array.ts",
			"children": [
				{
					"id": 1696,
					"name": "getEdgesAsArray",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1697,
							"name": "getEdgesAsArray",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1698,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "CpNode",
									"id": 798
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-edges-as-array.ts",
							"line": 7,
							"character": 24
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1696
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/get-edges-as-array.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1699,
			"name": "\"src/mat/get-largest-three-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/get-largest-three-prong.ts",
			"children": [
				{
					"id": 1700,
					"name": "getLargestThreeProng",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1701,
							"name": "getLargestThreeProng",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1702,
									"name": "cpNodes",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-largest-three-prong.ts",
							"line": 5,
							"character": 29
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1700
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/get-largest-three-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1493,
			"name": "\"src/mat/get-largest-vertex\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/get-largest-vertex.ts",
			"children": [
				{
					"id": 1494,
					"name": "getLargestVertex",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1495,
							"name": "getLargestVertex",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1496,
									"name": "cpNodes",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "CpNode",
											"id": 798
										}
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-largest-vertex.ts",
							"line": 5,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1494
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/get-largest-vertex.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1471,
			"name": "\"src/mat/get-leaves\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/get-leaves.ts",
			"children": [
				{
					"id": 1472,
					"name": "getLeaves",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1473,
							"name": "getLeaves",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1474,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "CpNode",
									"id": 798
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-leaves.ts",
							"line": 7,
							"character": 18
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1472
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/get-leaves.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1143,
			"name": "\"src/mat/get-neighboring-cps\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/get-neighboring-cps.ts",
			"children": [
				{
					"id": 1144,
					"name": "getNeighbouringPoints",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1145,
							"name": "getNeighbouringPoints",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns the boundary piece that starts at the immediate previous point on the\nshape and ends at the immediate next point."
							},
							"parameters": [
								{
									"id": 1146,
									"name": "cpTree",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "LlRbTree",
										"typeArguments": [
											{
												"type": "reference",
												"name": "CpNode",
												"id": 798
											}
										]
									}
								},
								{
									"id": 1147,
									"name": "pos",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								},
								{
									"id": 1148,
									"name": "order",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1149,
									"name": "order2",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "CpNode",
									"id": 798
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-neighboring-cps.ts",
							"line": 17,
							"character": 30
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1144
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/get-neighboring-cps.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 429,
			"name": "\"src/mat/get-two-prong-type\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/get-two-prong-type.ts",
			"children": [
				{
					"id": 430,
					"name": "getTwoProngType",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 431,
							"name": "getTwoProngType",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 432,
									"name": "e",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "TwoProngForDebugging",
										"id": 235
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "ElemType_TwoProng",
								"id": 273
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/get-two-prong-type.ts",
							"line": 6,
							"character": 24
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						430
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/get-two-prong-type.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1158,
			"name": "\"src/mat/is-another-cp-closeby\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/is-another-cp-closeby.ts",
			"children": [
				{
					"id": 1159,
					"name": "ANGLE_THRESHOLD",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/mat/is-another-cp-closeby.ts",
							"line": 14,
							"character": 21
						}
					],
					"type": {
						"type": "unknown",
						"name": "0.9986295347545738"
					},
					"defaultValue": "0.9986295347545738"
				},
				{
					"id": 1160,
					"name": "isAnotherCpCloseby",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1161,
							"name": "isAnotherCpCloseby",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns true if another CpNode is close to the given implied (via pos, order\nand order2) CpNode."
							},
							"parameters": [
								{
									"id": 1162,
									"name": "cpTrees",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											},
											{
												"type": "reference",
												"name": "LlRbTree",
												"typeArguments": [
													{
														"type": "reference",
														"name": "CpNode",
														"id": 798
													}
												]
											}
										]
									}
								},
								{
									"id": 1163,
									"name": "pos",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								},
								{
									"id": 1164,
									"name": "circle",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								},
								{
									"id": 1165,
									"name": "order",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1166,
									"name": "order2",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1167,
									"name": "extreme",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The maximum coordinate value used to calculate floating point\ntolerances."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1168,
									"name": "color",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "Used for debugging only\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/is-another-cp-closeby.ts",
							"line": 33,
							"character": 27
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1159
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1160
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/is-another-cp-closeby.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1703,
			"name": "\"src/mat/remove-two-prong\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/remove-two-prong.ts",
			"children": [
				{
					"id": 1704,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/remove-two-prong.ts",
							"line": 4,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1705,
					"name": "removeTwoProng",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1706,
							"name": "removeTwoProng",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Removes the 2-prong connected to the given ContactPoint.",
								"text": "This is used for example when a 2-prong and 3-prong falls on top of each\nother causing the algorithm to fail."
							},
							"parameters": [
								{
									"id": 1707,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/remove-two-prong.ts",
							"line": 22,
							"character": 23
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1704
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1705
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/remove-two-prong.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1291,
			"name": "\"src/mat/smoothen/get-edge-direction\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/smoothen/get-edge-direction.ts",
			"children": [
				{
					"id": 1292,
					"name": "getEdgeDirection",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1293,
							"name": "getEdgeDirection",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns a line segment of unit length starting in the given Vertex center and\npointing in the direction of the medial axis (viewed as a rooted tree)."
							},
							"parameters": [
								{
									"id": 1294,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/smoothen/get-edge-direction.ts",
							"line": 17,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1292
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/smoothen/get-edge-direction.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1295,
			"name": "\"src/mat/smoothen/smoothen\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/smoothen/smoothen.ts",
			"children": [
				{
					"id": 1296,
					"name": "TOLERANCE_ADD_2PRONG",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/mat/smoothen/smoothen.ts",
							"line": 13,
							"character": 26
						}
					],
					"type": {
						"type": "unknown",
						"name": "0.01"
					},
					"defaultValue": "0.01"
				},
				{
					"id": 1297,
					"name": "TOLERANCE_USE_LINE",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/mat/smoothen/smoothen.ts",
							"line": 14,
							"character": 24
						}
					],
					"type": {
						"type": "unknown",
						"name": "0.0001"
					},
					"defaultValue": "0.0001"
				},
				{
					"id": 1298,
					"name": "smoothen",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1299,
							"name": "smoothen",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Smoothens the given MAT by fitting consecutive mat lines with either lines or\nquadratic or cubic beziers."
							},
							"parameters": [
								{
									"id": 1300,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/smoothen/smoothen.ts",
							"line": 21,
							"character": 17
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1296,
						1297
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1298
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/smoothen/smoothen.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1502,
			"name": "\"src/mat/to-scale-axis/add-debug-info\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/to-scale-axis/add-debug-info.ts",
			"children": [
				{
					"id": 1503,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/add-debug-info.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1504,
					"name": "addDebugInfo",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1505,
							"name": "addDebugInfo",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1506,
									"name": "sat",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Mat",
										"id": 862
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/add-debug-info.ts",
							"line": 10,
							"character": 21
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1503
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1504
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/to-scale-axis/add-debug-info.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1753,
			"name": "\"src/mat/to-scale-axis/add-to-tree\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/to-scale-axis/add-to-tree.ts",
			"children": [
				{
					"id": 1754,
					"name": "DEPTH_LIMIT",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/add-to-tree.ts",
							"line": 9,
							"character": 17
						}
					],
					"type": {
						"type": "unknown",
						"name": "6"
					},
					"defaultValue": "6"
				},
				{
					"id": 1755,
					"name": "addToTree",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1756,
							"name": "addToTree",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1757,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1758,
									"name": "tree",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "TTree",
										"id": 1749
									}
								},
								{
									"id": 1759,
									"name": "coordinate",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1760,
									"name": "limits",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1761,
									"name": "circle",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								},
								{
									"id": 1762,
									"name": "depth",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/add-to-tree.ts",
							"line": 11,
							"character": 18
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1754
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1755
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/to-scale-axis/add-to-tree.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1738,
			"name": "\"src/mat/to-scale-axis/calc-groups\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/to-scale-axis/calc-groups.ts",
			"children": [
				{
					"id": 1739,
					"name": "calcGroups",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1740,
							"name": "calcGroups",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Spacially divide into 5 special groups as follows:",
								"text": "  *******||*******|*******|*******|*******||*******\n0 <--------------->\n1         <--------------->\n2                 <--------------->\n3                         <--------------->\n4                                 <--------------->\n5 - If the circle does not fall in any of above 5 groups.\n\nNote: In the above, the double pipes denote the limits for\n      a coordinate, so as can be seen groups 0 and 4 go outside\n      the limits. Also, groups 1 and 3 are preferred and checked\n      first.\n"
							},
							"parameters": [
								{
									"id": 1741,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "Scale parameter, e.g. 1.1"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1742,
									"name": "coordinate",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "0 -> horizontal or 1 -> vertical."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1743,
									"name": "limits",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The limits within which the circle bounds can fall."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1744,
									"name": "circle",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The circle to categorize into a group.\n"
									},
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1745,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1746,
											"name": "groups",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/to-scale-axis/calc-groups.ts",
													"line": 78,
													"character": 19
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										},
										{
											"id": 1747,
											"name": "newLimits",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/mat/to-scale-axis/calc-groups.ts",
													"line": 78,
													"character": 30
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1746,
												1747
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/calc-groups.ts",
							"line": 26,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1739
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/to-scale-axis/calc-groups.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1763,
			"name": "\"src/mat/to-scale-axis/create-spacial-tree\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/to-scale-axis/create-spacial-tree.ts",
			"children": [
				{
					"id": 1764,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/create-spacial-tree.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1766,
					"name": "height",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/create-spacial-tree.ts",
							"line": 13,
							"character": 12
						}
					],
					"type": {
						"type": "unknown",
						"name": "1560"
					},
					"defaultValue": "1560"
				},
				{
					"id": 1765,
					"name": "width",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/create-spacial-tree.ts",
							"line": 12,
							"character": 11
						}
					],
					"type": {
						"type": "unknown",
						"name": "1620"
					},
					"defaultValue": "1620"
				},
				{
					"id": 1767,
					"name": "createSpacialTree",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1768,
							"name": "createSpacialTree",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1769,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1770,
									"name": "circles",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Circle",
											"id": 64
										}
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1771,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1773,
											"name": "circles",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isOptional": true
											},
											"sources": [
												{
													"fileName": "src/mat/to-scale-axis/t-tree.ts",
													"line": 7,
													"character": 11
												}
											],
											"type": {
												"type": "reference",
												"name": "Set",
												"typeArguments": [
													{
														"type": "reference",
														"name": "Circle",
														"id": 64
													}
												]
											}
										},
										{
											"id": 1772,
											"name": "trees",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isOptional": true
											},
											"sources": [
												{
													"fileName": "src/mat/to-scale-axis/t-tree.ts",
													"line": 6,
													"character": 9
												}
											],
											"type": {
												"type": "reference",
												"name": "Map",
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "number"
													},
													{
														"type": "reference",
														"name": "TTree",
														"id": 1749
													}
												]
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1773,
												1772
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/create-spacial-tree.ts",
							"line": 21,
							"character": 26
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1764,
						1766,
						1765
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1767
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/to-scale-axis/create-spacial-tree.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1497,
			"name": "\"src/mat/to-scale-axis/cull\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/to-scale-axis/cull.ts",
			"children": [
				{
					"id": 1498,
					"name": "cull",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1499,
							"name": "cull",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns the set of Vertices passing the following test: walk the MAT tree and\nkeep all Vertices not in the current cull set and any Vertices that have a\nnon-culled node further down the line toward the tree leaves."
							},
							"parameters": [
								{
									"id": 1500,
									"name": "culls",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The CpNodes (referred to by circles) that should be culled."
									},
									"type": {
										"type": "reference",
										"name": "Set",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										]
									}
								},
								{
									"id": 1501,
									"name": "maxCpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The start CpNode which must reprsesent the maximal vertex.\n"
									},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/cull.ts",
							"line": 14,
							"character": 13
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1498
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/to-scale-axis/cull.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1475,
			"name": "\"src/mat/to-scale-axis/cull-non-cycles\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/to-scale-axis/cull-non-cycles.ts",
			"children": [
				{
					"id": 1476,
					"name": "cullNonCycles",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1477,
							"name": "cullNonCycles",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Cull all edges not part of a cycle in the MAT planar graph."
							},
							"parameters": [
								{
									"id": 1478,
									"name": "cpStart",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The start CpNode which must reprsesent the maximal 3-prong\nvertex.\n"
									},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "CpNode",
								"id": 798
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/cull-non-cycles.ts",
							"line": 11,
							"character": 22
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1476
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/to-scale-axis/cull-non-cycles.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1774,
			"name": "\"src/mat/to-scale-axis/get-engulfed-vertices\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/to-scale-axis/get-engulfed-vertices.ts",
			"children": [
				{
					"id": 1776,
					"name": "height",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/get-engulfed-vertices.ts",
							"line": 8,
							"character": 12
						}
					],
					"type": {
						"type": "unknown",
						"name": "1560"
					},
					"defaultValue": "1560"
				},
				{
					"id": 1775,
					"name": "width",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/get-engulfed-vertices.ts",
							"line": 7,
							"character": 11
						}
					],
					"type": {
						"type": "unknown",
						"name": "1620"
					},
					"defaultValue": "1620"
				},
				{
					"id": 1777,
					"name": "getEngulfedVertices",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1778,
							"name": "getEngulfedVertices",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns a map of engulfed MAT nodes determined to be engulfed by the given\ntest node and scale factor and starting from the given spacial tree node."
							},
							"parameters": [
								{
									"id": 1779,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The scale factor"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1780,
									"name": "tree",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The spacial tree node from where to start"
									},
									"type": {
										"type": "reference",
										"name": "TTree",
										"id": 1749
									}
								},
								{
									"id": 1781,
									"name": "circle",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The circle potentially engulfing other nodes\n"
									},
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "Set",
								"typeArguments": [
									{
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								]
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/get-engulfed-vertices.ts",
							"line": 18,
							"character": 28
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1776,
						1775
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1777
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/to-scale-axis/get-engulfed-vertices.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1748,
			"name": "\"src/mat/to-scale-axis/t-tree\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/to-scale-axis/t-tree.ts",
			"children": [
				{
					"id": 1749,
					"name": "TTree",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/t-tree.ts",
							"line": 5,
							"character": 17
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 1750,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {},
							"children": [
								{
									"id": 1752,
									"name": "circles",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isOptional": true
									},
									"sources": [
										{
											"fileName": "src/mat/to-scale-axis/t-tree.ts",
											"line": 7,
											"character": 11
										}
									],
									"type": {
										"type": "reference",
										"name": "Set",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										]
									}
								},
								{
									"id": 1751,
									"name": "trees",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isOptional": true
									},
									"sources": [
										{
											"fileName": "src/mat/to-scale-axis/t-tree.ts",
											"line": 6,
											"character": 9
										}
									],
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "number"
											},
											{
												"type": "reference",
												"name": "TTree",
												"id": 1749
											}
										]
									}
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										1752,
										1751
									]
								}
							],
							"sources": [
								{
									"fileName": "src/mat/to-scale-axis/t-tree.ts",
									"line": 5,
									"character": 19
								}
							]
						}
					}
				}
			],
			"groups": [
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						1749
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/to-scale-axis/t-tree.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1507,
			"name": "\"src/mat/to-scale-axis/to-scale-axis\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/to-scale-axis/to-scale-axis.ts",
			"children": [
				{
					"id": 1508,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/to-scale-axis.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1509,
					"name": "toScaleAxis",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1510,
							"name": "toScaleAxis",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Apply an returns an enhanced version of the Scale Axis Transform (SAT) to the\ngiven MAT.",
								"tags": [
									{
										"tag": "doc",
										"text": "_\n"
									}
								]
							},
							"parameters": [
								{
									"id": 1511,
									"name": "mat",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The Medial Axis Transform (MAT) on which to apply the SAT."
									},
									"type": {
										"type": "reference",
										"name": "Mat",
										"id": 862
									}
								},
								{
									"id": 1512,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The scale factor >= 1 (e.g. 1.3)"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "Mat",
								"id": 862
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/to-scale-axis.ts",
							"line": 32,
							"character": 20
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1508
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1509
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/to-scale-axis/to-scale-axis.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1782,
			"name": "\"src/mat/to-scale-axis/traverse-spacial-tree\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/to-scale-axis/traverse-spacial-tree.ts",
			"children": [
				{
					"id": 1783,
					"name": "traverseSpacialTree",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1784,
							"name": "traverseSpacialTree",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Traverses the spacial tree and calls the given callback function for each\nMAT circle in the tree and iteravely for each subtree."
							},
							"parameters": [
								{
									"id": 1785,
									"name": "tree",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The spacial tree to traverse"
									},
									"type": {
										"type": "reference",
										"name": "TTree",
										"id": 1749
									}
								},
								{
									"id": 1786,
									"name": "f",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A function to call for each MAT circle in the tree.\n"
									},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 1787,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {},
											"signatures": [
												{
													"id": 1788,
													"name": "__call",
													"kind": 4096,
													"kindString": "Call signature",
													"flags": {},
													"parameters": [
														{
															"id": 1789,
															"name": "circle",
															"kind": 32768,
															"kindString": "Parameter",
															"flags": {},
															"type": {
																"type": "reference",
																"name": "Circle",
																"id": 64
															}
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "void"
													}
												}
											],
											"sources": [
												{
													"fileName": "src/mat/to-scale-axis/traverse-spacial-tree.ts",
													"line": 15,
													"character": 10
												}
											]
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/to-scale-axis/traverse-spacial-tree.ts",
							"line": 13,
							"character": 28
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1783
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/to-scale-axis/traverse-spacial-tree.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 491,
			"name": "\"src/mat/traverse-edges\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/traverse-edges.ts",
			"children": [
				{
					"id": 492,
					"name": "traverseEdges",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 493,
							"name": "traverseEdges",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Traverses all edges (depth first) of the given MAT tree starting at the given\nvertex (represented by a CpNode). The traversal always progresses towards the\nleave nodes.",
								"tags": [
									{
										"tag": "doc",
										"text": "_\n"
									}
								]
							},
							"parameters": [
								{
									"id": 494,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The CpNode representing the start vertex"
									},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								},
								{
									"id": 495,
									"name": "f",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A callback function for each CpNode representing the vertex at the\nstart of an edge."
									},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 496,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {},
											"signatures": [
												{
													"id": 497,
													"name": "__call",
													"kind": 4096,
													"kindString": "Call signature",
													"flags": {},
													"parameters": [
														{
															"id": 498,
															"name": "cp",
															"kind": 32768,
															"kindString": "Parameter",
															"flags": {},
															"type": {
																"type": "reference",
																"name": "CpNode",
																"id": 798
															}
														},
														{
															"id": 499,
															"name": "isLeaf",
															"kind": 32768,
															"kindString": "Parameter",
															"flags": {},
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "void"
													}
												}
											],
											"sources": [
												{
													"fileName": "src/mat/traverse-edges.ts",
													"line": 17,
													"character": 4
												}
											]
										}
									}
								},
								{
									"id": 500,
									"name": "inclLeaves",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "If truthy then include the leaves, otherwise don't."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"defaultValue": "false"
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/traverse-edges.ts",
							"line": 15,
							"character": 22
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						492
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/traverse-edges.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1484,
			"name": "\"src/mat/traverse-vertices\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/traverse-vertices.ts",
			"children": [
				{
					"id": 1485,
					"name": "traverseVertices",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1486,
							"name": "traverseVertices",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Traverses the MAT tree and calls the given callback function for each vertex\n(represented by a CpNode). Returns all vertices for which the callback\nfunction returned truthy. If returnFirst is true then this function will\nreturn upon the first truthy callback function call and will return the\nrelevant vertex as a single element array in the form [CpNode]. If the\ncallback function returns falsey for all vertices then [] will be returned.",
								"tags": [
									{
										"tag": "doc",
										"text": "_\n"
									}
								]
							},
							"parameters": [
								{
									"id": 1487,
									"name": "cpNode",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "any CpNode of the MAT tree"
									},
									"type": {
										"type": "reference",
										"name": "CpNode",
										"id": 798
									}
								},
								{
									"id": 1488,
									"name": "f",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A callback function taking a single CpNode as parameter that should\nreturn truthy if the CpNode passes some criteria or falsy otherwise."
									},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 1489,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {},
											"signatures": [
												{
													"id": 1490,
													"name": "__call",
													"kind": 4096,
													"kindString": "Call signature",
													"flags": {},
													"parameters": [
														{
															"id": 1491,
															"name": "cpNode",
															"kind": 32768,
															"kindString": "Parameter",
															"flags": {},
															"type": {
																"type": "reference",
																"name": "CpNode",
																"id": 798
															}
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "boolean"
													}
												}
											],
											"sources": [
												{
													"fileName": "src/mat/traverse-vertices.ts",
													"line": 21,
													"character": 4
												}
											]
										}
									},
									"defaultValue": " cpNode => true"
								},
								{
									"id": 1492,
									"name": "returnFirst",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "If true, returns as soon as the first CpNode passing\nf(cpNode) was found as [CpNode]. false by default."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"defaultValue": "false"
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "CpNode",
									"id": 798
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/traverse-vertices.ts",
							"line": 19,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1485
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/traverse-vertices.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1479,
			"name": "\"src/mat/trim-mat\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/mat/trim-mat.ts",
			"children": [
				{
					"id": 1480,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/mat/trim-mat.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1481,
					"name": "trimMat",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1482,
							"name": "trimMat",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Trims the given Medial Axis Transform so that only cycles remain. Similar to\ntoScaleAxis(mat, Number.POSITIVE_INFINITY)."
							},
							"parameters": [
								{
									"id": 1483,
									"name": "mat",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The MAT to trim.\n"
									},
									"type": {
										"type": "reference",
										"name": "Mat",
										"id": 862
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "Mat",
								"id": 862
							}
						}
					],
					"sources": [
						{
							"fileName": "src/mat/trim-mat.ts",
							"line": 19,
							"character": 16
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1480
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1481
					]
				}
			],
			"sources": [
				{
					"fileName": "src/mat/trim-mat.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 82,
			"name": "\"src/point-on-shape\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/point-on-shape.ts",
			"children": [
				{
					"id": 83,
					"name": "PointOnShape",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 89,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"comment": {},
							"signatures": [
								{
									"id": 90,
									"name": "new PointOnShape",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"comment": {},
									"parameters": [
										{
											"id": 91,
											"name": "curve",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {},
											"type": {
												"type": "reference",
												"name": "Curve",
												"id": 30
											}
										},
										{
											"id": 92,
											"name": "t",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"shortText": "The bezier parameter value\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "PointOnShape",
										"id": 83
									}
								}
							],
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 20,
									"character": 5
								}
							]
						},
						{
							"id": 84,
							"name": "curve",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 11,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"name": "Curve",
								"id": 30
							}
						},
						{
							"id": 86,
							"name": "p_",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPrivate": true
							},
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 15,
									"character": 14
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							},
							"defaultValue": " undefined"
						},
						{
							"id": 85,
							"name": "t",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 12,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 97,
							"name": "calcOsculatingCircleRadius",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "Calculates the osculating circle of the bezier at a\nspecific t. If it is found to have negative or nearly zero radius\nit is clipped to have positive radius so it can point into the shape.",
								"tags": [
									{
										"tag": "param",
										"text": "",
										"param": "ps"
									},
									{
										"tag": "param",
										"text": "\n",
										"param": "t"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 69,
									"character": 44
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 98,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 99,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 100,
													"name": "a",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "typeParameter",
														"name": "T"
													}
												}
											],
											"type": {
												"type": "typeParameter",
												"name": "U"
											}
										}
									]
								}
							},
							"defaultValue": " memoize(function(pos: PointOnShape) {\r\n\r\n        let ps = pos.curve.ps;\r\n        let t  = pos.t;\r\n\r\n        let κ = -curvature(ps, t); \r\n\r\n        // κ > 0 => bending inwards\r\n\r\n        return 1/κ;\r\n    })"
						},
						{
							"id": 111,
							"name": "getCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 119,
									"character": 27
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 112,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 113,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 114,
													"name": "a",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "typeParameter",
														"name": "T"
													}
												}
											],
											"type": {
												"type": "typeParameter",
												"name": "U"
											}
										}
									]
								}
							},
							"defaultValue": " memoize(function(pos: PointOnShape) {\r\n        if (pos.t !== 0 && pos.t !== 1) { return undefined; }\r\n\r\n        return Curve.getCornerAtEnd(\r\n            pos.t === 1 ? pos.curve : pos.curve.prev\r\n        );\r\n    })"
						},
						{
							"id": 119,
							"name": "isDullCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 134,
									"character": 30
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 120,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 121,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 122,
													"name": "a",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "typeParameter",
														"name": "T"
													}
												}
											],
											"type": {
												"type": "typeParameter",
												"name": "U"
											}
										}
									]
								}
							},
							"defaultValue": " memoize(function(pos: PointOnShape) {\r\n        let corner = PointOnShape.getCorner(pos);\r\n        return corner && corner.isDull;\r\n    })"
						},
						{
							"id": 127,
							"name": "isQuiteDullCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 146,
									"character": 35
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 128,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 129,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 130,
													"name": "a",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "typeParameter",
														"name": "T"
													}
												}
											],
											"type": {
												"type": "typeParameter",
												"name": "U"
											}
										}
									]
								}
							},
							"defaultValue": " memoize(function(pos: PointOnShape) {\r\n        let corner = PointOnShape.getCorner(pos);\r\n        return corner && corner.isQuiteDull;\r\n    })"
						},
						{
							"id": 123,
							"name": "isQuiteSharpCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 140,
									"character": 36
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 124,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 125,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 126,
													"name": "a",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "typeParameter",
														"name": "T"
													}
												}
											],
											"type": {
												"type": "typeParameter",
												"name": "U"
											}
										}
									]
								}
							},
							"defaultValue": " memoize(function(pos: PointOnShape) {\r\n        let corner = PointOnShape.getCorner(pos);\r\n        return corner && corner.isQuiteSharp;\r\n    })"
						},
						{
							"id": 115,
							"name": "isSharpCorner",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 128,
									"character": 31
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 116,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"signatures": [
										{
											"id": 117,
											"name": "__call",
											"kind": 4096,
											"kindString": "Call signature",
											"flags": {},
											"parameters": [
												{
													"id": 118,
													"name": "a",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {},
													"type": {
														"type": "typeParameter",
														"name": "T"
													}
												}
											],
											"type": {
												"type": "typeParameter",
												"name": "U"
											}
										}
									]
								}
							},
							"defaultValue": " memoize(function(pos: PointOnShape) {\r\n        let corner = PointOnShape.getCorner(pos);\r\n        return corner && corner.isSharp;\r\n    })"
						},
						{
							"id": 87,
							"name": "p",
							"kind": 262144,
							"kindString": "Accessor",
							"flags": {},
							"getSignature": {
								"id": 88,
								"name": "__get",
								"kind": 524288,
								"kindString": "Get signature",
								"flags": {},
								"type": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							},
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 16,
									"character": 9
								}
							]
						},
						{
							"id": 131,
							"name": "calcOrder",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 132,
									"name": "calcOrder",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Calculates the order (to distinguish between points lying on top of each\nother) of the contact point if it is a dull corner."
									},
									"parameters": [
										{
											"id": 133,
											"name": "circle",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "Circle",
												"id": 64
											}
										},
										{
											"id": 134,
											"name": "pos",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"comment": {
												"text": "\n"
											},
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 157,
									"character": 27
								}
							]
						},
						{
							"id": 101,
							"name": "compare",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 102,
									"name": "compare",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 103,
											"name": "a",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										},
										{
											"id": 104,
											"name": "b",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 82,
									"character": 25
								}
							]
						},
						{
							"id": 105,
							"name": "compareInclOrder",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "Ignores order2 (used in hole-closing two-prongs only)"
							},
							"signatures": [
								{
									"id": 106,
									"name": "compareInclOrder",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Ignores order2 (used in hole-closing two-prongs only)"
									},
									"parameters": [
										{
											"id": 107,
											"name": "a",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										},
										{
											"id": 108,
											"name": "b",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										},
										{
											"id": 109,
											"name": "aOrder",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 110,
											"name": "bOrder",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 101,
									"character": 34
								}
							]
						},
						{
							"id": 93,
							"name": "getOsculatingCircle",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"signatures": [
								{
									"id": 94,
									"name": "getOsculatingCircle",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 95,
											"name": "maxOsculatingCircleRadius",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 96,
											"name": "pos",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "Circle",
										"id": 64
									}
								}
							],
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 33,
									"character": 37
								}
							]
						},
						{
							"id": 135,
							"name": "toHumanString",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isStatic": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "Returns a human-readable string of the given PointOnShape.\nFor debugging only."
							},
							"signatures": [
								{
									"id": 136,
									"name": "toHumanString",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"comment": {
										"shortText": "Returns a human-readable string of the given PointOnShape.\nFor debugging only."
									},
									"parameters": [
										{
											"id": 137,
											"name": "pos",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/point-on-shape.ts",
									"line": 176,
									"character": 31
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								89
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								84,
								86,
								85,
								97,
								111,
								119,
								127,
								123,
								115
							]
						},
						{
							"title": "Accessors",
							"kind": 262144,
							"children": [
								87
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								131,
								101,
								105,
								93,
								135
							]
						}
					],
					"sources": [
						{
							"fileName": "src/point-on-shape.ts",
							"line": 10,
							"character": 18
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						83
					]
				}
			],
			"sources": [
				{
					"fileName": "src/point-on-shape.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1667,
			"name": "\"src/svg/fs/beziers-to-svg-path-str\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/beziers-to-svg-path-str.ts",
			"children": [
				{
					"id": 1668,
					"name": "beziersToSvgPathStr",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1669,
							"name": "beziersToSvgPathStr",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns an SVG path string representation of the given cubic bezier loop.",
								"tags": [
									{
										"tag": "doc",
										"text": "_\n"
									}
								]
							},
							"parameters": [
								{
									"id": 1670,
									"name": "beziers",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "An array of cubic bezier curves each given as an array of\ncontrol points."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										}
									}
								},
								{
									"id": 1671,
									"name": "decimalPlaces",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The number of decimal places in the returned path\nstring."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": "10"
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/beziers-to-svg-path-str.ts",
							"line": 10,
							"character": 28
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1668
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/beziers-to-svg-path-str.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1790,
			"name": "\"src/svg/fs/circle-to-cubic-beziers\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/circle-to-cubic-beziers.ts",
			"children": [
				{
					"id": 1791,
					"name": "C",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/svg/fs/circle-to-cubic-beziers.ts",
							"line": 4,
							"character": 7
						}
					],
					"type": {
						"type": "unknown",
						"name": "0.55191502449"
					},
					"defaultValue": "0.55191502449"
				},
				{
					"id": 1792,
					"name": "circleToCubicBeziers",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1793,
							"name": "circleToCubicBeziers",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1794,
									"name": "center",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									},
									"defaultValue": " [0,0]"
								},
								{
									"id": 1795,
									"name": "radius",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1796,
									"name": "clockwise",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"defaultValue": "false"
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/circle-to-cubic-beziers.ts",
							"line": 7,
							"character": 29
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1791
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1792
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/circle-to-cubic-beziers.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1537,
			"name": "\"src/svg/fs/de-pathologify\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/de-pathologify.ts",
			"children": [
				{
					"id": 1538,
					"name": "dePathologify",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1539,
							"name": "dePathologify",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Possibly changes the curve into one that is as close to the original as\npossible but does not have pathological properties (i.e. does not have near\ninfinitely sharp corners, etc) or if that is not possible remove the curve in\nsome circumstances (e.g. if it is of extreme short length, etc.)."
							},
							"parameters": [
								{
									"id": 1540,
									"name": "ps_",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1541,
									"name": "max",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/de-pathologify.ts",
							"line": 13,
							"character": 22
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1538
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/de-pathologify.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1586,
			"name": "\"src/svg/fs/get-beziers-from-raw-paths\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/get-beziers-from-raw-paths.ts",
			"children": [
				{
					"id": 1597,
					"name": "getBeziersFromRawPaths",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1598,
							"name": "getBeziersFromRawPaths",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Get the cubic beziers from the given SVG DOM element. If a path\ndata tag is not \"C\", i.e. if it is not an absolute cubic bezier\ncoordinate then it is converted into one.",
								"returns": "aaa\n"
							},
							"parameters": [
								{
									"id": 1599,
									"name": "paths",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reflection",
											"declaration": {
												"id": 1600,
												"name": "__type",
												"kind": 65536,
												"kindString": "Type literal",
												"flags": {},
												"children": [
													{
														"id": 1601,
														"name": "type",
														"kind": 32,
														"kindString": "Variable",
														"flags": {},
														"sources": [
															{
																"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
																"line": 27,
																"character": 45
															}
														],
														"type": {
															"type": "intrinsic",
															"name": "string"
														}
													},
													{
														"id": 1602,
														"name": "values",
														"kind": 32,
														"kindString": "Variable",
														"flags": {},
														"sources": [
															{
																"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
																"line": 27,
																"character": 61
															}
														],
														"type": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													}
												],
												"groups": [
													{
														"title": "Variables",
														"kind": 32,
														"children": [
															1601,
															1602
														]
													}
												],
												"sources": [
													{
														"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
														"line": 27,
														"character": 38
													}
												]
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
							"line": 27,
							"character": 31
						}
					]
				},
				{
					"id": 1587,
					"name": "pathFs",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isConst": true
					},
					"children": [
						{
							"id": 1588,
							"name": "a",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
									"line": 17,
									"character": 5
								}
							],
							"type": {
								"type": "reference",
								"name": "a",
								"id": 1583
							}
						},
						{
							"id": 1589,
							"name": "c",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
									"line": 17,
									"character": 8
								}
							],
							"type": {
								"type": "reference",
								"name": "c",
								"id": 1555
							}
						},
						{
							"id": 1590,
							"name": "h",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
									"line": 17,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "h",
								"id": 1567
							}
						},
						{
							"id": 1591,
							"name": "l",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
									"line": 17,
									"character": 14
								}
							],
							"type": {
								"type": "reference",
								"name": "l",
								"id": 1563
							}
						},
						{
							"id": 1592,
							"name": "q",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
									"line": 17,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"name": "q",
								"id": 1575
							}
						},
						{
							"id": 1593,
							"name": "s",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
									"line": 17,
									"character": 20
								}
							],
							"type": {
								"type": "reference",
								"name": "s",
								"id": 1559
							}
						},
						{
							"id": 1594,
							"name": "t",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
									"line": 17,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"name": "t",
								"id": 1579
							}
						},
						{
							"id": 1595,
							"name": "v",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
									"line": 17,
									"character": 26
								}
							],
							"type": {
								"type": "reference",
								"name": "v",
								"id": 1571
							}
						},
						{
							"id": 1596,
							"name": "z",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
									"line": 17,
									"character": 29
								}
							],
							"type": {
								"type": "reference",
								"name": "z",
								"id": 1551
							}
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								1588,
								1589,
								1590,
								1591,
								1592,
								1593,
								1594,
								1595,
								1596
							]
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
							"line": 16,
							"character": 12
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1597
					]
				},
				{
					"title": "Object literals",
					"kind": 2097152,
					"children": [
						1587
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/get-beziers-from-raw-paths.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1708,
			"name": "\"src/svg/fs/get-curvature-at-interface\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/get-curvature-at-interface.ts",
			"children": [
				{
					"id": 1712,
					"name": "acos",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1713,
							"name": "acos",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Floating-point 'safer' version of acos. If x is larger than 1 (or smaller\nthan -1), still returns 0 (or Math.PI) instead of NAN.",
								"tags": [
									{
										"tag": "example",
										"text": "\n\t\tacos(1);  //=> 0\n     acos(2);  //=> 0\n"
									}
								]
							},
							"parameters": [
								{
									"id": 1714,
									"name": "x",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/get-curvature-at-interface.ts",
							"line": 45,
							"character": 13
						}
					]
				},
				{
					"id": 1709,
					"name": "getCurvatureAtInterface",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1710,
							"name": "getCurvatureAtInterface",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Get the angle between the given bezier endpoint and the\nstartpoint of the next bezier."
							},
							"parameters": [
								{
									"id": 1711,
									"name": "curve",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "Curve",
										"id": 30
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/get-curvature-at-interface.ts",
							"line": 13,
							"character": 32
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1712,
						1709
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/get-curvature-at-interface.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1282,
			"name": "\"src/svg/fs/get-extreme\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/get-extreme.ts",
			"children": [
				{
					"id": 1283,
					"name": "getExtreme",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1284,
							"name": "getExtreme",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns the max extreme point coordinate value for the given shape. This is\nused for floating point tolerance calculations."
							},
							"parameters": [
								{
									"id": 1285,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/get-extreme.ts",
							"line": 12,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1283
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/get-extreme.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 869,
			"name": "\"src/svg/fs/get-loop-bounds\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/get-loop-bounds.ts",
			"children": [
				{
					"id": 870,
					"name": "INF",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/svg/fs/get-loop-bounds.ts",
							"line": 10,
							"character": 9
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "number"
					},
					"defaultValue": " Number.POSITIVE_INFINITY"
				},
				{
					"id": 871,
					"name": "getLoopBounds",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/svg/fs/get-loop-bounds.ts",
							"line": 13,
							"character": 17
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 872,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {},
							"signatures": [
								{
									"id": 873,
									"name": "__call",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 874,
											"name": "a",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "typeParameter",
												"name": "T"
											}
										}
									],
									"type": {
										"type": "typeParameter",
										"name": "U"
									}
								}
							]
						}
					},
					"defaultValue": " memoize(function(loop: Loop) {\t\t\r\n\tlet extremes: { \r\n\t\tbezier: Curve, \r\n\t\tt: number, \r\n\t\tval: number \r\n\t}[][] = [\r\n\t\t[\r\n\t\t\t{ bezier: undefined, t: undefined, val: INF}, \r\n\t\t\t{ bezier: undefined, t: undefined, val: INF}\r\n\t\t], \r\n\t\t[\r\n\t\t\t{ bezier: undefined, t: undefined, val: -INF}, \r\n\t\t\t{ bezier: undefined, t: undefined, val: -INF}\r\n\t\t]\r\n\t];\r\n\t\r\n\tloop.curves.forEach(function(curve: Curve): void {\t\t\t\r\n\t\tlet ps = curve.ps; \r\n\t\tlet bounds = getBounds(ps);\r\n\t\t\r\n\t\tfor (let i=0; i<2; i++) {\r\n\t\t\tfor (let j=0; j<2; j++) {\r\n\t\t\t\tlet v = bounds.box[i][j];\r\n\t\t\t\tlet m = i === 0 ? -1 : 1; // min or max?\r\n\t\t\t\tlet x = extremes[i][j].val;\r\n\t\t\t\tif (m*v > m*x || (v === x && bounds.ts[i][j] > extremes[i][j].t)) { \r\n\t\t\t\t\textremes[i][j] = { \r\n\t\t\t\t\t\tbezier : curve, \r\n\t\t\t\t\t\tt      : bounds.ts[i][j],\r\n\t\t\t\t\t\tval    : v\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\treturn {\r\n\t\tminX : new PointOnShape(extremes[0][0].bezier, extremes[0][0].t),\r\n\t\tminY : new PointOnShape(extremes[0][1].bezier, extremes[0][1].t),\r\n\t\tmaxX : new PointOnShape(extremes[1][0].bezier, extremes[1][0].t),\r\n\t\tmaxY : new PointOnShape(extremes[1][1].bezier, extremes[1][1].t)\r\n\t};\r\n})"
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						870,
						871
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/get-loop-bounds.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1439,
			"name": "\"src/svg/fs/get-min-y-pos\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/get-min-y-pos.ts",
			"children": [
				{
					"id": 1440,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/svg/fs/get-min-y-pos.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1441,
					"name": "getMinYPos",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1442,
							"name": "getMinYPos",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Get topmost PointOnShape the given loop."
							},
							"parameters": [
								{
									"id": 1443,
									"name": "loop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "PointOnShape",
								"id": 83
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/get-min-y-pos.ts",
							"line": 15,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1440
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1441
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/get-min-y-pos.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1663,
			"name": "\"src/svg/fs/get-paths-from-str\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/get-paths-from-str.ts",
			"children": [
				{
					"id": 1664,
					"name": "getPathsFromStr",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1665,
							"name": "getPathsFromStr",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns an array of loops with each loop consisting of an array of beziers\nand each bezier in turn consisting of an array of control points from the\ngiven SVG path string. An array of loops are returned (as opposed to a single\nloop) since an SVG path may have sub-paths.",
								"tags": [
									{
										"tag": "doc",
										"text": "_\n"
									}
								]
							},
							"parameters": [
								{
									"id": 1666,
									"name": "str",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The SVG path string, e.g. 'M1 1 C 5 1 5 2 4 2 C 3 3 1 3 1 1 z'"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/get-paths-from-str.ts",
							"line": 14,
							"character": 24
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1664
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/get-paths-from-str.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1797,
			"name": "\"src/svg/fs/get-paths-from-svg-path-elem\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/get-paths-from-svg-path-elem.ts",
			"children": [
				{
					"id": 1798,
					"name": "getPathsFromSvgPathElem",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1799,
							"name": "getPathsFromSvgPathElem",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1800,
									"name": "elem",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "SVGPathElement"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/get-paths-from-svg-path-elem.ts",
							"line": 7,
							"character": 32
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1798
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/get-paths-from-svg-path-elem.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 984,
			"name": "\"src/svg/fs/get-shape-bounds\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/get-shape-bounds.ts",
			"children": [
				{
					"id": 985,
					"name": "getShapeBounds",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/svg/fs/get-shape-bounds.ts",
							"line": 10,
							"character": 18
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 986,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {},
							"signatures": [
								{
									"id": 987,
									"name": "__call",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 988,
											"name": "a",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "typeParameter",
												"name": "T"
											}
										}
									],
									"type": {
										"type": "typeParameter",
										"name": "U"
									}
								}
							]
						}
					},
					"defaultValue": " memoize(function(loops: Loop[]) {\r\n    let minX_ = Number.POSITIVE_INFINITY;\r\n    let maxX_ = Number.NEGATIVE_INFINITY;\r\n    let minY_ = Number.POSITIVE_INFINITY;\r\n    let maxY_ = Number.NEGATIVE_INFINITY;\r\n\r\n    let minX;\r\n    let maxX;\r\n    let minY;\r\n    let maxY;\r\n\r\n    for (let loop of loops) {\r\n        let bounds = getLoopBounds(loop);\r\n        if (bounds.minX.p[0] < minX_) {\r\n            minX = bounds.minX;\r\n            minX_ = bounds.minX.p[0];\r\n        }\r\n        if (bounds.maxX.p[0] > maxX_) {\r\n            maxX = bounds.maxX;\r\n            maxX_ = bounds.maxX.p[0];\r\n        }\r\n        if (bounds.minY.p[1] < minY_) {\r\n            minY = bounds.minY;\r\n            minY_ = bounds.minY.p[1];\r\n        }\r\n        if (bounds.maxY.p[1] > maxY_) {\r\n            maxY = bounds.maxY;\r\n            maxY_ = bounds.maxY.p[1];\r\n        }\r\n    }\r\n    \r\n    return { minX, minY, maxX, maxY };\r\n})"
				},
				{
					"id": 989,
					"name": "getShapesBounds",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"sources": [
						{
							"fileName": "src/svg/fs/get-shape-bounds.ts",
							"line": 45,
							"character": 19
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 990,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {},
							"signatures": [
								{
									"id": 991,
									"name": "__call",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 992,
											"name": "a",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "typeParameter",
												"name": "T"
											}
										}
									],
									"type": {
										"type": "typeParameter",
										"name": "U"
									}
								}
							]
						}
					},
					"defaultValue": " memoize(function(loopss: Loop[][]) {\r\n    let minX_ = Number.POSITIVE_INFINITY;\r\n    let maxX_ = Number.NEGATIVE_INFINITY;\r\n    let minY_ = Number.POSITIVE_INFINITY;\r\n    let maxY_ = Number.NEGATIVE_INFINITY;\r\n\r\n    let minX;\r\n    let maxX;\r\n    let minY;\r\n    let maxY;\r\n\r\n    for (let loops of loopss) {\r\n        let bounds = getShapeBounds(loops);\r\n        if (bounds.minX.p[0] < minX_) {\r\n            minX = bounds.minX;\r\n            minX_ = bounds.minX.p[0];\r\n        }\r\n        if (bounds.maxX.p[0] > maxX_) {\r\n            maxX = bounds.maxX;\r\n            maxX_ = bounds.maxX.p[0];\r\n        }\r\n        if (bounds.minY.p[1] < minY_) {\r\n            minY = bounds.minY;\r\n            minY_ = bounds.minY.p[1];\r\n        }\r\n        if (bounds.maxY.p[1] > maxY_) {\r\n            maxY = bounds.maxY;\r\n            maxY_ = bounds.maxY.p[1];\r\n        }\r\n    }\r\n    \r\n    return { minX, minY, maxX, maxY };\r\n})"
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						985,
						989
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/get-shape-bounds.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1531,
			"name": "\"src/svg/fs/is-almost-zero-length\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/is-almost-zero-length.ts",
			"children": [
				{
					"id": 1532,
					"name": "DELTA",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/svg/fs/is-almost-zero-length.ts",
							"line": 5,
							"character": 11
						}
					],
					"type": {
						"type": "unknown",
						"name": "0.000001"
					},
					"defaultValue": "0.000001"
				},
				{
					"id": 1533,
					"name": "isAlmostZeroLength",
					"kind": 64,
					"kindString": "Function",
					"flags": {
						"isPrivate": true
					},
					"signatures": [
						{
							"id": 1534,
							"name": "isAlmostZeroLength",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isPrivate": true
							},
							"comment": {
								"shortText": "Returns true if distance between consecutive points are all less than\nsome delta, false otherwise."
							},
							"parameters": [
								{
									"id": 1535,
									"name": "ps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "an array of points"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1536,
									"name": "delta",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "a tolerance - defaults to 1e-6;\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": " DELTA"
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/is-almost-zero-length.ts",
							"line": 15,
							"character": 27
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1532
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1533
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/is-almost-zero-length.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1801,
			"name": "\"src/svg/fs/is-close-to-origin\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/is-close-to-origin.ts",
			"children": [
				{
					"id": 1802,
					"name": "DELTA",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/svg/fs/is-close-to-origin.ts",
							"line": 5,
							"character": 11
						}
					],
					"type": {
						"type": "unknown",
						"name": "0.000001"
					},
					"defaultValue": "0.000001"
				},
				{
					"id": 1803,
					"name": "isCloseToOrigin",
					"kind": 64,
					"kindString": "Function",
					"flags": {
						"isPrivate": true
					},
					"signatures": [
						{
							"id": 1804,
							"name": "isCloseToOrigin",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isPrivate": true
							},
							"comment": {
								"shortText": "Returns true if the given point is close to the origin (by Manhattan\ndistance), fale otherwise."
							},
							"parameters": [
								{
									"id": 1805,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "a point"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1806,
									"name": "delta",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "a tolerance - defaults to 1e-6;\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"defaultValue": " DELTA"
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/is-close-to-origin.ts",
							"line": 15,
							"character": 24
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1802
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1803
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/is-close-to-origin.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 962,
			"name": "\"src/svg/fs/is-path-positively-oriented\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/is-path-positively-oriented.ts",
			"children": [
				{
					"id": 963,
					"name": "isPathPositivelyOrientated",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isLet": true
					},
					"comment": {
						"shortText": "Returns true if the given beizer loop is positively orientated, false\notherwise. Careful! Checks leftmost part of loop so twisted complex paths\nmay give an ambiguous orientation."
					},
					"sources": [
						{
							"fileName": "src/svg/fs/is-path-positively-oriented.ts",
							"line": 17,
							"character": 30
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 964,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {},
							"signatures": [
								{
									"id": 965,
									"name": "__call",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"parameters": [
										{
											"id": 966,
											"name": "a",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "typeParameter",
												"name": "T"
											}
										}
									],
									"type": {
										"type": "typeParameter",
										"name": "U"
									}
								}
							]
						}
					},
					"defaultValue": " memoize(function(bezierLoop: Loop) {\r\n    let extreme = getLoopBounds(bezierLoop).minX;\r\n\r\n    let t = extreme.t;\r\n    let curve: Curve;\r\n\r\n    if (t === 0) {\r\n        curve = extreme.curve.prev;\r\n        t = 1;\r\n    } else {\r\n        curve = extreme.curve;\r\n    }\r\n\r\n    let ps = curve.ps;\r\n    \r\n    let tan = tangent(ps)(t);\r\n\r\n    if (t !== 1) {\r\n        // Not a sharp corner\r\n        return tan[1] < 0;\r\n    }\r\n\r\n    let psNext = curve.next.ps;\t\r\n    let tanNext = tangent(psNext)(0);\r\n\r\n    if (tan[1] * tanNext[1] > 0) {\r\n        // Both tangents points up or both points down.\r\n        return tan[1] < 0;\r\n    }\r\n\r\n    // One tangent points up and the other down.\r\n    let c = cross(tan, tanNext);\r\n\r\n    return c > 0;\r\n\r\n    // We don't check for the very special case where the cross === 0. \r\n})"
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						963
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/is-path-positively-oriented.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 5,
			"name": "\"src/svg/fs/linear-to-cubic\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/linear-to-cubic.ts",
			"children": [
				{
					"id": 6,
					"name": "linearToCubic",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 7,
							"name": "linearToCubic",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 8,
									"name": "l",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/linear-to-cubic.ts",
							"line": 2,
							"character": 22
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						6
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/linear-to-cubic.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1542,
			"name": "\"src/svg/fs/push-bezier\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/push-bezier.ts",
			"children": [
				{
					"id": 1543,
					"name": "RESOLUTION",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/svg/fs/push-bezier.ts",
							"line": 7,
							"character": 16
						}
					],
					"type": {
						"type": "unknown",
						"name": "10000"
					},
					"defaultValue": "10000"
				},
				{
					"id": 1544,
					"name": "pushBezier",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1545,
							"name": "pushBezier",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1546,
									"name": "beziers",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The array of path curves"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										}
									}
								},
								{
									"id": 1547,
									"name": "ps_",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The bezier"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								},
								{
									"id": 1548,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								},
								{
									"id": 1549,
									"name": "max",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/push-bezier.ts",
							"line": 15,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1543
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1544
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/push-bezier.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1,
			"name": "\"src/svg/fs/quadratic-to-cubic\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/quadratic-to-cubic.ts",
			"children": [
				{
					"id": 2,
					"name": "quadraticToCubic",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 3,
							"name": "quadraticToCubic",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 4,
									"name": "ps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/quadratic-to-cubic.ts",
							"line": 2,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						2
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/quadratic-to-cubic.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1807,
			"name": "\"src/svg/fs/reverse-orientation\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/reverse-orientation.ts",
			"children": [
				{
					"id": 1808,
					"name": "reverseOrientation",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1809,
							"name": "reverseOrientation",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns a completely reversed loop of the given bezier loop."
							},
							"parameters": [
								{
									"id": 1810,
									"name": "loop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "Loop",
								"id": 10
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/reverse-orientation.ts",
							"line": 11,
							"character": 27
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1808
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/reverse-orientation.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 948,
			"name": "\"src/svg/fs/simplify-paths/complete-loop\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/complete-loop.ts",
			"children": [
				{
					"id": 949,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/complete-loop.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 957,
					"name": "addXOutPs",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 958,
							"name": "addXOutPs",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 959,
									"name": "reversed",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								},
								{
									"id": 960,
									"name": "fromX",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "X",
										"id": 147
									}
								},
								{
									"id": 961,
									"name": "ps",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "array",
											"elementType": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/complete-loop.ts",
							"line": 104,
							"character": 18
						}
					]
				},
				{
					"id": 950,
					"name": "completeLoop",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 951,
							"name": "completeLoop",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 952,
									"name": "intersections",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Curve",
												"id": 30
											},
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "X",
													"id": 147
												}
											}
										]
									}
								},
								{
									"id": 953,
									"name": "takenXs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Set",
										"typeArguments": [
											{
												"type": "reference",
												"name": "X",
												"id": 147
											}
										]
									}
								},
								{
									"id": 954,
									"name": "xStack",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "X",
											"id": 147
										}
									}
								},
								{
									"id": 955,
									"name": "loopTree",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "ILoopTree",
										"id": 139
									}
								},
								{
									"id": 956,
									"name": "x",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "X",
										"id": 147
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/complete-loop.ts",
							"line": 15,
							"character": 21
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						949
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						957,
						950
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/complete-loop.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 977,
			"name": "\"src/svg/fs/simplify-paths/complete-path\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/complete-path.ts",
			"children": [
				{
					"id": 978,
					"name": "completePath",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 979,
							"name": "completePath",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 980,
									"name": "intersections",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Curve",
												"id": 30
											},
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "X",
													"id": 147
												}
											}
										]
									}
								},
								{
									"id": 981,
									"name": "loopsTaken",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Set",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Loop",
												"id": 10
											}
										]
									}
								},
								{
									"id": 982,
									"name": "parent",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "ILoopTree",
										"id": 139
									}
								},
								{
									"id": 983,
									"name": "loop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/complete-path.ts",
							"line": 20,
							"character": 21
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						978
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/complete-path.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 967,
			"name": "\"src/svg/fs/simplify-paths/get-initial-x\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/get-initial-x.ts",
			"children": [
				{
					"id": 968,
					"name": "getInitialX",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 969,
							"name": "getInitialX",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Get initial intersection which is really a dummy intersection."
							},
							"parameters": [
								{
									"id": 970,
									"name": "intersections",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Curve",
												"id": 30
											},
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"name": "X",
													"id": 147
												}
											}
										]
									}
								},
								{
									"id": 971,
									"name": "parent",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "ILoopTree",
										"id": 139
									}
								},
								{
									"id": 972,
									"name": "loop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "X",
								"id": 147
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-initial-x.ts",
							"line": 18,
							"character": 20
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						968
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/get-initial-x.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 916,
			"name": "\"src/svg/fs/simplify-paths/get-intersections\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/get-intersections.ts",
			"children": [
				{
					"id": 917,
					"name": "IBoxInfo",
					"kind": 256,
					"kindString": "Interface",
					"flags": {},
					"children": [
						{
							"id": 918,
							"name": "box",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
									"line": 21,
									"character": 7
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						},
						{
							"id": 920,
							"name": "curve",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
									"line": 23,
									"character": 9
								}
							],
							"type": {
								"type": "reference",
								"name": "Curve",
								"id": 30
							}
						},
						{
							"id": 919,
							"name": "loop",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
									"line": 22,
									"character": 8
								}
							],
							"type": {
								"type": "reference",
								"name": "Loop",
								"id": 10
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								918,
								920,
								919
							]
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
							"line": 20,
							"character": 18
						}
					]
				},
				{
					"id": 922,
					"name": "DELTA",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
							"line": 17,
							"character": 11
						}
					],
					"type": {
						"type": "unknown",
						"name": "1e-10"
					},
					"defaultValue": "1e-10"
				},
				{
					"id": 921,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 926,
					"name": "confirmIntersection",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 927,
							"name": "confirmIntersection",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 928,
									"name": "checkedPairs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "reference",
												"name": "Curve",
												"id": 30
											},
											{
												"type": "reference",
												"name": "Set",
												"typeArguments": [
													{
														"type": "reference",
														"name": "Curve",
														"id": 30
													}
												]
											}
										]
									}
								},
								{
									"id": 929,
									"name": "curves",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Curve",
											"id": 30
										}
									}
								},
								{
									"id": 930,
									"name": "tPair",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "Curve",
									"id": 30
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
							"line": 99,
							"character": 28
						}
					]
				},
				{
					"id": 931,
					"name": "getBoxInfos",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 932,
							"name": "getBoxInfos",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns an array of lines of the bounding hulls of the Loop beziers' control\npoints including a map that maps each line to its hull, path and curve."
							},
							"parameters": [
								{
									"id": 933,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "An array of Loops\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 934,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 936,
											"name": "boxInfoMap",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
													"line": 167,
													"character": 30
												}
											],
											"type": {
												"type": "reference",
												"name": "Map",
												"typeArguments": [
													{
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													},
													{
														"type": "reference",
														"name": "IBoxInfo",
														"id": 917
													}
												]
											}
										},
										{
											"id": 935,
											"name": "boxes",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
													"line": 167,
													"character": 18
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												936,
												935
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
							"line": 152,
							"character": 20
						}
					]
				},
				{
					"id": 923,
					"name": "getIntersections",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 924,
							"name": "getIntersections",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Find and return all intersections on all given loops."
							},
							"parameters": [
								{
									"id": 925,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "Map",
								"typeArguments": [
									{
										"type": "reference",
										"name": "Curve",
										"id": 30
									},
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "X",
											"id": 147
										}
									}
								]
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
							"line": 31,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						917
					]
				},
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						922,
						921
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						926,
						931,
						923
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/get-intersections.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 973,
			"name": "\"src/svg/fs/simplify-paths/get-loop-metrics\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/get-loop-metrics.ts",
			"children": [
				{
					"id": 974,
					"name": "getLoopMetrics",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 975,
							"name": "getLoopMetrics",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 976,
									"name": "x",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The intersection\n"
									},
									"type": {
										"type": "reference",
										"name": "X",
										"id": 147
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "ILoopTree",
								"id": 139
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-loop-metrics.ts",
							"line": 13,
							"character": 23
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						974
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/get-loop-metrics.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 937,
			"name": "\"src/svg/fs/simplify-paths/get-next-x\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/get-next-x.ts",
			"children": [
				{
					"id": 938,
					"name": "getNextX",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 939,
							"name": "getNextX",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 940,
									"name": "xs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "An array of intersections on the curve"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "X",
											"id": 147
										}
									}
								},
								{
									"id": 941,
									"name": "curT",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The current t value"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 942,
									"name": "forwards",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "If true go forwards else go backwards\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								},
								{
									"id": 943,
									"name": "wasOnX",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "X",
								"id": 147
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-next-x.ts",
							"line": 11,
							"character": 17
						}
					]
				},
				{
					"id": 944,
					"name": "getThisX",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 945,
							"name": "getThisX",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 946,
									"name": "xs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "An array of intersections on the curve"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "X",
											"id": 147
										}
									}
								},
								{
									"id": 947,
									"name": "t",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The current t value\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "X",
								"id": 147
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-next-x.ts",
							"line": 42,
							"character": 17
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						938,
						944
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/get-next-x.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1008,
			"name": "\"src/svg/fs/simplify-paths/get-tightest-containing-loop\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/get-tightest-containing-loop.ts",
			"children": [
				{
					"id": 1009,
					"name": "getTightestContainingLoop",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1010,
							"name": "getTightestContainingLoop",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1011,
									"name": "root",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "ILoopTree",
										"id": 139
									}
								},
								{
									"id": 1012,
									"name": "loop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "ILoopTree",
								"id": 139
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/get-tightest-containing-loop.ts",
							"line": 13,
							"character": 34
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1009
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/get-tightest-containing-loop.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 138,
			"name": "\"src/svg/fs/simplify-paths/i-loop-tree\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/i-loop-tree.ts",
			"children": [
				{
					"id": 139,
					"name": "ILoopTree",
					"kind": 256,
					"kindString": "Interface",
					"flags": {},
					"children": [
						{
							"id": 142,
							"name": "beziers",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/simplify-paths/i-loop-tree.ts",
									"line": 7,
									"character": 11
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							}
						},
						{
							"id": 141,
							"name": "children",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/simplify-paths/i-loop-tree.ts",
									"line": 6,
									"character": 12
								}
							],
							"type": {
								"type": "reference",
								"name": "Set",
								"typeArguments": [
									{
										"type": "reference",
										"name": "ILoopTree",
										"id": 139
									}
								]
							}
						},
						{
							"id": 143,
							"name": "loop",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/simplify-paths/i-loop-tree.ts",
									"line": 8,
									"character": 8
								}
							],
							"type": {
								"type": "reference",
								"name": "Loop",
								"id": 10
							}
						},
						{
							"id": 144,
							"name": "orientation",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/simplify-paths/i-loop-tree.ts",
									"line": 9,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 140,
							"name": "parent",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/simplify-paths/i-loop-tree.ts",
									"line": 5,
									"character": 10
								}
							],
							"type": {
								"type": "reference",
								"name": "ILoopTree",
								"id": 139
							}
						},
						{
							"id": 145,
							"name": "windingNum",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/fs/simplify-paths/i-loop-tree.ts",
									"line": 10,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								142,
								141,
								143,
								144,
								140,
								145
							]
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/i-loop-tree.ts",
							"line": 4,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						139
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/i-loop-tree.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 993,
			"name": "\"src/svg/fs/simplify-paths/is-loop-in-loop\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/is-loop-in-loop.ts",
			"children": [
				{
					"id": 996,
					"name": "Dir",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {},
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/is-loop-in-loop.ts",
							"line": 22,
							"character": 8
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "stringLiteral",
								"value": "left"
							},
							{
								"type": "stringLiteral",
								"value": "right"
							},
							{
								"type": "stringLiteral",
								"value": "down"
							},
							{
								"type": "stringLiteral",
								"value": "up"
							}
						]
					}
				},
				{
					"id": 995,
					"name": "DELTA",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/is-loop-in-loop.ts",
							"line": 19,
							"character": 11
						}
					],
					"type": {
						"type": "unknown",
						"name": "0.000001"
					},
					"defaultValue": "0.000001"
				},
				{
					"id": 994,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/is-loop-in-loop.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1003,
					"name": "getAxisAlignedRayLoopIntersections",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1004,
							"name": "getAxisAlignedRayLoopIntersections",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1005,
									"name": "loop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "A loop of curves\n"
									},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								},
								{
									"id": 1006,
									"name": "p",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The point where the horizontal ray starts"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								},
								{
									"id": 1007,
									"name": "dir",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Dir",
										"id": 996
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "PointOnShape",
									"id": 83
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/is-loop-in-loop.ts",
							"line": 118,
							"character": 43
						}
					]
				},
				{
					"id": 997,
					"name": "isLoopInLoop",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 998,
							"name": "isLoopInLoop",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns true if the first loop is contained wholly within the second. At this\nstage we already know the loop is either wholly contained inside the loop\nor is wholly outside."
							},
							"parameters": [
								{
									"id": 999,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/is-loop-in-loop.ts",
							"line": 35,
							"character": 21
						}
					]
				},
				{
					"id": 1000,
					"name": "isLoopNotInLoop",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1001,
							"name": "isLoopNotInLoop",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns true if the first loop is not wholly within the second. The converse\nis not necessarily true. It is assumed the loops don't intersect."
							},
							"parameters": [
								{
									"id": 1002,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/is-loop-in-loop.ts",
							"line": 89,
							"character": 24
						}
					]
				}
			],
			"groups": [
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						996
					]
				},
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						995,
						994
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1003,
						997,
						1000
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/is-loop-in-loop.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1811,
			"name": "\"src/svg/fs/simplify-paths/orient\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/orient.ts",
			"children": [
				{
					"id": 1812,
					"name": "orient",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1813,
							"name": "orient",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Destructively orient the bezier loops so that the outermost loop is\npositively oriented (i.e. counter-clockwise) and the rest negatively\noriented."
							},
							"parameters": [
								{
									"id": 1814,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "Loop",
									"id": 10
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/orient.ts",
							"line": 13,
							"character": 15
						}
					]
				},
				{
					"id": 1815,
					"name": "orientLoop",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1816,
							"name": "orientLoop",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns a loop oriented according to the given orientation."
							},
							"parameters": [
								{
									"id": 1817,
									"name": "loop",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The loop"
									},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								},
								{
									"id": 1818,
									"name": "positive",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "If true, returns a positively oriented loop, else a negative\none.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"type": {
								"type": "reference",
								"name": "Loop",
								"id": 10
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/orient.ts",
							"line": 33,
							"character": 19
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1812,
						1815
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/orient.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 875,
			"name": "\"src/svg/fs/simplify-paths/pair-set\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/pair-set.ts",
			"children": [
				{
					"id": 876,
					"name": "pairSet_add",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 877,
							"name": "pairSet_add",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Adds an unordered pair of values to the set (given as a special map)"
							},
							"typeParameter": [
								{
									"id": 878,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 879,
									"name": "map",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The map representing the pairs."
									},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T"
											},
											{
												"type": "reference",
												"name": "Set",
												"typeArguments": [
													{
														"type": "typeParameter",
														"name": "T"
													}
												]
											}
										]
									}
								},
								{
									"id": 880,
									"name": "vs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The pair to add.\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "typeParameter",
											"name": "T"
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/pair-set.ts",
							"line": 7,
							"character": 20
						}
					]
				},
				{
					"id": 886,
					"name": "pairSet_asArray",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 887,
							"name": "pairSet_asArray",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns the unordered pairs as an array."
							},
							"typeParameter": [
								{
									"id": 888,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 889,
									"name": "map",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The map representing the pairs.\n"
									},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T"
											},
											{
												"type": "reference",
												"name": "Set",
												"typeArguments": [
													{
														"type": "typeParameter",
														"name": "T"
													}
												]
											}
										]
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "unknown",
										"name": "T"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/pair-set.ts",
							"line": 55,
							"character": 24
						}
					]
				},
				{
					"id": 881,
					"name": "pairSet_has",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 882,
							"name": "pairSet_has",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns true if the unordered pair is in the set of pairs (represented by a\nmap)."
							},
							"typeParameter": [
								{
									"id": 883,
									"name": "T",
									"kind": 131072,
									"kindString": "Type parameter",
									"flags": {}
								}
							],
							"parameters": [
								{
									"id": 884,
									"name": "map",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The map representing the pairs."
									},
									"type": {
										"type": "reference",
										"name": "Map",
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T"
											},
											{
												"type": "reference",
												"name": "Set",
												"typeArguments": [
													{
														"type": "typeParameter",
														"name": "T"
													}
												]
											}
										]
									}
								},
								{
									"id": 885,
									"name": "vs",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "The pair to check.\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "typeParameter",
											"name": "T"
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/pair-set.ts",
							"line": 35,
							"character": 20
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						876,
						886,
						881
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/pair-set.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1013,
			"name": "\"src/svg/fs/simplify-paths/simplify-paths\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/fs/simplify-paths/simplify-paths.ts",
			"children": [
				{
					"id": 1014,
					"name": "_debug_",
					"kind": 32,
					"kindString": "Variable",
					"flags": {},
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/simplify-paths.ts",
							"line": 2,
							"character": 19
						}
					],
					"type": {
						"type": "reference",
						"name": "MatDebug",
						"id": 782
					}
				},
				{
					"id": 1029,
					"name": "ascendingByTopmostPoint",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1030,
							"name": "ascendingByTopmostPoint",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {},
							"parameters": [
								{
									"id": 1031,
									"name": "loopA",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								},
								{
									"id": 1032,
									"name": "loopB",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "Loop",
										"id": 10
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/simplify-paths.ts",
							"line": 169,
							"character": 32
						}
					]
				},
				{
					"id": 1026,
					"name": "getLoopsFromTree",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1027,
							"name": "getLoopsFromTree",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Returns an array of LoopTrees from the given LoopTree where each returned\nLoopTree is one of the nodes of the tree. Nodes with winding number > 1 are\nnot returned."
							},
							"parameters": [
								{
									"id": 1028,
									"name": "root",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "\n"
									},
									"type": {
										"type": "reference",
										"name": "ILoopTree",
										"id": 139
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "ILoopTree",
									"id": 139
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/simplify-paths.ts",
							"line": 141,
							"character": 25
						}
					]
				},
				{
					"id": 1015,
					"name": "simplifyPaths",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1016,
							"name": "simplifyPaths",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Uses the algorithm of Lavanya Subramaniam (PARTITION OF A NON-SIMPLE POLYGON\nINTO SIMPLE POLYGONS) but modified to use cubic bezier curves (as opposed to\npolygons) and to additionally take care of paths with multiple subpaths, i.e.\nsuch as disjoint nested paths."
							},
							"parameters": [
								{
									"id": 1017,
									"name": "loops",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"comment": {
										"text": "An array of possibly intersecting paths\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"name": "Loop",
											"id": 10
										}
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1018,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1019,
											"name": "loopss",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/svg/fs/simplify-paths/simplify-paths.ts",
													"line": 108,
													"character": 19
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "reference",
														"name": "Loop",
														"id": 10
													}
												}
											}
										},
										{
											"id": 1020,
											"name": "xMap",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/svg/fs/simplify-paths/simplify-paths.ts",
													"line": 108,
													"character": 25
												}
											],
											"type": {
												"type": "reference",
												"name": "Map",
												"typeArguments": [
													{
														"type": "array",
														"elementType": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													},
													{
														"type": "reflection",
														"declaration": {
															"id": 1021,
															"name": "__type",
															"kind": 65536,
															"kindString": "Type literal",
															"flags": {},
															"children": [
																{
																	"id": 1022,
																	"name": "ps",
																	"kind": 32,
																	"kindString": "Variable",
																	"flags": {},
																	"sources": [
																		{
																			"fileName": "src/svg/fs/simplify-paths/simplify-paths.ts",
																			"line": 94,
																			"character": 33
																		}
																	],
																	"type": {
																		"type": "array",
																		"elementType": {
																			"type": "array",
																			"elementType": {
																				"type": "intrinsic",
																				"name": "number"
																			}
																		}
																	}
																}
															],
															"groups": [
																{
																	"title": "Variables",
																	"kind": 32,
																	"children": [
																		1022
																	]
																}
															]
														}
													}
												]
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1019,
												1020
											]
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/simplify-paths.ts",
							"line": 24,
							"character": 22
						}
					]
				},
				{
					"id": 1023,
					"name": "splitLoopTrees",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1024,
							"name": "splitLoopTrees",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1025,
									"name": "root",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "ILoopTree",
										"id": 139
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"name": "ILoopTree",
									"id": 139
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/fs/simplify-paths/simplify-paths.ts",
							"line": 112,
							"character": 23
						}
					]
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						1014
					]
				},
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1029,
						1026,
						1015,
						1023
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/fs/simplify-paths/simplify-paths.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1819,
			"name": "\"src/svg/path-data-polyfill/arc-to-cubic-curves\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-data-polyfill/arc-to-cubic-curves.ts",
			"children": [
				{
					"id": 1820,
					"name": "arcToCubicCurves",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1821,
							"name": "arcToCubicCurves",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Get an array of corresponding cubic bezier curve parameters for given arc\ncurve paramters."
							},
							"parameters": [
								{
									"id": 1822,
									"name": "x1",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1823,
									"name": "y1",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1824,
									"name": "x2",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1825,
									"name": "y2",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1826,
									"name": "r1",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1827,
									"name": "r2",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1828,
									"name": "angle",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1829,
									"name": "largeArcFlag",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1830,
									"name": "sweepFlag",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1831,
									"name": "_recursive",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-data-polyfill/arc-to-cubic-curves.ts",
							"line": 6,
							"character": 25
						}
					]
				},
				{
					"id": 1840,
					"name": "degToRad",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1841,
							"name": "degToRad",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1842,
									"name": "degrees",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-data-polyfill/arc-to-cubic-curves.ts",
							"line": 172,
							"character": 17
						}
					]
				},
				{
					"id": 1832,
					"name": "rotate",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1833,
							"name": "rotate",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1834,
									"name": "x",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1835,
									"name": "y",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 1836,
									"name": "angleRad",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1837,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {},
									"children": [
										{
											"id": 1838,
											"name": "x",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/svg/path-data-polyfill/arc-to-cubic-curves.ts",
													"line": 164,
													"character": 30
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 1839,
											"name": "y",
											"kind": 32,
											"kindString": "Variable",
											"flags": {},
											"sources": [
												{
													"fileName": "src/svg/path-data-polyfill/arc-to-cubic-curves.ts",
													"line": 164,
													"character": 41
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												1838,
												1839
											]
										}
									],
									"sources": [
										{
											"fileName": "src/svg/path-data-polyfill/arc-to-cubic-curves.ts",
											"line": 164,
											"character": 26
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-data-polyfill/arc-to-cubic-curves.ts",
							"line": 161,
							"character": 15
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1820,
						1840,
						1832
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-data-polyfill/arc-to-cubic-curves.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1603,
			"name": "\"src/svg/path-data-polyfill/parse-number\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-data-polyfill/parse-number.ts",
			"children": [
				{
					"id": 1604,
					"name": "parseNumber",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1605,
							"name": "parseNumber",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1606,
									"name": "source",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "Source",
										"id": 1608
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-data-polyfill/parse-number.ts",
							"line": 9,
							"character": 20
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1604
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-data-polyfill/parse-number.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1656,
			"name": "\"src/svg/path-data-polyfill/parse-path-data-string\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-data-polyfill/parse-path-data-string.ts",
			"children": [
				{
					"id": 1657,
					"name": "parsePathDataString",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1658,
							"name": "parsePathDataString",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1659,
									"name": "string",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reflection",
									"declaration": {
										"id": 1660,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {},
										"children": [
											{
												"id": 1661,
												"name": "type",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/svg/path-data-polyfill/source.ts",
														"line": 25,
														"character": 26
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "string"
												}
											},
											{
												"id": 1662,
												"name": "values",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/svg/path-data-polyfill/source.ts",
														"line": 25,
														"character": 42
													}
												],
												"type": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											}
										],
										"groups": [
											{
												"title": "Variables",
												"kind": 32,
												"children": [
													1661,
													1662
												]
											}
										]
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-data-polyfill/parse-path-data-string.ts",
							"line": 5,
							"character": 28
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1657
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-data-polyfill/parse-path-data-string.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1843,
			"name": "\"src/svg/path-data-polyfill/reduce-path-data\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-data-polyfill/reduce-path-data.ts",
			"children": [
				{
					"id": 1844,
					"name": "reducePathData",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1845,
							"name": "reducePathData",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Takes path data that consists only from absolute commands and returns path\ndata that consists only from \"M\", \"L\", \"C\" and \"Z\" commands."
							},
							"parameters": [
								{
									"id": 1846,
									"name": "pathData",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reflection",
											"declaration": {
												"id": 1847,
												"name": "__type",
												"kind": 65536,
												"kindString": "Type literal",
												"flags": {},
												"children": [
													{
														"id": 1848,
														"name": "type",
														"kind": 32,
														"kindString": "Variable",
														"flags": {},
														"sources": [
															{
																"fileName": "src/svg/path-data-polyfill/reduce-path-data.ts",
																"line": 8,
																"character": 40
															}
														],
														"type": {
															"type": "intrinsic",
															"name": "string"
														}
													},
													{
														"id": 1849,
														"name": "values",
														"kind": 32,
														"kindString": "Variable",
														"flags": {},
														"sources": [
															{
																"fileName": "src/svg/path-data-polyfill/reduce-path-data.ts",
																"line": 8,
																"character": 56
															}
														],
														"type": {
															"type": "array",
															"elementType": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													}
												],
												"groups": [
													{
														"title": "Variables",
														"kind": 32,
														"children": [
															1848,
															1849
														]
													}
												],
												"sources": [
													{
														"fileName": "src/svg/path-data-polyfill/reduce-path-data.ts",
														"line": 8,
														"character": 33
													}
												]
											}
										}
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reflection",
									"declaration": {
										"id": 1850,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {},
										"children": [
											{
												"id": 1851,
												"name": "type",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/svg/path-data-polyfill/reduce-path-data.ts",
														"line": 9,
														"character": 31
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "string"
												}
											},
											{
												"id": 1852,
												"name": "values",
												"kind": 32,
												"kindString": "Variable",
												"flags": {},
												"sources": [
													{
														"fileName": "src/svg/path-data-polyfill/reduce-path-data.ts",
														"line": 9,
														"character": 47
													}
												],
												"type": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											}
										],
										"groups": [
											{
												"title": "Variables",
												"kind": 32,
												"children": [
													1851,
													1852
												]
											}
										]
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-data-polyfill/reduce-path-data.ts",
							"line": 8,
							"character": 23
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1844
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-data-polyfill/reduce-path-data.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1607,
			"name": "\"src/svg/path-data-polyfill/source\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-data-polyfill/source.ts",
			"children": [
				{
					"id": 1608,
					"name": "Source",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 1613,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"signatures": [
								{
									"id": 1614,
									"name": "new Source",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"parameters": [
										{
											"id": 1615,
											"name": "string",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "Source",
										"id": 1608
									}
								}
							],
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 13,
									"character": 25
								}
							]
						},
						{
							"id": 1610,
							"name": "_currentIndex",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 11,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 1611,
							"name": "_endIndex",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 12,
									"character": 13
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 1612,
							"name": "_prevCommand",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 13,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1609,
							"name": "_string",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 10,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1627,
							"name": "_isCurrentSpace",
							"kind": 2048,
							"kindString": "Method",
							"flags": {},
							"signatures": [
								{
									"id": 1628,
									"name": "_isCurrentSpace",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 123,
									"character": 19
								}
							]
						},
						{
							"id": 1633,
							"name": "_parseArcFlag",
							"kind": 2048,
							"kindString": "Method",
							"flags": {},
							"signatures": [
								{
									"id": 1634,
									"name": "_parseArcFlag",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 158,
									"character": 17
								}
							]
						},
						{
							"id": 1629,
							"name": "_skipOptionalSpaces",
							"kind": 2048,
							"kindString": "Method",
							"flags": {},
							"signatures": [
								{
									"id": 1630,
									"name": "_skipOptionalSpaces",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 129,
									"character": 23
								}
							]
						},
						{
							"id": 1631,
							"name": "_skipOptionalSpacesOrDelimiter",
							"kind": 2048,
							"kindString": "Method",
							"flags": {},
							"signatures": [
								{
									"id": 1632,
									"name": "_skipOptionalSpacesOrDelimiter",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 138,
									"character": 34
								}
							]
						},
						{
							"id": 1621,
							"name": "hasMoreData",
							"kind": 2048,
							"kindString": "Method",
							"flags": {},
							"signatures": [
								{
									"id": 1622,
									"name": "hasMoreData",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 101,
									"character": 15
								}
							]
						},
						{
							"id": 1625,
							"name": "initialCommandIsMoveTo",
							"kind": 2048,
							"kindString": "Method",
							"flags": {},
							"signatures": [
								{
									"id": 1626,
									"name": "initialCommandIsMoveTo",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 111,
									"character": 26
								}
							]
						},
						{
							"id": 1616,
							"name": "parseSegment",
							"kind": 2048,
							"kindString": "Method",
							"flags": {},
							"signatures": [
								{
									"id": 1617,
									"name": "parseSegment",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 1618,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {},
											"children": [
												{
													"id": 1619,
													"name": "type",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/svg/path-data-polyfill/source.ts",
															"line": 25,
															"character": 26
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "string"
													}
												},
												{
													"id": 1620,
													"name": "values",
													"kind": 32,
													"kindString": "Variable",
													"flags": {},
													"sources": [
														{
															"fileName": "src/svg/path-data-polyfill/source.ts",
															"line": 25,
															"character": 42
														}
													],
													"type": {
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "number"
														}
													}
												}
											],
											"groups": [
												{
													"title": "Variables",
													"kind": 32,
													"children": [
														1619,
														1620
													]
												}
											],
											"sources": [
												{
													"fileName": "src/svg/path-data-polyfill/source.ts",
													"line": 25,
													"character": 19
												}
											]
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 25,
									"character": 16
								}
							]
						},
						{
							"id": 1623,
							"name": "peekSegmentType",
							"kind": 2048,
							"kindString": "Method",
							"flags": {},
							"signatures": [
								{
									"id": 1624,
									"name": "peekSegmentType",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 105,
									"character": 19
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								1613
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1610,
								1611,
								1612,
								1609
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								1627,
								1633,
								1629,
								1631,
								1621,
								1625,
								1616,
								1623
							]
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-data-polyfill/source.ts",
							"line": 9,
							"character": 12
						}
					]
				},
				{
					"id": 1635,
					"name": "COMMAND_MAP",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isConst": true
					},
					"children": [
						{
							"id": 1641,
							"name": "A",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 5,
									"character": 52
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"A\""
						},
						{
							"id": 1639,
							"name": "C",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 5,
									"character": 34
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"C\""
						},
						{
							"id": 1642,
							"name": "H",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 5,
									"character": 61
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"H\""
						},
						{
							"id": 1638,
							"name": "L",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 5,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"L\""
						},
						{
							"id": 1637,
							"name": "M",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 5,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"M\""
						},
						{
							"id": 1640,
							"name": "Q",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 5,
									"character": 43
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"Q\""
						},
						{
							"id": 1644,
							"name": "S",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 5,
									"character": 79
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"S\""
						},
						{
							"id": 1645,
							"name": "T",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 5,
									"character": 88
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"T\""
						},
						{
							"id": 1643,
							"name": "V",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 5,
									"character": 70
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"V\""
						},
						{
							"id": 1636,
							"name": "Z",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 5,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"Z\""
						},
						{
							"id": 1651,
							"name": "a",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 6,
									"character": 52
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"a\""
						},
						{
							"id": 1649,
							"name": "c",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 6,
									"character": 34
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"c\""
						},
						{
							"id": 1652,
							"name": "h",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 6,
									"character": 61
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"h\""
						},
						{
							"id": 1648,
							"name": "l",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 6,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"l\""
						},
						{
							"id": 1647,
							"name": "m",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 6,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"m\""
						},
						{
							"id": 1650,
							"name": "q",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 6,
									"character": 43
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"q\""
						},
						{
							"id": 1654,
							"name": "s",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 6,
									"character": 79
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"s\""
						},
						{
							"id": 1655,
							"name": "t",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 6,
									"character": 88
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"t\""
						},
						{
							"id": 1653,
							"name": "v",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 6,
									"character": 70
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"v\""
						},
						{
							"id": 1646,
							"name": "z",
							"kind": 32,
							"kindString": "Variable",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-data-polyfill/source.ts",
									"line": 6,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"Z\""
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								1641,
								1639,
								1642,
								1638,
								1637,
								1640,
								1644,
								1645,
								1643,
								1636,
								1651,
								1649,
								1652,
								1648,
								1647,
								1650,
								1654,
								1655,
								1653,
								1646
							]
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-data-polyfill/source.ts",
							"line": 4,
							"character": 17
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						1608
					]
				},
				{
					"title": "Object literals",
					"kind": 2097152,
					"children": [
						1635
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-data-polyfill/source.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1582,
			"name": "\"src/svg/path-segment/a\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-segment/a.ts",
			"children": [
				{
					"id": 1583,
					"name": "a",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1584,
							"name": "a",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1585,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-segment/a.ts",
							"line": 18,
							"character": 10
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1583
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-segment/a.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1554,
			"name": "\"src/svg/path-segment/c\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-segment/c.ts",
			"children": [
				{
					"id": 1555,
					"name": "c",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1556,
							"name": "c",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "C and c: (from www.w3.org)",
								"text": "params: x1 y1 x2 y2 x y\n\nDraws a cubic Bézier curve from the current point to (x,y)\nusing (x1,y1) as the control point at the beginning of the\ncurve and (x2,y2) as the control point at the end of the\ncurve. C (uppercase) indicates that absolute coordinates\nwill follow; c (lowercase) indicates that relative\ncoordinates will follow. Multiple sets of coordinates may\nbe specified to draw a polybézier. At the end of the\ncommand, the new current point becomes the final (x,y)\ncoordinate pair used in the polybézier.\n"
							},
							"parameters": [
								{
									"id": 1557,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-segment/c.ts",
							"line": 20,
							"character": 10
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1555
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-segment/c.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1566,
			"name": "\"src/svg/path-segment/h\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-segment/h.ts",
			"children": [
				{
					"id": 1567,
					"name": "h",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1568,
							"name": "h",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "H and h: (from www.w3.org)",
								"text": "params: x\n\nDraws a horizontal line from the current point (cpx, cpy) to (x, cpy). H\n(uppercase) indicates that absolute coordinates will follow; h (lowercase)\nindicates that relative coordinates will follow. Multiple x values can be\nprovided (although usually this doesn't make sense). At the end of the\ncommand, the new current point becomes (x, cpy) for the final value of x.\n"
							},
							"parameters": [
								{
									"id": 1569,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-segment/h.ts",
							"line": 16,
							"character": 10
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1567
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-segment/h.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1562,
			"name": "\"src/svg/path-segment/l\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-segment/l.ts",
			"children": [
				{
					"id": 1563,
					"name": "l",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1564,
							"name": "l",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "L and l: (from www.w3.org)",
								"text": "params: x y\n\nDraw a line from the current point to the given (x,y) coordinate which\nbecomes the new current point. L (uppercase) indicates that absolute\ncoordinates will follow; l (lowercase) indicates that relative coordinates\nwill follow. A number of coordinates pairs may be specified to draw a\npolyline. At the end of the command, the new current point is set to the\nfinal set of coordinates provided.\n"
							},
							"parameters": [
								{
									"id": 1565,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-segment/l.ts",
							"line": 17,
							"character": 10
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1563
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-segment/l.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1574,
			"name": "\"src/svg/path-segment/q\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-segment/q.ts",
			"children": [
				{
					"id": 1575,
					"name": "q",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1576,
							"name": "q",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Q and q: (from www.w3.org)",
								"text": "params: x1 y1 x y\n\nDraws a quadratic Bézier curve from the current point to (x,y) using (x1,y1)\nas the control point. Q (uppercase) indicates that absolute coordinates will\nfollow; q (lowercase) indicates that relative coordinates will follow.\nMultiple sets of coordinates may be specified to draw a polybézier. At the\nend of the command, the new current point becomes the final (x,y) coordinate\npair used in the polybézier.\n"
							},
							"parameters": [
								{
									"id": 1577,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-segment/q.ts",
							"line": 17,
							"character": 10
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1575
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-segment/q.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1558,
			"name": "\"src/svg/path-segment/s\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-segment/s.ts",
			"children": [
				{
					"id": 1559,
					"name": "s",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1560,
							"name": "s",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "S and s: (from www.w3.org)",
								"text": "params: x2 y2 x y\n\nDraws a cubic Bézier curve from the current point to (x,y). The first control\npoint is assumed to be the reflection of the second control point on the\nprevious command relative to the current point. (If there is no previous\ncommand or if the previous command was not an C, c, S or s, assume the first\ncontrol point is coincident with the current point.) (x2,y2) is the second\ncontrol point (i.e., the control point at the end of the curve). S\n(uppercase) indicates that absolute coordinates will follow; s (lowercase)\nindicates that relative coordinates will follow. Multiple sets of coordinates\nmay be specified to draw a polybézier. At the end of the command, the new\ncurrent point becomes the final (x,y) coordinate pair used in the polybézier.\n"
							},
							"parameters": [
								{
									"id": 1561,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-segment/s.ts",
							"line": 21,
							"character": 10
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1559
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-segment/s.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1578,
			"name": "\"src/svg/path-segment/t\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-segment/t.ts",
			"children": [
				{
					"id": 1579,
					"name": "t",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1580,
							"name": "t",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "T and t: (from www.w3.org)",
								"text": "params: x y\n\nDraws a quadratic Bézier curve from the current point to (x,y). The control\npoint is assumed to be the reflection of the control point on the previous\ncommand relative to the current point. (If there is no previous command or if\nthe previous command was not a Q, q, T or t, assume the control point is\ncoincident with the current point.) T (uppercase) indicates that absolute\ncoordinates will follow; t (lowercase) indicates that relative coordinates\nwill follow. At the end of the command, the new current point becomes the\nfinal (x,y) coordinate pair used in the polybézier.\n"
							},
							"parameters": [
								{
									"id": 1581,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-segment/t.ts",
							"line": 19,
							"character": 10
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1579
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-segment/t.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1570,
			"name": "\"src/svg/path-segment/v\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-segment/v.ts",
			"children": [
				{
					"id": 1571,
					"name": "v",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1572,
							"name": "v",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"parameters": [
								{
									"id": 1573,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-segment/v.ts",
							"line": 16,
							"character": 10
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1571
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-segment/v.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1550,
			"name": "\"src/svg/path-segment/z\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-segment/z.ts",
			"children": [
				{
					"id": 1551,
					"name": "z",
					"kind": 64,
					"kindString": "Function",
					"flags": {},
					"signatures": [
						{
							"id": 1552,
							"name": "z",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {},
							"comment": {
								"shortText": "Z and z: (from www.w3.org)",
								"text": "params: (none)\n\nClose the current subpath by drawing a straight line from the current point\nto current subpath's initial point. Since the Z and z commands take no\nparameters, they have an identical effect.\n"
							},
							"parameters": [
								{
									"id": 1553,
									"name": "s",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-segment/z.ts",
							"line": 14,
							"character": 10
						}
					]
				}
			],
			"groups": [
				{
					"title": "Functions",
					"kind": 64,
					"children": [
						1551
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-segment/z.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1522,
			"name": "\"src/svg/path-state\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/svg/path-state.ts",
			"children": [
				{
					"id": 1523,
					"name": "PathState",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"children": [
						{
							"id": 1529,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"signatures": [
								{
									"id": 1530,
									"name": "new PathState",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"type": {
										"type": "reference",
										"name": "PathState",
										"id": 1523
									}
								}
							],
							"sources": [
								{
									"fileName": "src/svg/path-state.ts",
									"line": 9,
									"character": 55
								}
							]
						},
						{
							"id": 1524,
							"name": "initialPoint",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-state.ts",
									"line": 3,
									"character": 16
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							},
							"defaultValue": " undefined"
						},
						{
							"id": 1525,
							"name": "p",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-state.ts",
									"line": 4,
									"character": 5
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						},
						{
							"id": 1527,
							"name": "prev2ndCubicControlPoint",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-state.ts",
									"line": 8,
									"character": 28
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							},
							"defaultValue": " undefined"
						},
						{
							"id": 1528,
							"name": "prev2ndQuadraticControlPoint",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-state.ts",
									"line": 9,
									"character": 32
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							},
							"defaultValue": " undefined"
						},
						{
							"id": 1526,
							"name": "vals",
							"kind": 1024,
							"kindString": "Property",
							"flags": {},
							"sources": [
								{
									"fileName": "src/svg/path-state.ts",
									"line": 5,
									"character": 8
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "number"
								}
							}
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								1529
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1524,
								1525,
								1527,
								1528,
								1526
							]
						}
					],
					"sources": [
						{
							"fileName": "src/svg/path-state.ts",
							"line": 2,
							"character": 15
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						1523
					]
				}
			],
			"sources": [
				{
					"fileName": "src/svg/path-state.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 146,
			"name": "\"src/x\"",
			"kind": 1,
			"kindString": "External module",
			"flags": {
				"isExported": true
			},
			"originalName": "C:/Projects/mat/src/x.ts",
			"children": [
				{
					"id": 147,
					"name": "X",
					"kind": 128,
					"kindString": "Class",
					"flags": {},
					"comment": {
						"shortText": "Representation of one side of an intersection. The opposite side is at\nX.opposite."
					},
					"children": [
						{
							"id": 148,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {},
							"signatures": [
								{
									"id": 154,
									"name": "new X",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {},
									"parameters": [
										{
											"id": 155,
											"name": "pos",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "reference",
												"name": "PointOnShape",
												"id": 83
											}
										},
										{
											"id": 156,
											"name": "isDummy",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											},
											"defaultValue": "false"
										},
										{
											"id": 157,
											"name": "opposite",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isOptional": true
											},
											"type": {
												"type": "reference",
												"name": "X",
												"id": 147
											}
										},
										{
											"id": 158,
											"name": "loopTree",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isOptional": true
											},
											"type": {
												"type": "reference",
												"name": "ILoopTree",
												"id": 139
											}
										},
										{
											"id": 159,
											"name": "outPs",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isOptional": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "intrinsic",
														"name": "number"
													}
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "X",
										"id": 147
									}
								}
							],
							"sources": [
								{
									"fileName": "src/x.ts",
									"line": 9,
									"character": 9
								}
							]
						},
						{
							"id": 150,
							"name": "isDummy",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"sources": [
								{
									"fileName": "src/x.ts",
									"line": 16,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 152,
							"name": "loopTree",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/x.ts",
									"line": 19,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"name": "ILoopTree",
								"id": 139
							}
						},
						{
							"id": 151,
							"name": "opposite",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "The opposite side of the intersection"
							},
							"sources": [
								{
									"fileName": "src/x.ts",
									"line": 18,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"name": "X",
								"id": 147
							}
						},
						{
							"id": 153,
							"name": "outPs",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/x.ts",
									"line": 21,
									"character": 20
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							}
						},
						{
							"id": 149,
							"name": "pos",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isConstructorProperty": true,
								"isPublic": true
							},
							"comment": {
								"shortText": "The PointOnShape on the curve of the intersection. This side of the\nintersection is represented by the incoming part of this curve."
							},
							"sources": [
								{
									"fileName": "src/x.ts",
									"line": 15,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"name": "PointOnShape",
								"id": 83
							}
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								148
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								150,
								152,
								151,
								153,
								149
							]
						}
					],
					"sources": [
						{
							"fileName": "src/x.ts",
							"line": 9,
							"character": 7
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						147
					]
				}
			],
			"sources": [
				{
					"fileName": "src/x.ts",
					"line": 1,
					"character": 0
				}
			]
		}
	],
	"groups": [
		{
			"title": "External modules",
			"kind": 1,
			"children": [
				1672,
				226,
				890,
				63,
				160,
				1673,
				797,
				29,
				694,
				703,
				420,
				460,
				535,
				523,
				557,
				485,
				546,
				530,
				507,
				512,
				467,
				501,
				517,
				454,
				422,
				551,
				479,
				439,
				473,
				433,
				446,
				176,
				364,
				274,
				345,
				234,
				9,
				861,
				1150,
				1513,
				1065,
				1350,
				1060,
				1043,
				1054,
				1033,
				1363,
				1076,
				1689,
				1467,
				272,
				1301,
				1404,
				1169,
				1223,
				1274,
				1214,
				1315,
				1327,
				1375,
				1333,
				1339,
				1308,
				1098,
				1087,
				1133,
				1108,
				1093,
				1417,
				1432,
				1180,
				1444,
				1450,
				1236,
				1278,
				1722,
				1715,
				1038,
				1049,
				1724,
				1733,
				1286,
				1262,
				1244,
				1123,
				1240,
				1695,
				1699,
				1493,
				1471,
				1143,
				429,
				1158,
				1703,
				1291,
				1295,
				1502,
				1753,
				1738,
				1763,
				1497,
				1475,
				1774,
				1748,
				1507,
				1782,
				491,
				1484,
				1479,
				82,
				1667,
				1790,
				1537,
				1586,
				1708,
				1282,
				869,
				1439,
				1663,
				1797,
				984,
				1531,
				1801,
				962,
				5,
				1542,
				1,
				1807,
				948,
				977,
				967,
				916,
				973,
				937,
				1008,
				138,
				993,
				1811,
				875,
				1013,
				1819,
				1603,
				1656,
				1843,
				1607,
				1582,
				1554,
				1566,
				1562,
				1574,
				1558,
				1578,
				1570,
				1550,
				1522,
				146
			]
		}
	]
}