31 typedef std::list<Seg_t>
LSeg_t;
32 typedef std::list<Seg_t>::iterator
LSegIt_t;
110 if (
fBuff ==
nullptr)
return;
190 if (pp.size() <= 2)
return 0;
193 for (std::list<Int_t>::iterator
u = pp.begin();
u != pp.end(); ++
u)
203 if ((bbox[1]-bbox[0]) < eps || (bbox[3]-bbox[2]) < eps)
return 0;
220 std::list<Int_t>::iterator
u = ++pp.begin();
222 while (
u != pp.end())
229 if (
u == pp.end())
return 0;
233 std::list<Int_t>::iterator
u = --pp.end();
235 while (
u != pp.begin())
242 if (
u == pp.begin())
return 0;
248 for (std::list<Int_t>::iterator
u = pp.begin();
u != pp.end(); ++
u)
255 pols.back().fNPnts = pp.size();
256 pols.back().fPnts = &
pv[0];
258 return (bbox[1]-bbox[0]) * (bbox[3]-bbox[2]);
302 if (tail != pp.back()) pp.push_back(tail);
309 if (pp.front() == pp.back()) pp.pop_front();
353 while ( !
segs.empty())
356 pp.push_back(
segs.front().fV1);
360 while (match && !
segs.empty())
366 if (
cv1 == tail ||
cv2 == tail)
379 if (tail == pp.front())
460 printf(
"Points of polygon %d [Np = %d]:\n", ++cnt,
nPnts);
487 printf(
"ORIG points :(%f, %f, %f) (%f, %f, %f)\n",
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char mode
const_iterator begin() const
const_iterator end() const
void BBoxCheckPoint(Float_t x, Float_t y, Float_t z)
void BBoxZero(Float_t epsilon=0, Float_t x=0, Float_t y=0, Float_t z=0)
Create cube of volume (2*epsilon)^3 at (x,y,z).
void BBoxInit(Float_t infinity=1e6)
Dynamic Float_t[6] X(min,max), Y(min,max), Z(min,max)
Wrapper for TGeoShape with absolute positioning and color attributes allowing display of extracted TG...
A set of projected polygons.
void SetDepthLocal(Float_t d) override
Set depth (z-coordinate) of the projected points.
~TEvePolygonSetProjected() override
Destructor.
void DumpBuffer3D()
Dump information about currently projected buffer.
vpPolygon_t::iterator vpPolygon_i
vpPolygon_t::const_iterator vpPolygon_ci
Int_t * ProjectAndReducePoints()
Project and reduce buffer points.
Float_t MakePolygonsFromBS(Int_t *idxMap)
Build polygons from the set of buffer segments.
std::list< Polygon_t > vpPolygon_t
void UpdateProjection() override
This is virtual method from base-class TEveProjected.
Float_t MakePolygonsFromBP(Int_t *idxMap)
Build polygons from list of buffer polygons.
TEvePolygonSetProjected(const TEvePolygonSetProjected &)=delete
Float_t PolygonSurfaceXY(const Polygon_t &poly) const
Calculate XY surface of a polygon.
void SetProjection(TEveProjectionManager *mng, TEveProjectable *model) override
This is virtual method from base-class TEveProjected.
void ProjectBuffer3D()
Project current buffer.
void ComputeBBox() override
Override of virtual method from TAttBBox.
Float_t AddPolygon(std::list< Int_t, std::allocator< Int_t > > &pp, std::list< Polygon_t, std::allocator< Polygon_t > > &p)
Check if polygon has dimensions above TEveProjection::fgEps and add it to a list if it is not a dupli...
virtual void DumpPolys() const
Dump information about built polygons.
Bool_t IsFirstIdxHead(Int_t s0, Int_t s1)
Compare the two segments and check if the first index of first segment is starting.
Abstract base-class for non-linear projectable objects.
TEveProjectionManager * fManager
virtual void SetProjection(TEveProjectionManager *mng, TEveProjectable *model)
Sets projection manager and reference in the projectable object.
void SetDepthCommon(Float_t d, TEveElement *el, Float_t *bbox)
Utility function to update the z-values of the bounding-box.
Manager class for steering of projections and managing projected objects.
TEveProjection * GetProjection()
Base-class for non-linear projections.
EGeoMode_e GetGeoMode() const
Abstract base-class for 2D/3D shapes.
void CopyVizParams(const TEveElement *el) override
Copy visualization parameters from element el.
void Set(const Float_t *v)
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.