corrade-nucleus-nucleons – Blame information for rev
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | /** |
2 | * @license Highcharts JS v5.0.10 (2017-03-31) |
||
3 | * |
||
4 | * 3D features for Highcharts JS |
||
5 | * |
||
6 | * @license: www.highcharts.com/license |
||
7 | */ |
||
8 | 'use strict'; |
||
9 | (function(factory) { |
||
10 | if (typeof module === 'object' && module.exports) { |
||
11 | module.exports = factory; |
||
12 | } else { |
||
13 | factory(Highcharts); |
||
14 | } |
||
15 | }(function(Highcharts) { |
||
16 | (function(H) { |
||
17 | /** |
||
18 | * (c) 2010-2017 Torstein Honsi |
||
19 | * |
||
20 | * License: www.highcharts.com/license |
||
21 | */ |
||
22 | /** |
||
23 | * Mathematical Functionility |
||
24 | */ |
||
25 | var deg2rad = H.deg2rad, |
||
26 | pick = H.pick; |
||
27 | /** |
||
28 | * Apply 3-D rotation |
||
29 | * Euler Angles (XYZ): cosA = cos(Alfa|Roll), cosB = cos(Beta|Pitch), cosG = cos(Gamma|Yaw) |
||
30 | * |
||
31 | * Composite rotation: |
||
32 | * | cosB * cosG | cosB * sinG | -sinB | |
||
33 | * | sinA * sinB * cosG - cosA * sinG | sinA * sinB * sinG + cosA * cosG | sinA * cosB | |
||
34 | * | cosA * sinB * cosG + sinA * sinG | cosA * sinB * sinG - sinA * cosG | cosA * cosB | |
||
35 | * |
||
36 | * Now, Gamma/Yaw is not used (angle=0), so we assume cosG = 1 and sinG = 0, so we get: |
||
37 | * | cosB | 0 | - sinB | |
||
38 | * | sinA * sinB | cosA | sinA * cosB | |
||
39 | * | cosA * sinB | - sinA | cosA * cosB | |
||
40 | * |
||
41 | * But in browsers, y is reversed, so we get sinA => -sinA. The general result is: |
||
42 | * | cosB | 0 | - sinB | | x | | px | |
||
43 | * | - sinA * sinB | cosA | - sinA * cosB | x | y | = | py | |
||
44 | * | cosA * sinB | sinA | cosA * cosB | | z | | pz | |
||
45 | */ |
||
46 | function rotate3D(x, y, z, angles) { |
||
47 | return { |
||
48 | x: angles.cosB * x - angles.sinB * z, |
||
49 | y: -angles.sinA * angles.sinB * x + angles.cosA * y - angles.cosB * angles.sinA * z, |
||
50 | z: angles.cosA * angles.sinB * x + angles.sinA * y + angles.cosA * angles.cosB * z |
||
51 | }; |
||
52 | } |
||
53 | |||
54 | function perspective3D(coordinate, origin, distance) { |
||
55 | var projection = ((distance > 0) && (distance < Number.POSITIVE_INFINITY)) ? distance / (coordinate.z + origin.z + distance) : 1; |
||
56 | return { |
||
57 | x: coordinate.x * projection, |
||
58 | y: coordinate.y * projection |
||
59 | }; |
||
60 | } |
||
61 | |||
62 | /** |
||
63 | * Transforms a given array of points according to the angles in chart.options. |
||
64 | * Parameters: |
||
65 | * - points: the array of points |
||
66 | * - chart: the chart |
||
67 | * - insidePlotArea: wether to verifiy the points are inside the plotArea |
||
68 | * Returns: |
||
69 | * - an array of transformed points |
||
70 | */ |
||
71 | H.perspective = function(points, chart, insidePlotArea) { |
||
72 | var options3d = chart.options.chart.options3d, |
||
73 | inverted = insidePlotArea ? chart.inverted : false, |
||
74 | origin = { |
||
75 | x: chart.plotWidth / 2, |
||
76 | y: chart.plotHeight / 2, |
||
77 | z: options3d.depth / 2, |
||
78 | vd: pick(options3d.depth, 1) * pick(options3d.viewDistance, 0) |
||
79 | }, |
||
80 | scale = chart.scale3d || 1, |
||
81 | beta = deg2rad * options3d.beta * (inverted ? -1 : 1), |
||
82 | alpha = deg2rad * options3d.alpha * (inverted ? -1 : 1), |
||
83 | angles = { |
||
84 | cosA: Math.cos(alpha), |
||
85 | cosB: Math.cos(-beta), |
||
86 | sinA: Math.sin(alpha), |
||
87 | sinB: Math.sin(-beta) |
||
88 | }; |
||
89 | |||
90 | if (!insidePlotArea) { |
||
91 | origin.x += chart.plotLeft; |
||
92 | origin.y += chart.plotTop; |
||
93 | } |
||
94 | |||
95 | // Transform each point |
||
96 | return H.map(points, function(point) { |
||
97 | var rotated = rotate3D( |
||
98 | (inverted ? point.y : point.x) - origin.x, |
||
99 | (inverted ? point.x : point.y) - origin.y, |
||
100 | (point.z || 0) - origin.z, |
||
101 | angles |
||
102 | ), |
||
103 | coordinate = perspective3D(rotated, origin, origin.vd); // Apply perspective |
||
104 | |||
105 | // Apply translation |
||
106 | coordinate.x = coordinate.x * scale + origin.x; |
||
107 | coordinate.y = coordinate.y * scale + origin.y; |
||
108 | coordinate.z = rotated.z * scale + origin.z; |
||
109 | |||
110 | return { |
||
111 | x: (inverted ? coordinate.y : coordinate.x), |
||
112 | y: (inverted ? coordinate.x : coordinate.y), |
||
113 | z: coordinate.z |
||
114 | }; |
||
115 | }); |
||
116 | }; |
||
117 | |||
118 | /** |
||
119 | * Calculate a distance from camera to points - made for calculating zIndex of scatter points. |
||
120 | * Parameters: |
||
121 | * - coordinates: The coordinates of the specific point |
||
122 | * - chart: the chart |
||
123 | * Returns: |
||
124 | * - a distance from camera to point |
||
125 | */ |
||
126 | H.pointCameraDistance = function(coordinates, chart) { |
||
127 | var options3d = chart.options.chart.options3d, |
||
128 | cameraPosition = { |
||
129 | x: chart.plotWidth / 2, |
||
130 | y: chart.plotHeight / 2, |
||
131 | z: pick(options3d.depth, 1) * pick(options3d.viewDistance, 0) + options3d.depth |
||
132 | }, |
||
133 | distance = Math.sqrt(Math.pow(cameraPosition.x - coordinates.plotX, 2) + Math.pow(cameraPosition.y - coordinates.plotY, 2) + Math.pow(cameraPosition.z - coordinates.plotZ, 2)); |
||
134 | return distance; |
||
135 | }; |
||
136 | |||
137 | }(Highcharts)); |
||
138 | (function(H) { |
||
139 | /** |
||
140 | * (c) 2010-2017 Torstein Honsi |
||
141 | * |
||
142 | * License: www.highcharts.com/license |
||
143 | */ |
||
144 | var cos = Math.cos, |
||
145 | PI = Math.PI, |
||
146 | sin = Math.sin; |
||
147 | |||
148 | |||
149 | var animObject = H.animObject, |
||
150 | charts = H.charts, |
||
151 | color = H.color, |
||
152 | defined = H.defined, |
||
153 | deg2rad = H.deg2rad, |
||
154 | each = H.each, |
||
155 | extend = H.extend, |
||
156 | inArray = H.inArray, |
||
157 | map = H.map, |
||
158 | merge = H.merge, |
||
159 | perspective = H.perspective, |
||
160 | pick = H.pick, |
||
161 | SVGElement = H.SVGElement, |
||
162 | SVGRenderer = H.SVGRenderer, |
||
163 | wrap = H.wrap; |
||
164 | /*** |
||
165 | EXTENSION TO THE SVG-RENDERER TO ENABLE 3D SHAPES |
||
166 | ***/ |
||
167 | ////// HELPER METHODS ////// |
||
168 | |||
169 | var dFactor = (4 * (Math.sqrt(2) - 1) / 3) / (PI / 2); |
||
170 | |||
171 | |||
172 | //Shoelace algorithm -- http://en.wikipedia.org/wiki/Shoelace_formula |
||
173 | function shapeArea(vertexes) { |
||
174 | var area = 0, |
||
175 | i, |
||
176 | j; |
||
177 | for (i = 0; i < vertexes.length; i++) {> |
||
178 | < vertexes.length; i++) { j = (i + 1) % vertexes.length;> |
||
179 | < vertexes.length; i++) { area += vertexes[i].x * vertexes[j].y - vertexes[j].x * vertexes[i].y;> |
||
180 | < vertexes.length; i++) { }> |
||
181 | < vertexes.length; i++) { return area / 2;> |
||
182 | < vertexes.length; i++) { }> |
||
183 | |||
184 | < vertexes.length; i++) { function averageZ(vertexes) {> |
||
185 | < vertexes.length; i++) { var z = 0,> |
||
186 | < vertexes.length; i++) { i;> |
||
187 | < vertexes.length; i++) { for (i = 0; i < vertexes.length; i++) {> |
||
188 | < vertexes.length; i++) { z += vertexes[i].z;> |
||
189 | < vertexes.length; i++) { }> |
||
190 | < vertexes.length; i++) { return vertexes.length ? z / vertexes.length : 0;> |
||
191 | < vertexes.length; i++) { }> |
||
192 | |||
193 | < vertexes.length; i++) { /** Method to construct a curved path> |
||
194 | < vertexes.length; i++) { * Can 'wrap' around more then 180 degrees> |
||
195 | < vertexes.length; i++) { */> |
||
196 | < vertexes.length; i++) { function curveTo(cx, cy, rx, ry, start, end, dx, dy) {> |
||
197 | < vertexes.length; i++) { var result = [],> |
||
198 | < vertexes.length; i++) { arcAngle = end - start;> |
||
199 | < vertexes.length; i++) { if ((end > start) && (end - start > Math.PI / 2 + 0.0001)) {> |
||
200 | < vertexes.length; i++) { result = result.concat(curveTo(cx, cy, rx, ry, start, start + (Math.PI / 2), dx, dy));> |
||
201 | < vertexes.length; i++) { result = result.concat(curveTo(cx, cy, rx, ry, start + (Math.PI / 2), end, dx, dy));> |
||
202 | < vertexes.length; i++) { return result;> |
||
203 | < vertexes.length; i++) { }> |
||
204 | < vertexes.length; i++) { if ((end < start) && (start - end > Math.PI / 2 + 0.0001)) {> |
||
205 | < vertexes.length; i++) { result = result.concat(curveTo(cx, cy, rx, ry, start, start - (Math.PI / 2), dx, dy));> |
||
206 | < vertexes.length; i++) { result = result.concat(curveTo(cx, cy, rx, ry, start - (Math.PI / 2), end, dx, dy));> |
||
207 | < vertexes.length; i++) { return result;> |
||
208 | < vertexes.length; i++) { }> |
||
209 | < vertexes.length; i++) { return [> |
||
210 | < vertexes.length; i++) { 'C',> |
||
211 | < vertexes.length; i++) { cx + (rx * Math.cos(start)) - ((rx * dFactor * arcAngle) * Math.sin(start)) + dx,> |
||
212 | < vertexes.length; i++) { cy + (ry * Math.sin(start)) + ((ry * dFactor * arcAngle) * Math.cos(start)) + dy,> |
||
213 | < vertexes.length; i++) { cx + (rx * Math.cos(end)) + ((rx * dFactor * arcAngle) * Math.sin(end)) + dx,> |
||
214 | < vertexes.length; i++) { cy + (ry * Math.sin(end)) - ((ry * dFactor * arcAngle) * Math.cos(end)) + dy,> |
||
215 | |||
216 | < vertexes.length; i++) { cx + (rx * Math.cos(end)) + dx,> |
||
217 | < vertexes.length; i++) { cy + (ry * Math.sin(end)) + dy> |
||
218 | < vertexes.length; i++) { ];> |
||
219 | < vertexes.length; i++) { }> |
||
220 | |||
221 | |||
222 | |||
223 | < vertexes.length; i++) { SVGRenderer.prototype.toLinePath = function(points, closed) {> |
||
224 | < vertexes.length; i++) { var result = [];> |
||
225 | |||
226 | < vertexes.length; i++) { // Put "L x y" for each point> |
||
227 | < vertexes.length; i++) { each(points, function(point) {> |
||
228 | < vertexes.length; i++) { result.push('L', point.x, point.y);> |
||
229 | < vertexes.length; i++) { });> |
||
230 | |||
231 | < vertexes.length; i++) { if (points.length) {> |
||
232 | < vertexes.length; i++) { // Set the first element to M> |
||
233 | < vertexes.length; i++) { result[0] = 'M';> |
||
234 | |||
235 | < vertexes.length; i++) { // If it is a closed line, add Z> |
||
236 | < vertexes.length; i++) { if (closed) {> |
||
237 | < vertexes.length; i++) { result.push('Z');> |
||
238 | < vertexes.length; i++) { }> |
||
239 | < vertexes.length; i++) { }> |
||
240 | |||
241 | < vertexes.length; i++) { return result;> |
||
242 | < vertexes.length; i++) { };> |
||
243 | |||
244 | < vertexes.length; i++) { ////// CUBOIDS //////> |
||
245 | < vertexes.length; i++) { SVGRenderer.prototype.cuboid = function(shapeArgs) {> |
||
246 | |||
247 | < vertexes.length; i++) { var result = this.g(),> |
||
248 | < vertexes.length; i++) { destroy = result.destroy,> |
||
249 | < vertexes.length; i++) { paths = this.cuboidPath(shapeArgs);> |
||
250 | |||
251 | |||
252 | < vertexes.length; i++) { result.attr({> |
||
253 | < vertexes.length; i++) { 'stroke-linejoin': 'round'> |
||
254 | < vertexes.length; i++) { });> |
||
255 | |||
256 | |||
257 | < vertexes.length; i++) { // create the 3 sides> |
||
258 | < vertexes.length; i++) { result.front = this.path(paths[0]).attr({> |
||
259 | < vertexes.length; i++) { 'class': 'highcharts-3d-front',> |
||
260 | < vertexes.length; i++) { zIndex: paths[3]> |
||
261 | < vertexes.length; i++) { }).add(result);> |
||
262 | < vertexes.length; i++) { result.top = this.path(paths[1]).attr({> |
||
263 | < vertexes.length; i++) { 'class': 'highcharts-3d-top',> |
||
264 | < vertexes.length; i++) { zIndex: paths[4]> |
||
265 | < vertexes.length; i++) { }).add(result);> |
||
266 | < vertexes.length; i++) { result.side = this.path(paths[2]).attr({> |
||
267 | < vertexes.length; i++) { 'class': 'highcharts-3d-side',> |
||
268 | < vertexes.length; i++) { zIndex: paths[5]> |
||
269 | < vertexes.length; i++) { }).add(result);> |
||
270 | |||
271 | < vertexes.length; i++) { // apply the fill everywhere, the top a bit brighter, the side a bit darker> |
||
272 | < vertexes.length; i++) { result.fillSetter = function(fill) {> |
||
273 | < vertexes.length; i++) { this.front.attr({> |
||
274 | < vertexes.length; i++) { fill: fill> |
||
275 | < vertexes.length; i++) { });> |
||
276 | < vertexes.length; i++) { this.top.attr({> |
||
277 | < vertexes.length; i++) { fill: color(fill).brighten(0.1).get()> |
||
278 | < vertexes.length; i++) { });> |
||
279 | < vertexes.length; i++) { this.side.attr({> |
||
280 | < vertexes.length; i++) { fill: color(fill).brighten(-0.1).get()> |
||
281 | < vertexes.length; i++) { });> |
||
282 | |||
283 | < vertexes.length; i++) { this.color = fill;> |
||
284 | < vertexes.length; i++) { return this;> |
||
285 | < vertexes.length; i++) { };> |
||
286 | |||
287 | < vertexes.length; i++) { // apply opacaity everywhere> |
||
288 | < vertexes.length; i++) { result.opacitySetter = function(opacity) {> |
||
289 | < vertexes.length; i++) { this.front.attr({> |
||
290 | < vertexes.length; i++) { opacity: opacity> |
||
291 | < vertexes.length; i++) { });> |
||
292 | < vertexes.length; i++) { this.top.attr({> |
||
293 | < vertexes.length; i++) { opacity: opacity> |
||
294 | < vertexes.length; i++) { });> |
||
295 | < vertexes.length; i++) { this.side.attr({> |
||
296 | < vertexes.length; i++) { opacity: opacity> |
||
297 | < vertexes.length; i++) { });> |
||
298 | < vertexes.length; i++) { return this;> |
||
299 | < vertexes.length; i++) { };> |
||
300 | |||
301 | < vertexes.length; i++) { result.attr = function(args, val) {> |
||
302 | |||
303 | < vertexes.length; i++) { // Resolve setting attributes by string name> |
||
304 | < vertexes.length; i++) { if (typeof args === 'string' && typeof val !== 'undefined') {> |
||
305 | < vertexes.length; i++) { var key = args;> |
||
306 | < vertexes.length; i++) { args = {};> |
||
307 | < vertexes.length; i++) { args[key] = val;> |
||
308 | < vertexes.length; i++) { }> |
||
309 | |||
310 | < vertexes.length; i++) { if (args.shapeArgs || defined(args.x)) {> |
||
311 | < vertexes.length; i++) { var shapeArgs = args.shapeArgs || args;> |
||
312 | < vertexes.length; i++) { var paths = this.renderer.cuboidPath(shapeArgs);> |
||
313 | < vertexes.length; i++) { this.front.attr({> |
||
314 | < vertexes.length; i++) { d: paths[0],> |
||
315 | < vertexes.length; i++) { zIndex: paths[3]> |
||
316 | < vertexes.length; i++) { });> |
||
317 | < vertexes.length; i++) { this.top.attr({> |
||
318 | < vertexes.length; i++) { d: paths[1],> |
||
319 | < vertexes.length; i++) { zIndex: paths[4]> |
||
320 | < vertexes.length; i++) { });> |
||
321 | < vertexes.length; i++) { this.side.attr({> |
||
322 | < vertexes.length; i++) { d: paths[2],> |
||
323 | < vertexes.length; i++) { zIndex: paths[5]> |
||
324 | < vertexes.length; i++) { });> |
||
325 | < vertexes.length; i++) { } else {> |
||
326 | < vertexes.length; i++) { return H.SVGElement.prototype.attr.call(this, args); // getter returns value> |
||
327 | < vertexes.length; i++) { }> |
||
328 | |||
329 | < vertexes.length; i++) { return this;> |
||
330 | < vertexes.length; i++) { };> |
||
331 | |||
332 | < vertexes.length; i++) { result.animate = function(args, duration, complete) {> |
||
333 | < vertexes.length; i++) { if (defined(args.x) && defined(args.y)) {> |
||
334 | < vertexes.length; i++) { var paths = this.renderer.cuboidPath(args);> |
||
335 | < vertexes.length; i++) { this.front.attr({> |
||
336 | < vertexes.length; i++) { zIndex: paths[3]> |
||
337 | < vertexes.length; i++) { }).animate({> |
||
338 | < vertexes.length; i++) { d: paths[0]> |
||
339 | < vertexes.length; i++) { }, duration, complete);> |
||
340 | < vertexes.length; i++) { this.top.attr({> |
||
341 | < vertexes.length; i++) { zIndex: paths[4]> |
||
342 | < vertexes.length; i++) { }).animate({> |
||
343 | < vertexes.length; i++) { d: paths[1]> |
||
344 | < vertexes.length; i++) { }, duration, complete);> |
||
345 | < vertexes.length; i++) { this.side.attr({> |
||
346 | < vertexes.length; i++) { zIndex: paths[5]> |
||
347 | < vertexes.length; i++) { }).animate({> |
||
348 | < vertexes.length; i++) { d: paths[2]> |
||
349 | < vertexes.length; i++) { }, duration, complete);> |
||
350 | < vertexes.length; i++) { this.attr({> |
||
351 | < vertexes.length; i++) { zIndex: -paths[6] // #4774> |
||
352 | < vertexes.length; i++) { });> |
||
353 | < vertexes.length; i++) { } else if (args.opacity) {> |
||
354 | < vertexes.length; i++) { this.front.animate(args, duration, complete);> |
||
355 | < vertexes.length; i++) { this.top.animate(args, duration, complete);> |
||
356 | < vertexes.length; i++) { this.side.animate(args, duration, complete);> |
||
357 | < vertexes.length; i++) { } else {> |
||
358 | < vertexes.length; i++) { SVGElement.prototype.animate.call(this, args, duration, complete);> |
||
359 | < vertexes.length; i++) { }> |
||
360 | < vertexes.length; i++) { return this;> |
||
361 | < vertexes.length; i++) { };> |
||
362 | |||
363 | < vertexes.length; i++) { // destroy all children> |
||
364 | < vertexes.length; i++) { result.destroy = function() {> |
||
365 | < vertexes.length; i++) { this.front.destroy();> |
||
366 | < vertexes.length; i++) { this.top.destroy();> |
||
367 | < vertexes.length; i++) { this.side.destroy();> |
||
368 | |||
369 | < vertexes.length; i++) { return destroy.call(this);> |
||
370 | < vertexes.length; i++) { };> |
||
371 | |||
372 | < vertexes.length; i++) { // Apply the Z index to the cuboid group> |
||
373 | < vertexes.length; i++) { result.attr({> |
||
374 | < vertexes.length; i++) { zIndex: -paths[6]> |
||
375 | < vertexes.length; i++) { });> |
||
376 | |||
377 | < vertexes.length; i++) { return result;> |
||
378 | < vertexes.length; i++) { };> |
||
379 | |||
380 | < vertexes.length; i++) { /**> |
||
381 | < vertexes.length; i++) { * Generates a cuboid> |
||
382 | < vertexes.length; i++) { */> |
||
383 | < vertexes.length; i++) { SVGRenderer.prototype.cuboidPath = function(shapeArgs) {> |
||
384 | < vertexes.length; i++) { var x = shapeArgs.x,> |
||
385 | < vertexes.length; i++) { y = shapeArgs.y,> |
||
386 | < vertexes.length; i++) { z = shapeArgs.z,> |
||
387 | < vertexes.length; i++) { h = shapeArgs.height,> |
||
388 | < vertexes.length; i++) { w = shapeArgs.width,> |
||
389 | < vertexes.length; i++) { d = shapeArgs.depth,> |
||
390 | < vertexes.length; i++) { chart = charts[this.chartIndex];> |
||
391 | |||
392 | < vertexes.length; i++) { // The 8 corners of the cube> |
||
393 | < vertexes.length; i++) { var pArr = [{> |
||
394 | < vertexes.length; i++) { x: x,> |
||
395 | < vertexes.length; i++) { y: y,> |
||
396 | < vertexes.length; i++) { z: z> |
||
397 | < vertexes.length; i++) { },> |
||
398 | < vertexes.length; i++) { {> |
||
399 | < vertexes.length; i++) { x: x + w,> |
||
400 | < vertexes.length; i++) { y: y,> |
||
401 | < vertexes.length; i++) { z: z> |
||
402 | < vertexes.length; i++) { },> |
||
403 | < vertexes.length; i++) { {> |
||
404 | < vertexes.length; i++) { x: x + w,> |
||
405 | < vertexes.length; i++) { y: y + h,> |
||
406 | < vertexes.length; i++) { z: z> |
||
407 | < vertexes.length; i++) { },> |
||
408 | < vertexes.length; i++) { {> |
||
409 | < vertexes.length; i++) { x: x,> |
||
410 | < vertexes.length; i++) { y: y + h,> |
||
411 | < vertexes.length; i++) { z: z> |
||
412 | < vertexes.length; i++) { },> |
||
413 | < vertexes.length; i++) { {> |
||
414 | < vertexes.length; i++) { x: x,> |
||
415 | < vertexes.length; i++) { y: y + h,> |
||
416 | < vertexes.length; i++) { z: z + d> |
||
417 | < vertexes.length; i++) { },> |
||
418 | < vertexes.length; i++) { {> |
||
419 | < vertexes.length; i++) { x: x + w,> |
||
420 | < vertexes.length; i++) { y: y + h,> |
||
421 | < vertexes.length; i++) { z: z + d> |
||
422 | < vertexes.length; i++) { },> |
||
423 | < vertexes.length; i++) { {> |
||
424 | < vertexes.length; i++) { x: x + w,> |
||
425 | < vertexes.length; i++) { y: y,> |
||
426 | < vertexes.length; i++) { z: z + d> |
||
427 | < vertexes.length; i++) { },> |
||
428 | < vertexes.length; i++) { {> |
||
429 | < vertexes.length; i++) { x: x,> |
||
430 | < vertexes.length; i++) { y: y,> |
||
431 | < vertexes.length; i++) { z: z + d> |
||
432 | < vertexes.length; i++) { }> |
||
433 | < vertexes.length; i++) { ];> |
||
434 | |||
435 | < vertexes.length; i++) { // apply perspective> |
||
436 | < vertexes.length; i++) { pArr = perspective(pArr, chart, shapeArgs.insidePlotArea);> |
||
437 | |||
438 | < vertexes.length; i++) { // helper method to decide which side is visible> |
||
439 | < vertexes.length; i++) { function mapPath(i) {> |
||
440 | < vertexes.length; i++) { return pArr[i];> |
||
441 | < vertexes.length; i++) { }> |
||
442 | < vertexes.length; i++) { var pickShape = function(path1, path2) {> |
||
443 | < vertexes.length; i++) { var ret = [];> |
||
444 | < vertexes.length; i++) { path1 = map(path1, mapPath);> |
||
445 | < vertexes.length; i++) { path2 = map(path2, mapPath);> |
||
446 | < vertexes.length; i++) { if (shapeArea(path1) < 0) {> |
||
447 | < vertexes.length; i++) { ret = path1;> |
||
448 | < vertexes.length; i++) { } else if (shapeArea(path2) < 0) {> |
||
449 | < vertexes.length; i++) { ret = path2;> |
||
450 | < vertexes.length; i++) { }> |
||
451 | < vertexes.length; i++) { return ret;> |
||
452 | < vertexes.length; i++) { };> |
||
453 | |||
454 | < vertexes.length; i++) { // front or back> |
||
455 | < vertexes.length; i++) { var front = [3, 2, 1, 0];> |
||
456 | < vertexes.length; i++) { var back = [7, 6, 5, 4];> |
||
457 | < vertexes.length; i++) { var path1 = pickShape(front, back);> |
||
458 | |||
459 | < vertexes.length; i++) { // top or bottom> |
||
460 | < vertexes.length; i++) { var top = [1, 6, 7, 0];> |
||
461 | < vertexes.length; i++) { var bottom = [4, 5, 2, 3];> |
||
462 | < vertexes.length; i++) { var path2 = pickShape(top, bottom);> |
||
463 | |||
464 | < vertexes.length; i++) { // side> |
||
465 | < vertexes.length; i++) { var right = [1, 2, 5, 6];> |
||
466 | < vertexes.length; i++) { var left = [0, 7, 4, 3];> |
||
467 | < vertexes.length; i++) { var path3 = pickShape(right, left);> |
||
468 | |||
469 | < vertexes.length; i++) { return [this.toLinePath(path1, true), this.toLinePath(path2, true), this.toLinePath(path3, true), averageZ(path1), averageZ(path2), averageZ(path3), averageZ(map(bottom, mapPath)) * 9e9]; // #4774> |
||
470 | < vertexes.length; i++) { };> |
||
471 | |||
472 | < vertexes.length; i++) { ////// SECTORS //////> |
||
473 | < vertexes.length; i++) { H.SVGRenderer.prototype.arc3d = function(attribs) {> |
||
474 | |||
475 | < vertexes.length; i++) { var wrapper = this.g(),> |
||
476 | < vertexes.length; i++) { renderer = wrapper.renderer,> |
||
477 | < vertexes.length; i++) { customAttribs = ['x', 'y', 'r', 'innerR', 'start', 'end'];> |
||
478 | |||
479 | < vertexes.length; i++) { /**> |
||
480 | < vertexes.length; i++) { * Get custom attributes. Don't mutate the original object and return an object with only custom attr.> |
||
481 | < vertexes.length; i++) { */> |
||
482 | < vertexes.length; i++) { function suckOutCustom(params) {> |
||
483 | < vertexes.length; i++) { var hasCA = false,> |
||
484 | < vertexes.length; i++) { ca = {};> |
||
485 | |||
486 | < vertexes.length; i++) { params = merge(params); // Don't mutate the original object> |
||
487 | |||
488 | < vertexes.length; i++) { for (var key in params) {> |
||
489 | < vertexes.length; i++) { if (inArray(key, customAttribs) !== -1) {> |
||
490 | < vertexes.length; i++) { ca[key] = params[key];> |
||
491 | < vertexes.length; i++) { delete params[key];> |
||
492 | < vertexes.length; i++) { hasCA = true;> |
||
493 | < vertexes.length; i++) { }> |
||
494 | < vertexes.length; i++) { }> |
||
495 | < vertexes.length; i++) { return hasCA ? ca : false;> |
||
496 | < vertexes.length; i++) { }> |
||
497 | |||
498 | < vertexes.length; i++) { attribs = merge(attribs);> |
||
499 | |||
500 | < vertexes.length; i++) { attribs.alpha *= deg2rad;> |
||
501 | < vertexes.length; i++) { attribs.beta *= deg2rad;> |
||
502 | |||
503 | < vertexes.length; i++) { // Create the different sub sections of the shape> |
||
504 | < vertexes.length; i++) { wrapper.top = renderer.path();> |
||
505 | < vertexes.length; i++) { wrapper.side1 = renderer.path();> |
||
506 | < vertexes.length; i++) { wrapper.side2 = renderer.path();> |
||
507 | < vertexes.length; i++) { wrapper.inn = renderer.path();> |
||
508 | < vertexes.length; i++) { wrapper.out = renderer.path();> |
||
509 | |||
510 | < vertexes.length; i++) { /**> |
||
511 | < vertexes.length; i++) { * Add all faces> |
||
512 | < vertexes.length; i++) { */> |
||
513 | < vertexes.length; i++) { wrapper.onAdd = function() {> |
||
514 | < vertexes.length; i++) { var parent = wrapper.parentGroup,> |
||
515 | < vertexes.length; i++) { className = wrapper.attr('class');> |
||
516 | < vertexes.length; i++) { wrapper.top.add(wrapper);> |
||
517 | |||
518 | < vertexes.length; i++) { // These faces are added outside the wrapper group because the z index> |
||
519 | < vertexes.length; i++) { // relates to neighbour elements as well> |
||
520 | < vertexes.length; i++) { each(['out', 'inn', 'side1', 'side2'], function(face) {> |
||
521 | < vertexes.length; i++) { wrapper[face]> |
||
522 | < vertexes.length; i++) { .addClass(className + ' highcharts-3d-side')> |
||
523 | < vertexes.length; i++) { .add(parent);> |
||
524 | < vertexes.length; i++) { });> |
||
525 | < vertexes.length; i++) { };> |
||
526 | |||
527 | < vertexes.length; i++) { /**> |
||
528 | < vertexes.length; i++) { * Compute the transformed paths and set them to the composite shapes> |
||
529 | < vertexes.length; i++) { */> |
||
530 | < vertexes.length; i++) { wrapper.setPaths = function(attribs) {> |
||
531 | |||
532 | < vertexes.length; i++) { var paths = wrapper.renderer.arc3dPath(attribs),> |
||
533 | < vertexes.length; i++) { zIndex = paths.zTop * 100;> |
||
534 | |||
535 | < vertexes.length; i++) { wrapper.attribs = attribs;> |
||
536 | |||
537 | < vertexes.length; i++) { wrapper.top.attr({> |
||
538 | < vertexes.length; i++) { d: paths.top,> |
||
539 | < vertexes.length; i++) { zIndex: paths.zTop> |
||
540 | < vertexes.length; i++) { });> |
||
541 | < vertexes.length; i++) { wrapper.inn.attr({> |
||
542 | < vertexes.length; i++) { d: paths.inn,> |
||
543 | < vertexes.length; i++) { zIndex: paths.zInn> |
||
544 | < vertexes.length; i++) { });> |
||
545 | < vertexes.length; i++) { wrapper.out.attr({> |
||
546 | < vertexes.length; i++) { d: paths.out,> |
||
547 | < vertexes.length; i++) { zIndex: paths.zOut> |
||
548 | < vertexes.length; i++) { });> |
||
549 | < vertexes.length; i++) { wrapper.side1.attr({> |
||
550 | < vertexes.length; i++) { d: paths.side1,> |
||
551 | < vertexes.length; i++) { zIndex: paths.zSide1> |
||
552 | < vertexes.length; i++) { });> |
||
553 | < vertexes.length; i++) { wrapper.side2.attr({> |
||
554 | < vertexes.length; i++) { d: paths.side2,> |
||
555 | < vertexes.length; i++) { zIndex: paths.zSide2> |
||
556 | < vertexes.length; i++) { });> |
||
557 | |||
558 | |||
559 | < vertexes.length; i++) { // show all children> |
||
560 | < vertexes.length; i++) { wrapper.zIndex = zIndex;> |
||
561 | < vertexes.length; i++) { wrapper.attr({> |
||
562 | < vertexes.length; i++) { zIndex: zIndex> |
||
563 | < vertexes.length; i++) { });> |
||
564 | |||
565 | < vertexes.length; i++) { // Set the radial gradient center the first time> |
||
566 | < vertexes.length; i++) { if (attribs.center) {> |
||
567 | < vertexes.length; i++) { wrapper.top.setRadialReference(attribs.center);> |
||
568 | < vertexes.length; i++) { delete attribs.center;> |
||
569 | < vertexes.length; i++) { }> |
||
570 | < vertexes.length; i++) { };> |
||
571 | < vertexes.length; i++) { wrapper.setPaths(attribs);> |
||
572 | |||
573 | < vertexes.length; i++) { // Apply the fill to the top and a darker shade to the sides> |
||
574 | < vertexes.length; i++) { wrapper.fillSetter = function(value) {> |
||
575 | < vertexes.length; i++) { var darker = color(value).brighten(-0.1).get();> |
||
576 | |||
577 | < vertexes.length; i++) { this.fill = value;> |
||
578 | |||
579 | < vertexes.length; i++) { this.side1.attr({> |
||
580 | < vertexes.length; i++) { fill: darker> |
||
581 | < vertexes.length; i++) { });> |
||
582 | < vertexes.length; i++) { this.side2.attr({> |
||
583 | < vertexes.length; i++) { fill: darker> |
||
584 | < vertexes.length; i++) { });> |
||
585 | < vertexes.length; i++) { this.inn.attr({> |
||
586 | < vertexes.length; i++) { fill: darker> |
||
587 | < vertexes.length; i++) { });> |
||
588 | < vertexes.length; i++) { this.out.attr({> |
||
589 | < vertexes.length; i++) { fill: darker> |
||
590 | < vertexes.length; i++) { });> |
||
591 | < vertexes.length; i++) { this.top.attr({> |
||
592 | < vertexes.length; i++) { fill: value> |
||
593 | < vertexes.length; i++) { });> |
||
594 | < vertexes.length; i++) { return this;> |
||
595 | < vertexes.length; i++) { };> |
||
596 | |||
597 | < vertexes.length; i++) { // Apply the same value to all. These properties cascade down to the children> |
||
598 | < vertexes.length; i++) { // when set to the composite arc3d.> |
||
599 | < vertexes.length; i++) { each(['opacity', 'translateX', 'translateY', 'visibility'], function(setter) {> |
||
600 | < vertexes.length; i++) { wrapper[setter + 'Setter'] = function(value, key) {> |
||
601 | < vertexes.length; i++) { wrapper[key] = value;> |
||
602 | < vertexes.length; i++) { each(['out', 'inn', 'side1', 'side2', 'top'], function(el) {> |
||
603 | < vertexes.length; i++) { wrapper[el].attr(key, value);> |
||
604 | < vertexes.length; i++) { });> |
||
605 | < vertexes.length; i++) { };> |
||
606 | < vertexes.length; i++) { });> |
||
607 | |||
608 | < vertexes.length; i++) { /**> |
||
609 | < vertexes.length; i++) { * Override attr to remove shape attributes and use those to set child paths> |
||
610 | < vertexes.length; i++) { */> |
||
611 | < vertexes.length; i++) { wrap(wrapper, 'attr', function(proceed, params) {> |
||
612 | < vertexes.length; i++) { var ca;> |
||
613 | < vertexes.length; i++) { if (typeof params === 'object') {> |
||
614 | < vertexes.length; i++) { ca = suckOutCustom(params);> |
||
615 | < vertexes.length; i++) { if (ca) {> |
||
616 | < vertexes.length; i++) { extend(wrapper.attribs, ca);> |
||
617 | < vertexes.length; i++) { wrapper.setPaths(wrapper.attribs);> |
||
618 | < vertexes.length; i++) { }> |
||
619 | < vertexes.length; i++) { }> |
||
620 | < vertexes.length; i++) { return proceed.apply(this, [].slice.call(arguments, 1));> |
||
621 | < vertexes.length; i++) { });> |
||
622 | |||
623 | < vertexes.length; i++) { /**> |
||
624 | < vertexes.length; i++) { * Override the animate function by sucking out custom parameters related to the shapes directly,> |
||
625 | < vertexes.length; i++) { * and update the shapes from the animation step.> |
||
626 | < vertexes.length; i++) { */> |
||
627 | < vertexes.length; i++) { wrap(wrapper, 'animate', function(proceed, params, animation, complete) {> |
||
628 | < vertexes.length; i++) { var ca,> |
||
629 | < vertexes.length; i++) { from = this.attribs,> |
||
630 | < vertexes.length; i++) { to,> |
||
631 | < vertexes.length; i++) { anim;> |
||
632 | |||
633 | < vertexes.length; i++) { // Attribute-line properties connected to 3D. These shouldn't have been in the > |
||
634 | < vertexes.length; i++) { // attribs collection in the first place.> |
||
635 | < vertexes.length; i++) { delete params.center;> |
||
636 | < vertexes.length; i++) { delete params.z;> |
||
637 | < vertexes.length; i++) { delete params.depth;> |
||
638 | < vertexes.length; i++) { delete params.alpha;> |
||
639 | < vertexes.length; i++) { delete params.beta;> |
||
640 | |||
641 | < vertexes.length; i++) { anim = animObject(pick(animation, this.renderer.globalAnimation));> |
||
642 | |||
643 | < vertexes.length; i++) { if (anim.duration) {> |
||
644 | < vertexes.length; i++) { ca = suckOutCustom(params);> |
||
645 | < vertexes.length; i++) { params.dummy = 1; // Params need to have a property in order for the step to run (#5765)> |
||
646 | |||
647 | < vertexes.length; i++) { if (ca) {> |
||
648 | < vertexes.length; i++) { to = ca;> |
||
649 | < vertexes.length; i++) { anim.step = function(a, fx) {> |
||
650 | < vertexes.length; i++) { function interpolate(key) {> |
||
651 | < vertexes.length; i++) { return from[key] + (pick(to[key], from[key]) - from[key]) * fx.pos;> |
||
652 | < vertexes.length; i++) { }> |
||
653 | |||
654 | < vertexes.length; i++) { if (fx.prop === 'dummy') {> |
||
655 | < vertexes.length; i++) { fx.elem.setPaths(merge(from, {> |
||
656 | < vertexes.length; i++) { x: interpolate('x'),> |
||
657 | < vertexes.length; i++) { y: interpolate('y'),> |
||
658 | < vertexes.length; i++) { r: interpolate('r'),> |
||
659 | < vertexes.length; i++) { innerR: interpolate('innerR'),> |
||
660 | < vertexes.length; i++) { start: interpolate('start'),> |
||
661 | < vertexes.length; i++) { end: interpolate('end')> |
||
662 | < vertexes.length; i++) { }));> |
||
663 | < vertexes.length; i++) { }> |
||
664 | < vertexes.length; i++) { };> |
||
665 | < vertexes.length; i++) { }> |
||
666 | < vertexes.length; i++) { animation = anim; // Only when duration (#5572)> |
||
667 | < vertexes.length; i++) { }> |
||
668 | < vertexes.length; i++) { return proceed.call(this, params, animation, complete);> |
||
669 | < vertexes.length; i++) { });> |
||
670 | |||
671 | < vertexes.length; i++) { // destroy all children> |
||
672 | < vertexes.length; i++) { wrapper.destroy = function() {> |
||
673 | < vertexes.length; i++) { this.top.destroy();> |
||
674 | < vertexes.length; i++) { this.out.destroy();> |
||
675 | < vertexes.length; i++) { this.inn.destroy();> |
||
676 | < vertexes.length; i++) { this.side1.destroy();> |
||
677 | < vertexes.length; i++) { this.side2.destroy();> |
||
678 | |||
679 | < vertexes.length; i++) { SVGElement.prototype.destroy.call(this);> |
||
680 | < vertexes.length; i++) { };> |
||
681 | < vertexes.length; i++) { // hide all children> |
||
682 | < vertexes.length; i++) { wrapper.hide = function() {> |
||
683 | < vertexes.length; i++) { this.top.hide();> |
||
684 | < vertexes.length; i++) { this.out.hide();> |
||
685 | < vertexes.length; i++) { this.inn.hide();> |
||
686 | < vertexes.length; i++) { this.side1.hide();> |
||
687 | < vertexes.length; i++) { this.side2.hide();> |
||
688 | < vertexes.length; i++) { };> |
||
689 | < vertexes.length; i++) { wrapper.show = function() {> |
||
690 | < vertexes.length; i++) { this.top.show();> |
||
691 | < vertexes.length; i++) { this.out.show();> |
||
692 | < vertexes.length; i++) { this.inn.show();> |
||
693 | < vertexes.length; i++) { this.side1.show();> |
||
694 | < vertexes.length; i++) { this.side2.show();> |
||
695 | < vertexes.length; i++) { };> |
||
696 | < vertexes.length; i++) { return wrapper;> |
||
697 | < vertexes.length; i++) { };> |
||
698 | |||
699 | < vertexes.length; i++) { /**> |
||
700 | < vertexes.length; i++) { * Generate the paths required to draw a 3D arc> |
||
701 | < vertexes.length; i++) { */> |
||
702 | < vertexes.length; i++) { SVGRenderer.prototype.arc3dPath = function(shapeArgs) {> |
||
703 | < vertexes.length; i++) { var cx = shapeArgs.x, // x coordinate of the center> |
||
704 | < vertexes.length; i++) { cy = shapeArgs.y, // y coordinate of the center> |
||
705 | < vertexes.length; i++) { start = shapeArgs.start, // start angle> |
||
706 | < vertexes.length; i++) { end = shapeArgs.end - 0.00001, // end angle> |
||
707 | < vertexes.length; i++) { r = shapeArgs.r, // radius> |
||
708 | < vertexes.length; i++) { ir = shapeArgs.innerR, // inner radius> |
||
709 | < vertexes.length; i++) { d = shapeArgs.depth, // depth> |
||
710 | < vertexes.length; i++) { alpha = shapeArgs.alpha, // alpha rotation of the chart> |
||
711 | < vertexes.length; i++) { beta = shapeArgs.beta; // beta rotation of the chart> |
||
712 | |||
713 | < vertexes.length; i++) { // Derived Variables> |
||
714 | < vertexes.length; i++) { var cs = Math.cos(start), // cosinus of the start angle> |
||
715 | < vertexes.length; i++) { ss = Math.sin(start), // sinus of the start angle> |
||
716 | < vertexes.length; i++) { ce = Math.cos(end), // cosinus of the end angle> |
||
717 | < vertexes.length; i++) { se = Math.sin(end), // sinus of the end angle> |
||
718 | < vertexes.length; i++) { rx = r * Math.cos(beta), // x-radius > |
||
719 | < vertexes.length; i++) { ry = r * Math.cos(alpha), // y-radius> |
||
720 | < vertexes.length; i++) { irx = ir * Math.cos(beta), // x-radius (inner)> |
||
721 | < vertexes.length; i++) { iry = ir * Math.cos(alpha), // y-radius (inner)> |
||
722 | < vertexes.length; i++) { dx = d * Math.sin(beta), // distance between top and bottom in x> |
||
723 | < vertexes.length; i++) { dy = d * Math.sin(alpha); // distance between top and bottom in y> |
||
724 | |||
725 | < vertexes.length; i++) { // TOP> |
||
726 | < vertexes.length; i++) { var top = ['M', cx + (rx * cs), cy + (ry * ss)];> |
||
727 | < vertexes.length; i++) { top = top.concat(curveTo(cx, cy, rx, ry, start, end, 0, 0));> |
||
728 | < vertexes.length; i++) { top = top.concat([> |
||
729 | < vertexes.length; i++) { 'L', cx + (irx * ce), cy + (iry * se)> |
||
730 | < vertexes.length; i++) { ]);> |
||
731 | < vertexes.length; i++) { top = top.concat(curveTo(cx, cy, irx, iry, end, start, 0, 0));> |
||
732 | < vertexes.length; i++) { top = top.concat(['Z']);> |
||
733 | < vertexes.length; i++) { // OUTSIDE> |
||
734 | < vertexes.length; i++) { var b = (beta > 0 ? Math.PI / 2 : 0),> |
||
735 | < vertexes.length; i++) { a = (alpha > 0 ? 0 : Math.PI / 2);> |
||
736 | |||
737 | < vertexes.length; i++) { var start2 = start > -b ? start : (end > -b ? -b : start),> |
||
738 | < vertexes.length; i++) { end2 = end < PI - a ? end : (start < PI - a ? PI - a : end),> |
||
739 | < vertexes.length; i++) { midEnd = 2 * PI - a;> |
||
740 | |||
741 | < vertexes.length; i++) { // When slice goes over bottom middle, need to add both, left and right outer side.> |
||
742 | < vertexes.length; i++) { // Additionally, when we cross right hand edge, create sharp edge. Outer shape/wall:> |
||
743 | < vertexes.length; i++) { //> |
||
744 | < vertexes.length; i++) { // -------> |
||
745 | < vertexes.length; i++) { // / ^ \> |
||
746 | < vertexes.length; i++) { // 4) / / \ \ 1)> |
||
747 | < vertexes.length; i++) { // / / \ \> |
||
748 | < vertexes.length; i++) { // / / \ \> |
||
749 | < vertexes.length; i++) { // (c)=> ==== ==== <=(d) > |
||
750 | < vertexes.length; i++) { // \ \ / /> |
||
751 | < vertexes.length; i++) { // \ \<=(a)/ /> |
||
752 | < vertexes.length; i++) { // \ \ / / <=(b)> |
||
753 | < vertexes.length; i++) { // 3) \ v / 2)> |
||
754 | < vertexes.length; i++) { // -------> |
||
755 | < vertexes.length; i++) { //> |
||
756 | < vertexes.length; i++) { // (a) - inner side> |
||
757 | < vertexes.length; i++) { // (b) - outer side> |
||
758 | < vertexes.length; i++) { // (c) - left edge (sharp)> |
||
759 | < vertexes.length; i++) { // (d) - right edge (sharp)> |
||
760 | < vertexes.length; i++) { // 1..n - rendering order for startAngle = 0, when set to e.g 90, order changes clockwise (1->2, 2->3, n->1) and counterclockwise for negative startAngle> |
||
761 | |||
762 | < vertexes.length; i++) { var out = ['M', cx + (rx * cos(start2)), cy + (ry * sin(start2))];> |
||
763 | < vertexes.length; i++) { out = out.concat(curveTo(cx, cy, rx, ry, start2, end2, 0, 0));> |
||
764 | |||
765 | < vertexes.length; i++) { if (end > midEnd && start < midEnd) { // When shape is wide, it can cross both, (c) and (d) edges, when using startAngle> |
||
766 | < vertexes.length; i++) { // Go to outer side> |
||
767 | < vertexes.length; i++) { out = out.concat([> |
||
768 | < vertexes.length; i++) { 'L', cx + (rx * cos(end2)) + dx, cy + (ry * sin(end2)) + dy> |
||
769 | < vertexes.length; i++) { ]);> |
||
770 | < vertexes.length; i++) { // Curve to the right edge of the slice (d)> |
||
771 | < vertexes.length; i++) { out = out.concat(curveTo(cx, cy, rx, ry, end2, midEnd, dx, dy));> |
||
772 | < vertexes.length; i++) { // Go to the inner side> |
||
773 | < vertexes.length; i++) { out = out.concat([> |
||
774 | < vertexes.length; i++) { 'L', cx + (rx * cos(midEnd)), cy + (ry * sin(midEnd))> |
||
775 | < vertexes.length; i++) { ]);> |
||
776 | < vertexes.length; i++) { // Curve to the true end of the slice> |
||
777 | < vertexes.length; i++) { out = out.concat(curveTo(cx, cy, rx, ry, midEnd, end, 0, 0));> |
||
778 | < vertexes.length; i++) { // Go to the outer side> |
||
779 | < vertexes.length; i++) { out = out.concat([> |
||
780 | < vertexes.length; i++) { 'L', cx + (rx * cos(end)) + dx, cy + (ry * sin(end)) + dy> |
||
781 | < vertexes.length; i++) { ]);> |
||
782 | < vertexes.length; i++) { // Go back to middle (d)> |
||
783 | < vertexes.length; i++) { out = out.concat(curveTo(cx, cy, rx, ry, end, midEnd, dx, dy));> |
||
784 | < vertexes.length; i++) { out = out.concat([> |
||
785 | < vertexes.length; i++) { 'L', cx + (rx * cos(midEnd)), cy + (ry * sin(midEnd))> |
||
786 | < vertexes.length; i++) { ]);> |
||
787 | < vertexes.length; i++) { // Go back to the left edge> |
||
788 | < vertexes.length; i++) { out = out.concat(curveTo(cx, cy, rx, ry, midEnd, end2, 0, 0));> |
||
789 | < vertexes.length; i++) { } else if (end > PI - a && start < PI - a) { // But shape can cross also only (c) edge:> |
||
790 | < vertexes.length; i++) { // Go to outer side> |
||
791 | < vertexes.length; i++) { out = out.concat([> |
||
792 | < vertexes.length; i++) { 'L', cx + (rx * Math.cos(end2)) + dx, cy + (ry * Math.sin(end2)) + dy> |
||
793 | < vertexes.length; i++) { ]);> |
||
794 | < vertexes.length; i++) { // Curve to the true end of the slice> |
||
795 | < vertexes.length; i++) { out = out.concat(curveTo(cx, cy, rx, ry, end2, end, dx, dy));> |
||
796 | < vertexes.length; i++) { // Go to the inner side> |
||
797 | < vertexes.length; i++) { out = out.concat([> |
||
798 | < vertexes.length; i++) { 'L', cx + (rx * Math.cos(end)), cy + (ry * Math.sin(end))> |
||
799 | < vertexes.length; i++) { ]);> |
||
800 | < vertexes.length; i++) { // Go back to the artifical end2> |
||
801 | < vertexes.length; i++) { out = out.concat(curveTo(cx, cy, rx, ry, end, end2, 0, 0));> |
||
802 | < vertexes.length; i++) { }> |
||
803 | |||
804 | < vertexes.length; i++) { out = out.concat([> |
||
805 | < vertexes.length; i++) { 'L', cx + (rx * Math.cos(end2)) + dx, cy + (ry * Math.sin(end2)) + dy> |
||
806 | < vertexes.length; i++) { ]);> |
||
807 | < vertexes.length; i++) { out = out.concat(curveTo(cx, cy, rx, ry, end2, start2, dx, dy));> |
||
808 | < vertexes.length; i++) { out = out.concat(['Z']);> |
||
809 | |||
810 | < vertexes.length; i++) { // INSIDE> |
||
811 | < vertexes.length; i++) { var inn = ['M', cx + (irx * cs), cy + (iry * ss)];> |
||
812 | < vertexes.length; i++) { inn = inn.concat(curveTo(cx, cy, irx, iry, start, end, 0, 0));> |
||
813 | < vertexes.length; i++) { inn = inn.concat([> |
||
814 | < vertexes.length; i++) { 'L', cx + (irx * Math.cos(end)) + dx, cy + (iry * Math.sin(end)) + dy> |
||
815 | < vertexes.length; i++) { ]);> |
||
816 | < vertexes.length; i++) { inn = inn.concat(curveTo(cx, cy, irx, iry, end, start, dx, dy));> |
||
817 | < vertexes.length; i++) { inn = inn.concat(['Z']);> |
||
818 | |||
819 | < vertexes.length; i++) { // SIDES> |
||
820 | < vertexes.length; i++) { var side1 = [> |
||
821 | < vertexes.length; i++) { 'M', cx + (rx * cs), cy + (ry * ss),> |
||
822 | < vertexes.length; i++) { 'L', cx + (rx * cs) + dx, cy + (ry * ss) + dy,> |
||
823 | < vertexes.length; i++) { 'L', cx + (irx * cs) + dx, cy + (iry * ss) + dy,> |
||
824 | < vertexes.length; i++) { 'L', cx + (irx * cs), cy + (iry * ss),> |
||
825 | < vertexes.length; i++) { 'Z'> |
||
826 | < vertexes.length; i++) { ];> |
||
827 | < vertexes.length; i++) { var side2 = [> |
||
828 | < vertexes.length; i++) { 'M', cx + (rx * ce), cy + (ry * se),> |
||
829 | < vertexes.length; i++) { 'L', cx + (rx * ce) + dx, cy + (ry * se) + dy,> |
||
830 | < vertexes.length; i++) { 'L', cx + (irx * ce) + dx, cy + (iry * se) + dy,> |
||
831 | < vertexes.length; i++) { 'L', cx + (irx * ce), cy + (iry * se),> |
||
832 | < vertexes.length; i++) { 'Z'> |
||
833 | < vertexes.length; i++) { ];> |
||
834 | |||
835 | < vertexes.length; i++) { // correction for changed position of vanishing point caused by alpha and beta rotations> |
||
836 | < vertexes.length; i++) { var angleCorr = Math.atan2(dy, -dx),> |
||
837 | < vertexes.length; i++) { angleEnd = Math.abs(end + angleCorr),> |
||
838 | < vertexes.length; i++) { angleStart = Math.abs(start + angleCorr),> |
||
839 | < vertexes.length; i++) { angleMid = Math.abs((start + end) / 2 + angleCorr);> |
||
840 | |||
841 | < vertexes.length; i++) { // set to 0-PI range> |
||
842 | < vertexes.length; i++) { function toZeroPIRange(angle) {> |
||
843 | < vertexes.length; i++) { angle = angle % (2 * Math.PI);> |
||
844 | < vertexes.length; i++) { if (angle > Math.PI) {> |
||
845 | < vertexes.length; i++) { angle = 2 * Math.PI - angle;> |
||
846 | < vertexes.length; i++) { }> |
||
847 | < vertexes.length; i++) { return angle;> |
||
848 | < vertexes.length; i++) { }> |
||
849 | < vertexes.length; i++) { angleEnd = toZeroPIRange(angleEnd);> |
||
850 | < vertexes.length; i++) { angleStart = toZeroPIRange(angleStart);> |
||
851 | < vertexes.length; i++) { angleMid = toZeroPIRange(angleMid);> |
||
852 | |||
853 | < vertexes.length; i++) { // *1e5 is to compensate pInt in zIndexSetter> |
||
854 | < vertexes.length; i++) { var incPrecision = 1e5,> |
||
855 | < vertexes.length; i++) { a1 = angleMid * incPrecision,> |
||
856 | < vertexes.length; i++) { a2 = angleStart * incPrecision,> |
||
857 | < vertexes.length; i++) { a3 = angleEnd * incPrecision;> |
||
858 | |||
859 | < vertexes.length; i++) { return {> |
||
860 | < vertexes.length; i++) { top: top,> |
||
861 | < vertexes.length; i++) { zTop: Math.PI * incPrecision + 1, // max angle is PI, so this is allways higher> |
||
862 | < vertexes.length; i++) { out: out,> |
||
863 | < vertexes.length; i++) { zOut: Math.max(a1, a2, a3),> |
||
864 | < vertexes.length; i++) { inn: inn,> |
||
865 | < vertexes.length; i++) { zInn: Math.max(a1, a2, a3),> |
||
866 | < vertexes.length; i++) { side1: side1,> |
||
867 | < vertexes.length; i++) { zSide1: a3 * 0.99, // to keep below zOut and zInn in case of same values> |
||
868 | < vertexes.length; i++) { side2: side2,> |
||
869 | < vertexes.length; i++) { zSide2: a2 * 0.99> |
||
870 | < vertexes.length; i++) { };> |
||
871 | < vertexes.length; i++) { };> |
||
872 | |||
873 | < vertexes.length; i++) { }(Highcharts));> |
||
874 | < vertexes.length; i++) { (function(H) {> |
||
875 | < vertexes.length; i++) { /**> |
||
876 | < vertexes.length; i++) { * (c) 2010-2017 Torstein Honsi> |
||
877 | < vertexes.length; i++) { *> |
||
878 | < vertexes.length; i++) { * License: www.highcharts.com/license> |
||
879 | < vertexes.length; i++) { */> |
||
880 | < vertexes.length; i++) { var Chart = H.Chart,> |
||
881 | < vertexes.length; i++) { each = H.each,> |
||
882 | < vertexes.length; i++) { merge = H.merge,> |
||
883 | < vertexes.length; i++) { perspective = H.perspective,> |
||
884 | < vertexes.length; i++) { pick = H.pick,> |
||
885 | < vertexes.length; i++) { wrap = H.wrap;> |
||
886 | |||
887 | < vertexes.length; i++) { /*** > |
||
888 | < vertexes.length; i++) { EXTENSION FOR 3D CHARTS> |
||
889 | < vertexes.length; i++) { ***/> |
||
890 | < vertexes.length; i++) { // Shorthand to check the is3d flag> |
||
891 | < vertexes.length; i++) { Chart.prototype.is3d = function() {> |
||
892 | < vertexes.length; i++) { return this.options.chart.options3d && this.options.chart.options3d.enabled; // #4280> |
||
893 | < vertexes.length; i++) { };> |
||
894 | |||
895 | < vertexes.length; i++) { Chart.prototype.propsRequireDirtyBox.push('chart.options3d');> |
||
896 | < vertexes.length; i++) { Chart.prototype.propsRequireUpdateSeries.push('chart.options3d');> |
||
897 | |||
898 | < vertexes.length; i++) { /**> |
||
899 | < vertexes.length; i++) { * Calculate scale of the 3D view. That is required to> |
||
900 | < vertexes.length; i++) { * fit chart's 3D projection into the actual plotting area. Reported as #4933.> |
||
901 | < vertexes.length; i++) { * @notice This function should ideally take the plot values instead of a chart object, > |
||
902 | < vertexes.length; i++) { * but since the chart object is needed for perspective it is not practical. > |
||
903 | < vertexes.length; i++) { * Possible to make both getScale and perspective more logical and also immutable.> |
||
904 | < vertexes.length; i++) { * @param {Object} chart Chart object> |
||
905 | < vertexes.length; i++) { * @param {Number} chart.plotLeft> |
||
906 | < vertexes.length; i++) { * @param {Number} chart.plotWidth> |
||
907 | < vertexes.length; i++) { * @param {Number} chart.plotTop> |
||
908 | < vertexes.length; i++) { * @param {Number} chart.plotHeight> |
||
909 | < vertexes.length; i++) { * @param {Number} depth The depth of the chart> |
||
910 | < vertexes.length; i++) { * @return {Number} The scale to fit the 3D chart into the plotting area.> |
||
911 | < vertexes.length; i++) { */> |
||
912 | < vertexes.length; i++) { function getScale(chart, depth) {> |
||
913 | < vertexes.length; i++) { var plotLeft = chart.plotLeft,> |
||
914 | < vertexes.length; i++) { plotRight = chart.plotWidth + plotLeft,> |
||
915 | < vertexes.length; i++) { plotTop = chart.plotTop,> |
||
916 | < vertexes.length; i++) { plotBottom = chart.plotHeight + plotTop,> |
||
917 | < vertexes.length; i++) { originX = plotLeft + chart.plotWidth / 2,> |
||
918 | < vertexes.length; i++) { originY = plotTop + chart.plotHeight / 2,> |
||
919 | < vertexes.length; i++) { bbox3d = {> |
||
920 | < vertexes.length; i++) { minX: Number.MAX_VALUE,> |
||
921 | < vertexes.length; i++) { maxX: -Number.MAX_VALUE,> |
||
922 | < vertexes.length; i++) { minY: Number.MAX_VALUE,> |
||
923 | < vertexes.length; i++) { maxY: -Number.MAX_VALUE> |
||
924 | < vertexes.length; i++) { },> |
||
925 | < vertexes.length; i++) { corners,> |
||
926 | < vertexes.length; i++) { scale = 1;> |
||
927 | |||
928 | < vertexes.length; i++) { // Top left corners:> |
||
929 | < vertexes.length; i++) { corners = [{> |
||
930 | < vertexes.length; i++) { x: plotLeft,> |
||
931 | < vertexes.length; i++) { y: plotTop,> |
||
932 | < vertexes.length; i++) { z: 0> |
||
933 | < vertexes.length; i++) { }, {> |
||
934 | < vertexes.length; i++) { x: plotLeft,> |
||
935 | < vertexes.length; i++) { y: plotTop,> |
||
936 | < vertexes.length; i++) { z: depth> |
||
937 | < vertexes.length; i++) { }];> |
||
938 | |||
939 | < vertexes.length; i++) { // Top right corners:> |
||
940 | < vertexes.length; i++) { each([0, 1], function(i) {> |
||
941 | < vertexes.length; i++) { corners.push({> |
||
942 | < vertexes.length; i++) { x: plotRight,> |
||
943 | < vertexes.length; i++) { y: corners[i].y,> |
||
944 | < vertexes.length; i++) { z: corners[i].z> |
||
945 | < vertexes.length; i++) { });> |
||
946 | < vertexes.length; i++) { });> |
||
947 | |||
948 | < vertexes.length; i++) { // All bottom corners:> |
||
949 | < vertexes.length; i++) { each([0, 1, 2, 3], function(i) {> |
||
950 | < vertexes.length; i++) { corners.push({> |
||
951 | < vertexes.length; i++) { x: corners[i].x,> |
||
952 | < vertexes.length; i++) { y: plotBottom,> |
||
953 | < vertexes.length; i++) { z: corners[i].z> |
||
954 | < vertexes.length; i++) { });> |
||
955 | < vertexes.length; i++) { });> |
||
956 | |||
957 | < vertexes.length; i++) { // Calculate 3D corners:> |
||
958 | < vertexes.length; i++) { corners = perspective(corners, chart, false);> |
||
959 | |||
960 | < vertexes.length; i++) { // Get bounding box of 3D element:> |
||
961 | < vertexes.length; i++) { each(corners, function(corner) {> |
||
962 | < vertexes.length; i++) { bbox3d.minX = Math.min(bbox3d.minX, corner.x);> |
||
963 | < vertexes.length; i++) { bbox3d.maxX = Math.max(bbox3d.maxX, corner.x);> |
||
964 | < vertexes.length; i++) { bbox3d.minY = Math.min(bbox3d.minY, corner.y);> |
||
965 | < vertexes.length; i++) { bbox3d.maxY = Math.max(bbox3d.maxY, corner.y);> |
||
966 | < vertexes.length; i++) { });> |
||
967 | |||
968 | < vertexes.length; i++) { // Left edge:> |
||
969 | < vertexes.length; i++) { if (plotLeft > bbox3d.minX) {> |
||
970 | < vertexes.length; i++) { scale = Math.min(scale, 1 - Math.abs((plotLeft + originX) / (bbox3d.minX + originX)) % 1);> |
||
971 | < vertexes.length; i++) { }> |
||
972 | |||
973 | < vertexes.length; i++) { // Right edge:> |
||
974 | < vertexes.length; i++) { if (plotRight < bbox3d.maxX) {>> |
||
975 | < vertexes.length; i++) {< bbox3d.maxX) { scale = Math.min(scale, (plotRight - originX) / (bbox3d.maxX - originX));>> |
||
976 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
977 | |||
978 | < vertexes.length; i++) {< bbox3d.maxX) { // Top edge:>> |
||
979 | < vertexes.length; i++) {< bbox3d.maxX) { if (plotTop > bbox3d.minY) {>> |
||
980 | < vertexes.length; i++) {< bbox3d.maxX) { if (bbox3d.minY < 0) {>> |
||
981 | < vertexes.length; i++) {< bbox3d.maxX) { scale = Math.min(scale, (plotTop + originY) / (-bbox3d.minY + plotTop + originY));>> |
||
982 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
983 | < vertexes.length; i++) {< bbox3d.maxX) { scale = Math.min(scale, 1 - (plotTop + originY) / (bbox3d.minY + originY) % 1);>> |
||
984 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
985 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
986 | |||
987 | < vertexes.length; i++) {< bbox3d.maxX) { // Bottom edge:>> |
||
988 | < vertexes.length; i++) {< bbox3d.maxX) { if (plotBottom < bbox3d.maxY) {>> |
||
989 | < vertexes.length; i++) {< bbox3d.maxX) { scale = Math.min(scale, Math.abs((plotBottom - originY) / (bbox3d.maxY - originY)));>> |
||
990 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
991 | |||
992 | < vertexes.length; i++) {< bbox3d.maxX) { return scale;>> |
||
993 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
994 | |||
995 | |||
996 | |||
997 | < vertexes.length; i++) {< bbox3d.maxX) { H.wrap(H.Chart.prototype, 'isInsidePlot', function(proceed) {>> |
||
998 | < vertexes.length; i++) {< bbox3d.maxX) { return this.is3d() || proceed.apply(this, [].slice.call(arguments, 1));>> |
||
999 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1000 | |||
1001 | < vertexes.length; i++) {< bbox3d.maxX) { var defaultOptions = H.getOptions();>> |
||
1002 | < vertexes.length; i++) {< bbox3d.maxX) { merge(true, defaultOptions, {>> |
||
1003 | < vertexes.length; i++) {< bbox3d.maxX) { chart: {>> |
||
1004 | < vertexes.length; i++) {< bbox3d.maxX) { options3d: {>> |
||
1005 | < vertexes.length; i++) {< bbox3d.maxX) { enabled: false,>> |
||
1006 | < vertexes.length; i++) {< bbox3d.maxX) { alpha: 0,>> |
||
1007 | < vertexes.length; i++) {< bbox3d.maxX) { beta: 0,>> |
||
1008 | < vertexes.length; i++) {< bbox3d.maxX) { depth: 100,>> |
||
1009 | < vertexes.length; i++) {< bbox3d.maxX) { fitToPlot: true,>> |
||
1010 | < vertexes.length; i++) {< bbox3d.maxX) { viewDistance: 25,>> |
||
1011 | < vertexes.length; i++) {< bbox3d.maxX) { frame: {>> |
||
1012 | < vertexes.length; i++) {< bbox3d.maxX) { bottom: {>> |
||
1013 | < vertexes.length; i++) {< bbox3d.maxX) { size: 1>> |
||
1014 | < vertexes.length; i++) {< bbox3d.maxX) { },>> |
||
1015 | < vertexes.length; i++) {< bbox3d.maxX) { side: {>> |
||
1016 | < vertexes.length; i++) {< bbox3d.maxX) { size: 1>> |
||
1017 | < vertexes.length; i++) {< bbox3d.maxX) { },>> |
||
1018 | < vertexes.length; i++) {< bbox3d.maxX) { back: {>> |
||
1019 | < vertexes.length; i++) {< bbox3d.maxX) { size: 1>> |
||
1020 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1021 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1022 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1023 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1024 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1025 | |||
1026 | |||
1027 | |||
1028 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Chart.prototype, 'setClassName', function(proceed) {>> |
||
1029 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1030 | |||
1031 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.is3d()) {>> |
||
1032 | < vertexes.length; i++) {< bbox3d.maxX) { this.container.className += ' highcharts-3d-chart';>> |
||
1033 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1034 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1035 | |||
1036 | < vertexes.length; i++) {< bbox3d.maxX) { H.wrap(H.Chart.prototype, 'setChartSize', function(proceed) {>> |
||
1037 | < vertexes.length; i++) {< bbox3d.maxX) { var chart = this,>> |
||
1038 | < vertexes.length; i++) {< bbox3d.maxX) { options3d = chart.options.chart.options3d;>> |
||
1039 | |||
1040 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(chart, [].slice.call(arguments, 1));>> |
||
1041 | |||
1042 | < vertexes.length; i++) {< bbox3d.maxX) { if (chart.is3d()) {>> |
||
1043 | < vertexes.length; i++) {< bbox3d.maxX) { var inverted = chart.inverted,>> |
||
1044 | < vertexes.length; i++) {< bbox3d.maxX) { clipBox = chart.clipBox,>> |
||
1045 | < vertexes.length; i++) {< bbox3d.maxX) { margin = chart.margin,>> |
||
1046 | < vertexes.length; i++) {< bbox3d.maxX) { x = inverted ? 'y' : 'x',>> |
||
1047 | < vertexes.length; i++) {< bbox3d.maxX) { y = inverted ? 'x' : 'y',>> |
||
1048 | < vertexes.length; i++) {< bbox3d.maxX) { w = inverted ? 'height' : 'width',>> |
||
1049 | < vertexes.length; i++) {< bbox3d.maxX) { h = inverted ? 'width' : 'height';>> |
||
1050 | |||
1051 | < vertexes.length; i++) {< bbox3d.maxX) { clipBox[x] = -(margin[3] || 0);>> |
||
1052 | < vertexes.length; i++) {< bbox3d.maxX) { clipBox[y] = -(margin[0] || 0);>> |
||
1053 | < vertexes.length; i++) {< bbox3d.maxX) { clipBox[w] = chart.chartWidth + (margin[3] || 0) + (margin[1] || 0);>> |
||
1054 | < vertexes.length; i++) {< bbox3d.maxX) { clipBox[h] = chart.chartHeight + (margin[0] || 0) + (margin[2] || 0);>> |
||
1055 | |||
1056 | < vertexes.length; i++) {< bbox3d.maxX) { // Set scale, used later in perspective method():>> |
||
1057 | < vertexes.length; i++) {< bbox3d.maxX) { chart.scale3d = 1; // @notice getScale uses perspective, so scale3d has to be reset.>> |
||
1058 | < vertexes.length; i++) {< bbox3d.maxX) { if (options3d.fitToPlot === true) {>> |
||
1059 | < vertexes.length; i++) {< bbox3d.maxX) { chart.scale3d = getScale(chart, options3d.depth);>> |
||
1060 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1061 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1062 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1063 | |||
1064 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Chart.prototype, 'redraw', function(proceed) {>> |
||
1065 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.is3d()) {>> |
||
1066 | < vertexes.length; i++) {< bbox3d.maxX) { // Set to force a redraw of all elements>> |
||
1067 | < vertexes.length; i++) {< bbox3d.maxX) { this.isDirtyBox = true;>> |
||
1068 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1069 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1070 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1071 | |||
1072 | < vertexes.length; i++) {< bbox3d.maxX) { // Draw the series in the reverse order (#3803, #3917)>> |
||
1073 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Chart.prototype, 'renderSeries', function(proceed) {>> |
||
1074 | < vertexes.length; i++) {< bbox3d.maxX) { var series,>> |
||
1075 | < vertexes.length; i++) {< bbox3d.maxX) { i = this.series.length;>> |
||
1076 | |||
1077 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.is3d()) {>> |
||
1078 | < vertexes.length; i++) {< bbox3d.maxX) { while (i--) {>> |
||
1079 | < vertexes.length; i++) {< bbox3d.maxX) { series = this.series[i];>> |
||
1080 | < vertexes.length; i++) {< bbox3d.maxX) { series.translate();>> |
||
1081 | < vertexes.length; i++) {< bbox3d.maxX) { series.render();>> |
||
1082 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1083 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
1084 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.call(this);>> |
||
1085 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1086 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1087 | |||
1088 | < vertexes.length; i++) {< bbox3d.maxX) { Chart.prototype.retrieveStacks = function(stacking) {>> |
||
1089 | < vertexes.length; i++) {< bbox3d.maxX) { var series = this.series,>> |
||
1090 | < vertexes.length; i++) {< bbox3d.maxX) { stacks = {},>> |
||
1091 | < vertexes.length; i++) {< bbox3d.maxX) { stackNumber,>> |
||
1092 | < vertexes.length; i++) {< bbox3d.maxX) { i = 1;>> |
||
1093 | |||
1094 | < vertexes.length; i++) {< bbox3d.maxX) { each(this.series, function(s) {>> |
||
1095 | < vertexes.length; i++) {< bbox3d.maxX) { stackNumber = pick(s.options.stack, (stacking ? 0 : series.length - 1 - s.index)); // #3841, #4532>> |
||
1096 | < vertexes.length; i++) {< bbox3d.maxX) { if (!stacks[stackNumber]) {>> |
||
1097 | < vertexes.length; i++) {< bbox3d.maxX) { stacks[stackNumber] = {>> |
||
1098 | < vertexes.length; i++) {< bbox3d.maxX) { series: [s],>> |
||
1099 | < vertexes.length; i++) {< bbox3d.maxX) { position: i>> |
||
1100 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1101 | < vertexes.length; i++) {< bbox3d.maxX) { i++;>> |
||
1102 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
1103 | < vertexes.length; i++) {< bbox3d.maxX) { stacks[stackNumber].series.push(s);>> |
||
1104 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1105 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1106 | |||
1107 | < vertexes.length; i++) {< bbox3d.maxX) { stacks.totalStacks = i + 1;>> |
||
1108 | < vertexes.length; i++) {< bbox3d.maxX) { return stacks;>> |
||
1109 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1110 | |||
1111 | < vertexes.length; i++) {< bbox3d.maxX) { }(Highcharts));>> |
||
1112 | < vertexes.length; i++) {< bbox3d.maxX) { (function(H) {>> |
||
1113 | < vertexes.length; i++) {< bbox3d.maxX) { /**>> |
||
1114 | < vertexes.length; i++) {< bbox3d.maxX) { * (c) 2010-2017 Torstein Honsi>> |
||
1115 | < vertexes.length; i++) {< bbox3d.maxX) { *>> |
||
1116 | < vertexes.length; i++) {< bbox3d.maxX) { * License: www.highcharts.com/license>> |
||
1117 | < vertexes.length; i++) {< bbox3d.maxX) { */>> |
||
1118 | < vertexes.length; i++) {< bbox3d.maxX) { var ZAxis,>> |
||
1119 | |||
1120 | < vertexes.length; i++) {< bbox3d.maxX) { Axis = H.Axis,>> |
||
1121 | < vertexes.length; i++) {< bbox3d.maxX) { Chart = H.Chart,>> |
||
1122 | < vertexes.length; i++) {< bbox3d.maxX) { each = H.each,>> |
||
1123 | < vertexes.length; i++) {< bbox3d.maxX) { extend = H.extend,>> |
||
1124 | < vertexes.length; i++) {< bbox3d.maxX) { merge = H.merge,>> |
||
1125 | < vertexes.length; i++) {< bbox3d.maxX) { perspective = H.perspective,>> |
||
1126 | < vertexes.length; i++) {< bbox3d.maxX) { pick = H.pick,>> |
||
1127 | < vertexes.length; i++) {< bbox3d.maxX) { splat = H.splat,>> |
||
1128 | < vertexes.length; i++) {< bbox3d.maxX) { Tick = H.Tick,>> |
||
1129 | < vertexes.length; i++) {< bbox3d.maxX) { wrap = H.wrap;>> |
||
1130 | < vertexes.length; i++) {< bbox3d.maxX) { /***>> |
||
1131 | < vertexes.length; i++) {< bbox3d.maxX) { EXTENSION TO THE AXIS>> |
||
1132 | < vertexes.length; i++) {< bbox3d.maxX) { ***/>> |
||
1133 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Axis.prototype, 'setOptions', function(proceed, userOptions) {>> |
||
1134 | < vertexes.length; i++) {< bbox3d.maxX) { var options;>> |
||
1135 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.call(this, userOptions);>> |
||
1136 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d() && this.coll !== 'colorAxis') {>> |
||
1137 | < vertexes.length; i++) {< bbox3d.maxX) { options = this.options;>> |
||
1138 | < vertexes.length; i++) {< bbox3d.maxX) { options.tickWidth = pick(options.tickWidth, 0);>> |
||
1139 | < vertexes.length; i++) {< bbox3d.maxX) { options.gridLineWidth = pick(options.gridLineWidth, 1);>> |
||
1140 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1141 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1142 | |||
1143 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Axis.prototype, 'render', function(proceed) {>> |
||
1144 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1145 | |||
1146 | < vertexes.length; i++) {< bbox3d.maxX) { // Do not do this if the chart is not 3D>> |
||
1147 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.chart.is3d() || this.coll === 'colorAxis') {>> |
||
1148 | < vertexes.length; i++) {< bbox3d.maxX) { return;>> |
||
1149 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1150 | |||
1151 | < vertexes.length; i++) {< bbox3d.maxX) { var chart = this.chart,>> |
||
1152 | < vertexes.length; i++) {< bbox3d.maxX) { renderer = chart.renderer,>> |
||
1153 | < vertexes.length; i++) {< bbox3d.maxX) { options3d = chart.options.chart.options3d,>> |
||
1154 | < vertexes.length; i++) {< bbox3d.maxX) { frame = options3d.frame,>> |
||
1155 | < vertexes.length; i++) {< bbox3d.maxX) { fbottom = frame.bottom,>> |
||
1156 | < vertexes.length; i++) {< bbox3d.maxX) { fback = frame.back,>> |
||
1157 | < vertexes.length; i++) {< bbox3d.maxX) { fside = frame.side,>> |
||
1158 | < vertexes.length; i++) {< bbox3d.maxX) { depth = options3d.depth,>> |
||
1159 | < vertexes.length; i++) {< bbox3d.maxX) { height = this.height,>> |
||
1160 | < vertexes.length; i++) {< bbox3d.maxX) { width = this.width,>> |
||
1161 | < vertexes.length; i++) {< bbox3d.maxX) { left = this.left,>> |
||
1162 | < vertexes.length; i++) {< bbox3d.maxX) { top = this.top;>> |
||
1163 | |||
1164 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.isZAxis) {>> |
||
1165 | < vertexes.length; i++) {< bbox3d.maxX) { return;>> |
||
1166 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1167 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.horiz) {>> |
||
1168 | < vertexes.length; i++) {< bbox3d.maxX) { var bottomShape = {>> |
||
1169 | < vertexes.length; i++) {< bbox3d.maxX) { x: left,>> |
||
1170 | < vertexes.length; i++) {< bbox3d.maxX) { y: top + (chart.xAxis[0].opposite ? -fbottom.size : height),>> |
||
1171 | < vertexes.length; i++) {< bbox3d.maxX) { z: 0,>> |
||
1172 | < vertexes.length; i++) {< bbox3d.maxX) { width: width,>> |
||
1173 | < vertexes.length; i++) {< bbox3d.maxX) { height: fbottom.size,>> |
||
1174 | < vertexes.length; i++) {< bbox3d.maxX) { depth: depth,>> |
||
1175 | < vertexes.length; i++) {< bbox3d.maxX) { insidePlotArea: false>> |
||
1176 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1177 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.bottomFrame) {>> |
||
1178 | < vertexes.length; i++) {< bbox3d.maxX) { this.bottomFrame = renderer.cuboid(bottomShape).attr({>> |
||
1179 | < vertexes.length; i++) {< bbox3d.maxX) { 'class': 'highcharts-3d-frame highcharts-3d-frame-bottom',>> |
||
1180 | < vertexes.length; i++) {< bbox3d.maxX) { 'zIndex': (chart.yAxis[0].reversed && options3d.alpha > 0 ? 4 : -1)>> |
||
1181 | < vertexes.length; i++) {< bbox3d.maxX) { }).add();>> |
||
1182 | |||
1183 | |||
1184 | < vertexes.length; i++) {< bbox3d.maxX) { this.bottomFrame.attr({>> |
||
1185 | < vertexes.length; i++) {< bbox3d.maxX) { fill: fbottom.color || 'none',>> |
||
1186 | < vertexes.length; i++) {< bbox3d.maxX) { stroke: fbottom.color || 'none'>> |
||
1187 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1188 | |||
1189 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
1190 | < vertexes.length; i++) {< bbox3d.maxX) { this.bottomFrame.animate(bottomShape);>> |
||
1191 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1192 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
1193 | < vertexes.length; i++) {< bbox3d.maxX) { // BACK>> |
||
1194 | < vertexes.length; i++) {< bbox3d.maxX) { var backShape = {>> |
||
1195 | < vertexes.length; i++) {< bbox3d.maxX) { x: left + (chart.yAxis[0].opposite ? 0 : -fside.size),>> |
||
1196 | < vertexes.length; i++) {< bbox3d.maxX) { y: top + (chart.xAxis[0].opposite ? -fbottom.size : 0),>> |
||
1197 | < vertexes.length; i++) {< bbox3d.maxX) { z: depth,>> |
||
1198 | < vertexes.length; i++) {< bbox3d.maxX) { width: width + fside.size,>> |
||
1199 | < vertexes.length; i++) {< bbox3d.maxX) { height: height + fbottom.size,>> |
||
1200 | < vertexes.length; i++) {< bbox3d.maxX) { depth: fback.size,>> |
||
1201 | < vertexes.length; i++) {< bbox3d.maxX) { insidePlotArea: false>> |
||
1202 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1203 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.backFrame) {>> |
||
1204 | < vertexes.length; i++) {< bbox3d.maxX) { this.backFrame = renderer.cuboid(backShape).attr({>> |
||
1205 | < vertexes.length; i++) {< bbox3d.maxX) { 'class': 'highcharts-3d-frame highcharts-3d-frame-back',>> |
||
1206 | < vertexes.length; i++) {< bbox3d.maxX) { zIndex: -3>> |
||
1207 | < vertexes.length; i++) {< bbox3d.maxX) { }).add();>> |
||
1208 | |||
1209 | |||
1210 | < vertexes.length; i++) {< bbox3d.maxX) { this.backFrame.attr({>> |
||
1211 | < vertexes.length; i++) {< bbox3d.maxX) { fill: fback.color || 'none',>> |
||
1212 | < vertexes.length; i++) {< bbox3d.maxX) { stroke: fback.color || 'none'>> |
||
1213 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1214 | |||
1215 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
1216 | < vertexes.length; i++) {< bbox3d.maxX) { this.backFrame.animate(backShape);>> |
||
1217 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1218 | < vertexes.length; i++) {< bbox3d.maxX) { var sideShape = {>> |
||
1219 | < vertexes.length; i++) {< bbox3d.maxX) { x: left + (chart.yAxis[0].opposite ? width : -fside.size),>> |
||
1220 | < vertexes.length; i++) {< bbox3d.maxX) { y: top + (chart.xAxis[0].opposite ? -fbottom.size : 0),>> |
||
1221 | < vertexes.length; i++) {< bbox3d.maxX) { z: 0,>> |
||
1222 | < vertexes.length; i++) {< bbox3d.maxX) { width: fside.size,>> |
||
1223 | < vertexes.length; i++) {< bbox3d.maxX) { height: height + fbottom.size,>> |
||
1224 | < vertexes.length; i++) {< bbox3d.maxX) { depth: depth,>> |
||
1225 | < vertexes.length; i++) {< bbox3d.maxX) { insidePlotArea: false>> |
||
1226 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1227 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.sideFrame) {>> |
||
1228 | < vertexes.length; i++) {< bbox3d.maxX) { this.sideFrame = renderer.cuboid(sideShape).attr({>> |
||
1229 | < vertexes.length; i++) {< bbox3d.maxX) { 'class': 'highcharts-3d-frame highcharts-3d-frame-side',>> |
||
1230 | < vertexes.length; i++) {< bbox3d.maxX) { zIndex: -2>> |
||
1231 | < vertexes.length; i++) {< bbox3d.maxX) { }).add();>> |
||
1232 | |||
1233 | |||
1234 | < vertexes.length; i++) {< bbox3d.maxX) { this.sideFrame.attr({>> |
||
1235 | < vertexes.length; i++) {< bbox3d.maxX) { fill: fside.color || 'none',>> |
||
1236 | < vertexes.length; i++) {< bbox3d.maxX) { stroke: fside.color || 'none'>> |
||
1237 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1238 | |||
1239 | |||
1240 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
1241 | < vertexes.length; i++) {< bbox3d.maxX) { this.sideFrame.animate(sideShape);>> |
||
1242 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1243 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1244 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1245 | |||
1246 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Axis.prototype, 'getPlotLinePath', function(proceed) {>> |
||
1247 | < vertexes.length; i++) {< bbox3d.maxX) { var path = proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1248 | |||
1249 | < vertexes.length; i++) {< bbox3d.maxX) { // Do not do this if the chart is not 3D>> |
||
1250 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.chart.is3d() || this.coll === 'colorAxis') {>> |
||
1251 | < vertexes.length; i++) {< bbox3d.maxX) { return path;>> |
||
1252 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1253 | |||
1254 | < vertexes.length; i++) {< bbox3d.maxX) { if (path === null) {>> |
||
1255 | < vertexes.length; i++) {< bbox3d.maxX) { return path;>> |
||
1256 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1257 | |||
1258 | < vertexes.length; i++) {< bbox3d.maxX) { var chart = this.chart,>> |
||
1259 | < vertexes.length; i++) {< bbox3d.maxX) { options3d = chart.options.chart.options3d,>> |
||
1260 | < vertexes.length; i++) {< bbox3d.maxX) { d = this.isZAxis ? chart.plotWidth : options3d.depth,>> |
||
1261 | < vertexes.length; i++) {< bbox3d.maxX) { opposite = this.opposite;>> |
||
1262 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.horiz) {>> |
||
1263 | < vertexes.length; i++) {< bbox3d.maxX) { opposite = !opposite;>> |
||
1264 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1265 | < vertexes.length; i++) {< bbox3d.maxX) { var pArr = [>> |
||
1266 | < vertexes.length; i++) {< bbox3d.maxX) { this.swapZ({>> |
||
1267 | < vertexes.length; i++) {< bbox3d.maxX) { x: path[1],>> |
||
1268 | < vertexes.length; i++) {< bbox3d.maxX) { y: path[2],>> |
||
1269 | < vertexes.length; i++) {< bbox3d.maxX) { z: (opposite ? d : 0)>> |
||
1270 | < vertexes.length; i++) {< bbox3d.maxX) { }),>> |
||
1271 | < vertexes.length; i++) {< bbox3d.maxX) { this.swapZ({>> |
||
1272 | < vertexes.length; i++) {< bbox3d.maxX) { x: path[1],>> |
||
1273 | < vertexes.length; i++) {< bbox3d.maxX) { y: path[2],>> |
||
1274 | < vertexes.length; i++) {< bbox3d.maxX) { z: d>> |
||
1275 | < vertexes.length; i++) {< bbox3d.maxX) { }),>> |
||
1276 | < vertexes.length; i++) {< bbox3d.maxX) { this.swapZ({>> |
||
1277 | < vertexes.length; i++) {< bbox3d.maxX) { x: path[4],>> |
||
1278 | < vertexes.length; i++) {< bbox3d.maxX) { y: path[5],>> |
||
1279 | < vertexes.length; i++) {< bbox3d.maxX) { z: d>> |
||
1280 | < vertexes.length; i++) {< bbox3d.maxX) { }),>> |
||
1281 | < vertexes.length; i++) {< bbox3d.maxX) { this.swapZ({>> |
||
1282 | < vertexes.length; i++) {< bbox3d.maxX) { x: path[4],>> |
||
1283 | < vertexes.length; i++) {< bbox3d.maxX) { y: path[5],>> |
||
1284 | < vertexes.length; i++) {< bbox3d.maxX) { z: (opposite ? 0 : d)>> |
||
1285 | < vertexes.length; i++) {< bbox3d.maxX) { })>> |
||
1286 | < vertexes.length; i++) {< bbox3d.maxX) { ];>> |
||
1287 | |||
1288 | < vertexes.length; i++) {< bbox3d.maxX) { pArr = perspective(pArr, this.chart, false);>> |
||
1289 | < vertexes.length; i++) {< bbox3d.maxX) { path = this.chart.renderer.toLinePath(pArr, false);>> |
||
1290 | |||
1291 | < vertexes.length; i++) {< bbox3d.maxX) { return path;>> |
||
1292 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1293 | |||
1294 | < vertexes.length; i++) {< bbox3d.maxX) { // Do not draw axislines in 3D>> |
||
1295 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Axis.prototype, 'getLinePath', function(proceed) {>> |
||
1296 | < vertexes.length; i++) {< bbox3d.maxX) { return this.chart.is3d() ? [] : proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1297 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1298 | |||
1299 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Axis.prototype, 'getPlotBandPath', function(proceed) {>> |
||
1300 | < vertexes.length; i++) {< bbox3d.maxX) { // Do not do this if the chart is not 3D>> |
||
1301 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.chart.is3d() || this.coll === 'colorAxis') {>> |
||
1302 | < vertexes.length; i++) {< bbox3d.maxX) { return proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1303 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1304 | |||
1305 | < vertexes.length; i++) {< bbox3d.maxX) { var args = arguments,>> |
||
1306 | < vertexes.length; i++) {< bbox3d.maxX) { from = args[1],>> |
||
1307 | < vertexes.length; i++) {< bbox3d.maxX) { to = args[2],>> |
||
1308 | < vertexes.length; i++) {< bbox3d.maxX) { toPath = this.getPlotLinePath(to),>> |
||
1309 | < vertexes.length; i++) {< bbox3d.maxX) { path = this.getPlotLinePath(from);>> |
||
1310 | |||
1311 | < vertexes.length; i++) {< bbox3d.maxX) { if (path && toPath) {>> |
||
1312 | < vertexes.length; i++) {< bbox3d.maxX) { path.push(>> |
||
1313 | < vertexes.length; i++) {< bbox3d.maxX) { 'L',>> |
||
1314 | < vertexes.length; i++) {< bbox3d.maxX) { toPath[10], // These two do not exist in the regular getPlotLine>> |
||
1315 | < vertexes.length; i++) {< bbox3d.maxX) { toPath[11], // ---- # 3005>> |
||
1316 | < vertexes.length; i++) {< bbox3d.maxX) { 'L',>> |
||
1317 | < vertexes.length; i++) {< bbox3d.maxX) { toPath[7],>> |
||
1318 | < vertexes.length; i++) {< bbox3d.maxX) { toPath[8],>> |
||
1319 | < vertexes.length; i++) {< bbox3d.maxX) { 'L',>> |
||
1320 | < vertexes.length; i++) {< bbox3d.maxX) { toPath[4],>> |
||
1321 | < vertexes.length; i++) {< bbox3d.maxX) { toPath[5],>> |
||
1322 | < vertexes.length; i++) {< bbox3d.maxX) { 'L',>> |
||
1323 | < vertexes.length; i++) {< bbox3d.maxX) { toPath[1],>> |
||
1324 | < vertexes.length; i++) {< bbox3d.maxX) { toPath[2]>> |
||
1325 | < vertexes.length; i++) {< bbox3d.maxX) { );>> |
||
1326 | < vertexes.length; i++) {< bbox3d.maxX) { } else { // outside the axis area>> |
||
1327 | < vertexes.length; i++) {< bbox3d.maxX) { path = null;>> |
||
1328 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1329 | |||
1330 | < vertexes.length; i++) {< bbox3d.maxX) { return path;>> |
||
1331 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1332 | |||
1333 | < vertexes.length; i++) {< bbox3d.maxX) { /***>> |
||
1334 | < vertexes.length; i++) {< bbox3d.maxX) { EXTENSION TO THE TICKS>> |
||
1335 | < vertexes.length; i++) {< bbox3d.maxX) { ***/>> |
||
1336 | |||
1337 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Tick.prototype, 'getMarkPath', function(proceed) {>> |
||
1338 | < vertexes.length; i++) {< bbox3d.maxX) { var path = proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1339 | |||
1340 | < vertexes.length; i++) {< bbox3d.maxX) { // Do not do this if the chart is not 3D>> |
||
1341 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.axis.chart.is3d() || this.coll === 'colorAxis') {>> |
||
1342 | < vertexes.length; i++) {< bbox3d.maxX) { return path;>> |
||
1343 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1344 | |||
1345 | < vertexes.length; i++) {< bbox3d.maxX) { var pArr = [>> |
||
1346 | < vertexes.length; i++) {< bbox3d.maxX) { this.axis.swapZ({>> |
||
1347 | < vertexes.length; i++) {< bbox3d.maxX) { x: path[1],>> |
||
1348 | < vertexes.length; i++) {< bbox3d.maxX) { y: path[2],>> |
||
1349 | < vertexes.length; i++) {< bbox3d.maxX) { z: 0>> |
||
1350 | < vertexes.length; i++) {< bbox3d.maxX) { }),>> |
||
1351 | < vertexes.length; i++) {< bbox3d.maxX) { this.axis.swapZ({>> |
||
1352 | < vertexes.length; i++) {< bbox3d.maxX) { x: path[4],>> |
||
1353 | < vertexes.length; i++) {< bbox3d.maxX) { y: path[5],>> |
||
1354 | < vertexes.length; i++) {< bbox3d.maxX) { z: 0>> |
||
1355 | < vertexes.length; i++) {< bbox3d.maxX) { })>> |
||
1356 | < vertexes.length; i++) {< bbox3d.maxX) { ];>> |
||
1357 | |||
1358 | < vertexes.length; i++) {< bbox3d.maxX) { pArr = perspective(pArr, this.axis.chart, false);>> |
||
1359 | < vertexes.length; i++) {< bbox3d.maxX) { path = [>> |
||
1360 | < vertexes.length; i++) {< bbox3d.maxX) { 'M', pArr[0].x, pArr[0].y,>> |
||
1361 | < vertexes.length; i++) {< bbox3d.maxX) { 'L', pArr[1].x, pArr[1].y>> |
||
1362 | < vertexes.length; i++) {< bbox3d.maxX) { ];>> |
||
1363 | < vertexes.length; i++) {< bbox3d.maxX) { return path;>> |
||
1364 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1365 | |||
1366 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Tick.prototype, 'getLabelPosition', function(proceed) {>> |
||
1367 | < vertexes.length; i++) {< bbox3d.maxX) { var pos = proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1368 | |||
1369 | < vertexes.length; i++) {< bbox3d.maxX) { // Do not do this if the chart is not 3D>> |
||
1370 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.axis.chart.is3d() && this.coll !== 'colorAxis') {>> |
||
1371 | < vertexes.length; i++) {< bbox3d.maxX) { pos = perspective([this.axis.swapZ({>> |
||
1372 | < vertexes.length; i++) {< bbox3d.maxX) { x: pos.x,>> |
||
1373 | < vertexes.length; i++) {< bbox3d.maxX) { y: pos.y,>> |
||
1374 | < vertexes.length; i++) {< bbox3d.maxX) { z: 0>> |
||
1375 | < vertexes.length; i++) {< bbox3d.maxX) { })], this.axis.chart, false)[0];>> |
||
1376 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1377 | < vertexes.length; i++) {< bbox3d.maxX) { return pos;>> |
||
1378 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1379 | |||
1380 | < vertexes.length; i++) {< bbox3d.maxX) { H.wrap(Axis.prototype, 'getTitlePosition', function(proceed) {>> |
||
1381 | < vertexes.length; i++) {< bbox3d.maxX) { var is3d = this.chart.is3d() && this.coll !== 'colorAxis',>> |
||
1382 | < vertexes.length; i++) {< bbox3d.maxX) { pos,>> |
||
1383 | < vertexes.length; i++) {< bbox3d.maxX) { axisTitleMargin;>> |
||
1384 | |||
1385 | < vertexes.length; i++) {< bbox3d.maxX) { // Pull out the axis title margin, that is not subject to the perspective>> |
||
1386 | < vertexes.length; i++) {< bbox3d.maxX) { if (is3d) {>> |
||
1387 | < vertexes.length; i++) {< bbox3d.maxX) { axisTitleMargin = this.axisTitleMargin;>> |
||
1388 | < vertexes.length; i++) {< bbox3d.maxX) { this.axisTitleMargin = 0;>> |
||
1389 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1390 | |||
1391 | < vertexes.length; i++) {< bbox3d.maxX) { pos = proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1392 | |||
1393 | < vertexes.length; i++) {< bbox3d.maxX) { if (is3d) {>> |
||
1394 | < vertexes.length; i++) {< bbox3d.maxX) { pos = perspective([this.swapZ({>> |
||
1395 | < vertexes.length; i++) {< bbox3d.maxX) { x: pos.x,>> |
||
1396 | < vertexes.length; i++) {< bbox3d.maxX) { y: pos.y,>> |
||
1397 | < vertexes.length; i++) {< bbox3d.maxX) { z: 0>> |
||
1398 | < vertexes.length; i++) {< bbox3d.maxX) { })], this.chart, false)[0];>> |
||
1399 | |||
1400 | < vertexes.length; i++) {< bbox3d.maxX) { // Re-apply the axis title margin outside the perspective>> |
||
1401 | < vertexes.length; i++) {< bbox3d.maxX) { pos[this.horiz ? 'y' : 'x'] += (this.horiz ? 1 : -1) * // horizontal axis reverses the margin ...>> |
||
1402 | < vertexes.length; i++) {< bbox3d.maxX) { (this.opposite ? -1 : 1) * // ... so does opposite axes>> |
||
1403 | < vertexes.length; i++) {< bbox3d.maxX) { axisTitleMargin;>> |
||
1404 | < vertexes.length; i++) {< bbox3d.maxX) { this.axisTitleMargin = axisTitleMargin;>> |
||
1405 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1406 | < vertexes.length; i++) {< bbox3d.maxX) { return pos;>> |
||
1407 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1408 | |||
1409 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Axis.prototype, 'drawCrosshair', function(proceed) {>> |
||
1410 | < vertexes.length; i++) {< bbox3d.maxX) { var args = arguments;>> |
||
1411 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d()) {>> |
||
1412 | < vertexes.length; i++) {< bbox3d.maxX) { if (args[2]) {>> |
||
1413 | < vertexes.length; i++) {< bbox3d.maxX) { args[2] = {>> |
||
1414 | < vertexes.length; i++) {< bbox3d.maxX) { plotX: args[2].plotXold || args[2].plotX,>> |
||
1415 | < vertexes.length; i++) {< bbox3d.maxX) { plotY: args[2].plotYold || args[2].plotY>> |
||
1416 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1417 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1418 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1419 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(args, 1));>> |
||
1420 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1421 | |||
1422 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Axis.prototype, 'destroy', function(proceed) {>> |
||
1423 | < vertexes.length; i++) {< bbox3d.maxX) { each(['backFrame', 'bottomFrame', 'sideFrame'], function(prop) {>> |
||
1424 | < vertexes.length; i++) {< bbox3d.maxX) { if (this[prop]) {>> |
||
1425 | < vertexes.length; i++) {< bbox3d.maxX) { this[prop] = this[prop].destroy();>> |
||
1426 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1427 | < vertexes.length; i++) {< bbox3d.maxX) { }, this);>> |
||
1428 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1429 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1430 | |||
1431 | < vertexes.length; i++) {< bbox3d.maxX) { /***>> |
||
1432 | < vertexes.length; i++) {< bbox3d.maxX) { Z-AXIS>> |
||
1433 | < vertexes.length; i++) {< bbox3d.maxX) { ***/>> |
||
1434 | |||
1435 | < vertexes.length; i++) {< bbox3d.maxX) { Axis.prototype.swapZ = function(p, insidePlotArea) {>> |
||
1436 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.isZAxis) {>> |
||
1437 | < vertexes.length; i++) {< bbox3d.maxX) { var plotLeft = insidePlotArea ? 0 : this.chart.plotLeft;>> |
||
1438 | < vertexes.length; i++) {< bbox3d.maxX) { var chart = this.chart;>> |
||
1439 | < vertexes.length; i++) {< bbox3d.maxX) { return {>> |
||
1440 | < vertexes.length; i++) {< bbox3d.maxX) { x: plotLeft + (chart.yAxis[0].opposite ? p.z : chart.xAxis[0].width - p.z),>> |
||
1441 | < vertexes.length; i++) {< bbox3d.maxX) { y: p.y,>> |
||
1442 | < vertexes.length; i++) {< bbox3d.maxX) { z: p.x - plotLeft>> |
||
1443 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1444 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1445 | < vertexes.length; i++) {< bbox3d.maxX) { return p;>> |
||
1446 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1447 | |||
1448 | < vertexes.length; i++) {< bbox3d.maxX) { ZAxis = H.ZAxis = function() {>> |
||
1449 | < vertexes.length; i++) {< bbox3d.maxX) { this.init.apply(this, arguments);>> |
||
1450 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1451 | < vertexes.length; i++) {< bbox3d.maxX) { extend(ZAxis.prototype, Axis.prototype);>> |
||
1452 | < vertexes.length; i++) {< bbox3d.maxX) { extend(ZAxis.prototype, {>> |
||
1453 | < vertexes.length; i++) {< bbox3d.maxX) { isZAxis: true,>> |
||
1454 | < vertexes.length; i++) {< bbox3d.maxX) { setOptions: function(userOptions) {>> |
||
1455 | < vertexes.length; i++) {< bbox3d.maxX) { userOptions = merge({>> |
||
1456 | < vertexes.length; i++) {< bbox3d.maxX) { offset: 0,>> |
||
1457 | < vertexes.length; i++) {< bbox3d.maxX) { lineWidth: 0>> |
||
1458 | < vertexes.length; i++) {< bbox3d.maxX) { }, userOptions);>> |
||
1459 | < vertexes.length; i++) {< bbox3d.maxX) { Axis.prototype.setOptions.call(this, userOptions);>> |
||
1460 | < vertexes.length; i++) {< bbox3d.maxX) { this.coll = 'zAxis';>> |
||
1461 | < vertexes.length; i++) {< bbox3d.maxX) { },>> |
||
1462 | < vertexes.length; i++) {< bbox3d.maxX) { setAxisSize: function() {>> |
||
1463 | < vertexes.length; i++) {< bbox3d.maxX) { Axis.prototype.setAxisSize.call(this);>> |
||
1464 | < vertexes.length; i++) {< bbox3d.maxX) { this.width = this.len = this.chart.options.chart.options3d.depth;>> |
||
1465 | < vertexes.length; i++) {< bbox3d.maxX) { this.right = this.chart.chartWidth - this.width - this.left;>> |
||
1466 | < vertexes.length; i++) {< bbox3d.maxX) { },>> |
||
1467 | < vertexes.length; i++) {< bbox3d.maxX) { getSeriesExtremes: function() {>> |
||
1468 | < vertexes.length; i++) {< bbox3d.maxX) { var axis = this,>> |
||
1469 | < vertexes.length; i++) {< bbox3d.maxX) { chart = axis.chart;>> |
||
1470 | |||
1471 | < vertexes.length; i++) {< bbox3d.maxX) { axis.hasVisibleSeries = false;>> |
||
1472 | |||
1473 | < vertexes.length; i++) {< bbox3d.maxX) { // Reset properties in case we're redrawing (#3353)>> |
||
1474 | < vertexes.length; i++) {< bbox3d.maxX) { axis.dataMin = axis.dataMax = axis.ignoreMinPadding = axis.ignoreMaxPadding = null;>> |
||
1475 | |||
1476 | < vertexes.length; i++) {< bbox3d.maxX) { if (axis.buildStacks) {>> |
||
1477 | < vertexes.length; i++) {< bbox3d.maxX) { axis.buildStacks();>> |
||
1478 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1479 | |||
1480 | < vertexes.length; i++) {< bbox3d.maxX) { // loop through this axis' series>> |
||
1481 | < vertexes.length; i++) {< bbox3d.maxX) { each(axis.series, function(series) {>> |
||
1482 | |||
1483 | < vertexes.length; i++) {< bbox3d.maxX) { if (series.visible || !chart.options.chart.ignoreHiddenSeries) {>> |
||
1484 | |||
1485 | < vertexes.length; i++) {< bbox3d.maxX) { var seriesOptions = series.options,>> |
||
1486 | < vertexes.length; i++) {< bbox3d.maxX) { zData,>> |
||
1487 | < vertexes.length; i++) {< bbox3d.maxX) { threshold = seriesOptions.threshold;>> |
||
1488 | |||
1489 | < vertexes.length; i++) {< bbox3d.maxX) { axis.hasVisibleSeries = true;>> |
||
1490 | |||
1491 | < vertexes.length; i++) {< bbox3d.maxX) { // Validate threshold in logarithmic axes>> |
||
1492 | < vertexes.length; i++) {< bbox3d.maxX) { if (axis.positiveValuesOnly && threshold <= 0) {>> |
||
1493 | < vertexes.length; i++) {< bbox3d.maxX) { threshold = null;>> |
||
1494 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1495 | |||
1496 | < vertexes.length; i++) {< bbox3d.maxX) { zData = series.zData;>> |
||
1497 | < vertexes.length; i++) {< bbox3d.maxX) { if (zData.length) {>> |
||
1498 | < vertexes.length; i++) {< bbox3d.maxX) { axis.dataMin = Math.min(pick(axis.dataMin, zData[0]), Math.min.apply(null, zData));>> |
||
1499 | < vertexes.length; i++) {< bbox3d.maxX) { axis.dataMax = Math.max(pick(axis.dataMax, zData[0]), Math.max.apply(null, zData));>> |
||
1500 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1501 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1502 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1503 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1504 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1505 | |||
1506 | |||
1507 | < vertexes.length; i++) {< bbox3d.maxX) { /**>> |
||
1508 | < vertexes.length; i++) {< bbox3d.maxX) { * Extend the chart getAxes method to also get the color axis>> |
||
1509 | < vertexes.length; i++) {< bbox3d.maxX) { */>> |
||
1510 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Chart.prototype, 'getAxes', function(proceed) {>> |
||
1511 | < vertexes.length; i++) {< bbox3d.maxX) { var chart = this,>> |
||
1512 | < vertexes.length; i++) {< bbox3d.maxX) { options = this.options,>> |
||
1513 | < vertexes.length; i++) {< bbox3d.maxX) { zAxisOptions = options.zAxis = splat(options.zAxis || {});>> |
||
1514 | |||
1515 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.call(this);>> |
||
1516 | |||
1517 | < vertexes.length; i++) {< bbox3d.maxX) { if (!chart.is3d()) {>> |
||
1518 | < vertexes.length; i++) {< bbox3d.maxX) { return;>> |
||
1519 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1520 | < vertexes.length; i++) {< bbox3d.maxX) { this.zAxis = [];>> |
||
1521 | < vertexes.length; i++) {< bbox3d.maxX) { each(zAxisOptions, function(axisOptions, i) {>> |
||
1522 | < vertexes.length; i++) {< bbox3d.maxX) { axisOptions.index = i;>> |
||
1523 | < vertexes.length; i++) {< bbox3d.maxX) { axisOptions.isX = true; //Z-Axis is shown horizontally, so it's kind of a X-Axis>> |
||
1524 | < vertexes.length; i++) {< bbox3d.maxX) { var zAxis = new ZAxis(chart, axisOptions);>> |
||
1525 | < vertexes.length; i++) {< bbox3d.maxX) { zAxis.setScale();>> |
||
1526 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1527 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1528 | |||
1529 | < vertexes.length; i++) {< bbox3d.maxX) { }(Highcharts));>> |
||
1530 | < vertexes.length; i++) {< bbox3d.maxX) { (function(H) {>> |
||
1531 | < vertexes.length; i++) {< bbox3d.maxX) { /**>> |
||
1532 | < vertexes.length; i++) {< bbox3d.maxX) { * (c) 2010-2017 Torstein Honsi>> |
||
1533 | < vertexes.length; i++) {< bbox3d.maxX) { *>> |
||
1534 | < vertexes.length; i++) {< bbox3d.maxX) { * License: www.highcharts.com/license>> |
||
1535 | < vertexes.length; i++) {< bbox3d.maxX) { */>> |
||
1536 | < vertexes.length; i++) {< bbox3d.maxX) { var each = H.each,>> |
||
1537 | < vertexes.length; i++) {< bbox3d.maxX) { perspective = H.perspective,>> |
||
1538 | < vertexes.length; i++) {< bbox3d.maxX) { pick = H.pick,>> |
||
1539 | < vertexes.length; i++) {< bbox3d.maxX) { Series = H.Series,>> |
||
1540 | < vertexes.length; i++) {< bbox3d.maxX) { seriesTypes = H.seriesTypes,>> |
||
1541 | < vertexes.length; i++) {< bbox3d.maxX) { svg = H.svg,>> |
||
1542 | < vertexes.length; i++) {< bbox3d.maxX) { wrap = H.wrap;>> |
||
1543 | < vertexes.length; i++) {< bbox3d.maxX) { /***>> |
||
1544 | < vertexes.length; i++) {< bbox3d.maxX) { EXTENSION FOR 3D COLUMNS>> |
||
1545 | < vertexes.length; i++) {< bbox3d.maxX) { ***/>> |
||
1546 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.column.prototype, 'translate', function(proceed) {>> |
||
1547 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1548 | |||
1549 | < vertexes.length; i++) {< bbox3d.maxX) { // Do not do this if the chart is not 3D>> |
||
1550 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.chart.is3d()) {>> |
||
1551 | < vertexes.length; i++) {< bbox3d.maxX) { return;>> |
||
1552 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1553 | |||
1554 | < vertexes.length; i++) {< bbox3d.maxX) { var series = this,>> |
||
1555 | < vertexes.length; i++) {< bbox3d.maxX) { chart = series.chart,>> |
||
1556 | < vertexes.length; i++) {< bbox3d.maxX) { seriesOptions = series.options,>> |
||
1557 | < vertexes.length; i++) {< bbox3d.maxX) { depth = seriesOptions.depth || 25;>> |
||
1558 | |||
1559 | < vertexes.length; i++) {< bbox3d.maxX) { var stack = seriesOptions.stacking ? (seriesOptions.stack || 0) : series._i;>> |
||
1560 | < vertexes.length; i++) {< bbox3d.maxX) { var z = stack * (depth + (seriesOptions.groupZPadding || 1));>> |
||
1561 | |||
1562 | < vertexes.length; i++) {< bbox3d.maxX) { if (seriesOptions.grouping !== false) {>> |
||
1563 | < vertexes.length; i++) {< bbox3d.maxX) { z = 0;>> |
||
1564 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1565 | |||
1566 | < vertexes.length; i++) {< bbox3d.maxX) { z += (seriesOptions.groupZPadding || 1);>> |
||
1567 | |||
1568 | < vertexes.length; i++) {< bbox3d.maxX) { each(series.data, function(point) {>> |
||
1569 | < vertexes.length; i++) {< bbox3d.maxX) { if (point.y !== null) {>> |
||
1570 | < vertexes.length; i++) {< bbox3d.maxX) { var shapeArgs = point.shapeArgs,>> |
||
1571 | < vertexes.length; i++) {< bbox3d.maxX) { tooltipPos = point.tooltipPos;>> |
||
1572 | |||
1573 | < vertexes.length; i++) {< bbox3d.maxX) { point.shapeType = 'cuboid';>> |
||
1574 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.z = z;>> |
||
1575 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.depth = depth;>> |
||
1576 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.insidePlotArea = true;>> |
||
1577 | |||
1578 | < vertexes.length; i++) {< bbox3d.maxX) { // Translate the tooltip position in 3d space>> |
||
1579 | < vertexes.length; i++) {< bbox3d.maxX) { tooltipPos = perspective([{>> |
||
1580 | < vertexes.length; i++) {< bbox3d.maxX) { x: tooltipPos[0],>> |
||
1581 | < vertexes.length; i++) {< bbox3d.maxX) { y: tooltipPos[1],>> |
||
1582 | < vertexes.length; i++) {< bbox3d.maxX) { z: z>> |
||
1583 | < vertexes.length; i++) {< bbox3d.maxX) { }], chart, true)[0];>> |
||
1584 | < vertexes.length; i++) {< bbox3d.maxX) { point.tooltipPos = [tooltipPos.x, tooltipPos.y];>> |
||
1585 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1586 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1587 | < vertexes.length; i++) {< bbox3d.maxX) { // store for later use #4067>> |
||
1588 | < vertexes.length; i++) {< bbox3d.maxX) { series.z = z;>> |
||
1589 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1590 | |||
1591 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.column.prototype, 'animate', function(proceed) {>> |
||
1592 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.chart.is3d()) {>> |
||
1593 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1594 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
1595 | < vertexes.length; i++) {< bbox3d.maxX) { var args = arguments,>> |
||
1596 | < vertexes.length; i++) {< bbox3d.maxX) { init = args[1],>> |
||
1597 | < vertexes.length; i++) {< bbox3d.maxX) { yAxis = this.yAxis,>> |
||
1598 | < vertexes.length; i++) {< bbox3d.maxX) { series = this,>> |
||
1599 | < vertexes.length; i++) {< bbox3d.maxX) { reversed = this.yAxis.reversed;>> |
||
1600 | |||
1601 | < vertexes.length; i++) {< bbox3d.maxX) { if (svg) { // VML is too slow anyway>> |
||
1602 | < vertexes.length; i++) {< bbox3d.maxX) { if (init) {>> |
||
1603 | < vertexes.length; i++) {< bbox3d.maxX) { each(series.data, function(point) {>> |
||
1604 | < vertexes.length; i++) {< bbox3d.maxX) { if (point.y !== null) {>> |
||
1605 | < vertexes.length; i++) {< bbox3d.maxX) { point.height = point.shapeArgs.height;>> |
||
1606 | < vertexes.length; i++) {< bbox3d.maxX) { point.shapey = point.shapeArgs.y; //#2968>> |
||
1607 | < vertexes.length; i++) {< bbox3d.maxX) { point.shapeArgs.height = 1;>> |
||
1608 | < vertexes.length; i++) {< bbox3d.maxX) { if (!reversed) {>> |
||
1609 | < vertexes.length; i++) {< bbox3d.maxX) { if (point.stackY) {>> |
||
1610 | < vertexes.length; i++) {< bbox3d.maxX) { point.shapeArgs.y = point.plotY + yAxis.translate(point.stackY);>> |
||
1611 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
1612 | < vertexes.length; i++) {< bbox3d.maxX) { point.shapeArgs.y = point.plotY + (point.negative ? -point.height : point.height);>> |
||
1613 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1614 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1615 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1616 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1617 | |||
1618 | < vertexes.length; i++) {< bbox3d.maxX) { } else { // run the animation >> |
||
1619 | < vertexes.length; i++) {< bbox3d.maxX) { each(series.data, function(point) {>> |
||
1620 | < vertexes.length; i++) {< bbox3d.maxX) { if (point.y !== null) {>> |
||
1621 | < vertexes.length; i++) {< bbox3d.maxX) { point.shapeArgs.height = point.height;>> |
||
1622 | < vertexes.length; i++) {< bbox3d.maxX) { point.shapeArgs.y = point.shapey; //#2968>> |
||
1623 | < vertexes.length; i++) {< bbox3d.maxX) { // null value do not have a graphic>> |
||
1624 | < vertexes.length; i++) {< bbox3d.maxX) { if (point.graphic) {>> |
||
1625 | < vertexes.length; i++) {< bbox3d.maxX) { point.graphic.animate(point.shapeArgs, series.options.animation);>> |
||
1626 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1627 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1628 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1629 | |||
1630 | < vertexes.length; i++) {< bbox3d.maxX) { // redraw datalabels to the correct position>> |
||
1631 | < vertexes.length; i++) {< bbox3d.maxX) { this.drawDataLabels();>> |
||
1632 | |||
1633 | < vertexes.length; i++) {< bbox3d.maxX) { // delete this function to allow it only once>> |
||
1634 | < vertexes.length; i++) {< bbox3d.maxX) { series.animate = null;>> |
||
1635 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1636 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1637 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1638 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1639 | |||
1640 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.column.prototype, 'init', function(proceed) {>> |
||
1641 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1642 | |||
1643 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d()) {>> |
||
1644 | < vertexes.length; i++) {< bbox3d.maxX) { var seriesOptions = this.options,>> |
||
1645 | < vertexes.length; i++) {< bbox3d.maxX) { grouping = seriesOptions.grouping,>> |
||
1646 | < vertexes.length; i++) {< bbox3d.maxX) { stacking = seriesOptions.stacking,>> |
||
1647 | < vertexes.length; i++) {< bbox3d.maxX) { reversedStacks = pick(this.yAxis.options.reversedStacks, true),>> |
||
1648 | < vertexes.length; i++) {< bbox3d.maxX) { z = 0;>> |
||
1649 | |||
1650 | < vertexes.length; i++) {< bbox3d.maxX) { if (!(grouping !== undefined && !grouping)) {>> |
||
1651 | < vertexes.length; i++) {< bbox3d.maxX) { var stacks = this.chart.retrieveStacks(stacking),>> |
||
1652 | < vertexes.length; i++) {< bbox3d.maxX) { stack = seriesOptions.stack || 0,>> |
||
1653 | < vertexes.length; i++) {< bbox3d.maxX) { i; // position within the stack>> |
||
1654 | < vertexes.length; i++) {< bbox3d.maxX) { for (i = 0; i < stacks[stack].series.length; i++) {>> |
||
1655 | < vertexes.length; i++) {< bbox3d.maxX) { if (stacks[stack].series[i] === this) {>> |
||
1656 | < vertexes.length; i++) {< bbox3d.maxX) { break;>> |
||
1657 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1658 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1659 | < vertexes.length; i++) {< bbox3d.maxX) { z = (10 * (stacks.totalStacks - stacks[stack].position)) + (reversedStacks ? i : -i); // #4369>> |
||
1660 | |||
1661 | < vertexes.length; i++) {< bbox3d.maxX) { // In case when axis is reversed, columns are also reversed inside the group (#3737)>> |
||
1662 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.xAxis.reversed) {>> |
||
1663 | < vertexes.length; i++) {< bbox3d.maxX) { z = (stacks.totalStacks * 10) - z;>> |
||
1664 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1665 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1666 | |||
1667 | < vertexes.length; i++) {< bbox3d.maxX) { seriesOptions.zIndex = z;>> |
||
1668 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1669 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1670 | |||
1671 | |||
1672 | < vertexes.length; i++) {< bbox3d.maxX) { function pointAttribs(proceed) {>> |
||
1673 | < vertexes.length; i++) {< bbox3d.maxX) { var attr = proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1674 | |||
1675 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d()) {>> |
||
1676 | < vertexes.length; i++) {< bbox3d.maxX) { // Set the fill color to the fill color to provide a smooth edge>> |
||
1677 | < vertexes.length; i++) {< bbox3d.maxX) { attr.stroke = this.options.edgeColor || attr.fill;>> |
||
1678 | < vertexes.length; i++) {< bbox3d.maxX) { attr['stroke-width'] = pick(this.options.edgeWidth, 1); // #4055>> |
||
1679 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1680 | |||
1681 | < vertexes.length; i++) {< bbox3d.maxX) { return attr;>> |
||
1682 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1683 | |||
1684 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.column.prototype, 'pointAttribs', pointAttribs);>> |
||
1685 | < vertexes.length; i++) {< bbox3d.maxX) { if (seriesTypes.columnrange) {>> |
||
1686 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.columnrange.prototype, 'pointAttribs', pointAttribs);>> |
||
1687 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1688 | |||
1689 | |||
1690 | < vertexes.length; i++) {< bbox3d.maxX) { function draw3DPoints(proceed) {>> |
||
1691 | < vertexes.length; i++) {< bbox3d.maxX) { // Do not do this if the chart is not 3D>> |
||
1692 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d()) {>> |
||
1693 | < vertexes.length; i++) {< bbox3d.maxX) { var grouping = this.chart.options.plotOptions.column.grouping;>> |
||
1694 | < vertexes.length; i++) {< bbox3d.maxX) { if (grouping !== undefined && !grouping && this.group.zIndex !== undefined && !this.zIndexSet) {>> |
||
1695 | < vertexes.length; i++) {< bbox3d.maxX) { this.group.attr({>> |
||
1696 | < vertexes.length; i++) {< bbox3d.maxX) { zIndex: this.group.zIndex * 10>> |
||
1697 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1698 | < vertexes.length; i++) {< bbox3d.maxX) { this.zIndexSet = true; // #4062 set zindex only once>> |
||
1699 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1700 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1701 | |||
1702 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1703 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1704 | |||
1705 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Series.prototype, 'alignDataLabel', function(proceed) {>> |
||
1706 | |||
1707 | < vertexes.length; i++) {< bbox3d.maxX) { // Only do this for 3D columns and columnranges>> |
||
1708 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d() && (this.type === 'column' || this.type === 'columnrange')) {>> |
||
1709 | < vertexes.length; i++) {< bbox3d.maxX) { var series = this,>> |
||
1710 | < vertexes.length; i++) {< bbox3d.maxX) { chart = series.chart;>> |
||
1711 | |||
1712 | < vertexes.length; i++) {< bbox3d.maxX) { var args = arguments,>> |
||
1713 | < vertexes.length; i++) {< bbox3d.maxX) { alignTo = args[4];>> |
||
1714 | |||
1715 | < vertexes.length; i++) {< bbox3d.maxX) { var pos = ({>> |
||
1716 | < vertexes.length; i++) {< bbox3d.maxX) { x: alignTo.x,>> |
||
1717 | < vertexes.length; i++) {< bbox3d.maxX) { y: alignTo.y,>> |
||
1718 | < vertexes.length; i++) {< bbox3d.maxX) { z: series.z>> |
||
1719 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1720 | < vertexes.length; i++) {< bbox3d.maxX) { pos = perspective([pos], chart, true)[0];>> |
||
1721 | < vertexes.length; i++) {< bbox3d.maxX) { alignTo.x = pos.x;>> |
||
1722 | < vertexes.length; i++) {< bbox3d.maxX) { alignTo.y = pos.y;>> |
||
1723 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1724 | |||
1725 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1726 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1727 | |||
1728 | < vertexes.length; i++) {< bbox3d.maxX) { if (seriesTypes.columnrange) {>> |
||
1729 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.columnrange.prototype, 'drawPoints', draw3DPoints);>> |
||
1730 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1731 | |||
1732 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.column.prototype, 'drawPoints', draw3DPoints);>> |
||
1733 | |||
1734 | < vertexes.length; i++) {< bbox3d.maxX) { /***>> |
||
1735 | < vertexes.length; i++) {< bbox3d.maxX) { EXTENSION FOR 3D CYLINDRICAL COLUMNS>> |
||
1736 | < vertexes.length; i++) {< bbox3d.maxX) { Not supported>> |
||
1737 | < vertexes.length; i++) {< bbox3d.maxX) { ***/>> |
||
1738 | < vertexes.length; i++) {< bbox3d.maxX) { /*>> |
||
1739 | < vertexes.length; i++) {< bbox3d.maxX) { var defaultOptions = H.getOptions();>> |
||
1740 | < vertexes.length; i++) {< bbox3d.maxX) { defaultOptions.plotOptions.cylinder = H.merge(defaultOptions.plotOptions.column);>> |
||
1741 | < vertexes.length; i++) {< bbox3d.maxX) { var CylinderSeries = H.extendClass(seriesTypes.column, {>> |
||
1742 | < vertexes.length; i++) {< bbox3d.maxX) { type: 'cylinder'>> |
||
1743 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1744 | < vertexes.length; i++) {< bbox3d.maxX) { seriesTypes.cylinder = CylinderSeries;>> |
||
1745 | |||
1746 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.cylinder.prototype, 'translate', function (proceed) {>> |
||
1747 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1748 | |||
1749 | < vertexes.length; i++) {< bbox3d.maxX) { // Do not do this if the chart is not 3D>> |
||
1750 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.chart.is3d()) {>> |
||
1751 | < vertexes.length; i++) {< bbox3d.maxX) { return;>> |
||
1752 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1753 | |||
1754 | < vertexes.length; i++) {< bbox3d.maxX) { var series = this,>> |
||
1755 | < vertexes.length; i++) {< bbox3d.maxX) { chart = series.chart,>> |
||
1756 | < vertexes.length; i++) {< bbox3d.maxX) { options = chart.options,>> |
||
1757 | < vertexes.length; i++) {< bbox3d.maxX) { cylOptions = options.plotOptions.cylinder,>> |
||
1758 | < vertexes.length; i++) {< bbox3d.maxX) { options3d = options.chart.options3d,>> |
||
1759 | < vertexes.length; i++) {< bbox3d.maxX) { depth = cylOptions.depth || 0,>> |
||
1760 | < vertexes.length; i++) {< bbox3d.maxX) { alpha = chart.alpha3d;>> |
||
1761 | |||
1762 | < vertexes.length; i++) {< bbox3d.maxX) { var z = cylOptions.stacking ? (this.options.stack || 0) * depth : series._i * depth;>> |
||
1763 | < vertexes.length; i++) {< bbox3d.maxX) { z += depth / 2;>> |
||
1764 | |||
1765 | < vertexes.length; i++) {< bbox3d.maxX) { if (cylOptions.grouping !== false) { z = 0; }>> |
||
1766 | |||
1767 | < vertexes.length; i++) {< bbox3d.maxX) { each(series.data, function (point) {>> |
||
1768 | < vertexes.length; i++) {< bbox3d.maxX) { var shapeArgs = point.shapeArgs,>> |
||
1769 | < vertexes.length; i++) {< bbox3d.maxX) { deg2rad = H.deg2rad;>> |
||
1770 | < vertexes.length; i++) {< bbox3d.maxX) { point.shapeType = 'arc3d';>> |
||
1771 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.x += depth / 2;>> |
||
1772 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.z = z;>> |
||
1773 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.start = 0;>> |
||
1774 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.end = 2 * PI;>> |
||
1775 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.r = depth * 0.95;>> |
||
1776 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.innerR = 0;>> |
||
1777 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.depth = shapeArgs.height * (1 / sin((90 - alpha) * deg2rad)) - z;>> |
||
1778 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.alpha = 90 - alpha;>> |
||
1779 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.beta = 0;>> |
||
1780 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1781 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1782 | < vertexes.length; i++) {< bbox3d.maxX) { */>> |
||
1783 | |||
1784 | < vertexes.length; i++) {< bbox3d.maxX) { }(Highcharts));>> |
||
1785 | < vertexes.length; i++) {< bbox3d.maxX) { (function(H) {>> |
||
1786 | < vertexes.length; i++) {< bbox3d.maxX) { /**>> |
||
1787 | < vertexes.length; i++) {< bbox3d.maxX) { * (c) 2010-2017 Torstein Honsi>> |
||
1788 | < vertexes.length; i++) {< bbox3d.maxX) { *>> |
||
1789 | < vertexes.length; i++) {< bbox3d.maxX) { * License: www.highcharts.com/license>> |
||
1790 | < vertexes.length; i++) {< bbox3d.maxX) { */>> |
||
1791 | < vertexes.length; i++) {< bbox3d.maxX) { var deg2rad = H.deg2rad,>> |
||
1792 | < vertexes.length; i++) {< bbox3d.maxX) { each = H.each,>> |
||
1793 | < vertexes.length; i++) {< bbox3d.maxX) { pick = H.pick,>> |
||
1794 | < vertexes.length; i++) {< bbox3d.maxX) { seriesTypes = H.seriesTypes,>> |
||
1795 | < vertexes.length; i++) {< bbox3d.maxX) { svg = H.svg,>> |
||
1796 | < vertexes.length; i++) {< bbox3d.maxX) { wrap = H.wrap;>> |
||
1797 | |||
1798 | < vertexes.length; i++) {< bbox3d.maxX) { /*** >> |
||
1799 | < vertexes.length; i++) {< bbox3d.maxX) { EXTENSION FOR 3D PIES>> |
||
1800 | < vertexes.length; i++) {< bbox3d.maxX) { ***/>> |
||
1801 | |||
1802 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.pie.prototype, 'translate', function(proceed) {>> |
||
1803 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1804 | |||
1805 | < vertexes.length; i++) {< bbox3d.maxX) { // Do not do this if the chart is not 3D>> |
||
1806 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.chart.is3d()) {>> |
||
1807 | < vertexes.length; i++) {< bbox3d.maxX) { return;>> |
||
1808 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1809 | |||
1810 | < vertexes.length; i++) {< bbox3d.maxX) { var series = this,>> |
||
1811 | < vertexes.length; i++) {< bbox3d.maxX) { seriesOptions = series.options,>> |
||
1812 | < vertexes.length; i++) {< bbox3d.maxX) { depth = seriesOptions.depth || 0,>> |
||
1813 | < vertexes.length; i++) {< bbox3d.maxX) { options3d = series.chart.options.chart.options3d,>> |
||
1814 | < vertexes.length; i++) {< bbox3d.maxX) { alpha = options3d.alpha,>> |
||
1815 | < vertexes.length; i++) {< bbox3d.maxX) { beta = options3d.beta,>> |
||
1816 | < vertexes.length; i++) {< bbox3d.maxX) { z = seriesOptions.stacking ? (seriesOptions.stack || 0) * depth : series._i * depth;>> |
||
1817 | |||
1818 | < vertexes.length; i++) {< bbox3d.maxX) { z += depth / 2;>> |
||
1819 | |||
1820 | < vertexes.length; i++) {< bbox3d.maxX) { if (seriesOptions.grouping !== false) {>> |
||
1821 | < vertexes.length; i++) {< bbox3d.maxX) { z = 0;>> |
||
1822 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1823 | |||
1824 | < vertexes.length; i++) {< bbox3d.maxX) { each(series.data, function(point) {>> |
||
1825 | |||
1826 | < vertexes.length; i++) {< bbox3d.maxX) { var shapeArgs = point.shapeArgs,>> |
||
1827 | < vertexes.length; i++) {< bbox3d.maxX) { angle;>> |
||
1828 | |||
1829 | < vertexes.length; i++) {< bbox3d.maxX) { point.shapeType = 'arc3d';>> |
||
1830 | |||
1831 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.z = z;>> |
||
1832 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.depth = depth * 0.75;>> |
||
1833 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.alpha = alpha;>> |
||
1834 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.beta = beta;>> |
||
1835 | < vertexes.length; i++) {< bbox3d.maxX) { shapeArgs.center = series.center;>> |
||
1836 | |||
1837 | < vertexes.length; i++) {< bbox3d.maxX) { angle = (shapeArgs.end + shapeArgs.start) / 2;>> |
||
1838 | |||
1839 | < vertexes.length; i++) {< bbox3d.maxX) { point.slicedTranslation = {>> |
||
1840 | < vertexes.length; i++) {< bbox3d.maxX) { translateX: Math.round(Math.cos(angle) * seriesOptions.slicedOffset * Math.cos(alpha * deg2rad)),>> |
||
1841 | < vertexes.length; i++) {< bbox3d.maxX) { translateY: Math.round(Math.sin(angle) * seriesOptions.slicedOffset * Math.cos(alpha * deg2rad))>> |
||
1842 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1843 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1844 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1845 | |||
1846 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.pie.prototype.pointClass.prototype, 'haloPath', function(proceed) {>> |
||
1847 | < vertexes.length; i++) {< bbox3d.maxX) { var args = arguments;>> |
||
1848 | < vertexes.length; i++) {< bbox3d.maxX) { return this.series.chart.is3d() ? [] : proceed.call(this, args[1]);>> |
||
1849 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1850 | |||
1851 | |||
1852 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.pie.prototype, 'pointAttribs', function(proceed, point, state) {>> |
||
1853 | < vertexes.length; i++) {< bbox3d.maxX) { var attr = proceed.call(this, point, state),>> |
||
1854 | < vertexes.length; i++) {< bbox3d.maxX) { options = this.options;>> |
||
1855 | |||
1856 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d()) {>> |
||
1857 | < vertexes.length; i++) {< bbox3d.maxX) { attr.stroke = options.edgeColor || point.color || this.color;>> |
||
1858 | < vertexes.length; i++) {< bbox3d.maxX) { attr['stroke-width'] = pick(options.edgeWidth, 1);>> |
||
1859 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1860 | |||
1861 | < vertexes.length; i++) {< bbox3d.maxX) { return attr;>> |
||
1862 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1863 | |||
1864 | |||
1865 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.pie.prototype, 'drawPoints', function(proceed) {>> |
||
1866 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1867 | |||
1868 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d()) {>> |
||
1869 | < vertexes.length; i++) {< bbox3d.maxX) { each(this.points, function(point) {>> |
||
1870 | < vertexes.length; i++) {< bbox3d.maxX) { var graphic = point.graphic;>> |
||
1871 | |||
1872 | < vertexes.length; i++) {< bbox3d.maxX) { // #4584 Check if has graphic - null points don't have it>> |
||
1873 | < vertexes.length; i++) {< bbox3d.maxX) { if (graphic) {>> |
||
1874 | < vertexes.length; i++) {< bbox3d.maxX) { // Hide null or 0 points (#3006, 3650)>> |
||
1875 | < vertexes.length; i++) {< bbox3d.maxX) { graphic[point.y && point.visible ? 'show' : 'hide']();>> |
||
1876 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1877 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1878 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1879 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1880 | |||
1881 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.pie.prototype, 'drawDataLabels', function(proceed) {>> |
||
1882 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d()) {>> |
||
1883 | < vertexes.length; i++) {< bbox3d.maxX) { var series = this,>> |
||
1884 | < vertexes.length; i++) {< bbox3d.maxX) { chart = series.chart,>> |
||
1885 | < vertexes.length; i++) {< bbox3d.maxX) { options3d = chart.options.chart.options3d;>> |
||
1886 | < vertexes.length; i++) {< bbox3d.maxX) { each(series.data, function(point) {>> |
||
1887 | < vertexes.length; i++) {< bbox3d.maxX) { var shapeArgs = point.shapeArgs,>> |
||
1888 | < vertexes.length; i++) {< bbox3d.maxX) { r = shapeArgs.r,>> |
||
1889 | < vertexes.length; i++) {< bbox3d.maxX) { a1 = (shapeArgs.alpha || options3d.alpha) * deg2rad, //#3240 issue with datalabels for 0 and null values>> |
||
1890 | < vertexes.length; i++) {< bbox3d.maxX) { b1 = (shapeArgs.beta || options3d.beta) * deg2rad,>> |
||
1891 | < vertexes.length; i++) {< bbox3d.maxX) { a2 = (shapeArgs.start + shapeArgs.end) / 2,>> |
||
1892 | < vertexes.length; i++) {< bbox3d.maxX) { labelPos = point.labelPos,>> |
||
1893 | < vertexes.length; i++) {< bbox3d.maxX) { labelIndexes = [0, 2, 4], // [x1, y1, x2, y2, x3, y3]>> |
||
1894 | < vertexes.length; i++) {< bbox3d.maxX) { yOffset = (-r * (1 - Math.cos(a1)) * Math.sin(a2)), // + (sin(a2) > 0 ? sin(a1) * d : 0)>> |
||
1895 | < vertexes.length; i++) {< bbox3d.maxX) { xOffset = r * (Math.cos(b1) - 1) * Math.cos(a2);>> |
||
1896 | |||
1897 | < vertexes.length; i++) {< bbox3d.maxX) { // Apply perspective on label positions>> |
||
1898 | < vertexes.length; i++) {< bbox3d.maxX) { each(labelIndexes, function(index) {>> |
||
1899 | < vertexes.length; i++) {< bbox3d.maxX) { labelPos[index] += xOffset;>> |
||
1900 | < vertexes.length; i++) {< bbox3d.maxX) { labelPos[index + 1] += yOffset;>> |
||
1901 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1902 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1903 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1904 | |||
1905 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1906 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1907 | |||
1908 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.pie.prototype, 'addPoint', function(proceed) {>> |
||
1909 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1910 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d()) {>> |
||
1911 | < vertexes.length; i++) {< bbox3d.maxX) { // destroy (and rebuild) everything!!!>> |
||
1912 | < vertexes.length; i++) {< bbox3d.maxX) { this.update(this.userOptions, true); // #3845 pass the old options>> |
||
1913 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1914 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1915 | |||
1916 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.pie.prototype, 'animate', function(proceed) {>> |
||
1917 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.chart.is3d()) {>> |
||
1918 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1919 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
1920 | < vertexes.length; i++) {< bbox3d.maxX) { var args = arguments,>> |
||
1921 | < vertexes.length; i++) {< bbox3d.maxX) { init = args[1],>> |
||
1922 | < vertexes.length; i++) {< bbox3d.maxX) { animation = this.options.animation,>> |
||
1923 | < vertexes.length; i++) {< bbox3d.maxX) { attribs,>> |
||
1924 | < vertexes.length; i++) {< bbox3d.maxX) { center = this.center,>> |
||
1925 | < vertexes.length; i++) {< bbox3d.maxX) { group = this.group,>> |
||
1926 | < vertexes.length; i++) {< bbox3d.maxX) { markerGroup = this.markerGroup;>> |
||
1927 | |||
1928 | < vertexes.length; i++) {< bbox3d.maxX) { if (svg) { // VML is too slow anyway>> |
||
1929 | |||
1930 | < vertexes.length; i++) {< bbox3d.maxX) { if (animation === true) {>> |
||
1931 | < vertexes.length; i++) {< bbox3d.maxX) { animation = {};>> |
||
1932 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1933 | < vertexes.length; i++) {< bbox3d.maxX) { // Initialize the animation>> |
||
1934 | < vertexes.length; i++) {< bbox3d.maxX) { if (init) {>> |
||
1935 | |||
1936 | < vertexes.length; i++) {< bbox3d.maxX) { // Scale down the group and place it in the center>> |
||
1937 | < vertexes.length; i++) {< bbox3d.maxX) { group.oldtranslateX = group.translateX;>> |
||
1938 | < vertexes.length; i++) {< bbox3d.maxX) { group.oldtranslateY = group.translateY;>> |
||
1939 | < vertexes.length; i++) {< bbox3d.maxX) { attribs = {>> |
||
1940 | < vertexes.length; i++) {< bbox3d.maxX) { translateX: center[0],>> |
||
1941 | < vertexes.length; i++) {< bbox3d.maxX) { translateY: center[1],>> |
||
1942 | < vertexes.length; i++) {< bbox3d.maxX) { scaleX: 0.001, // #1499>> |
||
1943 | < vertexes.length; i++) {< bbox3d.maxX) { scaleY: 0.001>> |
||
1944 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1945 | |||
1946 | < vertexes.length; i++) {< bbox3d.maxX) { group.attr(attribs);>> |
||
1947 | < vertexes.length; i++) {< bbox3d.maxX) { if (markerGroup) {>> |
||
1948 | < vertexes.length; i++) {< bbox3d.maxX) { markerGroup.attrSetters = group.attrSetters;>> |
||
1949 | < vertexes.length; i++) {< bbox3d.maxX) { markerGroup.attr(attribs);>> |
||
1950 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1951 | |||
1952 | < vertexes.length; i++) {< bbox3d.maxX) { // Run the animation>> |
||
1953 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
1954 | < vertexes.length; i++) {< bbox3d.maxX) { attribs = {>> |
||
1955 | < vertexes.length; i++) {< bbox3d.maxX) { translateX: group.oldtranslateX,>> |
||
1956 | < vertexes.length; i++) {< bbox3d.maxX) { translateY: group.oldtranslateY,>> |
||
1957 | < vertexes.length; i++) {< bbox3d.maxX) { scaleX: 1,>> |
||
1958 | < vertexes.length; i++) {< bbox3d.maxX) { scaleY: 1>> |
||
1959 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
1960 | < vertexes.length; i++) {< bbox3d.maxX) { group.animate(attribs, animation);>> |
||
1961 | |||
1962 | < vertexes.length; i++) {< bbox3d.maxX) { if (markerGroup) {>> |
||
1963 | < vertexes.length; i++) {< bbox3d.maxX) { markerGroup.animate(attribs, animation);>> |
||
1964 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1965 | |||
1966 | < vertexes.length; i++) {< bbox3d.maxX) { // Delete this function to allow it only once>> |
||
1967 | < vertexes.length; i++) {< bbox3d.maxX) { this.animate = null;>> |
||
1968 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1969 | |||
1970 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1971 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1972 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
1973 | |||
1974 | < vertexes.length; i++) {< bbox3d.maxX) { }(Highcharts));>> |
||
1975 | < vertexes.length; i++) {< bbox3d.maxX) { (function(H) {>> |
||
1976 | < vertexes.length; i++) {< bbox3d.maxX) { /**>> |
||
1977 | < vertexes.length; i++) {< bbox3d.maxX) { * (c) 2010-2017 Torstein Honsi>> |
||
1978 | < vertexes.length; i++) {< bbox3d.maxX) { *>> |
||
1979 | < vertexes.length; i++) {< bbox3d.maxX) { * License: www.highcharts.com/license>> |
||
1980 | < vertexes.length; i++) {< bbox3d.maxX) { */>> |
||
1981 | < vertexes.length; i++) {< bbox3d.maxX) { var perspective = H.perspective,>> |
||
1982 | < vertexes.length; i++) {< bbox3d.maxX) { pick = H.pick,>> |
||
1983 | < vertexes.length; i++) {< bbox3d.maxX) { Point = H.Point,>> |
||
1984 | < vertexes.length; i++) {< bbox3d.maxX) { seriesTypes = H.seriesTypes,>> |
||
1985 | < vertexes.length; i++) {< bbox3d.maxX) { wrap = H.wrap;>> |
||
1986 | |||
1987 | < vertexes.length; i++) {< bbox3d.maxX) { /*** >> |
||
1988 | < vertexes.length; i++) {< bbox3d.maxX) { EXTENSION FOR 3D SCATTER CHART>> |
||
1989 | < vertexes.length; i++) {< bbox3d.maxX) { ***/>> |
||
1990 | |||
1991 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.scatter.prototype, 'translate', function(proceed) {>> |
||
1992 | < vertexes.length; i++) {< bbox3d.maxX) { //function translate3d(proceed) {>> |
||
1993 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
1994 | |||
1995 | < vertexes.length; i++) {< bbox3d.maxX) { if (!this.chart.is3d()) {>> |
||
1996 | < vertexes.length; i++) {< bbox3d.maxX) { return;>> |
||
1997 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
1998 | |||
1999 | < vertexes.length; i++) {< bbox3d.maxX) { var series = this,>> |
||
2000 | < vertexes.length; i++) {< bbox3d.maxX) { chart = series.chart,>> |
||
2001 | < vertexes.length; i++) {< bbox3d.maxX) { zAxis = pick(series.zAxis, chart.options.zAxis[0]),>> |
||
2002 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoints = [],>> |
||
2003 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint,>> |
||
2004 | < vertexes.length; i++) {< bbox3d.maxX) { projectedPoints,>> |
||
2005 | < vertexes.length; i++) {< bbox3d.maxX) { projectedPoint,>> |
||
2006 | < vertexes.length; i++) {< bbox3d.maxX) { zValue,>> |
||
2007 | < vertexes.length; i++) {< bbox3d.maxX) { i;>> |
||
2008 | |||
2009 | < vertexes.length; i++) {< bbox3d.maxX) { for (i = 0; i < series.data.length; i++) {>> |
||
2010 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint = series.data[i];>> |
||
2011 | < vertexes.length; i++) {< bbox3d.maxX) { zValue = zAxis.isLog && zAxis.val2lin ? zAxis.val2lin(rawPoint.z) : rawPoint.z; // #4562>> |
||
2012 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint.plotZ = zAxis.translate(zValue);>> |
||
2013 | |||
2014 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint.isInside = rawPoint.isInside ? (zValue >= zAxis.min && zValue <= zAxis.max) : false;>> |
||
2015 | |||
2016 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoints.push({>> |
||
2017 | < vertexes.length; i++) {< bbox3d.maxX) { x: rawPoint.plotX,>> |
||
2018 | < vertexes.length; i++) {< bbox3d.maxX) { y: rawPoint.plotY,>> |
||
2019 | < vertexes.length; i++) {< bbox3d.maxX) { z: rawPoint.plotZ>> |
||
2020 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2021 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2022 | |||
2023 | < vertexes.length; i++) {< bbox3d.maxX) { projectedPoints = perspective(rawPoints, chart, true);>> |
||
2024 | |||
2025 | < vertexes.length; i++) {< bbox3d.maxX) { for (i = 0; i < series.data.length; i++) {>> |
||
2026 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint = series.data[i];>> |
||
2027 | < vertexes.length; i++) {< bbox3d.maxX) { projectedPoint = projectedPoints[i];>> |
||
2028 | |||
2029 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint.plotXold = rawPoint.plotX;>> |
||
2030 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint.plotYold = rawPoint.plotY;>> |
||
2031 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint.plotZold = rawPoint.plotZ;>> |
||
2032 | |||
2033 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint.plotX = projectedPoint.x;>> |
||
2034 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint.plotY = projectedPoint.y;>> |
||
2035 | < vertexes.length; i++) {< bbox3d.maxX) { rawPoint.plotZ = projectedPoint.z;>> |
||
2036 | |||
2037 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2038 | |||
2039 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2040 | |||
2041 | |||
2042 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.scatter.prototype, 'init', function(proceed, chart, options) {>> |
||
2043 | < vertexes.length; i++) {< bbox3d.maxX) { if (chart.is3d()) {>> |
||
2044 | < vertexes.length; i++) {< bbox3d.maxX) { // add a third coordinate>> |
||
2045 | < vertexes.length; i++) {< bbox3d.maxX) { this.axisTypes = ['xAxis', 'yAxis', 'zAxis'];>> |
||
2046 | < vertexes.length; i++) {< bbox3d.maxX) { this.pointArrayMap = ['x', 'y', 'z'];>> |
||
2047 | < vertexes.length; i++) {< bbox3d.maxX) { this.parallelArrays = ['x', 'y', 'z'];>> |
||
2048 | |||
2049 | < vertexes.length; i++) {< bbox3d.maxX) { // Require direct touch rather than using the k-d-tree, because the k-d-tree currently doesn't>> |
||
2050 | < vertexes.length; i++) {< bbox3d.maxX) { // take the xyz coordinate system into account (#4552)>> |
||
2051 | < vertexes.length; i++) {< bbox3d.maxX) { this.directTouch = true;>> |
||
2052 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2053 | |||
2054 | < vertexes.length; i++) {< bbox3d.maxX) { var result = proceed.apply(this, [chart, options]);>> |
||
2055 | |||
2056 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d()) {>> |
||
2057 | < vertexes.length; i++) {< bbox3d.maxX) { // Set a new default tooltip formatter>> |
||
2058 | < vertexes.length; i++) {< bbox3d.maxX) { var default3dScatterTooltip = 'x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>z: <b>{point.z}</b><br/>';>> |
||
2059 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.userOptions.tooltip) {>> |
||
2060 | < vertexes.length; i++) {< bbox3d.maxX) { this.tooltipOptions.pointFormat = this.userOptions.tooltip.pointFormat || default3dScatterTooltip;>> |
||
2061 | < vertexes.length; i++) {< bbox3d.maxX) { } else {>> |
||
2062 | < vertexes.length; i++) {< bbox3d.maxX) { this.tooltipOptions.pointFormat = default3dScatterTooltip;>> |
||
2063 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2064 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2065 | < vertexes.length; i++) {< bbox3d.maxX) { return result;>> |
||
2066 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2067 | |||
2068 | < vertexes.length; i++) {< bbox3d.maxX) { /**>> |
||
2069 | < vertexes.length; i++) {< bbox3d.maxX) { * Updating zIndex for every point - based on the distance from point to camera>> |
||
2070 | < vertexes.length; i++) {< bbox3d.maxX) { */>> |
||
2071 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(seriesTypes.scatter.prototype, 'pointAttribs', function(proceed, point) {>> |
||
2072 | < vertexes.length; i++) {< bbox3d.maxX) { var pointOptions = proceed.apply(this, [].slice.call(arguments, 1));>> |
||
2073 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.chart.is3d() && point) {>> |
||
2074 | < vertexes.length; i++) {< bbox3d.maxX) { pointOptions.zIndex = H.pointCameraDistance(point, this.chart);>> |
||
2075 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2076 | < vertexes.length; i++) {< bbox3d.maxX) { return pointOptions;>> |
||
2077 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2078 | |||
2079 | |||
2080 | < vertexes.length; i++) {< bbox3d.maxX) { wrap(Point.prototype, 'applyOptions', function(proceed) {>> |
||
2081 | < vertexes.length; i++) {< bbox3d.maxX) { var point = proceed.apply(this, [].slice.call(arguments, 1));>> |
||
2082 | |||
2083 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.series.chart.is3d() && point.z === undefined) {>> |
||
2084 | < vertexes.length; i++) {< bbox3d.maxX) { point.z = 0;>> |
||
2085 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2086 | < vertexes.length; i++) {< bbox3d.maxX) { return point;>> |
||
2087 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2088 | |||
2089 | < vertexes.length; i++) {< bbox3d.maxX) { }(Highcharts));>> |
||
2090 | < vertexes.length; i++) {< bbox3d.maxX) { (function(H) {>> |
||
2091 | < vertexes.length; i++) {< bbox3d.maxX) { /**>> |
||
2092 | < vertexes.length; i++) {< bbox3d.maxX) { * (c) 2010-2017 Torstein Honsi>> |
||
2093 | < vertexes.length; i++) {< bbox3d.maxX) { *>> |
||
2094 | < vertexes.length; i++) {< bbox3d.maxX) { * License: www.highcharts.com/license>> |
||
2095 | < vertexes.length; i++) {< bbox3d.maxX) { */>> |
||
2096 | |||
2097 | < vertexes.length; i++) {< bbox3d.maxX) { var Axis = H.Axis,>> |
||
2098 | < vertexes.length; i++) {< bbox3d.maxX) { SVGRenderer = H.SVGRenderer,>> |
||
2099 | < vertexes.length; i++) {< bbox3d.maxX) { VMLRenderer = H.VMLRenderer;>> |
||
2100 | |||
2101 | < vertexes.length; i++) {< bbox3d.maxX) { /**>> |
||
2102 | < vertexes.length; i++) {< bbox3d.maxX) { * Extension to the VML Renderer>> |
||
2103 | < vertexes.length; i++) {< bbox3d.maxX) { */>> |
||
2104 | < vertexes.length; i++) {< bbox3d.maxX) { if (VMLRenderer) {>> |
||
2105 | |||
2106 | < vertexes.length; i++) {< bbox3d.maxX) { H.setOptions({>> |
||
2107 | < vertexes.length; i++) {< bbox3d.maxX) { animate: false>> |
||
2108 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2109 | |||
2110 | < vertexes.length; i++) {< bbox3d.maxX) { VMLRenderer.prototype.cuboid = SVGRenderer.prototype.cuboid;>> |
||
2111 | < vertexes.length; i++) {< bbox3d.maxX) { VMLRenderer.prototype.cuboidPath = SVGRenderer.prototype.cuboidPath;>> |
||
2112 | |||
2113 | < vertexes.length; i++) {< bbox3d.maxX) { VMLRenderer.prototype.toLinePath = SVGRenderer.prototype.toLinePath;>> |
||
2114 | |||
2115 | < vertexes.length; i++) {< bbox3d.maxX) { VMLRenderer.prototype.createElement3D = SVGRenderer.prototype.createElement3D;>> |
||
2116 | |||
2117 | < vertexes.length; i++) {< bbox3d.maxX) { VMLRenderer.prototype.arc3d = function(shapeArgs) {>> |
||
2118 | < vertexes.length; i++) {< bbox3d.maxX) { var result = SVGRenderer.prototype.arc3d.call(this, shapeArgs);>> |
||
2119 | < vertexes.length; i++) {< bbox3d.maxX) { result.css({>> |
||
2120 | < vertexes.length; i++) {< bbox3d.maxX) { zIndex: result.zIndex>> |
||
2121 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2122 | < vertexes.length; i++) {< bbox3d.maxX) { return result;>> |
||
2123 | < vertexes.length; i++) {< bbox3d.maxX) { };>> |
||
2124 | |||
2125 | < vertexes.length; i++) {< bbox3d.maxX) { H.VMLRenderer.prototype.arc3dPath = H.SVGRenderer.prototype.arc3dPath;>> |
||
2126 | |||
2127 | < vertexes.length; i++) {< bbox3d.maxX) { H.wrap(Axis.prototype, 'render', function(proceed) {>> |
||
2128 | < vertexes.length; i++) {< bbox3d.maxX) { proceed.apply(this, [].slice.call(arguments, 1));>> |
||
2129 | < vertexes.length; i++) {< bbox3d.maxX) { // VML doesn't support a negative z-index>> |
||
2130 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.sideFrame) {>> |
||
2131 | < vertexes.length; i++) {< bbox3d.maxX) { this.sideFrame.css({>> |
||
2132 | < vertexes.length; i++) {< bbox3d.maxX) { zIndex: 0>> |
||
2133 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2134 | < vertexes.length; i++) {< bbox3d.maxX) { this.sideFrame.front.attr({>> |
||
2135 | < vertexes.length; i++) {< bbox3d.maxX) { fill: this.sideFrame.color>> |
||
2136 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2137 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2138 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.bottomFrame) {>> |
||
2139 | < vertexes.length; i++) {< bbox3d.maxX) { this.bottomFrame.css({>> |
||
2140 | < vertexes.length; i++) {< bbox3d.maxX) { zIndex: 1>> |
||
2141 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2142 | < vertexes.length; i++) {< bbox3d.maxX) { this.bottomFrame.front.attr({>> |
||
2143 | < vertexes.length; i++) {< bbox3d.maxX) { fill: this.bottomFrame.color>> |
||
2144 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2145 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2146 | < vertexes.length; i++) {< bbox3d.maxX) { if (this.backFrame) {>> |
||
2147 | < vertexes.length; i++) {< bbox3d.maxX) { this.backFrame.css({>> |
||
2148 | < vertexes.length; i++) {< bbox3d.maxX) { zIndex: 0>> |
||
2149 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2150 | < vertexes.length; i++) {< bbox3d.maxX) { this.backFrame.front.attr({>> |
||
2151 | < vertexes.length; i++) {< bbox3d.maxX) { fill: this.backFrame.color>> |
||
2152 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2153 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2154 | < vertexes.length; i++) {< bbox3d.maxX) { });>> |
||
2155 | |||
2156 | < vertexes.length; i++) {< bbox3d.maxX) { }>> |
||
2157 | |||
2158 | |||
2159 | < vertexes.length; i++) {< bbox3d.maxX) { }(Highcharts));>> |
||
2160 | < vertexes.length; i++) {< bbox3d.maxX) {}));>> |