60 : fR1(rad), fPhimin(phimin),fPhimax(phimax)
64 fIsCurly = fgDefaultIsCurly;
86 pixeltoX = xrange / pxrange;
87 pixeltoY = yrange/pyrange;
88 rPix =
fR1 / pixeltoX;
91 if (dang < 0) dang += 360;
106 xx = (yv[i] + rPix) *
cos(angle);
107 yy = (yv[i] + rPix) *
sin(angle);
124 if (!
gPad)
return 9999;
135 if (phi < fPhimin || phi >
fPhimax)
return 9999;
163 static Int_t px1,py1,npe,r1;
164 static Int_t pxold, pyold;
168 static Bool_t pTop, pL, pR, pBot, pINSIDE;
169 static Int_t pTx,pTy,pLx,pLy,pRx,pRy,pBx,pBy;
181 if (dphi<0) dphi += 2 * pi;
184 for (i=0;i<=np;i++) {
190 y[i] =
gPad->YtoAbsPixel(
fY1) + rpixY;
212 pTy =
gPad->YtoAbsPixel(
fY1) + r1;
213 pBy =
gPad->YtoAbsPixel(
fY1) - r1;
216 gVirtualX->DrawLine(pRx+4, py1+4, pRx-4, py1+4);
217 gVirtualX->DrawLine(pRx-4, py1+4, pRx-4, py1-4);
218 gVirtualX->DrawLine(pRx-4, py1-4, pRx+4, py1-4);
219 gVirtualX->DrawLine(pRx+4, py1-4, pRx+4, py1+4);
220 gVirtualX->DrawLine(pLx+4, py1+4, pLx-4, py1+4);
221 gVirtualX->DrawLine(pLx-4, py1+4, pLx-4, py1-4);
222 gVirtualX->DrawLine(pLx-4, py1-4, pLx+4, py1-4);
223 gVirtualX->DrawLine(pLx+4, py1-4, pLx+4, py1+4);
224 gVirtualX->DrawLine(px1+4, pBy+4, px1-4, pBy+4);
225 gVirtualX->DrawLine(px1-4, pBy+4, px1-4, pBy-4);
226 gVirtualX->DrawLine(px1-4, pBy-4, px1+4, pBy-4);
227 gVirtualX->DrawLine(px1+4, pBy-4, px1+4, pBy+4);
228 gVirtualX->DrawLine(px1+4, pTy+4, px1-4, pTy+4);
229 gVirtualX->DrawLine(px1-4, pTy+4, px1-4, pTy-4);
230 gVirtualX->DrawLine(px1-4, pTy-4, px1+4, pTy-4);
231 gVirtualX->DrawLine(px1+4, pTy-4, px1+4, pTy+4);
246 pTop = pL = pR = pBot = pINSIDE =
kFALSE;
271 pxold = px; pyold = py;
278 gVirtualX->DrawLine(pRx+4, py1+4, pRx-4, py1+4);
279 gVirtualX->DrawLine(pRx-4, py1+4, pRx-4, py1-4);
280 gVirtualX->DrawLine(pRx-4, py1-4, pRx+4, py1-4);
281 gVirtualX->DrawLine(pRx+4, py1-4, pRx+4, py1+4);
282 gVirtualX->DrawLine(pLx+4, py1+4, pLx-4, py1+4);
283 gVirtualX->DrawLine(pLx-4, py1+4, pLx-4, py1-4);
284 gVirtualX->DrawLine(pLx-4, py1-4, pLx+4, py1-4);
285 gVirtualX->DrawLine(pLx+4, py1-4, pLx+4, py1+4);
286 gVirtualX->DrawLine(px1+4, pBy+4, px1-4, pBy+4);
287 gVirtualX->DrawLine(px1-4, pBy+4, px1-4, pBy-4);
288 gVirtualX->DrawLine(px1-4, pBy-4, px1+4, pBy-4);
289 gVirtualX->DrawLine(px1+4, pBy-4, px1+4, pBy+4);
290 gVirtualX->DrawLine(px1+4, pTy+4, px1-4, pTy+4);
291 gVirtualX->DrawLine(px1-4, pTy+4, px1-4, pTy-4);
292 gVirtualX->DrawLine(px1-4, pTy-4, px1+4, pTy-4);
293 gVirtualX->DrawLine(px1+4, pTy-4, px1+4, pTy+4);
294 for (i=0;i<npe;i++)
gVirtualX->DrawLine(
x[i],
y[i],
x[i+1],
y[i+1]);
308 if (pTop || pBot || pL || pR) {
313 if (dphi<0) dphi += 2 * pi;
319 for (i=0;i<=np;i++) {
337 for (i=0;i<npe;i++) {
344 if (pTop)
gPad->ShowGuidelines(
this, event,
't',
true);
345 if (pBot)
gPad->ShowGuidelines(
this, event,
'b',
true);
346 if (pL)
gPad->ShowGuidelines(
this, event,
'l',
true);
347 if (pR)
gPad->ShowGuidelines(
this, event,
'r',
true);
353 dpx = px-pxold; dpy = py-pyold;
354 px1 += dpx; py1 += dpy;
356 for (i=0;i<=npe;i++) {
x[i] += dpx;
y[i] += dpy;}
357 for (i=0;i<npe;i++)
gVirtualX->DrawLine(
x[i],
y[i],
x[i+1],
y[i+1]);
360 gPad->ShowGuidelines(
this, event,
'i',
true);
372 gVirtualX->DrawLine(pRx+4, py1+4, pRx-4, py1+4);
373 gVirtualX->DrawLine(pRx-4, py1+4, pRx-4, py1-4);
374 gVirtualX->DrawLine(pRx-4, py1-4, pRx+4, py1-4);
375 gVirtualX->DrawLine(pRx+4, py1-4, pRx+4, py1+4);
376 gVirtualX->DrawLine(pLx+4, py1+4, pLx-4, py1+4);
377 gVirtualX->DrawLine(pLx-4, py1+4, pLx-4, py1-4);
378 gVirtualX->DrawLine(pLx-4, py1-4, pLx+4, py1-4);
379 gVirtualX->DrawLine(pLx+4, py1-4, pLx+4, py1+4);
380 gVirtualX->DrawLine(px1+4, pBy+4, px1-4, pBy+4);
381 gVirtualX->DrawLine(px1-4, pBy+4, px1-4, pBy-4);
382 gVirtualX->DrawLine(px1-4, pBy-4, px1+4, pBy-4);
383 gVirtualX->DrawLine(px1+4, pBy-4, px1+4, pBy+4);
384 gVirtualX->DrawLine(px1+4, pTy+4, px1-4, pTy+4);
385 gVirtualX->DrawLine(px1-4, pTy+4, px1-4, pTy-4);
386 gVirtualX->DrawLine(px1-4, pTy-4, px1+4, pTy-4);
387 gVirtualX->DrawLine(px1+4, pTy-4, px1+4, pTy+4);
395 gPad->ShowGuidelines(
this, event);
399 rLx =
gPad->AbsPixeltoX(px1+r1);
400 rRx =
gPad->AbsPixeltoX(px1-r1);
405 if (!opaque)
gVirtualX->SetLineColor(-1);
415 out,
Class(),
"curlyarc",
416 TString::Format(
"%g, %g, %g, %g, %g, %g, %g",
fX1,
fY1,
fR1,
fPhimin,
fPhimax,
fWaveLength,
fAmplitude));
420 out <<
" curlyarc->SetWavy();\n";
515 Rectangle_t BBox{0, 0, 0, 0};
607 if (y1<
fY1-
R2)
return;
624 if (y2>
fY1+
R2)
return;
int Int_t
Signed integer 4 bytes (int).
bool Bool_t
Boolean (0=false, 1=true) (bool).
double Double_t
Double 8 bytes.
long long Long64_t
Portable signed long integer 8 bytes.
const char Option_t
Option string (const char).
virtual void SaveLineAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
Rectangle_t GetBBox() override
static void SetDefaultIsCurly(Bool_t IsCurly)
static Double_t GetDefaultWaveLength()
static Bool_t GetDefaultIsCurly()
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Computes distance from point (px,py) to the object.
void SetBBoxX1(const Int_t x) override
virtual void SetPhimax(Double_t phimax)
virtual void SetRadius(Double_t radius)
Double_t fTheta
used internally
Double_t fPhimax
end phi (degrees)
void SetBBoxY2(const Int_t y) override
virtual void SetCenter(Double_t x1, Double_t y1)
void SetBBoxX2(const Int_t x) override
static Double_t fgDefaultWaveLength
default wavelength
virtual void SetPhimin(Double_t phimin)
Double_t fPhimin
start phi (degrees)
Double_t fR1
Radius of arc.
static Double_t fgDefaultAmplitude
default amplitude
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to an event at (px,py).
TPoint GetBBoxCenter() override
static Bool_t fgDefaultIsCurly
default curly type
void SavePrimitive(std::ostream &out, Option_t *="") override
Save a primitive as a C++ statement(s) on output stream "out".
static Double_t GetDefaultAmplitude()
void SetBBoxCenter(const TPoint &p) override
void SetBBoxCenterY(const Int_t y) override
void SetBBoxY1(const Int_t y) override
static void SetDefaultAmplitude(Double_t Amplitude)
static void SetDefaultWaveLength(Double_t WaveLength)
void SetBBoxCenterX(const Int_t x) override
Double_t fY1
start y, center for arc
Double_t fWaveLength
wavelength of sinusoid in percent of pad height
Double_t fAmplitude
amplitude of sinusoid in percent of pad height
Int_t fNsteps
used internally (controls precision)
Double_t fX1
start x, center for arc
virtual void SetStartPoint(Double_t x1, Double_t y1)
Bool_t fIsCurly
true: Gluon, false: Gamma
static void SavePrimitiveDraw(std::ostream &out, const char *variable_name, Option_t *option=nullptr)
Save invocation of primitive Draw() method Skipped if option contains "nodraw" string.
static void SavePrimitiveConstructor(std::ostream &out, TClass *cl, const char *variable_name, const char *constructor_agrs="", Bool_t empty_line=kTRUE)
Save object constructor in the output stream "out".
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
RVec< PromoteType< T > > cos(const RVec< T > &v)
RVec< PromoteType< T > > sin(const RVec< T > &v)
double dist(Rotation3D const &r1, Rotation3D const &r2)
Double_t ATan2(Double_t y, Double_t x)
Returns the principal value of the arc tangent of y/x, expressed in radians.
Double_t Sqrt(Double_t x)
Returns the square root of x.
Double_t Cos(Double_t)
Returns the cosine of an angle of x radians.
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
BVH_ALWAYS_INLINE T length(const Vec< T, N > &v)
#define R2(v, w, x, y, z, i)
Rectangle structure (maps to the X11 XRectangle structure).