awv3
Version:
⚡ AWV3 embedded CAD
1,275 lines (779 loc) • 67.2 kB
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<base data-ice="baseUrl" href="../../../../">
<title data-ice="title">SketchMatcher | API Document</title>
<link type="text/css" rel="stylesheet" href="css/style.css">
<link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
<script src="script/prettify/prettify.js"></script>
<script src="script/manual.js"></script>
</head>
<body class="layout-container" data-ice="rootContainer">
<header>
<a href="./">Home</a>
<a href="identifiers.html">Reference</a>
<a href="source.html">Source</a>
<a data-ice="repoURL" href="https://github.com/awv-informatik/awv3-next" class="repo-url-github">Repository</a>
<div class="search-box">
<span>
<img src="./image/search.png">
<span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
</span>
<ul class="search-result"></ul>
</div>
</header>
<nav class="navigation" data-ice="nav"><div>
<ul>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">animation</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-linear">linear</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-back">back</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-bounce">bounce</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-circular">circular</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-cubic">cubic</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-elastic">elastic</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-exponential">exponential</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-quadratic">quadratic</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-quartic">quartic</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-quintic">quintic</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-sinusoidal">sinusoidal</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">communication</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/communication/analyzer.js~analyzer.html">analyzer</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/communication/base.js~base.html">base</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/communication/rest.js~Rest.html">Rest</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/communication/signalr.js~SignalR.html">SignalR</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/communication/socketio.js~SocketIO.html">SocketIO</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-signalrhub">signalrhub</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">controls</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/controls/orbit.js~Orbit.html">Orbit</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">core</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/core/canvas.js~Canvas.html">Canvas</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/core/defaults.js~Defaults.html">Defaults</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/core/events.js~Events.html">Events</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/core/helpers.js~Performance.html">Performance</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-halt">halt</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-log">log</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queryDom">queryDom</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-setPrefixedValue">setPrefixedValue</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-url">url</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-lastCreated">lastCreated</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-version">version</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-instance">instance</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-Timestamp">Timestamp</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">misc</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/misc/materialstore.js~MaterialStore.html">MaterialStore</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/misc/stats.js~Stats.html">Stats</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">plugins/dimension/graphics</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/dimension/graphics/angular.js~Angular.html">Angular</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/dimension/graphics/base.js~BaseGraphics.html">BaseGraphics</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/dimension/graphics/diametral.js~Diametral.html">Diametral</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/dimension/graphics/linear.js~Linear.html">Linear</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/dimension/graphics/radial.js~Radial.html">Radial</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-Graphics">Graphics</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">plugins/properties</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/properties/index.js~Properties.html">Properties</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">plugins/sketcher</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/ccfuturef.js~Ccfuturef.html">Ccfuturef</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/controls.js~filletHandler.html">filletHandler</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/snapper.js~Snapper.html">Snapper</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html">SketchMatcher</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketcherAutomation.html">SketcherAutomation</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-observeConsole">observeConsole</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-drawArcBy_Angle_M">drawArcBy_Angle_M</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-drawArcBy_S_E_CPh">drawArcBy_S_E_CPh</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-drawArcBy_S_E_Ch">drawArcBy_S_E_Ch</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-drawArcBy_S_E_M">drawArcBy_S_E_M</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-drawArcBy_S_T_E">drawArcBy_S_T_E</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-drawCurveBy_S_Eh_Restrictions">drawCurveBy_S_Eh_Restrictions</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-drawLineBy_Angle_M">drawLineBy_Angle_M</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getArcAngles">getArcAngles</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getTangent">getTangent</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-intersectLines">intersectLines</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-move">move</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getSnappedPointWrap">getSnappedPointWrap</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-runAllTests">runAllTests</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-runPerfoTest">runPerfoTest</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-calcSketchPos">calcSketchPos</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">plugins/sketcher/command</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/command/multirunner.js~MultiRunner.html">MultiRunner</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-commandRunner">commandRunner</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-Assign">Assign</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-Member">Member</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-Return">Return</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-Sequence">Sequence</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-Variable">Variable</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-AddPoint">AddPoint</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">plugins/sketcher/command/ast</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/command/ast/ast.js~Ast.html">Ast</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/command/ast/expr.js~Expr.html">Expr</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/command/ast/stmt.js~Stmt.html">Stmt</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">plugins/sketcher/constraint</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/constraint/adder.js~ConstraintAdder.html">ConstraintAdder</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/constraint/adder.js~DSU.html">DSU</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-Constraint">Constraint</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-adapt">adapt</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-angle">angle</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-angleox">angleox</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-colinear">colinear</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-concentric">concentric</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-diameter">diameter</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-distance">distance</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-equalDistance">equalDistance</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-equalRadius">equalRadius</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-fixation">fixation</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-horizontalDistance">horizontalDistance</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-horizontality">horizontality</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-incidence">incidence</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-midpoint">midpoint</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-parallelity">parallelity</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-perpendicularity">perpendicularity</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-radius">radius</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-symmetric">symmetric</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-tangency">tangency</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-verticalDistance">verticalDistance</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-verticality">verticality</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">plugins/sketcher/graphics</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/graphics/arc.js~Arc.html">Arc</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/graphics/base.js~BaseGraphics.html">BaseGraphics</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/graphics/line.js~Line.html">Line</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/graphics/point.js~Point.html">Point</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/graphics/sketch.js~Sketch.html">Sketch</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-Graphics">Graphics</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">plugins/sketcher/handlers</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/handlers/angle.js~AngleHandler.html">AngleHandler</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/handlers/base.js~BaseHandler.html">BaseHandler</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/handlers/drag.js~DragHandler.html">DragHandler</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/handlers/hover.js~HoverHandler.html">HoverHandler</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/sketcher/handlers/polyline.js~PolylineHandler.html">PolylineHandler</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-Handler">Handler</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">session/selection</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/session/selection/objectselector.js~ObjectSelector.html">ObjectSelector</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">session/store</div><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-reducer">reducer</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">three</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/three/infiniteplane.js~InfinitePlane.html">InfinitePlane</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/three/raycaster.js~Raycaster.html">Raycaster</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/three/region.js~Region.html">Region</a></span></span></li>
</ul>
</div>
</nav>
<div class="content" data-ice="content"><div class="header-notice">
<div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import {SketchMatcher} from '<span><a href="file/src/plugins/sketcher/unittests.js.html#lineNumber519">awv3/src/plugins/sketcher/unittests.js</a></span>'</code></pre></div>
<span data-ice="access">public</span>
<span data-ice="kind">class</span>
<span data-ice="source">| <span><a href="file/src/plugins/sketcher/unittests.js.html#lineNumber519">source</a></span></span>
</div>
<div class="self-detail detail">
<h1 data-ice="name">SketchMatcher</h1>
<div class="description" data-ice="description"><p>Sample format for patterns array:
var patterns = [
{name: "pA", type: "point", position: [10, 20]}, //point with precise location
{name: "pB", type: "point"}, //point (location may be arbitrary)
{name: "lCD", type: "line", ends: [[0, 0], [50, 0]]}, //line with precise location of endpoints
{name: "a1", type: "arc", ends: [[0, 0], [50, 0]]}, //arc with precise location of endpoints (arbitrary center)
{type: "arc", ends: [[30, 0], [50, 0]], middle: [40, 10]}, //unnamed curve with precise geometric state (endpoints + middle point)
{type: "line", ends: [[0, -10], [50, -10]], undir: true}, //unnamed line with given endpoints (maybe in reversed order)
{name: "lST", type: "line", middle: [50, 50]}, //line with prescribed middle point
{type: "fixation", args: "pA"}, //fixation constraint on point named "pA"
{type: "incidence", args: ["lCD", "lST"]}, //lines "lCD" and "lST" have collinearity constraint on them
{type: "distance", args: [1, "lCD"], value: 50}, //distance constraint from "pB" (second pattern in array) to "lCD" with value = 50
{type: "incidence", args: ["lST.e", "3.c"]}, //'c'enter of arc a1 (by index 3) is coincident with 'e'ndpoint of line lST
];</p>
<p>General plan of matching things:</p>
<ol>
<li>Named objects are matched to named patterns.
This is the preferred way of matching things.
You can give (test) names in unit tests by writing:
{name: "...", ...}, //pattern with name
setTestName(obj, "..."); //sketch object got a name<pre><code><code class="source-code prettyprint"> //note: there are helpers in SketcherAutomation</code>
</code></pre>Names must be unique among objects and unique among patterns.
Any object or pattern with name must have a match of same name (otherwise error is triggered).</li>
<li>Unnamed patterns of geometric objects are matched to unnamed sketch objects.
Each pattern is compared to all yet unmatched sketch objects.
If any compatible sketch object is found, it is considered a match.
Patterns are checked in order of definition, but order of objects on sketch may change.
That's why this method is not very reliable.</li>
<li>Unnamed patterns of constraints are matched to unnamed constraints on sketch.
Commutativity of many constraint types is taken into account.
This is usually a good way of matching constraints.</li>
</ol>
<p>After all the matching is complete, we check that for each matching pair all the additional info is compatible (e.g. positions, etc).
Finally, you can get the following info:</p>
<ol>
<li>List of all unmatched objects.</li>
<li>List of all unmatched patterns.
Generally, these lists should be empty for a fully specified sketch description.
But you can e.g. avoid describing constraints and check that list 1 contains only constraints.</li>
</ol>
</div>
</div>
<div data-ice="staticMethodSummary"><h2>Static Method Summary</h2><table class="summary" data-ice="summary">
<thead><tr><td data-ice="title" colspan="3">Static Public Methods</td></tr></thead>
<tbody>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#static-method-run">run</a></span></span><span data-ice="signature">(sketch: <span>*</span>, patterns: <span>*</span>, settings: <span>*</span>): <span>*</span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
<div data-ice="constructorSummary"><h2>Constructor Summary</h2><table class="summary" data-ice="summary">
<thead><tr><td data-ice="title" colspan="3">Public Constructor</td></tr></thead>
<tbody>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-constructor-constructor">constructor</a></span></span><span data-ice="signature">(sketch: <span>*</span>, patterns: <span>*</span>)</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
<div data-ice="memberSummary"><h2>Member Summary</h2><table class="summary" data-ice="summary">
<thead><tr><td data-ice="title" colspan="3">Public Members</td></tr></thead>
<tbody>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-member-constraintTypes">constraintTypes</a></span></span><span data-ice="signature">: <span>*</span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-member-geometryTypes">geometryTypes</a></span></span><span data-ice="signature">: <span><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></span><span>[]</span></span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-member-linearTolerance">linearTolerance</a></span></span><span data-ice="signature">: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-member-objectByName">objectByName</a></span></span><span data-ice="signature">: {}</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-member-objects">objects</a></span></span><span data-ice="signature">: <span><span>*</span><span>[]</span></span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-member-patternByName">patternByName</a></span></span><span data-ice="signature">: {}</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-member-patterns">patterns</a></span></span><span data-ice="signature">: <span>*</span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-member-sketch">sketch</a></span></span><span data-ice="signature">: <span>*</span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-member-unnamedPatterns">unnamedPatterns</a></span></span><span data-ice="signature">: <span><span>*</span><span>[]</span></span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
<div data-ice="methodSummary"><h2>Method Summary</h2><table class="summary" data-ice="summary">
<thead><tr><td data-ice="title" colspan="3">Public Methods</td></tr></thead>
<tbody>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-checkMatches">checkMatches</a></span></span><span data-ice="signature">()</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-compute">compute</a></span></span><span data-ice="signature">()</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-getObjectType">getObjectType</a></span></span><span data-ice="signature">(obj: <span>*</span>): <span>*</span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-getUnmatchedObjects">getUnmatchedObjects</a></span></span><span data-ice="signature">(): <span>*</span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-getUnmatchedPatterns">getUnmatchedPatterns</a></span></span><span data-ice="signature">(): <span>*</span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-isCompatible">isCompatible</a></span></span><span data-ice="signature">(obj: <span>*</span>, pat: <span>*</span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-isPositionSame">isPositionSame</a></span></span><span data-ice="signature">(pos: <span>*</span>, expect: <span>*</span>): <span>*</span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-matchNamed">matchNamed</a></span></span><span data-ice="signature">()</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-matchUnnamed">matchUnnamed</a></span></span><span data-ice="signature">(typesList: <span>*</span>)</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-preprocessPatterns">preprocessPatterns</a></span></span><span data-ice="signature">()</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-preprocessSketch">preprocessSketch</a></span></span><span data-ice="signature">()</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-resolveRef">resolveRef</a></span></span><span data-ice="signature">(arg: <span>*</span>, relaxed: <span>*</span>): <span>*</span></span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-unmatchedNamedObject">unmatchedNamedObject</a></span></span><span data-ice="signature">(obj: <span>*</span>)</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/src/plugins/sketcher/unittests.js~SketchMatcher.html#instance-method-unmatchedNamedPattern">unmatchedNamedPattern</a></span></span><span data-ice="signature">(pat: <span>*</span>)</span>
</p>
</div>
<div>
</div>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
<div data-ice="staticMethodDetails"><h2 data-ice="title">Static Public Methods</h2>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="static-method-run">
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span data-ice="name">run</span><span data-ice="signature">(sketch: <span>*</span>, patterns: <span>*</span>, settings: <span>*</span>): <span>*</span></span>
<span class="right-info">
<span data-ice="source"><span><a href="file/src/plugins/sketcher/unittests.js.html#lineNumber791">source</a></span></span>
</span>
</h3>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">sketch</td>
<td data-ice="type"><span>*</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"></td>
</tr>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">patterns</td>
<td data-ice="type"><span>*</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"></td>
</tr>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">settings</td>
<td data-ice="type"><span>*</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="return-params" data-ice="returnParams">
<h4>Return:</h4>
<table>
<tbody>
<tr>
<td class="return-type" data-ice="returnType"><span>*</span></td>
</tr>
</tbody>
</table>
<div data-ice="returnProperties">
</div>
</div>
</div>
</div>
<div data-ice="constructorDetails"><h2 data-ice="title">Public Constructors</h2>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="instance-constructor-constructor">
<span class="access" data-ice="access">public</span>
<span data-ice="name">constructor</span><span data-ice="signature">(sketch: <span>*</span>, patterns: <span>*</span>)</span>
<span class="right-info">
<span data-ice="source"><span><a href="file/src/plugins/sketcher/unittests.js.html#lineNumber520">source</a></span></span>
</span>
</h3>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">sketch</td>
<td data-ice="type"><span>*</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"></td>
</tr>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">patterns</td>
<td data-ice="type"><span>*</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div data-ice="memberDetails"><h2 data-ice="title">Public Members</h2>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="instance-member-constraintTypes">
<span class="access" data-ice="access">public</span>
<span data-ice="name">constraintTypes</span><span data-ice="signature">: <span>*</span></span>
<span class="right-info">
<span data-ice="source"><span><a href="file/src/plugins/sketcher/unittests.js.html#lineNumber537">source</a></span></span>
</span>
</h3>
<div data-ice="properties">
</div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="instance-member-geometryTypes">
<span class="access" data-ice="access">public</span>
<span data-ice="name">geometryTypes</span><span data-ice="signature">: <span><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></span><span>[]</span></span></span>
<span class="right-info">
<span data-ice="source"><span><a href="file/src/plugins/sketcher/unittests.js.html#lineNumber536">source</a></span></span>
</span>
</h3>
<div data-ice="properties">
</div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="instance-member-linearTolerance">
<span class="access" data-ice="access">public</span>
<span data-ice="name">linearTolerance</span><span data-ice="signature">: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></span>
<span class="right-info">
<span data-ice="source"><span><a href="file/src/plugins/sketcher/unittests.js.html#lineNumber534">source</a></span></span>
</span>
</h3>
<div data-ice="properties">
</div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="instance-member-objectByName">
<span class="access" data-ice="access">public</span>
<span data-ice="name">objectByName</span><span data-ice="signature">: {}</span>
<span class="right-info">
<span data-ice="source"><span><a href="file/src/plugins/sketcher/unittests.js.html#lineNumber532">source</a></span></span>
</span>
</h3>
<div data-ice="properties">
</div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="instance-member-objects">
<span class="access" data-ice="access">public</span>
<span data-ice="name">objects</span><span data-ice="signature">: <span><span>*</sp