ROOT  6.06/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 //______________________________________________________________________________
483 void DrawPolyMarker(CGContextRef ctx, unsigned nPoints, const TPoint *xy,
484  Size_t markerSize, Style_t markerStyle)
485 {
486  switch (markerStyle) {
487  case kDot:
488  DrawMarkerDot(ctx, nPoints, xy);
489  break;
490  case kPlus:
491  DrawMarkerPlus(ctx, nPoints, xy, markerSize);
492  break;
493  case kStar:
494  DrawMarkerStar(ctx, nPoints, xy, markerSize);
495  break;
496  case kCircle:
497  case kOpenCircle:
498  DrawMarkerOpenCircle(ctx, nPoints, xy, markerSize);
499  break;
500  case kMultiply:
501  DrawMarkerX(ctx, nPoints, xy, markerSize);
502  break;
503  case kFullDotSmall:
504  DrawMarkerFullDotSmall(ctx, nPoints, xy);
505  break;
506  case kFullDotMedium:
507  DrawMarkerFullDotMedium(ctx, nPoints, xy);
508  break;
509  case kFullDotLarge:
510  case kFullCircle:
511  DrawMarkerFullDotLarge(ctx, nPoints, xy, markerSize);
512  break;
513  case kFullSquare:
514  DrawMarkerFullSquare(ctx, nPoints, xy, markerSize);
515  break;
516  case kFullTriangleUp:
517  DrawMarkerFullTriangleUp(ctx, nPoints, xy, markerSize);
518  break;
519  case kFullTriangleDown:
520  DrawMarkerFullTriangleDown(ctx, nPoints, xy, markerSize);
521  break;
522  case kOpenSquare:
523  DrawMarkerOpenSquare(ctx, nPoints, xy, markerSize);
524  break;
525  case kOpenTriangleUp:
526  DrawMarkerOpenTriangleUp(ctx, nPoints, xy, markerSize);
527  break;
528  case kOpenTriangleDown:
529  DrawMarkerOpenTriangleDown(ctx, nPoints, xy, markerSize);
530  break;
531  case kOpenDiamond:
532  DrawMarkerOpenDiamond(ctx, nPoints, xy, markerSize);
533  break;
534  case kFullDiamond:
535  DrawMarkerFullDiamond(ctx, nPoints, xy, markerSize);
536  break;
537  case kOpenCross:
538  DrawMarkerOpenCross(ctx, nPoints, xy, markerSize);
539  break;
540  case kFullCross:
541  DrawMarkerFullCross(ctx, nPoints, xy, markerSize);
542  break;
543  case kFullStar:
544  DrawMarkerFullStar(ctx, nPoints, xy, markerSize);
545  break;
546  case kOpenStar:
547  DrawMarkerOpenStar(ctx, nPoints, xy, markerSize);
548  break;
549  }
550 }
551 
552 
553 //______________________________________________________________________________
554 void DrawPolyMarker(CGContextRef ctx, const std::vector<TPoint> &xy,
555  Size_t markerSize, Style_t markerStyle)
556 {
557  DrawPolyMarker(ctx, xy.size(), &xy[0], markerSize, markerStyle);
558 }
559 
560 }//namespace Quartz
561 }//namespace ROOT
short Style_t
Definition: RtypesCore.h:76
Namespace for new ROOT classes and functions.
Definition: ROOT.py:1
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 DrawMarkerOpenTriangleDown(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
SCoord_t fX
Definition: TPoint.h:37
void DrawMarkerX(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
SCoord_t fY
Definition: TPoint.h:38
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)
Double_t x[n]
Definition: legend1.C:17
void DrawMarkerOpenSquare(CGContextRef ctx, unsigned n, const TPoint *xy, Size_t markerSize)
Definition: TPoint.h:33
ROOT::R::TRInterface & r
Definition: Object.C:4
XPoint xy[kMAXMK]
Definition: TGX11.cxx:122
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 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 DrawMarkerDot(CGContextRef ctx, unsigned n, const TPoint *xy)
Definition: QuartzMarker.mm:21
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)