Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
QuartzMarker.mm
Go to the documentation of this file.
1// @(#)root/graf2d:$Id$
2// Author: Timur Pocheptsov, 14/8/2011
3
4/*************************************************************************
5 * Copyright (C) 1995-2011, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#include "TAttMarker.h"
13
14#include "QuartzMarker.h"
15
16namespace ROOT {
17namespace Quartz {
18
19
20//______________________________________________________________________________
21void DrawMarkerDot(CGContextRef ctx, unsigned n, const TPoint *xy)
22{
23 for (unsigned i = 0; i < n; ++i)
24 CGContextFillRect(ctx, CGRectMake(xy[i].fX, xy[i].fY, 1.f, 1.f));
25}
26
27
28//______________________________________________________________________________
29void DrawMarkerPlus(CGContextRef ctx, unsigned n, const TPoint *xy,
30 Size_t markerSize)
31{
32 const Double_t im = 4 * markerSize + 0.5;
33
34 for (UInt_t i = 0; i < n; ++i) {
35 const Double_t x = xy[i].fX;
36 const Double_t y = xy[i].fY;
37
38 CGContextBeginPath(ctx);
39 CGContextMoveToPoint(ctx, -im + x, y);
40 CGContextAddLineToPoint(ctx, im + x, y);
41 CGContextStrokePath(ctx);
42
43 CGContextBeginPath(ctx);
44 CGContextMoveToPoint(ctx, x, -im + y);
45 CGContextAddLineToPoint(ctx, x, im + y);
46 CGContextStrokePath(ctx);
47 }
48}
49
50
51//______________________________________________________________________________
52void DrawMarkerStar(CGContextRef ctx, unsigned n, const TPoint *xy,
53 Size_t markerSize)
54{
55 Double_t im = 4 * markerSize + 0.5;
56
57 TPoint star[8];
58 star[0].fX = -im; star[0].fY = 0;
59 star[1].fX = im; star[1].fY = 0;
60 star[2].fX = 0 ; star[2].fY = -im;
61 star[3].fX = 0 ; star[3].fY = im;
62
63 im = 0.707 * im + 0.5;
64 star[4].fX = -im; star[4].fY = -im;
65 star[5].fX = im; star[5].fY = im;
66 star[6].fX = -im; star[6].fY = im;
67 star[7].fX = im; star[7].fY = -im;
68
69 for (UInt_t i = 0; i < n; ++i) {
70 const Double_t x = xy[i].fX;
71 const Double_t y = xy[i].fY;
72
73 CGContextBeginPath(ctx);
74 CGContextMoveToPoint(ctx, star[0].fX + x, star[0].fY + y);
75 CGContextAddLineToPoint(ctx, star[1].fX + x, star[1].fY + y);
76 CGContextStrokePath(ctx);
77
78 CGContextBeginPath(ctx);
79 CGContextMoveToPoint(ctx, star[2].fX + x, star[2].fY + y);
80 CGContextAddLineToPoint(ctx, star[3].fX + x, star[3].fY + y);
81 CGContextStrokePath(ctx);
82
83 CGContextBeginPath(ctx);
84 CGContextMoveToPoint(ctx, star[4].fX + x, star[4].fY + y);
85 CGContextAddLineToPoint(ctx, star[5].fX + x, star[5].fY + y);
86 CGContextStrokePath(ctx);
87
88 CGContextBeginPath(ctx);
89 CGContextMoveToPoint(ctx, star[6].fX + x, star[6].fY + y);
90 CGContextAddLineToPoint(ctx, star[7].fX + x, star[7].fY + y);
91 CGContextStrokePath(ctx);
92 }
93}
94
95
96//______________________________________________________________________________
97void DrawMarkerOpenCircle(CGContextRef ctx, unsigned n, const TPoint *xy,
98 Size_t markerSize)
99{
100 Double_t r = 4 * markerSize + 0.5;
101 if (r > 100.)
102 r = 100.;//as in TGX11.
103
104 const Double_t d = 2 * r;
105
106 for (unsigned i = 0; i < n; ++i) {
107 const Double_t x = xy[i].fX;
108 const Double_t y = xy[i].fY;
109
110 const CGRect rect = CGRectMake(x - r, y - r, d, d);
111 CGContextStrokeEllipseInRect(ctx, rect);
112 }
113}
114
115
116//______________________________________________________________________________
117void DrawMarkerX(CGContextRef ctx, unsigned n, const TPoint *xy,
118 Size_t markerSize)
119{
120 const Double_t im = 0.707 * (4 * markerSize + 0.5) + 0.5;
121 for (unsigned i = 0; i < n; ++i) {
122 const Double_t x = xy[i].fX;
123 const Double_t y = xy[i].fY;
124
125 CGContextBeginPath(ctx);
126 CGContextMoveToPoint(ctx, -im + x, -im + y);
127 CGContextAddLineToPoint(ctx, im + x, im + y);
128 CGContextStrokePath(ctx);
129
130 CGContextBeginPath(ctx);
131 CGContextMoveToPoint(ctx, -im + x, im + y);
132 CGContextAddLineToPoint(ctx, im + x, -im + y);
133 CGContextStrokePath(ctx);
134 }
135}
136
137
138//______________________________________________________________________________
139void DrawMarkerFullDotSmall(CGContextRef ctx, unsigned n, const TPoint *xy)
140{
141 for (unsigned i = 0; i < n; ++i) {
142 const Double_t x = xy[i].fX;
143 const Double_t y = xy[i].fY;
144
145 CGContextBeginPath(ctx);
146 CGContextMoveToPoint(ctx, -1. + x, y);
147 CGContextAddLineToPoint(ctx, x + 1., y);
148 CGContextStrokePath(ctx);
149
150 CGContextBeginPath(ctx);
151 CGContextMoveToPoint(ctx, x, -1. + y);
152 CGContextAddLineToPoint(ctx, x, 1. + y);
153 CGContextStrokePath(ctx);
154 }
155}
156
157
158//______________________________________________________________________________
159void DrawMarkerFullDotMedium(CGContextRef ctx, unsigned n, const TPoint *xy)
160{
161 for (unsigned i = 0; i < n; ++i)
162 CGContextFillRect(ctx, CGRectMake(xy[i].fX - 1, xy[i].fY - 1, 3.f, 3.f));
163}
164
165
166//______________________________________________________________________________
167void DrawMarkerFullDotLarge(CGContextRef ctx, unsigned n, const TPoint *xy,
168 Size_t markerSize)
169{
170 Double_t radius = 4 * markerSize + 0.5;
171 if (radius > 100.)
172 radius = 100;//as in TGX11.
173
174 const Double_t d = 2 * radius;
175
176 for (unsigned i = 0; i < n; ++i) {
177 const Double_t x = xy[i].fX;
178 const Double_t y = xy[i].fY;
179
180 const CGRect rect = CGRectMake(x - radius, y - radius, d, d);
181 CGContextFillEllipseInRect(ctx, rect);
182 }
183}
184
185
186//______________________________________________________________________________
187void DrawMarkerFullSquare(CGContextRef ctx, unsigned n, const TPoint *xy,
188 Size_t markerSize)
189{
190 const Double_t im = 4 * markerSize + 0.5;
191 for (unsigned i = 0; i < n; ++i) {
192 const CGRect rect = CGRectMake(xy[i].fX - im, xy[i].fY - im, im * 2, im * 2);
193 CGContextFillRect(ctx, rect);
194 }
195}
196
197
198//______________________________________________________________________________
199void DrawMarkerOpenSquare(CGContextRef ctx, unsigned n, const TPoint *xy,
200 Size_t markerSize)
201{
202 const Double_t im = 4 * markerSize + 0.5;
203 for (unsigned i = 0; i < n; ++i) {
204 const CGRect rect = CGRectMake(xy[i].fX - im, xy[i].fY - im, im * 2, im * 2);
205 CGContextStrokeRect(ctx, rect);
206 }
207}
208
209
210//______________________________________________________________________________
212 Size_t markerSize)
213{
214 const Double_t im = 4 * markerSize + 0.5;
215 for (unsigned i = 0; i < n; ++i) {
216 const Double_t x = xy[i].fX;
217 const Double_t y = xy[i].fY;
218 CGContextBeginPath(ctx);
219 CGContextMoveToPoint(ctx, x - im, y - im);
220 CGContextAddLineToPoint(ctx, x + im, y - im);
221 CGContextAddLineToPoint(ctx, x, im + y);
222 CGContextFillPath(ctx);
223 }
224}
225
226
227//______________________________________________________________________________
229 Size_t markerSize)
230{
231 const Double_t im = 4 * markerSize + 0.5;
232 for (unsigned i = 0; i < n; ++i) {
233 const Double_t x = xy[i].fX;
234 const Double_t y = xy[i].fY;
235 CGContextBeginPath(ctx);
236 CGContextMoveToPoint(ctx, x - im, y - im);
237 CGContextAddLineToPoint(ctx, x + im, y - im);
238 CGContextAddLineToPoint(ctx, x, im + y);
239 CGContextAddLineToPoint(ctx, x - im, y - im);
240 CGContextStrokePath(ctx);
241 }
242}
243
244
245//______________________________________________________________________________
247 Size_t markerSize)
248{
249 const Int_t im = Int_t(4 * markerSize + 0.5);
250 for (unsigned i = 0; i < n; ++i) {
251 const Double_t x = xy[i].fX;
252 const Double_t y = xy[i].fY;
253
254 CGContextBeginPath(ctx);
255 CGContextMoveToPoint(ctx, x - im, y + im);
256 CGContextAddLineToPoint(ctx, x, y - im);
257 CGContextAddLineToPoint(ctx, im + x, y + im);
258 CGContextAddLineToPoint(ctx, x - im, y + im);
259 CGContextStrokePath(ctx);
260 }
261}
262
263
264//______________________________________________________________________________
266 Size_t markerSize)
267{
268 const Int_t im = Int_t(4 * markerSize + 0.5);
269 for (unsigned i = 0; i < n; ++i) {
270 const Double_t x = xy[i].fX;
271 const Double_t y = xy[i].fY;
272
273 CGContextBeginPath(ctx);
274 CGContextMoveToPoint(ctx, x - im, y + im);
275 CGContextAddLineToPoint(ctx, x, y - im);
276 CGContextAddLineToPoint(ctx, im + x, y + im);
277 CGContextFillPath(ctx);
278 }
279}
280
281
282//______________________________________________________________________________
283void DrawMarkerFullDiamond(CGContextRef ctx, unsigned n, const TPoint *xy,
284 Size_t markerSize)
285{
286 const Int_t im = Int_t(4 * markerSize + 0.5);
287 const Int_t imx = Int_t(2.66 * markerSize + 0.5);
288
289 for (unsigned i = 0; i < n; ++i) {
290 const Double_t x = xy[i].fX;
291 const Double_t y = xy[i].fY;
292
293 CGContextBeginPath(ctx);
294 CGContextMoveToPoint(ctx, x - imx, y);
295 CGContextAddLineToPoint(ctx, x, y - im);
296 CGContextAddLineToPoint(ctx, x + imx, y);
297 CGContextAddLineToPoint(ctx, x, y + im);
298 CGContextDrawPath(ctx, kCGPathFillStroke);
299 }
300}
301
302
303//______________________________________________________________________________
304void DrawMarkerOpenDiamond(CGContextRef ctx, unsigned n, const TPoint *xy,
305 Size_t markerSize)
306{
307 const Int_t im = Int_t(4 * markerSize + 0.5);
308 const Int_t imx = Int_t(2.66 * markerSize + 0.5);
309
310 for (unsigned i = 0; i < n; ++i) {
311 const Double_t x = xy[i].fX;
312 const Double_t y = xy[i].fY;
313
314 CGContextBeginPath(ctx);
315 CGContextMoveToPoint(ctx, x - imx, y);
316 CGContextAddLineToPoint(ctx, x, y - im);
317 CGContextAddLineToPoint(ctx, x + imx, y);
318 CGContextAddLineToPoint(ctx, x, y + im);
319 CGContextAddLineToPoint(ctx, x - imx, y);
320 CGContextStrokePath(ctx);
321 }
322}
323
324
325//______________________________________________________________________________
326void DrawMarkerFullCross(CGContextRef ctx, unsigned n, const TPoint *xy,
327 Size_t markerSize)
328{
329 const Int_t im = Int_t(4 * markerSize + 0.5);
330 const Int_t imx = Int_t(1.33 * markerSize + 0.5);
331
332 for (unsigned i = 0; i < n; ++i) {
333 const Double_t x = xy[i].fX;
334 const Double_t y = xy[i].fY;
335
336 CGContextBeginPath(ctx);
337 CGContextMoveToPoint(ctx, x - im, y - imx);
338 CGContextAddLineToPoint(ctx, x - imx, y - imx);
339 CGContextAddLineToPoint(ctx, x - imx, y - im);
340 CGContextAddLineToPoint(ctx, x + imx, y - im);
341 CGContextAddLineToPoint(ctx, x + imx, y - imx);
342 CGContextAddLineToPoint(ctx, x + im, y - imx);
343 CGContextAddLineToPoint(ctx, x + im, y + imx);
344 CGContextAddLineToPoint(ctx, x + imx, y + imx);
345 CGContextAddLineToPoint(ctx, x + imx, y + im);
346 CGContextAddLineToPoint(ctx, x - imx, y + im);
347 CGContextAddLineToPoint(ctx, x - imx, y + imx);
348 CGContextAddLineToPoint(ctx, x - im, y + imx);
349 CGContextAddLineToPoint(ctx, x - im, y - imx);
350 CGContextFillPath(ctx);
351 }
352}
353
354
355//______________________________________________________________________________
356void DrawMarkerOpenCross(CGContextRef ctx, unsigned n, const TPoint *xy,
357 Size_t markerSize)
358{
359 const Int_t im = Int_t(4 * markerSize + 0.5);
360 const Int_t imx = Int_t(1.33 * markerSize + 0.5);
361
362 for (unsigned i = 0; i < n; ++i) {
363 const Double_t x = xy[i].fX;
364 const Double_t y = xy[i].fY;
365
366 CGContextBeginPath(ctx);
367 CGContextMoveToPoint(ctx, x - im, y - imx);
368 CGContextAddLineToPoint(ctx, x - imx, y - imx);
369 CGContextAddLineToPoint(ctx, x - imx, y - im);
370 CGContextAddLineToPoint(ctx, x + imx, y - im);
371 CGContextAddLineToPoint(ctx, x + imx, y - imx);
372 CGContextAddLineToPoint(ctx, x + im, y - imx);
373 CGContextAddLineToPoint(ctx, x + im, y + imx);
374 CGContextAddLineToPoint(ctx, x + imx, y + imx);
375 CGContextAddLineToPoint(ctx, x + imx, y + im);
376 CGContextAddLineToPoint(ctx, x - imx, y + im);
377 CGContextAddLineToPoint(ctx, x - imx, y + imx);
378 CGContextAddLineToPoint(ctx, x - im, y + imx);
379 CGContextAddLineToPoint(ctx, x - im, y - imx);
380 CGContextStrokePath(ctx);
381 }
382}
383
384
385//______________________________________________________________________________
386void DrawMarkerFullStar(CGContextRef ctx, unsigned n, const TPoint *xy,
387 Size_t markerSize)
388{
389 // HIGZ full star pentagone
390 const Int_t im = Int_t(4 * markerSize + 0.5);
391 const Int_t im1 = Int_t(0.66 * markerSize + 0.5);
392 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
393 const Int_t im3 = Int_t(2.66 * markerSize + 0.5);
394 const Int_t im4 = Int_t(1.33 * markerSize + 0.5);
395
396 for (unsigned i = 0; i < n; ++i) {
397 const Double_t x = xy[i].fX;
398 const Double_t y = xy[i].fY;
399
400 CGContextBeginPath(ctx);
401 CGContextMoveToPoint(ctx, x - im, y - im4);
402 CGContextAddLineToPoint(ctx, x - im2, y + im1);
403 CGContextAddLineToPoint(ctx, x - im4, y - im4);
404 CGContextFillPath(ctx);
405
406 CGContextBeginPath(ctx);
407 CGContextMoveToPoint(ctx, x - im2, y + im1);//1
408 CGContextAddLineToPoint(ctx, x - im3, y + im);//2
409 CGContextAddLineToPoint(ctx, x, y + im2);//3
410 CGContextFillPath(ctx);
411
412 CGContextBeginPath(ctx);
413 CGContextMoveToPoint(ctx, x, y + im2);//3
414 CGContextAddLineToPoint(ctx, x + im3, y + im);//4
415 CGContextAddLineToPoint(ctx, x + im2, y + im1);//5
416 CGContextFillPath(ctx);
417
418 CGContextBeginPath(ctx);
419 CGContextMoveToPoint(ctx, x + im2, y + im1);//5
420 CGContextAddLineToPoint(ctx, x + im, y - im4);//6
421 CGContextAddLineToPoint(ctx,x + im4, y - im4);//7
422 CGContextFillPath(ctx);
423
424 CGContextBeginPath(ctx);
425 CGContextMoveToPoint(ctx, x + im4, y - im4);//7
426 CGContextAddLineToPoint(ctx, x, y - im);//8
427 CGContextAddLineToPoint(ctx, x - im4, y - im4);//9
428 CGContextFillPath(ctx);
429
430 CGContextBeginPath(ctx);
431 CGContextMoveToPoint(ctx, x - im4, y - im4);//9
432 CGContextAddLineToPoint(ctx, x - im2, y + im1);//1
433 CGContextAddLineToPoint(ctx, x, y + im2);//3
434 CGContextFillPath(ctx);
435
436 CGContextBeginPath(ctx);
437 CGContextMoveToPoint(ctx, x - im4, y - im4);//9
438 CGContextAddLineToPoint(ctx, x, y + im2);//3
439 CGContextAddLineToPoint(ctx, x + im2, y + im1);//5
440 CGContextFillPath(ctx);
441
442 CGContextBeginPath(ctx);
443 CGContextMoveToPoint(ctx, x - im4, y - im4);//9
444 CGContextAddLineToPoint(ctx, x + im2, y + im1);//5
445 CGContextAddLineToPoint(ctx, x + im4, y - im4);//7
446 CGContextFillPath(ctx);
447 }
448}
449
450
451//______________________________________________________________________________
452void DrawMarkerOpenStar(CGContextRef ctx, unsigned n, const TPoint *xy,
453 Size_t markerSize)
454{
455 const Int_t im = Int_t(4 * markerSize + 0.5);
456 const Int_t im1 = Int_t(0.66 * markerSize + 0.5);
457 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
458 const Int_t im3 = Int_t(2.66 * markerSize + 0.5);
459 const Int_t im4 = Int_t(1.33 * markerSize + 0.5);
460
461 for (unsigned i = 0; i < n; ++i) {
462 const Double_t x = xy[i].fX;
463 const Double_t y = xy[i].fY;
464
465 CGContextBeginPath(ctx);
466 CGContextMoveToPoint(ctx, x - im, y - im4);
467 CGContextAddLineToPoint(ctx, x - im2, y + im1);
468 CGContextAddLineToPoint(ctx, x - im3, y + im);
469 CGContextAddLineToPoint(ctx, x, y + im2);
470 CGContextAddLineToPoint(ctx, x + im3, y + im);
471 CGContextAddLineToPoint(ctx, x + im2, y + im1);
472 CGContextAddLineToPoint(ctx, x + im, y - im4);
473 CGContextAddLineToPoint(ctx, x + im4, y - im4);
474 CGContextAddLineToPoint(ctx, x, y - im);
475 CGContextAddLineToPoint(ctx, x - im4, y - im4);
476 CGContextAddLineToPoint(ctx, x - im, y - im4);
477 CGContextStrokePath(ctx);
478 }
479}
480
481//______________________________________________________________________________
483 Size_t markerSize)
484{
485 const Int_t im = Int_t(4 * markerSize + 0.5);
486
487 for (unsigned i = 0; i < n; ++i) {
488 const Double_t x = xy[i].fX;
489 const Double_t y = xy[i].fY;
490
491 CGContextBeginPath(ctx);
492 CGContextMoveToPoint(ctx, x - im, y - im);
493 CGContextAddLineToPoint(ctx, x + im, y - im);
494 CGContextAddLineToPoint(ctx, x + im, y + im);
495 CGContextAddLineToPoint(ctx, x - im, y + im);
496 CGContextAddLineToPoint(ctx, x - im, y - im);
497 CGContextAddLineToPoint(ctx, x + im, y + im);
498 CGContextStrokePath(ctx);
499
500 CGContextBeginPath(ctx);
501 CGContextMoveToPoint(ctx, x - im, y + im);
502 CGContextAddLineToPoint(ctx, x + im, y - im);
503 CGContextStrokePath(ctx);
504 }
505}
506
507//______________________________________________________________________________
509 Size_t markerSize)
510{
511 const Int_t im = Int_t(4 * markerSize + 0.5);
512
513 for (unsigned i = 0; i < n; ++i) {
514 const Double_t x = xy[i].fX;
515 const Double_t y = xy[i].fY;
516
517 CGContextBeginPath(ctx);
518 CGContextMoveToPoint(ctx, x - im, y );
519 CGContextAddLineToPoint(ctx, x , y - im);
520 CGContextAddLineToPoint(ctx, x + im, y );
521 CGContextAddLineToPoint(ctx, x , y + im);
522 CGContextAddLineToPoint(ctx, x - im, y );
523 CGContextAddLineToPoint(ctx, x + im, y );
524 CGContextStrokePath(ctx);
525
526 CGContextBeginPath(ctx);
527 CGContextMoveToPoint(ctx, x , y + im);
528 CGContextAddLineToPoint(ctx, x , y - im);
529 CGContextStrokePath(ctx);
530 }
531}
532
533//______________________________________________________________________________
535 Size_t markerSize)
536{
537 const Int_t im = Int_t(4 * markerSize + 0.5);
538 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
539
540 for (unsigned i = 0; i < n; ++i) {
541 const Double_t x = xy[i].fX;
542 const Double_t y = xy[i].fY;
543
544 CGContextBeginPath(ctx);
545 CGContextMoveToPoint(ctx, x , y );
546 CGContextAddLineToPoint(ctx, x -im2, y + im);
547 CGContextAddLineToPoint(ctx, x - im, y );
548 CGContextAddLineToPoint(ctx, x , y );
549 CGContextAddLineToPoint(ctx, x -im2, y - im);
550 CGContextAddLineToPoint(ctx, x +im2, y - im);
551 CGContextAddLineToPoint(ctx, x , y );
552 CGContextAddLineToPoint(ctx, x + im, y );
553 CGContextAddLineToPoint(ctx, x +im2, y + im);
554 CGContextAddLineToPoint(ctx, x , y );
555 CGContextStrokePath(ctx);
556 }
557}
558
559//______________________________________________________________________________
560void DrawMarkerOctagonCross(CGContextRef ctx, unsigned n, const TPoint *xy,
561 Size_t markerSize)
562{
563 const Int_t im = Int_t(4 * markerSize + 0.5);
564 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
565
566 for (unsigned i = 0; i < n; ++i) {
567 const Double_t x = xy[i].fX;
568 const Double_t y = xy[i].fY;
569
570 CGContextBeginPath(ctx);
571 CGContextMoveToPoint(ctx, x - im, y );
572 CGContextAddLineToPoint(ctx, x - im, y -im2);
573 CGContextAddLineToPoint(ctx, x -im2, y - im);
574 CGContextAddLineToPoint(ctx, x +im2, y - im);
575 CGContextAddLineToPoint(ctx, x + im, y -im2);
576 CGContextAddLineToPoint(ctx, x + im, y +im2);
577 CGContextAddLineToPoint(ctx, x +im2, y + im);
578 CGContextAddLineToPoint(ctx, x -im2, y + im);
579 CGContextAddLineToPoint(ctx, x - im, y +im2);
580 CGContextAddLineToPoint(ctx, x - im, y );
581 CGContextAddLineToPoint(ctx, x + im, y );
582 CGContextStrokePath(ctx);
583
584 CGContextBeginPath(ctx);
585 CGContextMoveToPoint(ctx, x , y - im);
586 CGContextAddLineToPoint(ctx, x , y + im);
587 CGContextStrokePath(ctx);
588 }
589}
590
591//______________________________________________________________________________
593 Size_t markerSize)
594{
595 const Int_t im = Int_t(4 * markerSize + 0.5);
596 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
597
598 for (unsigned i = 0; i < n; ++i) {
599 const Double_t x = xy[i].fX;
600 const Double_t y = xy[i].fY;
601
602 CGContextBeginPath(ctx);
603 CGContextMoveToPoint(ctx, x , y );
604 CGContextAddLineToPoint(ctx, x -im2, y + im);
605 CGContextAddLineToPoint(ctx, x - im, y );
606 CGContextAddLineToPoint(ctx, x , y );
607 CGContextAddLineToPoint(ctx, x -im2, y - im);
608 CGContextAddLineToPoint(ctx, x +im2, y - im);
609 CGContextAddLineToPoint(ctx, x , y );
610 CGContextAddLineToPoint(ctx, x + im, y );
611 CGContextAddLineToPoint(ctx, x +im2, y + im);
612 CGContextAddLineToPoint(ctx, x , y );
613 CGContextFillPath(ctx);
614 }
615}
616
617//______________________________________________________________________________
619 Size_t markerSize)
620{
621 const Int_t im = Int_t(4 * markerSize + 0.5);
622 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
623
624 for (unsigned i = 0; i < n; ++i) {
625 const Double_t x = xy[i].fX;
626 const Double_t y = xy[i].fY;
627
628 CGContextBeginPath(ctx);
629 CGContextMoveToPoint(ctx, x , y );
630 CGContextAddLineToPoint(ctx, x +im2, y + im);
631 CGContextAddLineToPoint(ctx, x + im, y +im2);
632 CGContextAddLineToPoint(ctx, x , y );
633 CGContextAddLineToPoint(ctx, x + im, y -im2);
634 CGContextAddLineToPoint(ctx, x +im2, y - im);
635 CGContextAddLineToPoint(ctx, x , y );
636 CGContextAddLineToPoint(ctx, x -im2, y - im);
637 CGContextAddLineToPoint(ctx, x - im, y -im2);
638 CGContextAddLineToPoint(ctx, x , y );
639 CGContextAddLineToPoint(ctx, x - im, y +im2);
640 CGContextAddLineToPoint(ctx, x -im2, y + im);
641 CGContextAddLineToPoint(ctx, x , y );
642 CGContextStrokePath(ctx);
643 }
644}
645
646//______________________________________________________________________________
648 Size_t markerSize)
649{
650 const Int_t im = Int_t(4 * markerSize + 0.5);
651 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
652
653 for (unsigned i = 0; i < n; ++i) {
654 const Double_t x = xy[i].fX;
655 const Double_t y = xy[i].fY;
656
657 CGContextBeginPath(ctx);
658 CGContextMoveToPoint(ctx, x , y );
659 CGContextAddLineToPoint(ctx, x +im2, y + im);
660 CGContextAddLineToPoint(ctx, x + im, y +im2);
661 CGContextAddLineToPoint(ctx, x , y );
662 CGContextAddLineToPoint(ctx, x + im, y -im2);
663 CGContextAddLineToPoint(ctx, x +im2, y - im);
664 CGContextAddLineToPoint(ctx, x , y );
665 CGContextAddLineToPoint(ctx, x -im2, y - im);
666 CGContextAddLineToPoint(ctx, x - im, y -im2);
667 CGContextAddLineToPoint(ctx, x , y );
668 CGContextAddLineToPoint(ctx, x - im, y +im2);
669 CGContextAddLineToPoint(ctx, x -im2, y + im);
670 CGContextAddLineToPoint(ctx, x , y );
671 CGContextFillPath(ctx);
672 }
673}
674
675//______________________________________________________________________________
677 Size_t markerSize)
678{
679 const Int_t im = Int_t(4 * markerSize + 0.5);
680 const Int_t im4 = Int_t(markerSize + 0.5);
681
682 for (unsigned i = 0; i < n; ++i) {
683 const Double_t x = xy[i].fX;
684 const Double_t y = xy[i].fY;
685
686 CGContextBeginPath(ctx);
687 CGContextMoveToPoint(ctx, x , y + im);
688 CGContextAddLineToPoint(ctx, x -im4, y +im4);
689 CGContextAddLineToPoint(ctx, x - im, y );
690 CGContextAddLineToPoint(ctx, x -im4, y -im4);
691 CGContextAddLineToPoint(ctx, x , y - im);
692 CGContextAddLineToPoint(ctx, x +im4, y -im4);
693 CGContextAddLineToPoint(ctx, x + im, y );
694 CGContextAddLineToPoint(ctx, x +im4, y +im4);
695 CGContextAddLineToPoint(ctx, x , y + im);
696 CGContextStrokePath(ctx);
697 }
698}
699
700//______________________________________________________________________________
702 Size_t markerSize)
703{
704 const Int_t im = Int_t(4 * markerSize + 0.5);
705 const Int_t im4 = Int_t( markerSize + 0.5);
706
707 for (unsigned i = 0; i < n; ++i) {
708 const Double_t x = xy[i].fX;
709 const Double_t y = xy[i].fY;
710
711 CGContextBeginPath(ctx);
712 CGContextMoveToPoint(ctx, x , y + im);
713 CGContextAddLineToPoint(ctx, x -im4, y +im4);
714 CGContextAddLineToPoint(ctx, x - im, y );
715 CGContextAddLineToPoint(ctx, x -im4, y -im4);
716 CGContextAddLineToPoint(ctx, x , y - im);
717 CGContextAddLineToPoint(ctx, x +im4, y -im4);
718 CGContextAddLineToPoint(ctx, x + im, y );
719 CGContextAddLineToPoint(ctx, x +im4, y +im4);
720 CGContextAddLineToPoint(ctx, x , y + im);
721 CGContextFillPath(ctx);
722 }
723}
724
725//______________________________________________________________________________
727 Size_t markerSize)
728{
729 const Int_t im = Int_t(4 * markerSize + 0.5);
730 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
731
732 for (unsigned i = 0; i < n; ++i) {
733 const Double_t x = xy[i].fX;
734 const Double_t y = xy[i].fY;
735
736 CGContextBeginPath(ctx);
737 CGContextMoveToPoint(ctx, x , y );
738 CGContextAddLineToPoint(ctx, x +im2, y + im);
739 CGContextAddLineToPoint(ctx, x -im2, y + im);
740 CGContextAddLineToPoint(ctx, x +im2, y - im);
741 CGContextAddLineToPoint(ctx, x -im2, y - im);
742 CGContextAddLineToPoint(ctx, x , y );
743 CGContextAddLineToPoint(ctx, x + im, y +im2);
744 CGContextAddLineToPoint(ctx, x + im, y -im2);
745 CGContextAddLineToPoint(ctx, x - im, y +im2);
746 CGContextAddLineToPoint(ctx, x - im, y -im2);
747 CGContextAddLineToPoint(ctx, x , y );
748 CGContextStrokePath(ctx);
749 }
750}
751
752//______________________________________________________________________________
754 Size_t markerSize)
755{
756 const Int_t im = Int_t(4 * markerSize + 0.5);
757 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
758 const Int_t im4 = Int_t(0.2 * markerSize + 0.5);
759
760 for (unsigned i = 0; i < n; ++i) {
761 const Double_t x = xy[i].fX;
762 const Double_t y = xy[i].fY;
763
764 CGContextBeginPath(ctx);
765 CGContextMoveToPoint(ctx, x +im4, y +im4);
766 CGContextAddLineToPoint(ctx, x +im2, y + im);
767 CGContextAddLineToPoint(ctx, x -im2, y + im);
768 CGContextAddLineToPoint(ctx, x -im4, y +im4);
769 CGContextAddLineToPoint(ctx, x - im, y +im2);
770 CGContextAddLineToPoint(ctx, x - im, y -im2);
771 CGContextAddLineToPoint(ctx, x -im4, y -im4);
772 CGContextAddLineToPoint(ctx, x -im2, y - im);
773 CGContextAddLineToPoint(ctx, x +im2, y - im);
774 CGContextAddLineToPoint(ctx, x +im4, y -im4);
775 CGContextAddLineToPoint(ctx, x + im, y -im2);
776 CGContextAddLineToPoint(ctx, x + im, y +im2);
777 CGContextAddLineToPoint(ctx, x +im4, y +im4);
778 CGContextFillPath(ctx);
779 }
780}
781
782//______________________________________________________________________________
783void DrawMarkerOpenCrossX(CGContextRef ctx, unsigned n, const TPoint *xy,
784 Size_t markerSize)
785{
786 const Int_t im = Int_t(4 * markerSize + 0.5);
787 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
788
789 for (unsigned i = 0; i < n; ++i) {
790 const Double_t x = xy[i].fX;
791 const Double_t y = xy[i].fY;
792
793 CGContextBeginPath(ctx);
794 CGContextMoveToPoint(ctx, x , y + im2);
795 CGContextAddLineToPoint(ctx, x -im2, y + im);
796 CGContextAddLineToPoint(ctx, x - im, y +im2);
797 CGContextAddLineToPoint(ctx, x -im2, y );
798 CGContextAddLineToPoint(ctx, x - im, y -im2);
799 CGContextAddLineToPoint(ctx, x -im2, y - im);
800 CGContextAddLineToPoint(ctx, x , y -im2);
801 CGContextAddLineToPoint(ctx, x +im2, y - im);
802 CGContextAddLineToPoint(ctx, x + im, y -im2);
803 CGContextAddLineToPoint(ctx, x +im2, y );
804 CGContextAddLineToPoint(ctx, x + im, y +im2);
805 CGContextAddLineToPoint(ctx, x +im2, y + im);
806 CGContextAddLineToPoint(ctx, x , y +im2);
807 CGContextStrokePath(ctx);
808 }
809}
810
811//______________________________________________________________________________
812void DrawMarkerFullCrossX(CGContextRef ctx, unsigned n, const TPoint *xy,
813 Size_t markerSize)
814{
815 const Int_t im = Int_t(4 * markerSize + 0.5);
816 const Int_t im2 = Int_t(2.0 * markerSize + 0.5);
817
818 for (unsigned i = 0; i < n; ++i) {
819 const Double_t x = xy[i].fX;
820 const Double_t y = xy[i].fY;
821
822 CGContextBeginPath(ctx);
823 CGContextMoveToPoint(ctx, x , y + im2);
824 CGContextAddLineToPoint(ctx, x -im2, y + im);
825 CGContextAddLineToPoint(ctx, x - im, y +im2);
826 CGContextAddLineToPoint(ctx, x -im2, y );
827 CGContextAddLineToPoint(ctx, x - im, y -im2);
828 CGContextAddLineToPoint(ctx, x -im2, y - im);
829 CGContextAddLineToPoint(ctx, x , y -im2);
830 CGContextAddLineToPoint(ctx, x +im2, y - im);
831 CGContextAddLineToPoint(ctx, x + im, y -im2);
832 CGContextAddLineToPoint(ctx, x +im2, y );
833 CGContextAddLineToPoint(ctx, x + im, y +im2);
834 CGContextAddLineToPoint(ctx, x +im2, y + im);
835 CGContextAddLineToPoint(ctx, x , y +im2);
836 CGContextFillPath(ctx);
837 }
838}
839
840//______________________________________________________________________________
841void DrawMarkerFourSquaresX(CGContextRef ctx, unsigned n, const TPoint *xy,
842 Size_t markerSize)
843{
844 const Int_t im = Int_t(4 * markerSize + 0.5);
845 const Int_t im2 = Int_t(2.00 * markerSize + 0.5);
846
847 for (unsigned i = 0; i < n; ++i) {
848 const Double_t x = xy[i].fX;
849 const Double_t y = xy[i].fY;
850
851 CGContextBeginPath(ctx);
852 CGContextMoveToPoint(ctx, x , y + im2*1.01);
853 CGContextAddLineToPoint(ctx, x -im2, y + im);
854 CGContextAddLineToPoint(ctx, x - im, y +im2);
855 CGContextAddLineToPoint(ctx, x -im2, y );
856 CGContextAddLineToPoint(ctx, x - im, y -im2);
857 CGContextAddLineToPoint(ctx, x -im2, y - im);
858 CGContextAddLineToPoint(ctx, x , y -im2);
859 CGContextAddLineToPoint(ctx, x +im2, y - im);
860 CGContextAddLineToPoint(ctx, x + im, y -im2);
861 CGContextAddLineToPoint(ctx, x +im2, y );
862 CGContextAddLineToPoint(ctx, x + im, y +im2);
863 CGContextAddLineToPoint(ctx, x +im2, y + im);
864 CGContextAddLineToPoint(ctx, x , y +im2*0.99);
865 CGContextAddLineToPoint(ctx, x +im2*0.99, y );
866 CGContextAddLineToPoint(ctx, x , y -im2*0.99);
867 CGContextAddLineToPoint(ctx, x -im2*0.99, y );
868 CGContextAddLineToPoint(ctx, x , y +im2*0.99);
869 CGContextFillPath(ctx);
870 }
871}
872
873//______________________________________________________________________________
875 Size_t markerSize)
876{
877 const Int_t im = Int_t(4 * markerSize + 0.5);
878 const Int_t im2 = Int_t(1.33 * markerSize + 0.5);
879
880 for (unsigned i = 0; i < n; ++i) {
881 const Double_t x = xy[i].fX;
882 const Double_t y = xy[i].fY;
883
884 CGContextBeginPath(ctx);
885 CGContextMoveToPoint(ctx, x -im2, y - im2*1.005);
886 CGContextAddLineToPoint(ctx, x -im2, y - im);
887 CGContextAddLineToPoint(ctx, x +im2, y - im);
888 CGContextAddLineToPoint(ctx, x +im2, y -im2);
889 CGContextAddLineToPoint(ctx, x + im, y -im2);
890 CGContextAddLineToPoint(ctx, x + im, y +im2);
891 CGContextAddLineToPoint(ctx, x +im2, y +im2);
892 CGContextAddLineToPoint(ctx, x +im2, y + im);
893 CGContextAddLineToPoint(ctx, x -im2, y + im);
894 CGContextAddLineToPoint(ctx, x -im2, y +im2);
895 CGContextAddLineToPoint(ctx, x - im, y +im2);
896 CGContextAddLineToPoint(ctx, x - im, y -im2);
897 CGContextAddLineToPoint(ctx, x -im2, y -im2*0.995);
898 CGContextAddLineToPoint(ctx, x -im2, y +im2);
899 CGContextAddLineToPoint(ctx, x +im2, y +im2);
900 CGContextAddLineToPoint(ctx, x +im2, y -im2);
901 CGContextAddLineToPoint(ctx, x -im2, y -im2*1.005);
902 CGContextFillPath(ctx);
903 }
904}
905
906//______________________________________________________________________________
907void DrawPolyMarker(CGContextRef ctx, unsigned nPoints, const TPoint *xy,
908 Size_t markerSize, Style_t markerStyle)
909{
910 switch (markerStyle) {
911 case kDot:
912 DrawMarkerDot(ctx, nPoints, xy);
913 break;
914 case kPlus:
915 DrawMarkerPlus(ctx, nPoints, xy, markerSize);
916 break;
917 case kStar:
918 case 31:
919 DrawMarkerStar(ctx, nPoints, xy, markerSize);
920 break;
921 case kCircle:
922 case kOpenCircle:
923 DrawMarkerOpenCircle(ctx, nPoints, xy, markerSize);
924 break;
925 case kMultiply:
926 DrawMarkerX(ctx, nPoints, xy, markerSize);
927 break;
928 case kFullDotSmall:
929 DrawMarkerFullDotSmall(ctx, nPoints, xy);
930 break;
931 case kFullDotMedium:
932 DrawMarkerFullDotMedium(ctx, nPoints, xy);
933 break;
934 case kFullDotLarge:
935 case kFullCircle:
936 DrawMarkerFullDotLarge(ctx, nPoints, xy, markerSize);
937 break;
938 case kFullSquare:
939 DrawMarkerFullSquare(ctx, nPoints, xy, markerSize);
940 break;
941 case kFullTriangleUp:
942 DrawMarkerFullTriangleUp(ctx, nPoints, xy, markerSize);
943 break;
945 DrawMarkerFullTriangleDown(ctx, nPoints, xy, markerSize);
946 break;
947 case kOpenSquare:
948 DrawMarkerOpenSquare(ctx, nPoints, xy, markerSize);
949 break;
950 case kOpenTriangleUp:
951 DrawMarkerOpenTriangleUp(ctx, nPoints, xy, markerSize);
952 break;
954 DrawMarkerOpenTriangleDown(ctx, nPoints, xy, markerSize);
955 break;
956 case kOpenDiamond:
957 DrawMarkerOpenDiamond(ctx, nPoints, xy, markerSize);
958 break;
959 case kFullDiamond:
960 DrawMarkerFullDiamond(ctx, nPoints, xy, markerSize);
961 break;
962 case kOpenCross:
963 DrawMarkerOpenCross(ctx, nPoints, xy, markerSize);
964 break;
965 case kFullCross:
966 DrawMarkerFullCross(ctx, nPoints, xy, markerSize);
967 break;
968 case kFullStar:
969 DrawMarkerFullStar(ctx, nPoints, xy, markerSize);
970 break;
971 case kOpenStar:
972 DrawMarkerOpenStar(ctx, nPoints, xy, markerSize);
973 break;
975 DrawMarkerOpenDiamondCross(ctx, nPoints, xy, markerSize);
976 break;
978 DrawMarkerOpenSquareDiagonal(ctx, nPoints, xy, markerSize);
979 break;
981 DrawMarkerOpenThreeTriangles(ctx, nPoints, xy, markerSize);
982 break;
983 case kOctagonCross:
984 DrawMarkerOctagonCross(ctx, nPoints, xy, markerSize);
985 break;
987 DrawMarkerFullThreeTriangles(ctx, nPoints, xy, markerSize);
988 break;
990 DrawMarkerOpenFourTrianglesX(ctx, nPoints, xy, markerSize);
991 break;
993 DrawMarkerFullFourTrianglesX(ctx, nPoints, xy, markerSize);
994 break;
996 DrawMarkerOpenDoubleDiamond(ctx, nPoints, xy, markerSize);
997 break;
999 DrawMarkerFullDoubleDiamond(ctx, nPoints, xy, markerSize);
1000 break;
1002 DrawMarkerOpenFourTrianglesPlus(ctx, nPoints, xy, markerSize);
1003 break;
1005 DrawMarkerFullFourTrianglesPlus(ctx, nPoints, xy, markerSize);
1006 break;
1007 case kOpenCrossX:
1008 DrawMarkerOpenCrossX(ctx, nPoints, xy, markerSize);
1009 break;
1010 case kFullCrossX:
1011 DrawMarkerFullCrossX(ctx, nPoints, xy, markerSize);
1012 break;
1013 case kFourSquaresX:
1014 DrawMarkerFourSquaresX(ctx, nPoints, xy, markerSize);
1015 break;
1016 case kFourSquaresPlus:
1017 DrawMarkerFourSquaresPlus(ctx, nPoints, xy, markerSize);
1018 break;
1019 }
1020}
1021
1022
1023//______________________________________________________________________________
1024void DrawPolyMarker(CGContextRef ctx, const std::vector<TPoint> &xy,
1025 Size_t markerSize, Style_t markerStyle)
1026{
1027 DrawPolyMarker(ctx, xy.size(), &xy[0], markerSize, markerStyle);
1028}
1029
1030}//namespace Quartz
1031}//namespace ROOT
ROOT::R::TRInterface & r
Definition Object.C:4
#define d(i)
Definition RSha256.hxx:102
int Int_t
Definition RtypesCore.h:45
float Size_t
Definition RtypesCore.h:87
double Double_t
Definition RtypesCore.h:59
short Style_t
Definition RtypesCore.h:80
@ kOpenDoubleDiamond
Definition TAttMarker.h:59
@ kStar
Definition TAttMarker.h:49
@ kFullDotLarge
Definition TAttMarker.h:50
@ kFullDoubleDiamond
Definition TAttMarker.h:59
@ kOpenFourTrianglesX
Definition TAttMarker.h:58
@ kOpenSquare
Definition TAttMarker.h:52
@ kFullThreeTriangles
Definition TAttMarker.h:57
@ kOpenTriangleUp
Definition TAttMarker.h:53
@ kFourSquaresPlus
Definition TAttMarker.h:62
@ kFullDotSmall
Definition TAttMarker.h:50
@ kFullDotMedium
Definition TAttMarker.h:50
@ kOpenTriangleDown
Definition TAttMarker.h:54
@ kOpenThreeTriangles
Definition TAttMarker.h:56
@ kFullCrossX
Definition TAttMarker.h:61
@ kFullFourTrianglesX
Definition TAttMarker.h:58
@ kFullTriangleDown
Definition TAttMarker.h:52
@ kCircle
Definition TAttMarker.h:49
@ kOpenCrossX
Definition TAttMarker.h:61
@ kFullFourTrianglesPlus
Definition TAttMarker.h:60
@ kFullSquare
Definition TAttMarker.h:51
@ kOpenSquareDiagonal
Definition TAttMarker.h:56
@ kFullStar
Definition TAttMarker.h:54
@ kOpenDiamond
Definition TAttMarker.h:53
@ kFullTriangleUp
Definition TAttMarker.h:51
@ kOpenDiamondCross
Definition TAttMarker.h:55
@ kOpenFourTrianglesPlus
Definition TAttMarker.h:60
@ kMultiply
Definition TAttMarker.h:49
@ kPlus
Definition TAttMarker.h:49
@ kOctagonCross
Definition TAttMarker.h:57
@ kFullCircle
Definition TAttMarker.h:51
@ kDot
Definition TAttMarker.h:49
@ kOpenCross
Definition TAttMarker.h:53
@ kFourSquaresX
Definition TAttMarker.h:61
@ kOpenCircle
Definition TAttMarker.h:52
@ kFullCross
Definition TAttMarker.h:55
@ kOpenStar
Definition TAttMarker.h:54
@ kFullDiamond
Definition TAttMarker.h:55
XPoint xy[kMAXMK]
Definition TGX11.cxx:123
SCoord_t fY
Definition TPoint.h:36
SCoord_t fX
Definition TPoint.h:35
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16
void DrawMarkerOpenSquare(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerStar(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullTriangleDown(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerPlus(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullDotLarge(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenDiamond(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullFourTrianglesPlus(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenSquareDiagonal(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOctagonCross(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullDotSmall(CGContextRef ctx, unsigned n, const TPoint *xy)
void DrawMarkerFullTriangleUp(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullCrossX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenCrossX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenDiamondCross(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenThreeTriangles(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenTriangleUp(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFourSquaresPlus(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullStar(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenFourTrianglesPlus(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFourSquaresX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawPolyMarker(CGContextRef ctx, const std::vector< TPoint > &marker, Size_t markerSize, Style_t markerStyle)
void DrawMarkerOpenCross(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullSquare(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenStar(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullDoubleDiamond(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullDiamond(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullThreeTriangles(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenDoubleDiamond(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullFourTrianglesX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenCircle(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerDot(CGContextRef ctx, unsigned n, const TPoint *xy)
void DrawMarkerFullCross(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenTriangleDown(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenFourTrianglesX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullDotMedium(CGContextRef ctx, unsigned n, const TPoint *xy)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...