12#ifndef ROOT7_REvePolygonSetProjected
13#define ROOT7_REvePolygonSetProjected
23namespace Experimental {
49 auto dist = std::distance(
fPnts.begin(), std::find(
fPnts.begin(),
fPnts.end(), pi));
50 return (dist >= (
int)
fPnts.size()) ? -1 : (
int) dist;
57 std::unique_ptr<TBuffer3D>
fBuff;
virtual ~REvePolygonSetProjected()
Destructor.
void SetProjection(REveProjectionManager *mng, REveProjectable *model) override
This is virtual method from base-class REveProjected.
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.
vpPolygon_t fPolsBS
! polygons build from TBuffer3D segments
void BuildRenderData() override
Crates representation for rendering.
void DumpBuffer3D()
Dump information about currently projected buffer.
void UpdateProjection() override
This is virtual method from base-class REveProjected.
std::list< Polygon_t > vpPolygon_t
vpPolygon_t fPolsBP
! polygons build from TBuffer3D polygons
std::vector< UInt_t > ProjectAndReducePoints()
Project and reduce buffer points.
vpPolygon_t fPols
! polygons
std::vector< REveVector > fPnts
! reduced and projected points
REveElement * GetProjectedAsElement() override
Returns this projected dynamic-casted to REveElement.
void ProjectBuffer3D()
Project current buffer.
Float_t PolygonSurfaceXY(const Polygon_t &poly) const
Calculate XY surface of a polygon.
void ComputeBBox() override
Override of virtual method from TAttBBox.
REvePolygonSetProjected & operator=(const REvePolygonSetProjected &)=delete
Float_t MakePolygonsFromBS(std::vector< UInt_t > &idxMap)
Build polygons from the set of buffer segments.
Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override
Fill core part of JSON representation.
void SetDepthLocal(Float_t d) override
Set depth (z-coordinate) of the projected points.
Float_t MakePolygonsFromBP(std::vector< UInt_t > &idxMap)
Build polygons from list of buffer polygons.
std::unique_ptr< TBuffer3D > fBuff
Float_t AddPolygon(std::list< UInt_t > &pp, std::list< Polygon_t > &p)
Check if polygon has dimensions above REveProjection::fgEps and add it to a list if it is not a dupli...
REvePolygonSetProjected(const REvePolygonSetProjected &)=delete
REveProjectionManager Manager class for steering of projections and managing projected objects.
Generic 3D primitive description class.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
basic_json< std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, adl_serializer, std::vector< std::uint8_t > > json
std::vector< UInt_t > fPnts
Polygon_t(std::vector< UInt_t > &&pnts)