12 #ifndef ROOT_TEvePolygonSetProjected
13 #define ROOT_TEvePolygonSetProjected
20 class TEvePolygonSetProjected :
public TEveShape,
23 friend class TEvePolygonSetProjectedGL;
24 friend class TEvePolygonSetProjectedEditor;
27 TEvePolygonSetProjected(
const TEvePolygonSetProjected&);
28 TEvePolygonSetProjected& operator=(
const TEvePolygonSetProjected&);
36 Polygon_t() : fNPnts(0), fPnts(0) {}
37 virtual ~Polygon_t() {
delete [] fPnts; fNPnts=0; fPnts=0; }
39 Polygon_t& operator=(
const Polygon_t& x)
40 { fNPnts = x.fNPnts; fPnts = x.fPnts;
return *
this; }
42 Int_t FindPoint(Int_t pi)
44 for (Int_t i=0; i<fNPnts; ++i) {
45 if (fPnts[i] == pi)
return i;
51 typedef std::list<Polygon_t> vpPolygon_t;
52 typedef vpPolygon_t::iterator vpPolygon_i;
53 typedef vpPolygon_t::const_iterator vpPolygon_ci;
58 Bool_t IsFirstIdxHead(Int_t s0, Int_t s1);
59 Float_t AddPolygon(std::list<Int_t, std::allocator<Int_t> >& pp, std::list<Polygon_t, std::allocator<Polygon_t> >& p);
61 Int_t* ProjectAndReducePoints();
62 Float_t MakePolygonsFromBP(Int_t* idxMap);
63 Float_t MakePolygonsFromBS(Int_t* idxMap);
73 virtual void SetDepthLocal(Float_t d);
75 Float_t PolygonSurfaceXY(
const Polygon_t& poly)
const;
78 TEvePolygonSetProjected(
const char* n=
"TEvePolygonSetProjected",
const char* t=
"");
79 virtual ~TEvePolygonSetProjected();
81 virtual void ComputeBBox();
83 virtual void SetProjection(TEveProjectionManager* mng, TEveProjectable* model);
84 virtual void UpdateProjection();
85 virtual TEveElement* GetProjectedAsElement() {
return this; }
87 void ProjectBuffer3D();
89 virtual void DumpPolys()
const;
92 ClassDef(TEvePolygonSetProjected,0);