Logo ROOT   6.10/09
Reference Guide
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 
16 namespace ROOT {
17 namespace Quartz {
18 
19 
20 //______________________________________________________________________________
21 void 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 //______________________________________________________________________________
29 void 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 //______________________________________________________________________________
52 void 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 //______________________________________________________________________________
97 void 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 //______________________________________________________________________________
117 void 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 //______________________________________________________________________________
139 void 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 //______________________________________________________________________________
159 void 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 //______________________________________________________________________________
167 void 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 //______________________________________________________________________________
187 void 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 //______________________________________________________________________________
199 void 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 //______________________________________________________________________________
211 void DrawMarkerFullTriangleUp(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
228 void DrawMarkerOpenTriangleUp(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
246 void DrawMarkerOpenTriangleDown(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
265 void DrawMarkerFullTriangleDown(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
283 void 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 //______________________________________________________________________________
304 void 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 //______________________________________________________________________________
326 void 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 //______________________________________________________________________________
356 void 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 //______________________________________________________________________________
386 void 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 //______________________________________________________________________________
452 void 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 //______________________________________________________________________________
482 void DrawMarkerOpenSquareDiagonal(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
508 void DrawMarkerOpenDiamondCross(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
534 void DrawMarkerOpenThreeTriangles(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
560 void 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 //______________________________________________________________________________
592 void DrawMarkerFullThreeTriangles(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
618 void DrawMarkerOpenFourTrianglesX(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
647 void DrawMarkerFullFourTrianglesX(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
676 void DrawMarkerOpenDoubleDiamond(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
701 void DrawMarkerFullDoubleDiamond(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
726 void DrawMarkerOpenFourTrianglesPlus(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
753 void DrawMarkerFullFourTrianglesPlus(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
783 void 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 //______________________________________________________________________________
812 void 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 //______________________________________________________________________________
841 void 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 //______________________________________________________________________________
874 void DrawMarkerFourSquaresPlus(CGContextRef ctx, unsigned n, const TPoint *xy,
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 //______________________________________________________________________________
907 void 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;
944  case kFullTriangleDown:
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;
953  case kOpenTriangleDown:
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;
974  case kOpenDiamondCross:
975  DrawMarkerOpenDiamondCross(ctx, nPoints, xy, markerSize);
976  break;
977  case kOpenSquareDiagonal:
978  DrawMarkerOpenSquareDiagonal(ctx, nPoints, xy, markerSize);
979  break;
980  case kOpenThreeTriangles:
981  DrawMarkerOpenThreeTriangles(ctx, nPoints, xy, markerSize);
982  break;
983  case kOctagonCross:
984  DrawMarkerOctagonCross(ctx, nPoints, xy, markerSize);
985  break;
986  case kFullThreeTriangles:
987  DrawMarkerFullThreeTriangles(ctx, nPoints, xy, markerSize);
988  break;
989  case kOpenFourTrianglesX:
990  DrawMarkerOpenFourTrianglesX(ctx, nPoints, xy, markerSize);
991  break;
992  case kFullFourTrianglesX:
993  DrawMarkerFullFourTrianglesX(ctx, nPoints, xy, markerSize);
994  break;
995  case kOpenDoubleDiamond:
996  DrawMarkerOpenDoubleDiamond(ctx, nPoints, xy, markerSize);
997  break;
998  case kFullDoubleDiamond:
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 //______________________________________________________________________________
1024 void 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
short Style_t
Definition: RtypesCore.h:76
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
float Size_t
Definition: RtypesCore.h:83
void DrawMarkerOpenDiamond(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullDotMedium(CGContextRef ctx, unsigned n, const TPoint *xy)
void DrawMarkerOpenTriangleUp(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenDoubleDiamond(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenTriangleDown(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
SCoord_t fX
Definition: TPoint.h:35
void DrawMarkerX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
SCoord_t fY
Definition: TPoint.h:36
void DrawMarkerOpenCircle(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
Definition: QuartzMarker.mm:97
int Int_t
Definition: RtypesCore.h:41
void DrawMarkerFullSquare(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullDiamond(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullDotSmall(CGContextRef ctx, unsigned n, const TPoint *xy)
void DrawMarkerOctagonCross(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullFourTrianglesX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFourSquaresPlus(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
Double_t x[n]
Definition: legend1.C:17
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 DrawMarkerFullCrossX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenSquare(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenCrossX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
Definition: TPoint.h:31
void DrawMarkerOpenSquareDiagonal(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullFourTrianglesPlus(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
TRandom2 r(17)
XPoint xy[kMAXMK]
Definition: TGX11.cxx:122
void DrawMarkerFullDoubleDiamond(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenFourTrianglesX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
unsigned int UInt_t
Definition: RtypesCore.h:42
void DrawPolyMarker(CGContextRef ctx, const std::vector< TPoint > &marker, Size_t markerSize, Style_t markerStyle)
void DrawMarkerStar(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
Definition: QuartzMarker.mm:52
void DrawMarkerFullThreeTriangles(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullStar(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenStar(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
double f(double x)
double Double_t
Definition: RtypesCore.h:55
void DrawMarkerOpenThreeTriangles(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerDot(CGContextRef ctx, unsigned n, const TPoint *xy)
Definition: QuartzMarker.mm:21
void DrawMarkerOpenDiamondCross(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
Double_t y[n]
Definition: legend1.C:17
void DrawMarkerFullDotLarge(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullTriangleDown(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerOpenCross(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerPlus(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
Definition: QuartzMarker.mm:29
const Int_t n
Definition: legend1.C:16
void DrawMarkerFullTriangleUp(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
void DrawMarkerFullCross(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)