#include "TEvePolygonSetProjected.h"
#include "TEveGeoShape.h"
#include "TEveProjectionManager.h"
#include "TBuffer3D.h"
#include "TBuffer3DTypes.h"
#include "TVirtualPad.h"
#include "TVirtualViewer3D.h"
namespace
{
struct Seg_t
{
Int_t fV1;
Int_t fV2;
Seg_t(Int_t i1=-1, Int_t i2=-1) : fV1(i1), fV2(i2) {}
};
typedef std::list<Seg_t> LSeg_t;
typedef std::list<Seg_t>::iterator LSegIt_t;
}
ClassImp(TEvePolygonSetProjected);
TEvePolygonSetProjected::TEvePolygonSetProjected(const char* n, const char* t) :
TEveShape(n, t),
fBuff(0),
fNPnts(0),
fPnts(0)
{
}
TEvePolygonSetProjected::~TEvePolygonSetProjected()
{
fPols.clear();
if (fPnts) delete [] fPnts;
if (fBuff) delete fBuff;
}
void TEvePolygonSetProjected::ComputeBBox()
{
if (fNPnts > 0) {
BBoxInit();
for (Int_t pi = 0; pi < fNPnts; ++pi)
BBoxCheckPoint(fPnts[pi].fX, fPnts[pi].fY, fPnts[pi].fZ);
} else {
BBoxZero();
}
}
void TEvePolygonSetProjected::SetProjection(TEveProjectionManager* mng,
TEveProjectable* model)
{
TEveProjected::SetProjection(mng, model);
TEveGeoShape* gre = dynamic_cast<TEveGeoShape*>(model);
fBuff = gre->MakeBuffer3D();
CopyVizParams(gre);
}
void TEvePolygonSetProjected::SetDepthLocal(Float_t d)
{
SetDepthCommon(d, this, fBBox);
for (Int_t i = 0; i < fNPnts; ++i)
fPnts[i].fZ = fDepth;
}
void TEvePolygonSetProjected::UpdateProjection()
{
if (fBuff == 0) return;
fPols.clear();
ProjectBuffer3D();
}
Bool_t TEvePolygonSetProjected::IsFirstIdxHead(Int_t s0, Int_t s1)
{
Int_t v0 = fBuff->fSegs[3*s0 + 1];
Int_t v2 = fBuff->fSegs[3*s1 + 1];
Int_t v3 = fBuff->fSegs[3*s1 + 2];
return v0 != v2 && v0 != v3;
}
Int_t* TEvePolygonSetProjected::ProjectAndReducePoints()
{
TEveProjection* projection = fManager->GetProjection();
Int_t buffN = fBuff->NbPnts();
TEveVector* pnts = new TEveVector[buffN];
for (Int_t i = 0; i < buffN; ++i)
{
pnts[i].Set(fBuff->fPnts[3*i],fBuff->fPnts[3*i+1], fBuff->fPnts[3*i+2]);
projection->ProjectPoint(pnts[i].fX, pnts[i].fY, pnts[i].fZ, 0,
TEveProjection::kPP_Plane);
}
if (fPnts) delete [] fPnts;
fNPnts=0;
Int_t *idxMap = new Int_t[buffN];
Int_t *ra = new Int_t[buffN];
for (UInt_t v = 0; v < (UInt_t)buffN; ++v)
{
idxMap[v] = -1;
for (Int_t k = 0; k < fNPnts; ++k)
{
if (pnts[v].SquareDistance(pnts[ra[k]]) < TEveProjection::fgEpsSqr)
{
idxMap[v] = k;
break;
}
}
if (idxMap[v] == -1)
{
idxMap[v] = fNPnts;
ra[fNPnts] = v;
++fNPnts;
}
}
fPnts = new TEveVector[fNPnts];
for (Int_t idx = 0; idx < fNPnts; ++idx)
{
Int_t i = ra[idx];
projection->ProjectPoint(pnts[i].fX, pnts[i].fY, pnts[i].fZ, fDepth,
TEveProjection::kPP_Distort);
fPnts[idx].Set(pnts[i]);
}
delete [] ra;
delete [] pnts;
return idxMap;
}
Float_t TEvePolygonSetProjected::AddPolygon(std::list<Int_t>& pp, vpPolygon_t& pols)
{
if (pp.size() <= 2) return 0;
Float_t bbox[4] = { 1e6, -1e6, 1e6, -1e6 };
for (std::list<Int_t>::iterator u = pp.begin(); u != pp.end(); ++u)
{
Int_t idx = *u;
if (fPnts[idx].fX < bbox[0]) bbox[0] = fPnts[idx].fX;
if (fPnts[idx].fX > bbox[1]) bbox[1] = fPnts[idx].fX;
if (fPnts[idx].fY < bbox[2]) bbox[2] = fPnts[idx].fY;
if (fPnts[idx].fY > bbox[3]) bbox[3] = fPnts[idx].fY;
}
Float_t eps = 2*TEveProjection::fgEps;
if ((bbox[1]-bbox[0]) < eps || (bbox[3]-bbox[2]) < eps) return 0;
for (vpPolygon_i poi = pols.begin(); poi != pols.end(); ++poi)
{
Polygon_t& refP = *poi;
if ((Int_t) pp.size() != refP.fNPnts)
continue;
Int_t start_idx = refP.FindPoint(pp.front());
if (start_idx < 0)
continue;
if (++start_idx >= refP.fNPnts) start_idx = 0;
{
std::list<Int_t>::iterator u = ++pp.begin();
Int_t pidx = start_idx;
while (u != pp.end())
{
if ((*u) != refP.fPnts[pidx])
break;
++u;
if (++pidx >= refP.fNPnts) pidx = 0;
}
if (u == pp.end()) return 0;
}
{
std::list<Int_t>::iterator u = --pp.end();
Int_t pidx = start_idx;
while (u != pp.begin())
{
if ((*u) != refP.fPnts[pidx])
break;
--u;
if (++pidx >= refP.fNPnts) pidx = 0;
}
if (u == pp.begin()) return 0;
}
}
Int_t *pv = new Int_t[pp.size()];
Int_t count = 0;
for (std::list<Int_t>::iterator u = pp.begin(); u != pp.end(); ++u)
{
pv[count] = *u;
++count;
}
pols.push_back(Polygon_t());
pols.back().fNPnts = pp.size();
pols.back().fPnts = &pv[0];
return (bbox[1]-bbox[0]) * (bbox[3]-bbox[2]);
}
Float_t TEvePolygonSetProjected::MakePolygonsFromBP(Int_t* idxMap)
{
TEveProjection* projection = fManager->GetProjection();
Int_t *bpols = fBuff->fPols;
Float_t surf = 0;
for (UInt_t pi = 0; pi < fBuff->NbPols(); ++pi)
{
std::list<Int_t> pp;
UInt_t segN = bpols[1];
Int_t *seg = &bpols[2];
Int_t tail, head;
if (IsFirstIdxHead(seg[0], seg[1]))
{
head = idxMap[fBuff->fSegs[3*seg[0] + 1]];
tail = idxMap[fBuff->fSegs[3*seg[0] + 2]];
}
else
{
head = idxMap[fBuff->fSegs[3*seg[0] + 2]];
tail = idxMap[fBuff->fSegs[3*seg[0] + 1]];
}
pp.push_back(head);
LSeg_t segs;
for (UInt_t s = 1; s < segN; ++s)
segs.push_back(Seg_t(fBuff->fSegs[3*seg[s] + 1],fBuff->fSegs[3*seg[s] + 2]));
for (LSegIt_t it = segs.begin(); it != segs.end(); ++it)
{
Int_t mv1 = idxMap[(*it).fV1];
Int_t mv2 = idxMap[(*it).fV2];
if ( ! projection->AcceptSegment(fPnts[mv1], fPnts[mv2], TEveProjection::fgEps))
{
pp.clear();
break;
}
if (tail != pp.back()) pp.push_back(tail);
tail = (mv1 == tail) ? mv2 : mv1;
}
if ( ! pp.empty())
{
if (pp.front() == pp.back()) pp.pop_front();
surf += AddPolygon(pp, fPolsBP);
}
bpols += (segN+2);
}
return surf;
}
Float_t TEvePolygonSetProjected::MakePolygonsFromBS(Int_t* idxMap)
{
LSeg_t segs;
LSegIt_t it;
Float_t surf = 0;
TEveProjection *projection = fManager->GetProjection();
for (UInt_t s = 0; s < fBuff->NbSegs(); ++s)
{
Bool_t duplicate = kFALSE;
Int_t vo1, vo2;
Int_t vor1, vor2;
vo1 = fBuff->fSegs[3*s + 1];
vo2 = fBuff->fSegs[3*s + 2];
vor1 = idxMap[vo1];
vor2 = idxMap[vo2];
if (vor1 == vor2) continue;
for (it = segs.begin(); it != segs.end(); ++it)
{
Int_t vv1 = (*it).fV1;
Int_t vv2 = (*it).fV2;
if((vv1 == vor1 && vv2 == vor2) || (vv1 == vor2 && vv2 == vor1))
{
duplicate = kTRUE;
continue;
}
}
if (duplicate == kFALSE && projection->AcceptSegment(fPnts[vor1], fPnts[vor2], TEveProjection::fgEps))
segs.push_back(Seg_t(vor1, vor2));
}
while ( ! segs.empty())
{
std::list<Int_t> pp;
pp.push_back(segs.front().fV1);
Int_t tail = segs.front().fV2;
segs.pop_front();
Bool_t match = kTRUE;
while (match && ! segs.empty())
{
for (LSegIt_t k = segs.begin(); k != segs.end(); ++k)
{
Int_t cv1 = (*k).fV1;
Int_t cv2 = (*k).fV2;
if (cv1 == tail || cv2 == tail)
{
pp.push_back(tail);
tail = (cv1 == tail) ? cv2 : cv1;
segs.erase(k);
match = kTRUE;
break;
}
else
{
match = kFALSE;
}
}
if (tail == pp.front())
break;
}
surf += AddPolygon(pp, fPolsBS);
}
return surf;
}
void TEvePolygonSetProjected::ProjectBuffer3D()
{
Int_t* idxMap = ProjectAndReducePoints();
TEveProjection::EGeoMode_e mode = fManager->GetProjection()->GetGeoMode();
switch (mode)
{
case TEveProjection::kGM_Polygons :
{
MakePolygonsFromBP(idxMap);
fPolsBP.swap(fPols);
break;
}
case TEveProjection::kGM_Segments :
{
MakePolygonsFromBS(idxMap);
fPolsBS.swap(fPols);
break;
}
case TEveProjection::kGM_Unknown:
{
Float_t surfBP = MakePolygonsFromBP(idxMap);
Float_t surfBS = MakePolygonsFromBS(idxMap);
if (surfBS < surfBP)
{
fPolsBP.swap(fPols);
fPolsBS.clear();
}
else
{
fPolsBS.swap(fPols);
fPolsBP.clear();
}
}
default:
break;
}
delete [] idxMap;
ResetBBox();
}
Float_t TEvePolygonSetProjected::PolygonSurfaceXY(const TEvePolygonSetProjected::Polygon_t& p) const
{
Float_t surf = 0;
Int_t nPnts = p.fNPnts;
for (Int_t i = 0; i < nPnts - 1; ++i)
{
Int_t a = p.fPnts[i];
Int_t b = p.fPnts[i+1];
surf += fPnts[a].fX * fPnts[b].fY - fPnts[a].fY * fPnts[b].fX;
}
return 0.5f * TMath::Abs(surf);
}
void TEvePolygonSetProjected::DumpPolys() const
{
printf("TEvePolygonSetProjected %d polygons\n", (Int_t)fPols.size());
Int_t cnt = 0;
for (vpPolygon_ci i = fPols.begin(); i!= fPols.end(); i++)
{
Int_t nPnts = (*i).fNPnts;
printf("Points of polygon %d [Np = %d]:\n", ++cnt, nPnts);
for (Int_t vi = 0; vi<nPnts; ++vi) {
Int_t pi = (*i).fPnts[vi];
printf(" (%f, %f, %f)", fPnts[pi].fX, fPnts[pi].fY, fPnts[pi].fZ);
}
printf(", surf=%f\n", PolygonSurfaceXY(*i));
}
}
void TEvePolygonSetProjected::DumpBuffer3D()
{
Int_t* bpols = fBuff->fPols;
for (UInt_t pi = 0; pi< fBuff->NbPols(); ++pi)
{
UInt_t segN = bpols[1];
printf("%d polygon of %d has %d segments \n", pi, fBuff->NbPols(), segN);
Int_t* seg = &bpols[2];
for (UInt_t a=0; a<segN; ++a)
{
Int_t a1 = fBuff->fSegs[3*seg[a] + 1];
Int_t a2 = fBuff->fSegs[3*seg[a] + 2];
printf("(%d, %d) \n", a1, a2);
printf("ORIG points :(%f, %f, %f) (%f, %f, %f)\n",
fBuff->fPnts[3*a1],fBuff->fPnts[3*a1+1], fBuff->fPnts[3*a1+2],
fBuff->fPnts[3*a2],fBuff->fPnts[3*a2+1], fBuff->fPnts[3*a2+2]);
}
printf("\n");
bpols += (segN+2);
}
}
TEvePolygonSetProjected.cxx:1 TEvePolygonSetProjected.cxx:2 TEvePolygonSetProjected.cxx:3 TEvePolygonSetProjected.cxx:4 TEvePolygonSetProjected.cxx:5 TEvePolygonSetProjected.cxx:6 TEvePolygonSetProjected.cxx:7 TEvePolygonSetProjected.cxx:8 TEvePolygonSetProjected.cxx:9 TEvePolygonSetProjected.cxx:10 TEvePolygonSetProjected.cxx:11 TEvePolygonSetProjected.cxx:12 TEvePolygonSetProjected.cxx:13 TEvePolygonSetProjected.cxx:14 TEvePolygonSetProjected.cxx:15 TEvePolygonSetProjected.cxx:16 TEvePolygonSetProjected.cxx:17 TEvePolygonSetProjected.cxx:18 TEvePolygonSetProjected.cxx:19 TEvePolygonSetProjected.cxx:20 TEvePolygonSetProjected.cxx:21 TEvePolygonSetProjected.cxx:22 TEvePolygonSetProjected.cxx:23 TEvePolygonSetProjected.cxx:24 TEvePolygonSetProjected.cxx:25 TEvePolygonSetProjected.cxx:26 TEvePolygonSetProjected.cxx:27 TEvePolygonSetProjected.cxx:28 TEvePolygonSetProjected.cxx:29 TEvePolygonSetProjected.cxx:30 TEvePolygonSetProjected.cxx:31 TEvePolygonSetProjected.cxx:32 TEvePolygonSetProjected.cxx:33 TEvePolygonSetProjected.cxx:34 TEvePolygonSetProjected.cxx:35 TEvePolygonSetProjected.cxx:36 TEvePolygonSetProjected.cxx:37 TEvePolygonSetProjected.cxx:38 TEvePolygonSetProjected.cxx:39 TEvePolygonSetProjected.cxx:40 TEvePolygonSetProjected.cxx:41 TEvePolygonSetProjected.cxx:42 TEvePolygonSetProjected.cxx:43 TEvePolygonSetProjected.cxx:44 TEvePolygonSetProjected.cxx:45 TEvePolygonSetProjected.cxx:46 TEvePolygonSetProjected.cxx:47 TEvePolygonSetProjected.cxx:48 TEvePolygonSetProjected.cxx:49 TEvePolygonSetProjected.cxx:50 TEvePolygonSetProjected.cxx:51 TEvePolygonSetProjected.cxx:52 TEvePolygonSetProjected.cxx:53 TEvePolygonSetProjected.cxx:54 TEvePolygonSetProjected.cxx:55 TEvePolygonSetProjected.cxx:56 TEvePolygonSetProjected.cxx:57 TEvePolygonSetProjected.cxx:58 TEvePolygonSetProjected.cxx:59 TEvePolygonSetProjected.cxx:60 TEvePolygonSetProjected.cxx:61 TEvePolygonSetProjected.cxx:62 TEvePolygonSetProjected.cxx:63 TEvePolygonSetProjected.cxx:64 TEvePolygonSetProjected.cxx:65 TEvePolygonSetProjected.cxx:66 TEvePolygonSetProjected.cxx:67 TEvePolygonSetProjected.cxx:68 TEvePolygonSetProjected.cxx:69 TEvePolygonSetProjected.cxx:70 TEvePolygonSetProjected.cxx:71 TEvePolygonSetProjected.cxx:72 TEvePolygonSetProjected.cxx:73 TEvePolygonSetProjected.cxx:74 TEvePolygonSetProjected.cxx:75 TEvePolygonSetProjected.cxx:76 TEvePolygonSetProjected.cxx:77 TEvePolygonSetProjected.cxx:78 TEvePolygonSetProjected.cxx:79 TEvePolygonSetProjected.cxx:80 TEvePolygonSetProjected.cxx:81 TEvePolygonSetProjected.cxx:82 TEvePolygonSetProjected.cxx:83 TEvePolygonSetProjected.cxx:84 TEvePolygonSetProjected.cxx:85 TEvePolygonSetProjected.cxx:86 TEvePolygonSetProjected.cxx:87 TEvePolygonSetProjected.cxx:88 TEvePolygonSetProjected.cxx:89 TEvePolygonSetProjected.cxx:90 TEvePolygonSetProjected.cxx:91 TEvePolygonSetProjected.cxx:92 TEvePolygonSetProjected.cxx:93 TEvePolygonSetProjected.cxx:94 TEvePolygonSetProjected.cxx:95 TEvePolygonSetProjected.cxx:96 TEvePolygonSetProjected.cxx:97 TEvePolygonSetProjected.cxx:98 TEvePolygonSetProjected.cxx:99 TEvePolygonSetProjected.cxx:100 TEvePolygonSetProjected.cxx:101 TEvePolygonSetProjected.cxx:102 TEvePolygonSetProjected.cxx:103 TEvePolygonSetProjected.cxx:104 TEvePolygonSetProjected.cxx:105 TEvePolygonSetProjected.cxx:106 TEvePolygonSetProjected.cxx:107 TEvePolygonSetProjected.cxx:108 TEvePolygonSetProjected.cxx:109 TEvePolygonSetProjected.cxx:110 TEvePolygonSetProjected.cxx:111 TEvePolygonSetProjected.cxx:112 TEvePolygonSetProjected.cxx:113 TEvePolygonSetProjected.cxx:114 TEvePolygonSetProjected.cxx:115 TEvePolygonSetProjected.cxx:116 TEvePolygonSetProjected.cxx:117 TEvePolygonSetProjected.cxx:118 TEvePolygonSetProjected.cxx:119 TEvePolygonSetProjected.cxx:120 TEvePolygonSetProjected.cxx:121 TEvePolygonSetProjected.cxx:122 TEvePolygonSetProjected.cxx:123 TEvePolygonSetProjected.cxx:124 TEvePolygonSetProjected.cxx:125 TEvePolygonSetProjected.cxx:126 TEvePolygonSetProjected.cxx:127 TEvePolygonSetProjected.cxx:128 TEvePolygonSetProjected.cxx:129 TEvePolygonSetProjected.cxx:130 TEvePolygonSetProjected.cxx:131 TEvePolygonSetProjected.cxx:132 TEvePolygonSetProjected.cxx:133 TEvePolygonSetProjected.cxx:134 TEvePolygonSetProjected.cxx:135 TEvePolygonSetProjected.cxx:136 TEvePolygonSetProjected.cxx:137 TEvePolygonSetProjected.cxx:138 TEvePolygonSetProjected.cxx:139 TEvePolygonSetProjected.cxx:140 TEvePolygonSetProjected.cxx:141 TEvePolygonSetProjected.cxx:142 TEvePolygonSetProjected.cxx:143 TEvePolygonSetProjected.cxx:144 TEvePolygonSetProjected.cxx:145 TEvePolygonSetProjected.cxx:146 TEvePolygonSetProjected.cxx:147 TEvePolygonSetProjected.cxx:148 TEvePolygonSetProjected.cxx:149 TEvePolygonSetProjected.cxx:150 TEvePolygonSetProjected.cxx:151 TEvePolygonSetProjected.cxx:152 TEvePolygonSetProjected.cxx:153 TEvePolygonSetProjected.cxx:154 TEvePolygonSetProjected.cxx:155 TEvePolygonSetProjected.cxx:156 TEvePolygonSetProjected.cxx:157 TEvePolygonSetProjected.cxx:158 TEvePolygonSetProjected.cxx:159 TEvePolygonSetProjected.cxx:160 TEvePolygonSetProjected.cxx:161 TEvePolygonSetProjected.cxx:162 TEvePolygonSetProjected.cxx:163 TEvePolygonSetProjected.cxx:164 TEvePolygonSetProjected.cxx:165 TEvePolygonSetProjected.cxx:166 TEvePolygonSetProjected.cxx:167 TEvePolygonSetProjected.cxx:168 TEvePolygonSetProjected.cxx:169 TEvePolygonSetProjected.cxx:170 TEvePolygonSetProjected.cxx:171 TEvePolygonSetProjected.cxx:172 TEvePolygonSetProjected.cxx:173 TEvePolygonSetProjected.cxx:174 TEvePolygonSetProjected.cxx:175 TEvePolygonSetProjected.cxx:176 TEvePolygonSetProjected.cxx:177 TEvePolygonSetProjected.cxx:178 TEvePolygonSetProjected.cxx:179 TEvePolygonSetProjected.cxx:180 TEvePolygonSetProjected.cxx:181 TEvePolygonSetProjected.cxx:182 TEvePolygonSetProjected.cxx:183 TEvePolygonSetProjected.cxx:184 TEvePolygonSetProjected.cxx:185 TEvePolygonSetProjected.cxx:186 TEvePolygonSetProjected.cxx:187 TEvePolygonSetProjected.cxx:188 TEvePolygonSetProjected.cxx:189 TEvePolygonSetProjected.cxx:190 TEvePolygonSetProjected.cxx:191 TEvePolygonSetProjected.cxx:192 TEvePolygonSetProjected.cxx:193 TEvePolygonSetProjected.cxx:194 TEvePolygonSetProjected.cxx:195 TEvePolygonSetProjected.cxx:196 TEvePolygonSetProjected.cxx:197 TEvePolygonSetProjected.cxx:198 TEvePolygonSetProjected.cxx:199 TEvePolygonSetProjected.cxx:200 TEvePolygonSetProjected.cxx:201 TEvePolygonSetProjected.cxx:202 TEvePolygonSetProjected.cxx:203 TEvePolygonSetProjected.cxx:204 TEvePolygonSetProjected.cxx:205 TEvePolygonSetProjected.cxx:206 TEvePolygonSetProjected.cxx:207 TEvePolygonSetProjected.cxx:208 TEvePolygonSetProjected.cxx:209 TEvePolygonSetProjected.cxx:210 TEvePolygonSetProjected.cxx:211 TEvePolygonSetProjected.cxx:212 TEvePolygonSetProjected.cxx:213 TEvePolygonSetProjected.cxx:214 TEvePolygonSetProjected.cxx:215 TEvePolygonSetProjected.cxx:216 TEvePolygonSetProjected.cxx:217 TEvePolygonSetProjected.cxx:218 TEvePolygonSetProjected.cxx:219 TEvePolygonSetProjected.cxx:220 TEvePolygonSetProjected.cxx:221 TEvePolygonSetProjected.cxx:222 TEvePolygonSetProjected.cxx:223 TEvePolygonSetProjected.cxx:224 TEvePolygonSetProjected.cxx:225 TEvePolygonSetProjected.cxx:226 TEvePolygonSetProjected.cxx:227 TEvePolygonSetProjected.cxx:228 TEvePolygonSetProjected.cxx:229 TEvePolygonSetProjected.cxx:230 TEvePolygonSetProjected.cxx:231 TEvePolygonSetProjected.cxx:232 TEvePolygonSetProjected.cxx:233 TEvePolygonSetProjected.cxx:234 TEvePolygonSetProjected.cxx:235 TEvePolygonSetProjected.cxx:236 TEvePolygonSetProjected.cxx:237 TEvePolygonSetProjected.cxx:238 TEvePolygonSetProjected.cxx:239 TEvePolygonSetProjected.cxx:240 TEvePolygonSetProjected.cxx:241 TEvePolygonSetProjected.cxx:242 TEvePolygonSetProjected.cxx:243 TEvePolygonSetProjected.cxx:244 TEvePolygonSetProjected.cxx:245 TEvePolygonSetProjected.cxx:246 TEvePolygonSetProjected.cxx:247 TEvePolygonSetProjected.cxx:248 TEvePolygonSetProjected.cxx:249 TEvePolygonSetProjected.cxx:250 TEvePolygonSetProjected.cxx:251 TEvePolygonSetProjected.cxx:252 TEvePolygonSetProjected.cxx:253 TEvePolygonSetProjected.cxx:254 TEvePolygonSetProjected.cxx:255 TEvePolygonSetProjected.cxx:256 TEvePolygonSetProjected.cxx:257 TEvePolygonSetProjected.cxx:258 TEvePolygonSetProjected.cxx:259 TEvePolygonSetProjected.cxx:260 TEvePolygonSetProjected.cxx:261 TEvePolygonSetProjected.cxx:262 TEvePolygonSetProjected.cxx:263 TEvePolygonSetProjected.cxx:264 TEvePolygonSetProjected.cxx:265 TEvePolygonSetProjected.cxx:266 TEvePolygonSetProjected.cxx:267 TEvePolygonSetProjected.cxx:268 TEvePolygonSetProjected.cxx:269 TEvePolygonSetProjected.cxx:270 TEvePolygonSetProjected.cxx:271 TEvePolygonSetProjected.cxx:272 TEvePolygonSetProjected.cxx:273 TEvePolygonSetProjected.cxx:274 TEvePolygonSetProjected.cxx:275 TEvePolygonSetProjected.cxx:276 TEvePolygonSetProjected.cxx:277 TEvePolygonSetProjected.cxx:278 TEvePolygonSetProjected.cxx:279 TEvePolygonSetProjected.cxx:280 TEvePolygonSetProjected.cxx:281 TEvePolygonSetProjected.cxx:282 TEvePolygonSetProjected.cxx:283 TEvePolygonSetProjected.cxx:284 TEvePolygonSetProjected.cxx:285 TEvePolygonSetProjected.cxx:286 TEvePolygonSetProjected.cxx:287 TEvePolygonSetProjected.cxx:288 TEvePolygonSetProjected.cxx:289 TEvePolygonSetProjected.cxx:290 TEvePolygonSetProjected.cxx:291 TEvePolygonSetProjected.cxx:292 TEvePolygonSetProjected.cxx:293 TEvePolygonSetProjected.cxx:294 TEvePolygonSetProjected.cxx:295 TEvePolygonSetProjected.cxx:296 TEvePolygonSetProjected.cxx:297 TEvePolygonSetProjected.cxx:298 TEvePolygonSetProjected.cxx:299 TEvePolygonSetProjected.cxx:300 TEvePolygonSetProjected.cxx:301 TEvePolygonSetProjected.cxx:302 TEvePolygonSetProjected.cxx:303 TEvePolygonSetProjected.cxx:304 TEvePolygonSetProjected.cxx:305 TEvePolygonSetProjected.cxx:306 TEvePolygonSetProjected.cxx:307 TEvePolygonSetProjected.cxx:308 TEvePolygonSetProjected.cxx:309 TEvePolygonSetProjected.cxx:310 TEvePolygonSetProjected.cxx:311 TEvePolygonSetProjected.cxx:312 TEvePolygonSetProjected.cxx:313 TEvePolygonSetProjected.cxx:314 TEvePolygonSetProjected.cxx:315 TEvePolygonSetProjected.cxx:316 TEvePolygonSetProjected.cxx:317 TEvePolygonSetProjected.cxx:318 TEvePolygonSetProjected.cxx:319 TEvePolygonSetProjected.cxx:320 TEvePolygonSetProjected.cxx:321 TEvePolygonSetProjected.cxx:322 TEvePolygonSetProjected.cxx:323 TEvePolygonSetProjected.cxx:324 TEvePolygonSetProjected.cxx:325 TEvePolygonSetProjected.cxx:326 TEvePolygonSetProjected.cxx:327 TEvePolygonSetProjected.cxx:328 TEvePolygonSetProjected.cxx:329 TEvePolygonSetProjected.cxx:330 TEvePolygonSetProjected.cxx:331 TEvePolygonSetProjected.cxx:332 TEvePolygonSetProjected.cxx:333 TEvePolygonSetProjected.cxx:334 TEvePolygonSetProjected.cxx:335 TEvePolygonSetProjected.cxx:336 TEvePolygonSetProjected.cxx:337 TEvePolygonSetProjected.cxx:338 TEvePolygonSetProjected.cxx:339 TEvePolygonSetProjected.cxx:340 TEvePolygonSetProjected.cxx:341 TEvePolygonSetProjected.cxx:342 TEvePolygonSetProjected.cxx:343 TEvePolygonSetProjected.cxx:344 TEvePolygonSetProjected.cxx:345 TEvePolygonSetProjected.cxx:346 TEvePolygonSetProjected.cxx:347 TEvePolygonSetProjected.cxx:348 TEvePolygonSetProjected.cxx:349 TEvePolygonSetProjected.cxx:350 TEvePolygonSetProjected.cxx:351 TEvePolygonSetProjected.cxx:352 TEvePolygonSetProjected.cxx:353 TEvePolygonSetProjected.cxx:354 TEvePolygonSetProjected.cxx:355 TEvePolygonSetProjected.cxx:356 TEvePolygonSetProjected.cxx:357 TEvePolygonSetProjected.cxx:358 TEvePolygonSetProjected.cxx:359 TEvePolygonSetProjected.cxx:360 TEvePolygonSetProjected.cxx:361 TEvePolygonSetProjected.cxx:362 TEvePolygonSetProjected.cxx:363 TEvePolygonSetProjected.cxx:364 TEvePolygonSetProjected.cxx:365 TEvePolygonSetProjected.cxx:366 TEvePolygonSetProjected.cxx:367 TEvePolygonSetProjected.cxx:368 TEvePolygonSetProjected.cxx:369 TEvePolygonSetProjected.cxx:370 TEvePolygonSetProjected.cxx:371 TEvePolygonSetProjected.cxx:372 TEvePolygonSetProjected.cxx:373 TEvePolygonSetProjected.cxx:374 TEvePolygonSetProjected.cxx:375 TEvePolygonSetProjected.cxx:376 TEvePolygonSetProjected.cxx:377 TEvePolygonSetProjected.cxx:378 TEvePolygonSetProjected.cxx:379 TEvePolygonSetProjected.cxx:380 TEvePolygonSetProjected.cxx:381 TEvePolygonSetProjected.cxx:382 TEvePolygonSetProjected.cxx:383 TEvePolygonSetProjected.cxx:384 TEvePolygonSetProjected.cxx:385 TEvePolygonSetProjected.cxx:386 TEvePolygonSetProjected.cxx:387 TEvePolygonSetProjected.cxx:388 TEvePolygonSetProjected.cxx:389 TEvePolygonSetProjected.cxx:390 TEvePolygonSetProjected.cxx:391 TEvePolygonSetProjected.cxx:392 TEvePolygonSetProjected.cxx:393 TEvePolygonSetProjected.cxx:394 TEvePolygonSetProjected.cxx:395 TEvePolygonSetProjected.cxx:396 TEvePolygonSetProjected.cxx:397 TEvePolygonSetProjected.cxx:398 TEvePolygonSetProjected.cxx:399 TEvePolygonSetProjected.cxx:400 TEvePolygonSetProjected.cxx:401 TEvePolygonSetProjected.cxx:402 TEvePolygonSetProjected.cxx:403 TEvePolygonSetProjected.cxx:404 TEvePolygonSetProjected.cxx:405 TEvePolygonSetProjected.cxx:406 TEvePolygonSetProjected.cxx:407 TEvePolygonSetProjected.cxx:408 TEvePolygonSetProjected.cxx:409 TEvePolygonSetProjected.cxx:410 TEvePolygonSetProjected.cxx:411 TEvePolygonSetProjected.cxx:412 TEvePolygonSetProjected.cxx:413 TEvePolygonSetProjected.cxx:414 TEvePolygonSetProjected.cxx:415 TEvePolygonSetProjected.cxx:416 TEvePolygonSetProjected.cxx:417 TEvePolygonSetProjected.cxx:418 TEvePolygonSetProjected.cxx:419 TEvePolygonSetProjected.cxx:420 TEvePolygonSetProjected.cxx:421 TEvePolygonSetProjected.cxx:422 TEvePolygonSetProjected.cxx:423 TEvePolygonSetProjected.cxx:424 TEvePolygonSetProjected.cxx:425 TEvePolygonSetProjected.cxx:426 TEvePolygonSetProjected.cxx:427 TEvePolygonSetProjected.cxx:428 TEvePolygonSetProjected.cxx:429 TEvePolygonSetProjected.cxx:430 TEvePolygonSetProjected.cxx:431 TEvePolygonSetProjected.cxx:432 TEvePolygonSetProjected.cxx:433 TEvePolygonSetProjected.cxx:434 TEvePolygonSetProjected.cxx:435 TEvePolygonSetProjected.cxx:436 TEvePolygonSetProjected.cxx:437 TEvePolygonSetProjected.cxx:438 TEvePolygonSetProjected.cxx:439 TEvePolygonSetProjected.cxx:440 TEvePolygonSetProjected.cxx:441 TEvePolygonSetProjected.cxx:442 TEvePolygonSetProjected.cxx:443 TEvePolygonSetProjected.cxx:444 TEvePolygonSetProjected.cxx:445 TEvePolygonSetProjected.cxx:446 TEvePolygonSetProjected.cxx:447 TEvePolygonSetProjected.cxx:448 TEvePolygonSetProjected.cxx:449 TEvePolygonSetProjected.cxx:450 TEvePolygonSetProjected.cxx:451 TEvePolygonSetProjected.cxx:452 TEvePolygonSetProjected.cxx:453 TEvePolygonSetProjected.cxx:454 TEvePolygonSetProjected.cxx:455 TEvePolygonSetProjected.cxx:456 TEvePolygonSetProjected.cxx:457 TEvePolygonSetProjected.cxx:458 TEvePolygonSetProjected.cxx:459 TEvePolygonSetProjected.cxx:460 TEvePolygonSetProjected.cxx:461 TEvePolygonSetProjected.cxx:462 TEvePolygonSetProjected.cxx:463 TEvePolygonSetProjected.cxx:464 TEvePolygonSetProjected.cxx:465 TEvePolygonSetProjected.cxx:466 TEvePolygonSetProjected.cxx:467 TEvePolygonSetProjected.cxx:468 TEvePolygonSetProjected.cxx:469 TEvePolygonSetProjected.cxx:470 TEvePolygonSetProjected.cxx:471 TEvePolygonSetProjected.cxx:472 TEvePolygonSetProjected.cxx:473 TEvePolygonSetProjected.cxx:474 TEvePolygonSetProjected.cxx:475 TEvePolygonSetProjected.cxx:476 TEvePolygonSetProjected.cxx:477 TEvePolygonSetProjected.cxx:478 TEvePolygonSetProjected.cxx:479 TEvePolygonSetProjected.cxx:480 TEvePolygonSetProjected.cxx:481 TEvePolygonSetProjected.cxx:482 TEvePolygonSetProjected.cxx:483 TEvePolygonSetProjected.cxx:484 TEvePolygonSetProjected.cxx:485 TEvePolygonSetProjected.cxx:486 TEvePolygonSetProjected.cxx:487 TEvePolygonSetProjected.cxx:488 TEvePolygonSetProjected.cxx:489 TEvePolygonSetProjected.cxx:490 TEvePolygonSetProjected.cxx:491 TEvePolygonSetProjected.cxx:492 TEvePolygonSetProjected.cxx:493 TEvePolygonSetProjected.cxx:494 TEvePolygonSetProjected.cxx:495 TEvePolygonSetProjected.cxx:496 TEvePolygonSetProjected.cxx:497 TEvePolygonSetProjected.cxx:498 TEvePolygonSetProjected.cxx:499 TEvePolygonSetProjected.cxx:500 TEvePolygonSetProjected.cxx:501 TEvePolygonSetProjected.cxx:502