jsxgraph 1.3.1 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/distrib/README.md +2 -2
- package/distrib/geogebra.min.js +3 -3
- package/distrib/geonext.min.js +3 -3
- package/distrib/index.d.ts +4964 -4627
- package/distrib/intergeo.min.js +3 -3
- package/distrib/jsxgraph.css +10 -15
- package/distrib/jsxgraphcore.js +9 -25
- package/distrib/jsxgraphsrc.js +28437 -25331
- package/distrib/sketch.min.js +3 -3
- package/package.json +11 -22
- package/src/base/board.js +555 -427
- package/src/base/chart.js +1 -1
- package/src/base/circle.js +23 -1
- package/src/base/composition.js +1 -1
- package/src/base/constants.js +33 -11
- package/src/base/coords.js +4 -4
- package/src/base/coordselement.js +47 -20
- package/src/base/curve.js +308 -117
- package/src/base/element.js +80 -51
- package/src/base/foreignobject.js +463 -0
- package/src/base/group.js +2 -2
- package/src/base/image.js +12 -15
- package/src/base/line.js +1 -1
- package/src/base/point.js +20 -41
- package/src/base/polygon.js +75 -18
- package/src/base/text.js +116 -63
- package/src/base/ticks.js +35 -12
- package/src/base/transformation.js +1 -1
- package/src/base/turtle.js +1 -1
- package/src/element/arc.js +1 -1
- package/src/element/button.js +29 -2
- package/src/element/checkbox.js +31 -1
- package/src/element/comb.js +5 -2
- package/src/element/composition.js +27 -6
- package/src/element/conic.js +46 -5
- package/src/element/input.js +32 -1
- package/src/element/locus.js +2 -2
- package/src/element/measure.js +9 -4
- package/src/element/sector.js +46 -12
- package/src/element/slider.js +17 -12
- package/src/element/slopetriangle.js +1 -1
- package/src/jsxgraph.js +28 -9
- package/src/jxg.js +4 -3
- package/src/loadjsxgraph.js +3 -2
- package/src/math/bst.js +1 -1
- package/src/math/clip.js +550 -345
- package/src/math/complex.js +1 -1
- package/src/math/extrapolate.js +1 -1
- package/src/math/geometry.js +109 -128
- package/src/math/ia.js +290 -21
- package/src/math/math.js +30 -1
- package/src/math/metapost.js +1 -1
- package/src/math/nlp.js +25 -5
- package/src/math/numerics.js +183 -4
- package/src/math/plot.js +4 -4
- package/src/math/poly.js +1 -1
- package/src/math/probfuncs.js +2 -1
- package/src/math/qdt.js +68 -62
- package/src/math/statistics.js +58 -7
- package/src/math/symbolic.js +1 -1
- package/src/options.js +393 -115
- package/src/parser/ca.js +1297 -1291
- package/src/parser/datasource.js +1 -1
- package/src/parser/geonext.js +6 -6
- package/src/parser/jessiecode.js +378 -79
- package/src/parser/jessiescript.js +1 -1
- package/src/reader/cinderella.js +1 -1
- package/src/reader/file.js +1 -1
- package/src/reader/geogebra.js +1 -1
- package/src/reader/geonext.js +1 -1
- package/src/reader/graph.js +1 -1
- package/src/reader/intergeo.js +1 -1
- package/src/reader/sketch.js +25 -17
- package/src/renderer/abstract.js +25 -7
- package/src/renderer/canvas.js +20 -15
- package/src/renderer/no.js +11 -4
- package/src/renderer/svg.js +68 -49
- package/src/renderer/vml.js +36 -32
- package/src/server/server.js +1 -1
- package/src/utils/base64.js +2 -2
- package/src/utils/color.js +147 -3
- package/src/utils/dump.js +20 -14
- package/src/utils/env.js +26 -62
- package/src/utils/event.js +1 -1
- package/src/utils/expect.js +1 -1
- package/src/utils/type.js +30 -19
- package/src/utils/xml.js +1 -1
- package/src/utils/zip.js +1 -1
- package/CHANGELOG.md +0 -1305
package/src/reader/cinderella.js
CHANGED
package/src/reader/file.js
CHANGED
package/src/reader/geogebra.js
CHANGED
package/src/reader/geonext.js
CHANGED
package/src/reader/graph.js
CHANGED
package/src/reader/intergeo.js
CHANGED
package/src/reader/sketch.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Copyright 2008-
|
|
2
|
+
Copyright 2008-2022
|
|
3
3
|
Matthias Ehmann,
|
|
4
4
|
Michael Gerhaeuser,
|
|
5
5
|
Carsten Miller,
|
|
@@ -45,14 +45,14 @@ Copyright 2008-2021
|
|
|
45
45
|
utils/type
|
|
46
46
|
*/
|
|
47
47
|
|
|
48
|
-
(function
|
|
48
|
+
(function() {
|
|
49
49
|
|
|
50
50
|
'use strict';
|
|
51
51
|
|
|
52
52
|
// this is a small workaround to adapt the SketchReader to our new file API
|
|
53
53
|
// we don't have to change anything in sketchometry.
|
|
54
|
-
JXG.SketchReader = function
|
|
55
|
-
this.read = function
|
|
54
|
+
JXG.SketchReader = function(board, str) {
|
|
55
|
+
this.read = function() {
|
|
56
56
|
var i, t, arr, unzipped, meta, constr;
|
|
57
57
|
|
|
58
58
|
unzipped = new JXG.Util.Unzip(JXG.Util.Base64.decodeAsArray(str)).unzip();
|
|
@@ -101,11 +101,11 @@ Copyright 2008-2021
|
|
|
101
101
|
|
|
102
102
|
// No prototype here
|
|
103
103
|
JXG.extend(JXG.SketchReader, /** @lends JXG.SketchReader */ {
|
|
104
|
-
generateJCodeMeta: function
|
|
104
|
+
generateJCodeMeta: function() {
|
|
105
105
|
return ['', '', '', ''];
|
|
106
106
|
},
|
|
107
107
|
|
|
108
|
-
id: function
|
|
108
|
+
id: function() {
|
|
109
109
|
return JXG.Util.genUUID();
|
|
110
110
|
},
|
|
111
111
|
|
|
@@ -129,7 +129,7 @@ Copyright 2008-2021
|
|
|
129
129
|
* @param {Array} step_log The complete step log
|
|
130
130
|
* @returns {Array} JessieCode to set and reset the step.
|
|
131
131
|
*/
|
|
132
|
-
generateJCode: function
|
|
132
|
+
generateJCode: function(step, board, step_log) {
|
|
133
133
|
var i, j, k, sub_id, str, str1, str2, objects, pid1, pid2, pid3,
|
|
134
134
|
xstart, ystart, el, arr, step2, options, assign, attrid,
|
|
135
135
|
le, x, y,
|
|
@@ -144,7 +144,7 @@ Copyright 2008-2021
|
|
|
144
144
|
|
|
145
145
|
// print number -- helper to prepare numbers
|
|
146
146
|
// for printing, e.g. trim them with toFixed()
|
|
147
|
-
pn = function
|
|
147
|
+
pn = function(v) {
|
|
148
148
|
if (options.toFixed > 0) {
|
|
149
149
|
v = parseFloat(v);
|
|
150
150
|
return JXG.toFixed(v, options.toFixed);
|
|
@@ -153,7 +153,7 @@ Copyright 2008-2021
|
|
|
153
153
|
return v;
|
|
154
154
|
},
|
|
155
155
|
|
|
156
|
-
getObject = function
|
|
156
|
+
getObject = function(v) {
|
|
157
157
|
var o;
|
|
158
158
|
|
|
159
159
|
if (options.useSymbols) {
|
|
@@ -1125,13 +1125,17 @@ Copyright 2008-2021
|
|
|
1125
1125
|
break;
|
|
1126
1126
|
|
|
1127
1127
|
case JXG.GENTYPE_TEXT:
|
|
1128
|
+
if (step.args.str.substr(0, 1) !== '\'' && step.args.str.substr(0, 1) !== '"' && step.args.str.substr(0, 8) !== 'function') {
|
|
1129
|
+
step.args.str = '\'' + step.args.str + '\'';
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1128
1132
|
set_str = assign + 'text(' + pn(step.args.x) + ', ' + pn(step.args.y) + ', ' + step.args.str + ') <<';
|
|
1129
1133
|
set_str += attrid + 'name: \'\'';
|
|
1130
1134
|
if (typeof step.args.anchor != 'undefined') {
|
|
1131
1135
|
set_str += ', anchor: ' + step.args.anchor;
|
|
1132
1136
|
}
|
|
1133
|
-
set_str += '>>; '
|
|
1134
|
-
set_str += '); ';
|
|
1137
|
+
set_str += '>>; ';
|
|
1138
|
+
// set_str += step.dest_id + '.setText(' + step.args.str + '); ';
|
|
1135
1139
|
reset_str = 'remove(' + step.dest_id + '); ';
|
|
1136
1140
|
break;
|
|
1137
1141
|
|
|
@@ -1314,7 +1318,11 @@ Copyright 2008-2021
|
|
|
1314
1318
|
set_str += 'dot: <<priv:true, id: \'' + step.dest_sub_ids[0] + '\', name: \'\'>>, ';
|
|
1315
1319
|
set_str += attrid + ' fillOpacity: ' + JXG.Options.opacityLevel;
|
|
1316
1320
|
if (JXG.exists(step.args) && JXG.exists(step.args.radius))
|
|
1317
|
-
|
|
1321
|
+
if (JXG.isNumber(step.args.radius)) {
|
|
1322
|
+
set_str += ', radius: ' + step.args.radius;
|
|
1323
|
+
} else {
|
|
1324
|
+
set_str += ', radius: \'' + step.args.radius + '\'';
|
|
1325
|
+
}
|
|
1318
1326
|
set_str += '>>; ';
|
|
1319
1327
|
reset_str = 'remove(' + step.dest_id + '); ';
|
|
1320
1328
|
reset_str += 'remove(' + step.dest_sub_ids[0] + '); ';
|
|
@@ -1368,10 +1376,10 @@ Copyright 2008-2021
|
|
|
1368
1376
|
|
|
1369
1377
|
set_str = assign + step.args.plot_type + '(' + step.args.func;
|
|
1370
1378
|
|
|
1371
|
-
if (isNaN(step.args.a) || step.args.a === null || step.args.a === undefined)
|
|
1372
|
-
step.args.a = '
|
|
1373
|
-
if (isNaN(step.args.b) || step.args.b === null || step.args.b === undefined)
|
|
1374
|
-
step.args.b = '
|
|
1379
|
+
if (isNaN(step.args.a) || step.args.a === null || step.args.a === undefined|| step.args.a ==='-infinity')
|
|
1380
|
+
step.args.a = '';
|
|
1381
|
+
if (isNaN(step.args.b) || step.args.b === null || step.args.b === undefined|| step.args.b ==='infinity')
|
|
1382
|
+
step.args.b = '';
|
|
1375
1383
|
|
|
1376
1384
|
if (step.args.a != step.args.b)
|
|
1377
1385
|
set_str += ', ' + step.args.a + ', ' + step.args.b;
|
|
@@ -1714,7 +1722,7 @@ Copyright 2008-2021
|
|
|
1714
1722
|
return [set_str, ctx_set_str, reset_str, ctx_reset_str];
|
|
1715
1723
|
},
|
|
1716
1724
|
|
|
1717
|
-
replaceStepDestIds: function
|
|
1725
|
+
replaceStepDestIds: function(step, id_map) {
|
|
1718
1726
|
var i, j, copy_ids = [];
|
|
1719
1727
|
|
|
1720
1728
|
for (i = 0; i < id_map.length; i++) {
|
package/src/renderer/abstract.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Copyright 2008-
|
|
2
|
+
Copyright 2008-2022
|
|
3
3
|
Matthias Ehmann,
|
|
4
4
|
Michael Gerhaeuser,
|
|
5
5
|
Carsten Miller,
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
newcap: AsciiMathMl exposes non-constructor functions beginning with upper case letters
|
|
39
39
|
*/
|
|
40
40
|
/*jslint nomen: true, plusplus: true, newcap: true, unparam: true*/
|
|
41
|
+
/*eslint no-unused-vars: "off"*/
|
|
41
42
|
|
|
42
43
|
/* depends:
|
|
43
44
|
jxg
|
|
@@ -1010,7 +1011,8 @@ define([
|
|
|
1010
1011
|
* @see JXG.AbstractRenderer#updateTextStyle
|
|
1011
1012
|
*/
|
|
1012
1013
|
updateText: function (el) {
|
|
1013
|
-
var content = el.plaintext,
|
|
1014
|
+
var content = el.plaintext,
|
|
1015
|
+
v, c,
|
|
1014
1016
|
parentNode,
|
|
1015
1017
|
scale, vshift, id, wrap_id,
|
|
1016
1018
|
ax, ay;
|
|
@@ -1091,10 +1093,18 @@ define([
|
|
|
1091
1093
|
// Set the content
|
|
1092
1094
|
if (el.htmlStr !== content) {
|
|
1093
1095
|
try {
|
|
1094
|
-
el.
|
|
1096
|
+
if (el.type === Type.OBJECT_TYPE_BUTTON) {
|
|
1097
|
+
el.rendNodeButton.innerHTML = content;
|
|
1098
|
+
} else if (el.type === Type.OBJECT_TYPE_CHECKBOX ||
|
|
1099
|
+
el.type === Type.OBJECT_TYPE_INPUT) {
|
|
1100
|
+
el.rendNodeLabel.innerHTML = content;
|
|
1101
|
+
} else {
|
|
1102
|
+
el.rendNode.innerHTML = content;
|
|
1103
|
+
}
|
|
1095
1104
|
} catch (e) {
|
|
1096
|
-
// Setting innerHTML sometimes fails in IE8.
|
|
1097
|
-
// take the node off the DOM, assign innerHTML,
|
|
1105
|
+
// Setting innerHTML sometimes fails in IE8.
|
|
1106
|
+
// A workaround is to take the node off the DOM, assign innerHTML,
|
|
1107
|
+
// then append back.
|
|
1098
1108
|
// Works for text elements as they are absolutely positioned.
|
|
1099
1109
|
parentNode = el.rendNode.parentNode;
|
|
1100
1110
|
el.rendNode.parentNode.removeChild(el.rendNode);
|
|
@@ -1130,9 +1140,11 @@ define([
|
|
|
1130
1140
|
}
|
|
1131
1141
|
} else if (Type.evaluate(el.visProp.usekatex)) {
|
|
1132
1142
|
try {
|
|
1143
|
+
/* eslint-disable no-undef */
|
|
1133
1144
|
katex.render(content, el.rendNode, {
|
|
1134
1145
|
throwOnError: false
|
|
1135
1146
|
});
|
|
1147
|
+
/* eslint-enable no-undef */
|
|
1136
1148
|
} catch (e) {
|
|
1137
1149
|
JXG.debug('KaTeX (not yet) loaded');
|
|
1138
1150
|
}
|
|
@@ -1418,6 +1430,9 @@ define([
|
|
|
1418
1430
|
el.rendNode.className = Type.evaluate(doHighlight ? el.visProp.highlightcssclass : el.visProp.cssclass);
|
|
1419
1431
|
},
|
|
1420
1432
|
|
|
1433
|
+
drawForeignObject: function (el) { /* stub */ },
|
|
1434
|
+
|
|
1435
|
+
updateForeignObject: function(el) { /* stub */ },
|
|
1421
1436
|
|
|
1422
1437
|
/* **************************
|
|
1423
1438
|
* Render primitive objects
|
|
@@ -1569,8 +1584,11 @@ define([
|
|
|
1569
1584
|
|
|
1570
1585
|
setTabindex: function(element) {
|
|
1571
1586
|
var val;
|
|
1572
|
-
if (Type.exists(element.rendNode)) {
|
|
1587
|
+
if (element.board.attr.keyboard.enabled && Type.exists(element.rendNode)) {
|
|
1573
1588
|
val = Type.evaluate(element.visProp.tabindex);
|
|
1589
|
+
if (!element.visPropCalc.visible || Type.evaluate(element.visProp.fixed)) {
|
|
1590
|
+
val = null;
|
|
1591
|
+
}
|
|
1574
1592
|
if (val !== element.visPropOld.tabindex) {
|
|
1575
1593
|
element.rendNode.setAttribute('tabindex', val);
|
|
1576
1594
|
element.visPropOld.tabindex = val;
|
|
@@ -1923,7 +1941,7 @@ define([
|
|
|
1923
1941
|
|
|
1924
1942
|
if (board.attr.showfullscreen) {
|
|
1925
1943
|
createButton(board.attr.fullscreen.symbol, function () {
|
|
1926
|
-
board.toFullscreen();
|
|
1944
|
+
board.toFullscreen(board.attr.fullscreen.id);
|
|
1927
1945
|
});
|
|
1928
1946
|
}
|
|
1929
1947
|
|
package/src/renderer/canvas.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Copyright 2008-
|
|
2
|
+
Copyright 2008-2022
|
|
3
3
|
Matthias Ehmann,
|
|
4
4
|
Michael Gerhaeuser,
|
|
5
5
|
Carsten Miller,
|
|
@@ -56,7 +56,8 @@ define([
|
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
58
|
* Uses HTML Canvas to implement the rendering methods defined in {@link JXG.AbstractRenderer}.
|
|
59
|
-
*
|
|
59
|
+
*
|
|
60
|
+
* @class JXG.CanvasRenderer
|
|
60
61
|
* @augments JXG.AbstractRenderer
|
|
61
62
|
* @param {Node} container Reference to a DOM node containing the board.
|
|
62
63
|
* @param {Object} dim The dimensions of the board
|
|
@@ -88,13 +89,17 @@ define([
|
|
|
88
89
|
'px" height="', dim.height,
|
|
89
90
|
'px"><', '/canvas>'].join('');
|
|
90
91
|
this.canvasRoot = this.container.ownerDocument.getElementById(this.canvasId);
|
|
91
|
-
this.context = this.canvasRoot.getContext('2d');
|
|
92
92
|
this.canvasRoot.style.display = 'block';
|
|
93
|
+
this.context = this.canvasRoot.getContext('2d');
|
|
93
94
|
|
|
94
95
|
} else if (Env.isNode()) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
try {
|
|
97
|
+
this.canvasId = (typeof module === 'object' ? module.require('canvas') : require('canvas'));
|
|
98
|
+
this.canvasRoot = new this.canvasId(500, 500);
|
|
99
|
+
this.context = this.canvasRoot.getContext('2d');
|
|
100
|
+
} catch (err) {
|
|
101
|
+
console.log("Warning: 'canvas' not found. You might need to call 'npm install canvas'");
|
|
102
|
+
}
|
|
98
103
|
}
|
|
99
104
|
|
|
100
105
|
this.dashArray = [[2, 2], [5, 5], [10, 10], [20, 20], [20, 10, 10, 10], [20, 5, 10, 5]];
|
|
@@ -1059,7 +1064,7 @@ define([
|
|
|
1059
1064
|
* Text related stuff
|
|
1060
1065
|
* **************************/
|
|
1061
1066
|
|
|
1062
|
-
//
|
|
1067
|
+
// Already documented in JXG.AbstractRenderer
|
|
1063
1068
|
displayCopyright: function (str, fontSize) {
|
|
1064
1069
|
var context = this.context;
|
|
1065
1070
|
|
|
@@ -1072,7 +1077,7 @@ define([
|
|
|
1072
1077
|
context.restore();
|
|
1073
1078
|
},
|
|
1074
1079
|
|
|
1075
|
-
//
|
|
1080
|
+
// Already documented in JXG.AbstractRenderer
|
|
1076
1081
|
drawInternalText: function (el) {
|
|
1077
1082
|
var ev_fs = Type.evaluate(el.visProp.fontsize),
|
|
1078
1083
|
fontUnit = Type.evaluate(el.visProp.fontunit),
|
|
@@ -1106,7 +1111,7 @@ define([
|
|
|
1106
1111
|
return null;
|
|
1107
1112
|
},
|
|
1108
1113
|
|
|
1109
|
-
//
|
|
1114
|
+
// Already documented in JXG.AbstractRenderer
|
|
1110
1115
|
updateInternalText: function (el) {
|
|
1111
1116
|
this.drawInternalText(el);
|
|
1112
1117
|
},
|
|
@@ -1152,7 +1157,7 @@ define([
|
|
|
1152
1157
|
* Image related stuff
|
|
1153
1158
|
* **************************/
|
|
1154
1159
|
|
|
1155
|
-
//
|
|
1160
|
+
// Already documented in JXG.AbstractRenderer
|
|
1156
1161
|
drawImage: function (el) {
|
|
1157
1162
|
el.rendNode = new Image();
|
|
1158
1163
|
// Store the file name of the image.
|
|
@@ -1164,7 +1169,7 @@ define([
|
|
|
1164
1169
|
this.updateImage(el);
|
|
1165
1170
|
},
|
|
1166
1171
|
|
|
1167
|
-
//
|
|
1172
|
+
// Already documented in JXG.AbstractRenderer
|
|
1168
1173
|
updateImage: function (el) {
|
|
1169
1174
|
var context = this.context,
|
|
1170
1175
|
o = Type.evaluate(el.visProp.fillopacity),
|
|
@@ -1195,7 +1200,7 @@ define([
|
|
|
1195
1200
|
}
|
|
1196
1201
|
},
|
|
1197
1202
|
|
|
1198
|
-
//
|
|
1203
|
+
// Already documented in JXG.AbstractRenderer
|
|
1199
1204
|
transformImage: function (el, t) {
|
|
1200
1205
|
var m, len = t.length,
|
|
1201
1206
|
ctx = this.context;
|
|
@@ -1208,7 +1213,7 @@ define([
|
|
|
1208
1213
|
}
|
|
1209
1214
|
},
|
|
1210
1215
|
|
|
1211
|
-
//
|
|
1216
|
+
// Already documented in JXG.AbstractRenderer
|
|
1212
1217
|
updateImageURL: function (el) {
|
|
1213
1218
|
var url;
|
|
1214
1219
|
|
|
@@ -1312,7 +1317,7 @@ define([
|
|
|
1312
1317
|
this._stroke(el);
|
|
1313
1318
|
},
|
|
1314
1319
|
|
|
1315
|
-
//
|
|
1320
|
+
// Already documented in JXG.AbstractRenderer
|
|
1316
1321
|
updatePathStringBezierPrim: function (el) {
|
|
1317
1322
|
var i, j, k, scr, lx, ly, len,
|
|
1318
1323
|
symbm = 'M',
|
|
@@ -1418,7 +1423,7 @@ define([
|
|
|
1418
1423
|
|
|
1419
1424
|
// ************************** Set Attributes *************************
|
|
1420
1425
|
|
|
1421
|
-
//
|
|
1426
|
+
// Already documented in JXG.AbstractRenderer
|
|
1422
1427
|
display: function(el, val) {
|
|
1423
1428
|
if (el && el.rendNode) {
|
|
1424
1429
|
el.visPropOld.visible = val;
|
package/src/renderer/no.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Copyright 2008-
|
|
2
|
+
Copyright 2008-2022
|
|
3
3
|
Matthias Ehmann,
|
|
4
4
|
Michael Gerhaeuser,
|
|
5
5
|
Carsten Miller,
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
|
|
33
33
|
/*global JXG: true, define: true, AMprocessNode: true, MathJax: true, document: true */
|
|
34
34
|
/*jslint nomen: true, plusplus: true, newcap:true, unparam: true*/
|
|
35
|
+
/*eslint no-unused-vars: "off"*/
|
|
35
36
|
|
|
36
37
|
/* depends:
|
|
37
38
|
jxg
|
|
@@ -52,8 +53,11 @@ define(['jxg', 'renderer/abstract'], function (JXG, AbstractRenderer) {
|
|
|
52
53
|
|
|
53
54
|
/**
|
|
54
55
|
* This renderer draws nothing. It is intended to be used in environments where none of our rendering engines
|
|
55
|
-
* are available, e.g. WebWorkers.
|
|
56
|
-
*
|
|
56
|
+
* are available, e.g. WebWorkers. All methods are empty.
|
|
57
|
+
*
|
|
58
|
+
* @class JXG.NoRenderer
|
|
59
|
+
* @augments JXG.AbstractRenderer
|
|
60
|
+
* @see JXG.AbstractRenderer
|
|
57
61
|
*/
|
|
58
62
|
JXG.NoRenderer = function () {
|
|
59
63
|
/**
|
|
@@ -75,7 +79,7 @@ define(['jxg', 'renderer/abstract'], function (JXG, AbstractRenderer) {
|
|
|
75
79
|
this.type = 'no';
|
|
76
80
|
};
|
|
77
81
|
|
|
78
|
-
JXG.extend(JXG.NoRenderer.prototype, /** @lends JXG.
|
|
82
|
+
JXG.extend(JXG.NoRenderer.prototype, /** @lends JXG.NoRenderer.prototype */ {
|
|
79
83
|
/* ******************************** *
|
|
80
84
|
* Point drawing and updating *
|
|
81
85
|
* ******************************** */
|
|
@@ -656,6 +660,9 @@ define(['jxg', 'renderer/abstract'], function (JXG, AbstractRenderer) {
|
|
|
656
660
|
|
|
657
661
|
});
|
|
658
662
|
|
|
663
|
+
/**
|
|
664
|
+
* @ignore
|
|
665
|
+
*/
|
|
659
666
|
JXG.NoRenderer.prototype = new AbstractRenderer();
|
|
660
667
|
|
|
661
668
|
return JXG.NoRenderer;
|