#include "AGeoWinstonConePoly.h"
#include "Riostream.h"
#include "TBuffer3D.h"
#include "TBuffer3DTypes.h"
#include "TGeoCone.h"
#include "TGeoManager.h"
#include "TGeoTube.h"
#include "TGeoVolume.h"
#include "TMath.h"
#include "TVector3.h"
#include "TVirtualGeoPainter.h"
#include "TVirtualPad.h"
ClassImp(AGeoWinstonConePoly);
AGeoWinstonConePoly::AGeoWinstonConePoly() : AGeoWinstonCone2D() {
}
AGeoWinstonConePoly::AGeoWinstonConePoly(Double_t r1, Double_t r2, Int_t n)
: AGeoWinstonCone2D(r1, r2, 0) {
SetWinstonDimensions(r1, r2, n);
ComputeBBox();
}
AGeoWinstonConePoly::AGeoWinstonConePoly(const char* name, Double_t r1,
Double_t r2, Int_t n)
: AGeoWinstonCone2D(name, r1, r2, 0) {
SetWinstonDimensions(r1, r2, n);
ComputeBBox();
}
AGeoWinstonConePoly::~AGeoWinstonConePoly() {
}
void AGeoWinstonConePoly::ComputeBBox() {
fDX = fDX;
fDY = fDY;
fDZ = fDZ;
fOrigin[0] = 0;
fOrigin[1] = 0;
fOrigin[2] = 0;
}
void AGeoWinstonConePoly::ComputeNormal(CONST53410 Double_t* point,
CONST53410 Double_t* dir,
Double_t* norm) {
Double_t x = point[0];
Double_t y = point[1];
Double_t z = point[2];
Double_t saf[2];
saf[0] = TMath::Abs(TMath::Abs(fDZ) - TMath::Abs(z));
Double_t phi = TMath::ATan2(y, x);
while (phi > TMath::Pi() / fPolyN) {
phi -= TMath::TwoPi() / fPolyN;
}
while (phi < -TMath::Pi() / fPolyN) {
phi += TMath::TwoPi() / fPolyN;
}
try {
saf[1] =
TMath::Abs(CalcR(z) - TMath::Sqrt(x * x + y * y) * TMath::Cos(phi));
} catch (...) {
saf[1] = TGeoShape::Big();
}
Int_t i = TMath::LocMin(2, saf);
if (i == 0) {
norm[0] = 0;
norm[1] = 0;
norm[2] = 1;
} else {
phi = TMath::ATan2(y, x);
if (phi < -TMath::Pi() / fPolyN) {
phi += TMath::TwoPi();
}
Int_t n =
TMath::Floor((phi + TMath::Pi() / fPolyN) / (TMath::TwoPi() / fPolyN));
norm[0] = TMath::Cos(n * TMath::TwoPi() / fPolyN);
norm[1] = TMath::Sin(n * TMath::TwoPi() / fPolyN);
norm[2] = -CalcdRdZ(z);
}
TVector3 vec(norm);
vec.SetMag(1.);
norm[0] = vec.X();
norm[1] = vec.Y();
norm[2] = vec.Z();
if (norm[0] * dir[0] + norm[1] * dir[1] + norm[2] * dir[2] < 0) {
norm[0] = -norm[0];
norm[1] = -norm[1];
norm[2] = -norm[2];
}
}
Bool_t AGeoWinstonConePoly::Contains(CONST53410 Double_t* point) const {
Double_t x = point[0];
Double_t y = point[1];
Double_t z = point[2];
if (TMath::Abs(z) > fDZ) {
return kFALSE;
}
Double_t r = CalcR(z);
return InsidePolygon(x, y, r);
}
Int_t AGeoWinstonConePoly::DistancetoPrimitive(Int_t px, Int_t py) {
Int_t n = gGeoManager->GetNsegments();
Int_t numPoints = (n + 1) * fPolyN + 2;
return ShapeDistancetoPrimitive(numPoints, px, py);
}
Double_t AGeoWinstonConePoly::DistFromInside(CONST53410 Double_t* point,
CONST53410 Double_t* dir,
Int_t iact, Double_t step,
Double_t* safe) const {
if (iact < 3 and safe) {
*safe = Safety(point, kFALSE);
if (iact == 0) return TGeoShape::Big();
if (iact == 1 && step < *safe) return TGeoShape::Big();
}
Double_t d[1 + fPolyN];
d[0] = TGeoShape::Big();
if (dir[2] < 0) {
d[0] = (-point[2] - fDZ) / dir[2];
} else if (dir[2] > 0) {
d[0] = (fDZ - point[2]) / dir[2];
}
for (Int_t i = 0; i < fPolyN; i++) {
d[1 + i] =
DistToParabola(point, dir, i * TMath::TwoPi() / fPolyN, TMath::Pi());
}
return d[TMath::LocMin(1 + fPolyN, d)];
}
Double_t AGeoWinstonConePoly::DistFromOutside(CONST53410 Double_t* point,
CONST53410 Double_t* dir,
Int_t iact, Double_t step,
Double_t* safe) const {
if (iact < 3 and safe) {
*safe = Safety(point, kFALSE);
if (iact == 0) return TGeoShape::Big();
if (iact == 1 && step < *safe) return TGeoShape::Big();
}
if (point[2] <= -fDZ) {
if (dir[2] <= 0) {
return TGeoShape::Big();
}
Double_t snxt = -(fDZ + point[2]) / dir[2];
Double_t xnew = point[0] + snxt * dir[0];
Double_t ynew = point[1] + snxt * dir[1];
if (InsidePolygon(xnew, ynew, fR2)) {
return snxt;
}
} else if (point[2] >= fDZ) {
if (dir[2] >= 0) {
return TGeoShape::Big();
}
Double_t snxt = (fDZ - point[2]) / dir[2];
Double_t xnew = point[0] + snxt * dir[0];
Double_t ynew = point[1] + snxt * dir[1];
if (InsidePolygon(xnew, ynew, fR1)) {
return snxt;
}
}
Double_t d[fPolyN];
for (Int_t i = 0; i < fPolyN; i++) {
d[i] = DistToParabola(point, dir, i * TMath::TwoPi() / fPolyN,
TMath::TwoPi() / fPolyN);
}
return d[TMath::LocMin(fPolyN, d)];
}
void AGeoWinstonConePoly::GetBoundingCylinder(Double_t* param) const {
param[0] = 0;
param[1] = TMath::Power(fR1 / TMath::Cos(TMath::Pi() / fPolyN), 2);
param[2] = 0;
param[3] = 360;
}
const TBuffer3D& AGeoWinstonConePoly::GetBuffer3D(Int_t reqSections,
Bool_t localFrame) const {
static TBuffer3D buffer(TBuffer3DTypes::kGeneric);
TGeoBBox::FillBuffer3D(buffer, reqSections, localFrame);
if (reqSections & TBuffer3D::kRawSizes) {
Int_t n = gGeoManager->GetNsegments();
Int_t nbPnts = fPolyN * (n + 1) + 2;
Int_t nbSegs = fPolyN * (2 * n + 3);
Int_t nbPols3 = fPolyN * 2;
Int_t nbPols4 = fPolyN * n;
if (buffer.SetRawSizes(nbPnts, 3 * nbPnts, nbSegs, 3 * nbSegs,
nbPols3 + nbPols4, 5 * nbPols3 + 6 * nbPols4)) {
buffer.SetSectionsValid(TBuffer3D::kRawSizes);
}
}
if ((reqSections & TBuffer3D::kRaw) &&
buffer.SectionsValid(TBuffer3D::kRawSizes)) {
SetPoints(buffer.fPnts);
if (!buffer.fLocalFrame) {
TransformPoints(buffer.fPnts, buffer.NbPnts());
}
SetSegsAndPols(buffer);
buffer.SetSectionsValid(TBuffer3D::kRaw);
}
return buffer;
}
void AGeoWinstonConePoly::GetMeshNumbers(Int_t& nvert, Int_t& nsegs,
Int_t& npols) const {
Int_t n = gGeoManager->GetNsegments();
nvert = fPolyN * (n + 1) + 2;
nsegs = fPolyN * (2 * n + 3);
npols = fPolyN * (n + 2);
}
Int_t AGeoWinstonConePoly::GetNmeshVertices() const {
Int_t n = gGeoManager->GetNsegments();
Int_t nbPnts = fPolyN * (n + 1) + 2;
return nbPnts;
}
Bool_t AGeoWinstonConePoly::InsidePolygon(Double_t x, Double_t y,
Double_t r) const {
Double_t theta = TMath::ATan2(y, x);
while (theta > TMath::Pi() / fPolyN) {
theta -= TMath::TwoPi() / fPolyN;
}
while (theta < -TMath::Pi() / fPolyN) {
theta += TMath::TwoPi() / fPolyN;
}
if (TMath::Sqrt(x * x + y * y) * TMath::Cos(theta) > r) {
return kFALSE;
}
return kTRUE;
}
void AGeoWinstonConePoly::InspectShape() const {
printf("*** Shape %s: AGeoWinstonConePoly ***\n", GetName());
printf(" N = %d\n", fPolyN);
printf(" 2D Base:\n");
AGeoWinstonCone2D::InspectShape();
}
TBuffer3D* AGeoWinstonConePoly::MakeBuffer3D() const {
Int_t n = gGeoManager->GetNsegments();
Int_t nbPnts = fPolyN * (n + 1) + 2;
Int_t nbSegs = fPolyN * (2 * n + 3);
Int_t nbPols3 = fPolyN * 2;
Int_t nbPols4 = fPolyN * n;
TBuffer3D* buff =
new TBuffer3D(TBuffer3DTypes::kGeneric, nbPnts, 3 * nbPnts, nbSegs,
3 * nbSegs, nbPols3 + nbPols4, 5 * nbPols3 + 6 * nbPols4);
if (buff) {
SetPoints(buff->fPnts);
SetSegsAndPols(*buff);
}
return buff;
}
void AGeoWinstonConePoly::SavePrimitive(std::ostream& out, Option_t*) {
if (TObject::TestBit(kGeoSavePrimitive)) return;
out << " // Shape: " << GetName() << " type: " << ClassName() << std::endl;
out << " r1 = " << fR1 << ";" << std::endl;
out << " r2 = " << fR2 << ";" << std::endl;
out << " n = " << fPolyN << ";" << std::endl;
out << " AGeoWinstonConePoly* cone = new AGeoWinstonConePoly(\""
<< GetName() << "\", r1, r2, n);" << std::endl;
out << " TGeoShape* " << GetPointerName() << " = cone;" << std::endl;
TObject::SetBit(TGeoShape::kGeoSavePrimitive);
}
void AGeoWinstonConePoly::SetWinstonDimensions(Double_t r1, Double_t r2,
Int_t n) {
if (TMath::Abs(r1) > TMath::Abs(r2)) {
fR1 = TMath::Abs(r1);
fR2 = TMath::Abs(r2);
} else {
fR1 = TMath::Abs(r2);
fR2 = TMath::Abs(r1);
}
fPolyN = n >= 3 ? n : 3;
Double_t r = r1 / TMath::Cos(TMath::Pi() / n);
fDX = 0;
for (Int_t i = 0; i < fPolyN; i++) {
fDX = TMath::Max(TMath::Abs(r * TMath::Cos(TMath::Pi() / n * (2 * i + 1))),
fDX);
}
fDY = 0;
for (Int_t i = 0; i < fPolyN; i++) {
fDY = TMath::Max(TMath::Abs(r * TMath::Sin(TMath::Pi() / n * (2 * i + 1))),
fDY);
}
fTheta = TMath::ASin(fR2 / fR1);
fDZ = (fR1 + fR2) / TMath::Tan(fTheta) / 2.;
fF = fR2 * (1 + TMath::Sin(fTheta));
}
void AGeoWinstonConePoly::SetDimensions(Double_t* param) {
SetWinstonDimensions(param[0], param[1], param[2]);
}
void AGeoWinstonConePoly::SetPoints(Double_t* points) const {
if (!points) {
return;
}
Int_t n = gGeoManager->GetNsegments();
Int_t index = 0;
for (int i = 0; i <= n; i++) {
Double_t t = 2. * fDZ * i / n;
Double_t z = -fDZ + t;
Double_t r = CalcR(z) / TMath::Cos(TMath::Pi() / fPolyN);
for (Int_t j = 0; j < fPolyN; j++) {
Double_t theta = (j + 0.5) * TMath::TwoPi() / fPolyN;
Double_t x = r * TMath::Cos(theta);
Double_t y = r * TMath::Sin(theta);
points[index++] = x;
points[index++] = y;
points[index++] = z;
}
}
points[index++] = 0;
points[index++] = 0;
points[index++] = -fDZ;
points[index++] = 0;
points[index++] = 0;
points[index++] = fDZ;
}
void AGeoWinstonConePoly::SetPoints(Float_t* points) const {
if (!points) {
return;
}
Int_t n = gGeoManager->GetNsegments();
Int_t index = 0;
for (int i = 0; i <= n; i++) {
Double_t t = 2. * fDZ * i / n;
Double_t z = -fDZ + t;
Double_t r = CalcR(z) / TMath::Cos(TMath::TwoPi() / fPolyN);
;
for (Int_t j = 0; j < fPolyN; j++) {
Double_t theta = (j + 0.5) * TMath::TwoPi() / fPolyN;
Double_t x = r * TMath::Cos(theta);
Double_t y = r * TMath::Sin(theta);
points[index++] = x;
points[index++] = y;
points[index++] = z;
}
}
points[index++] = 0;
points[index++] = 0;
points[index++] = -fDZ;
points[index++] = 0;
points[index++] = 0;
points[index++] = fDZ;
}
void AGeoWinstonConePoly::SetSegsAndPols(TBuffer3D& buff) const {
Int_t n = gGeoManager->GetNsegments();
Int_t c = GetBasicColor();
Int_t index = 0;
for (Int_t i = 0; i < n; i++) {
for (Int_t j = 0; j < fPolyN; j++) {
buff.fSegs[index++] = c;
buff.fSegs[index++] = fPolyN * i + j;
buff.fSegs[index++] = fPolyN * (i + 1) + j;
}
}
for (Int_t i = 0; i <= n; i++) {
for (Int_t j = 0; j < fPolyN; j++) {
buff.fSegs[index++] = c;
buff.fSegs[index++] = fPolyN * i + j;
buff.fSegs[index++] = j == (fPolyN - 1) ? fPolyN * i : fPolyN * i + j + 1;
}
}
for (Int_t i = 0; i < fPolyN; i++) {
buff.fSegs[index++] = c;
buff.fSegs[index++] = i;
buff.fSegs[index++] = fPolyN * (n + 1);
}
for (Int_t i = 0; i < fPolyN; i++) {
buff.fSegs[index++] = c;
buff.fSegs[index++] = fPolyN * (n + 1) - fPolyN + i;
buff.fSegs[index++] = fPolyN * (n + 1) + 1;
}
index = 0;
for (Int_t i = 0; i < n; i++) {
for (Int_t j = 0; j < fPolyN; j++) {
buff.fPols[index++] = c;
buff.fPols[index++] = 4;
buff.fPols[index++] = fPolyN * i + j;
buff.fPols[index++] = fPolyN * n + fPolyN * i + j + fPolyN;
buff.fPols[index++] = j == (fPolyN - 1) ? fPolyN * i : fPolyN * i + j + 1;
buff.fPols[index++] = fPolyN * n + fPolyN * i + j;
}
}
for (Int_t i = 0; i < fPolyN; i++) {
buff.fPols[index++] = c;
buff.fPols[index++] = 3;
buff.fPols[index++] = fPolyN * n + i;
buff.fPols[index++] = i == (fPolyN - 1)
? fPolyN * (2 * n + 1) + i + 1 - fPolyN
: fPolyN * (2 * n + 1) + i + 1;
buff.fPols[index++] = fPolyN * (2 * n + 1) + i;
}
for (Int_t i = 0; i < fPolyN; i++) {
buff.fPols[index++] = c;
buff.fPols[index++] = 3;
buff.fPols[index++] = fPolyN * 2 * n + i;
buff.fPols[index++] = fPolyN * (2 * n + 2) + i;
buff.fPols[index++] = i == (fPolyN - 1)
? fPolyN * (2 * n + 2) + i + 1 - fPolyN
: fPolyN * (2 * n + 2) + i + 1;
}
}
void AGeoWinstonConePoly::Sizeof3D() const {
}
AGeoWinstonConePoly.cxx:1 AGeoWinstonConePoly.cxx:2 AGeoWinstonConePoly.cxx:3 AGeoWinstonConePoly.cxx:4 AGeoWinstonConePoly.cxx:5 AGeoWinstonConePoly.cxx:6 AGeoWinstonConePoly.cxx:7 AGeoWinstonConePoly.cxx:8 AGeoWinstonConePoly.cxx:9 AGeoWinstonConePoly.cxx:10 AGeoWinstonConePoly.cxx:11 AGeoWinstonConePoly.cxx:12 AGeoWinstonConePoly.cxx:13 AGeoWinstonConePoly.cxx:14 AGeoWinstonConePoly.cxx:15 AGeoWinstonConePoly.cxx:16 AGeoWinstonConePoly.cxx:17 AGeoWinstonConePoly.cxx:18 AGeoWinstonConePoly.cxx:19 AGeoWinstonConePoly.cxx:20 AGeoWinstonConePoly.cxx:21 AGeoWinstonConePoly.cxx:22 AGeoWinstonConePoly.cxx:23 AGeoWinstonConePoly.cxx:24 AGeoWinstonConePoly.cxx:25 AGeoWinstonConePoly.cxx:26 AGeoWinstonConePoly.cxx:27 AGeoWinstonConePoly.cxx:28 AGeoWinstonConePoly.cxx:29 AGeoWinstonConePoly.cxx:30 AGeoWinstonConePoly.cxx:31 AGeoWinstonConePoly.cxx:32 AGeoWinstonConePoly.cxx:33 AGeoWinstonConePoly.cxx:34 AGeoWinstonConePoly.cxx:35 AGeoWinstonConePoly.cxx:36 AGeoWinstonConePoly.cxx:37 AGeoWinstonConePoly.cxx:38 AGeoWinstonConePoly.cxx:39 AGeoWinstonConePoly.cxx:40 AGeoWinstonConePoly.cxx:41 AGeoWinstonConePoly.cxx:42 AGeoWinstonConePoly.cxx:43 AGeoWinstonConePoly.cxx:44 AGeoWinstonConePoly.cxx:45 AGeoWinstonConePoly.cxx:46 AGeoWinstonConePoly.cxx:47 AGeoWinstonConePoly.cxx:48 AGeoWinstonConePoly.cxx:49 AGeoWinstonConePoly.cxx:50 AGeoWinstonConePoly.cxx:51 AGeoWinstonConePoly.cxx:52 AGeoWinstonConePoly.cxx:53 AGeoWinstonConePoly.cxx:54 AGeoWinstonConePoly.cxx:55 AGeoWinstonConePoly.cxx:56 AGeoWinstonConePoly.cxx:57 AGeoWinstonConePoly.cxx:58 AGeoWinstonConePoly.cxx:59 AGeoWinstonConePoly.cxx:60 AGeoWinstonConePoly.cxx:61 AGeoWinstonConePoly.cxx:62 AGeoWinstonConePoly.cxx:63 AGeoWinstonConePoly.cxx:64 AGeoWinstonConePoly.cxx:65 AGeoWinstonConePoly.cxx:66 AGeoWinstonConePoly.cxx:67 AGeoWinstonConePoly.cxx:68 AGeoWinstonConePoly.cxx:69 AGeoWinstonConePoly.cxx:70 AGeoWinstonConePoly.cxx:71 AGeoWinstonConePoly.cxx:72 AGeoWinstonConePoly.cxx:73 AGeoWinstonConePoly.cxx:74 AGeoWinstonConePoly.cxx:75 AGeoWinstonConePoly.cxx:76 AGeoWinstonConePoly.cxx:77 AGeoWinstonConePoly.cxx:78 AGeoWinstonConePoly.cxx:79 AGeoWinstonConePoly.cxx:80 AGeoWinstonConePoly.cxx:81 AGeoWinstonConePoly.cxx:82 AGeoWinstonConePoly.cxx:83 AGeoWinstonConePoly.cxx:84 AGeoWinstonConePoly.cxx:85 AGeoWinstonConePoly.cxx:86 AGeoWinstonConePoly.cxx:87 AGeoWinstonConePoly.cxx:88 AGeoWinstonConePoly.cxx:89 AGeoWinstonConePoly.cxx:90 AGeoWinstonConePoly.cxx:91 AGeoWinstonConePoly.cxx:92 AGeoWinstonConePoly.cxx:93 AGeoWinstonConePoly.cxx:94 AGeoWinstonConePoly.cxx:95 AGeoWinstonConePoly.cxx:96 AGeoWinstonConePoly.cxx:97 AGeoWinstonConePoly.cxx:98 AGeoWinstonConePoly.cxx:99 AGeoWinstonConePoly.cxx:100 AGeoWinstonConePoly.cxx:101 AGeoWinstonConePoly.cxx:102 AGeoWinstonConePoly.cxx:103 AGeoWinstonConePoly.cxx:104 AGeoWinstonConePoly.cxx:105 AGeoWinstonConePoly.cxx:106 AGeoWinstonConePoly.cxx:107 AGeoWinstonConePoly.cxx:108 AGeoWinstonConePoly.cxx:109 AGeoWinstonConePoly.cxx:110 AGeoWinstonConePoly.cxx:111 AGeoWinstonConePoly.cxx:112 AGeoWinstonConePoly.cxx:113 AGeoWinstonConePoly.cxx:114 AGeoWinstonConePoly.cxx:115 AGeoWinstonConePoly.cxx:116 AGeoWinstonConePoly.cxx:117 AGeoWinstonConePoly.cxx:118 AGeoWinstonConePoly.cxx:119 AGeoWinstonConePoly.cxx:120 AGeoWinstonConePoly.cxx:121 AGeoWinstonConePoly.cxx:122 AGeoWinstonConePoly.cxx:123 AGeoWinstonConePoly.cxx:124 AGeoWinstonConePoly.cxx:125 AGeoWinstonConePoly.cxx:126 AGeoWinstonConePoly.cxx:127 AGeoWinstonConePoly.cxx:128 AGeoWinstonConePoly.cxx:129 AGeoWinstonConePoly.cxx:130 AGeoWinstonConePoly.cxx:131 AGeoWinstonConePoly.cxx:132 AGeoWinstonConePoly.cxx:133 AGeoWinstonConePoly.cxx:134 AGeoWinstonConePoly.cxx:135 AGeoWinstonConePoly.cxx:136 AGeoWinstonConePoly.cxx:137 AGeoWinstonConePoly.cxx:138 AGeoWinstonConePoly.cxx:139 AGeoWinstonConePoly.cxx:140 AGeoWinstonConePoly.cxx:141 AGeoWinstonConePoly.cxx:142 AGeoWinstonConePoly.cxx:143 AGeoWinstonConePoly.cxx:144 AGeoWinstonConePoly.cxx:145 AGeoWinstonConePoly.cxx:146 AGeoWinstonConePoly.cxx:147 AGeoWinstonConePoly.cxx:148 AGeoWinstonConePoly.cxx:149 AGeoWinstonConePoly.cxx:150 AGeoWinstonConePoly.cxx:151 AGeoWinstonConePoly.cxx:152 AGeoWinstonConePoly.cxx:153 AGeoWinstonConePoly.cxx:154 AGeoWinstonConePoly.cxx:155 AGeoWinstonConePoly.cxx:156 AGeoWinstonConePoly.cxx:157 AGeoWinstonConePoly.cxx:158 AGeoWinstonConePoly.cxx:159 AGeoWinstonConePoly.cxx:160 AGeoWinstonConePoly.cxx:161 AGeoWinstonConePoly.cxx:162 AGeoWinstonConePoly.cxx:163 AGeoWinstonConePoly.cxx:164 AGeoWinstonConePoly.cxx:165 AGeoWinstonConePoly.cxx:166 AGeoWinstonConePoly.cxx:167 AGeoWinstonConePoly.cxx:168 AGeoWinstonConePoly.cxx:169 AGeoWinstonConePoly.cxx:170 AGeoWinstonConePoly.cxx:171 AGeoWinstonConePoly.cxx:172 AGeoWinstonConePoly.cxx:173 AGeoWinstonConePoly.cxx:174 AGeoWinstonConePoly.cxx:175 AGeoWinstonConePoly.cxx:176 AGeoWinstonConePoly.cxx:177 AGeoWinstonConePoly.cxx:178 AGeoWinstonConePoly.cxx:179 AGeoWinstonConePoly.cxx:180 AGeoWinstonConePoly.cxx:181 AGeoWinstonConePoly.cxx:182 AGeoWinstonConePoly.cxx:183 AGeoWinstonConePoly.cxx:184 AGeoWinstonConePoly.cxx:185 AGeoWinstonConePoly.cxx:186 AGeoWinstonConePoly.cxx:187 AGeoWinstonConePoly.cxx:188 AGeoWinstonConePoly.cxx:189 AGeoWinstonConePoly.cxx:190 AGeoWinstonConePoly.cxx:191 AGeoWinstonConePoly.cxx:192 AGeoWinstonConePoly.cxx:193 AGeoWinstonConePoly.cxx:194 AGeoWinstonConePoly.cxx:195 AGeoWinstonConePoly.cxx:196 AGeoWinstonConePoly.cxx:197 AGeoWinstonConePoly.cxx:198 AGeoWinstonConePoly.cxx:199 AGeoWinstonConePoly.cxx:200 AGeoWinstonConePoly.cxx:201 AGeoWinstonConePoly.cxx:202 AGeoWinstonConePoly.cxx:203 AGeoWinstonConePoly.cxx:204 AGeoWinstonConePoly.cxx:205 AGeoWinstonConePoly.cxx:206 AGeoWinstonConePoly.cxx:207 AGeoWinstonConePoly.cxx:208 AGeoWinstonConePoly.cxx:209 AGeoWinstonConePoly.cxx:210 AGeoWinstonConePoly.cxx:211 AGeoWinstonConePoly.cxx:212 AGeoWinstonConePoly.cxx:213 AGeoWinstonConePoly.cxx:214 AGeoWinstonConePoly.cxx:215 AGeoWinstonConePoly.cxx:216 AGeoWinstonConePoly.cxx:217 AGeoWinstonConePoly.cxx:218 AGeoWinstonConePoly.cxx:219 AGeoWinstonConePoly.cxx:220 AGeoWinstonConePoly.cxx:221 AGeoWinstonConePoly.cxx:222 AGeoWinstonConePoly.cxx:223 AGeoWinstonConePoly.cxx:224 AGeoWinstonConePoly.cxx:225 AGeoWinstonConePoly.cxx:226 AGeoWinstonConePoly.cxx:227 AGeoWinstonConePoly.cxx:228 AGeoWinstonConePoly.cxx:229 AGeoWinstonConePoly.cxx:230 AGeoWinstonConePoly.cxx:231 AGeoWinstonConePoly.cxx:232 AGeoWinstonConePoly.cxx:233 AGeoWinstonConePoly.cxx:234 AGeoWinstonConePoly.cxx:235 AGeoWinstonConePoly.cxx:236 AGeoWinstonConePoly.cxx:237 AGeoWinstonConePoly.cxx:238 AGeoWinstonConePoly.cxx:239 AGeoWinstonConePoly.cxx:240 AGeoWinstonConePoly.cxx:241 AGeoWinstonConePoly.cxx:242 AGeoWinstonConePoly.cxx:243 AGeoWinstonConePoly.cxx:244 AGeoWinstonConePoly.cxx:245 AGeoWinstonConePoly.cxx:246 AGeoWinstonConePoly.cxx:247 AGeoWinstonConePoly.cxx:248 AGeoWinstonConePoly.cxx:249 AGeoWinstonConePoly.cxx:250 AGeoWinstonConePoly.cxx:251 AGeoWinstonConePoly.cxx:252 AGeoWinstonConePoly.cxx:253 AGeoWinstonConePoly.cxx:254 AGeoWinstonConePoly.cxx:255 AGeoWinstonConePoly.cxx:256 AGeoWinstonConePoly.cxx:257 AGeoWinstonConePoly.cxx:258 AGeoWinstonConePoly.cxx:259 AGeoWinstonConePoly.cxx:260 AGeoWinstonConePoly.cxx:261 AGeoWinstonConePoly.cxx:262 AGeoWinstonConePoly.cxx:263 AGeoWinstonConePoly.cxx:264 AGeoWinstonConePoly.cxx:265 AGeoWinstonConePoly.cxx:266 AGeoWinstonConePoly.cxx:267 AGeoWinstonConePoly.cxx:268 AGeoWinstonConePoly.cxx:269 AGeoWinstonConePoly.cxx:270 AGeoWinstonConePoly.cxx:271 AGeoWinstonConePoly.cxx:272 AGeoWinstonConePoly.cxx:273 AGeoWinstonConePoly.cxx:274 AGeoWinstonConePoly.cxx:275 AGeoWinstonConePoly.cxx:276 AGeoWinstonConePoly.cxx:277 AGeoWinstonConePoly.cxx:278 AGeoWinstonConePoly.cxx:279 AGeoWinstonConePoly.cxx:280 AGeoWinstonConePoly.cxx:281 AGeoWinstonConePoly.cxx:282 AGeoWinstonConePoly.cxx:283 AGeoWinstonConePoly.cxx:284 AGeoWinstonConePoly.cxx:285 AGeoWinstonConePoly.cxx:286 AGeoWinstonConePoly.cxx:287 AGeoWinstonConePoly.cxx:288 AGeoWinstonConePoly.cxx:289 AGeoWinstonConePoly.cxx:290 AGeoWinstonConePoly.cxx:291 AGeoWinstonConePoly.cxx:292 AGeoWinstonConePoly.cxx:293 AGeoWinstonConePoly.cxx:294 AGeoWinstonConePoly.cxx:295 AGeoWinstonConePoly.cxx:296 AGeoWinstonConePoly.cxx:297 AGeoWinstonConePoly.cxx:298 AGeoWinstonConePoly.cxx:299 AGeoWinstonConePoly.cxx:300 AGeoWinstonConePoly.cxx:301 AGeoWinstonConePoly.cxx:302 AGeoWinstonConePoly.cxx:303 AGeoWinstonConePoly.cxx:304 AGeoWinstonConePoly.cxx:305 AGeoWinstonConePoly.cxx:306 AGeoWinstonConePoly.cxx:307 AGeoWinstonConePoly.cxx:308 AGeoWinstonConePoly.cxx:309 AGeoWinstonConePoly.cxx:310 AGeoWinstonConePoly.cxx:311 AGeoWinstonConePoly.cxx:312 AGeoWinstonConePoly.cxx:313 AGeoWinstonConePoly.cxx:314 AGeoWinstonConePoly.cxx:315 AGeoWinstonConePoly.cxx:316 AGeoWinstonConePoly.cxx:317 AGeoWinstonConePoly.cxx:318 AGeoWinstonConePoly.cxx:319 AGeoWinstonConePoly.cxx:320 AGeoWinstonConePoly.cxx:321 AGeoWinstonConePoly.cxx:322 AGeoWinstonConePoly.cxx:323 AGeoWinstonConePoly.cxx:324 AGeoWinstonConePoly.cxx:325 AGeoWinstonConePoly.cxx:326 AGeoWinstonConePoly.cxx:327 AGeoWinstonConePoly.cxx:328 AGeoWinstonConePoly.cxx:329 AGeoWinstonConePoly.cxx:330 AGeoWinstonConePoly.cxx:331 AGeoWinstonConePoly.cxx:332 AGeoWinstonConePoly.cxx:333 AGeoWinstonConePoly.cxx:334 AGeoWinstonConePoly.cxx:335 AGeoWinstonConePoly.cxx:336 AGeoWinstonConePoly.cxx:337 AGeoWinstonConePoly.cxx:338 AGeoWinstonConePoly.cxx:339 AGeoWinstonConePoly.cxx:340 AGeoWinstonConePoly.cxx:341 AGeoWinstonConePoly.cxx:342 AGeoWinstonConePoly.cxx:343 AGeoWinstonConePoly.cxx:344 AGeoWinstonConePoly.cxx:345 AGeoWinstonConePoly.cxx:346 AGeoWinstonConePoly.cxx:347 AGeoWinstonConePoly.cxx:348 AGeoWinstonConePoly.cxx:349 AGeoWinstonConePoly.cxx:350 AGeoWinstonConePoly.cxx:351 AGeoWinstonConePoly.cxx:352 AGeoWinstonConePoly.cxx:353 AGeoWinstonConePoly.cxx:354 AGeoWinstonConePoly.cxx:355 AGeoWinstonConePoly.cxx:356 AGeoWinstonConePoly.cxx:357 AGeoWinstonConePoly.cxx:358 AGeoWinstonConePoly.cxx:359 AGeoWinstonConePoly.cxx:360 AGeoWinstonConePoly.cxx:361 AGeoWinstonConePoly.cxx:362 AGeoWinstonConePoly.cxx:363 AGeoWinstonConePoly.cxx:364 AGeoWinstonConePoly.cxx:365 AGeoWinstonConePoly.cxx:366 AGeoWinstonConePoly.cxx:367 AGeoWinstonConePoly.cxx:368 AGeoWinstonConePoly.cxx:369 AGeoWinstonConePoly.cxx:370 AGeoWinstonConePoly.cxx:371 AGeoWinstonConePoly.cxx:372 AGeoWinstonConePoly.cxx:373 AGeoWinstonConePoly.cxx:374 AGeoWinstonConePoly.cxx:375 AGeoWinstonConePoly.cxx:376 AGeoWinstonConePoly.cxx:377 AGeoWinstonConePoly.cxx:378 AGeoWinstonConePoly.cxx:379 AGeoWinstonConePoly.cxx:380 AGeoWinstonConePoly.cxx:381 AGeoWinstonConePoly.cxx:382 AGeoWinstonConePoly.cxx:383 AGeoWinstonConePoly.cxx:384 AGeoWinstonConePoly.cxx:385 AGeoWinstonConePoly.cxx:386 AGeoWinstonConePoly.cxx:387 AGeoWinstonConePoly.cxx:388 AGeoWinstonConePoly.cxx:389 AGeoWinstonConePoly.cxx:390 AGeoWinstonConePoly.cxx:391 AGeoWinstonConePoly.cxx:392 AGeoWinstonConePoly.cxx:393 AGeoWinstonConePoly.cxx:394 AGeoWinstonConePoly.cxx:395 AGeoWinstonConePoly.cxx:396 AGeoWinstonConePoly.cxx:397 AGeoWinstonConePoly.cxx:398 AGeoWinstonConePoly.cxx:399 AGeoWinstonConePoly.cxx:400 AGeoWinstonConePoly.cxx:401 AGeoWinstonConePoly.cxx:402 AGeoWinstonConePoly.cxx:403 AGeoWinstonConePoly.cxx:404 AGeoWinstonConePoly.cxx:405 AGeoWinstonConePoly.cxx:406 AGeoWinstonConePoly.cxx:407 AGeoWinstonConePoly.cxx:408 AGeoWinstonConePoly.cxx:409 AGeoWinstonConePoly.cxx:410 AGeoWinstonConePoly.cxx:411 AGeoWinstonConePoly.cxx:412 AGeoWinstonConePoly.cxx:413 AGeoWinstonConePoly.cxx:414 AGeoWinstonConePoly.cxx:415 AGeoWinstonConePoly.cxx:416 AGeoWinstonConePoly.cxx:417 AGeoWinstonConePoly.cxx:418 AGeoWinstonConePoly.cxx:419 AGeoWinstonConePoly.cxx:420 AGeoWinstonConePoly.cxx:421 AGeoWinstonConePoly.cxx:422 AGeoWinstonConePoly.cxx:423 AGeoWinstonConePoly.cxx:424 AGeoWinstonConePoly.cxx:425 AGeoWinstonConePoly.cxx:426 AGeoWinstonConePoly.cxx:427 AGeoWinstonConePoly.cxx:428 AGeoWinstonConePoly.cxx:429 AGeoWinstonConePoly.cxx:430 AGeoWinstonConePoly.cxx:431 AGeoWinstonConePoly.cxx:432 AGeoWinstonConePoly.cxx:433 AGeoWinstonConePoly.cxx:434 AGeoWinstonConePoly.cxx:435 AGeoWinstonConePoly.cxx:436 AGeoWinstonConePoly.cxx:437 AGeoWinstonConePoly.cxx:438 AGeoWinstonConePoly.cxx:439 AGeoWinstonConePoly.cxx:440 AGeoWinstonConePoly.cxx:441 AGeoWinstonConePoly.cxx:442 AGeoWinstonConePoly.cxx:443 AGeoWinstonConePoly.cxx:444 AGeoWinstonConePoly.cxx:445 AGeoWinstonConePoly.cxx:446 AGeoWinstonConePoly.cxx:447 AGeoWinstonConePoly.cxx:448 AGeoWinstonConePoly.cxx:449 AGeoWinstonConePoly.cxx:450 AGeoWinstonConePoly.cxx:451 AGeoWinstonConePoly.cxx:452 AGeoWinstonConePoly.cxx:453 AGeoWinstonConePoly.cxx:454 AGeoWinstonConePoly.cxx:455 AGeoWinstonConePoly.cxx:456 AGeoWinstonConePoly.cxx:457 AGeoWinstonConePoly.cxx:458 AGeoWinstonConePoly.cxx:459 AGeoWinstonConePoly.cxx:460 AGeoWinstonConePoly.cxx:461 AGeoWinstonConePoly.cxx:462 AGeoWinstonConePoly.cxx:463 AGeoWinstonConePoly.cxx:464 AGeoWinstonConePoly.cxx:465 AGeoWinstonConePoly.cxx:466 AGeoWinstonConePoly.cxx:467 AGeoWinstonConePoly.cxx:468 AGeoWinstonConePoly.cxx:469 AGeoWinstonConePoly.cxx:470 AGeoWinstonConePoly.cxx:471 AGeoWinstonConePoly.cxx:472 AGeoWinstonConePoly.cxx:473 AGeoWinstonConePoly.cxx:474 AGeoWinstonConePoly.cxx:475 AGeoWinstonConePoly.cxx:476 AGeoWinstonConePoly.cxx:477 AGeoWinstonConePoly.cxx:478 AGeoWinstonConePoly.cxx:479 AGeoWinstonConePoly.cxx:480 AGeoWinstonConePoly.cxx:481 AGeoWinstonConePoly.cxx:482 AGeoWinstonConePoly.cxx:483 AGeoWinstonConePoly.cxx:484 AGeoWinstonConePoly.cxx:485 AGeoWinstonConePoly.cxx:486 AGeoWinstonConePoly.cxx:487 AGeoWinstonConePoly.cxx:488 AGeoWinstonConePoly.cxx:489 AGeoWinstonConePoly.cxx:490 AGeoWinstonConePoly.cxx:491 AGeoWinstonConePoly.cxx:492 AGeoWinstonConePoly.cxx:493 AGeoWinstonConePoly.cxx:494 AGeoWinstonConePoly.cxx:495 AGeoWinstonConePoly.cxx:496 AGeoWinstonConePoly.cxx:497 AGeoWinstonConePoly.cxx:498 AGeoWinstonConePoly.cxx:499 AGeoWinstonConePoly.cxx:500 AGeoWinstonConePoly.cxx:501 AGeoWinstonConePoly.cxx:502 AGeoWinstonConePoly.cxx:503 AGeoWinstonConePoly.cxx:504 AGeoWinstonConePoly.cxx:505 AGeoWinstonConePoly.cxx:506 AGeoWinstonConePoly.cxx:507 AGeoWinstonConePoly.cxx:508 AGeoWinstonConePoly.cxx:509 AGeoWinstonConePoly.cxx:510 AGeoWinstonConePoly.cxx:511 AGeoWinstonConePoly.cxx:512 AGeoWinstonConePoly.cxx:513 AGeoWinstonConePoly.cxx:514 AGeoWinstonConePoly.cxx:515 AGeoWinstonConePoly.cxx:516 AGeoWinstonConePoly.cxx:517 AGeoWinstonConePoly.cxx:518 AGeoWinstonConePoly.cxx:519 AGeoWinstonConePoly.cxx:520 AGeoWinstonConePoly.cxx:521 AGeoWinstonConePoly.cxx:522 AGeoWinstonConePoly.cxx:523 AGeoWinstonConePoly.cxx:524 AGeoWinstonConePoly.cxx:525 AGeoWinstonConePoly.cxx:526 AGeoWinstonConePoly.cxx:527 AGeoWinstonConePoly.cxx:528 AGeoWinstonConePoly.cxx:529 AGeoWinstonConePoly.cxx:530 AGeoWinstonConePoly.cxx:531 AGeoWinstonConePoly.cxx:532 AGeoWinstonConePoly.cxx:533 AGeoWinstonConePoly.cxx:534 AGeoWinstonConePoly.cxx:535 AGeoWinstonConePoly.cxx:536 AGeoWinstonConePoly.cxx:537 AGeoWinstonConePoly.cxx:538 AGeoWinstonConePoly.cxx:539 AGeoWinstonConePoly.cxx:540 AGeoWinstonConePoly.cxx:541 AGeoWinstonConePoly.cxx:542 AGeoWinstonConePoly.cxx:543 AGeoWinstonConePoly.cxx:544 AGeoWinstonConePoly.cxx:545