19REveEllipsoid::REveEllipsoid(
const std::string &
n ,
const std::string &t):
34 while (phi < phiEnd ) {
78 return TClass::GetClass<REveEllipsoidProjected>();
89 j[
"fSecondarySelect"] =
false;
118 float phi = phiStart;
121 while (phi < phiEnd ) {
157 return (p1-p0).Mag2()+ (p2-p0).
Mag2();
199 printf(
"REveEllipsoidProjected::OutlineProjected, printing axes %s\n",
GetCName());
245 for (
size_t i = 0; i <
fArchPnts.size(); i+=2 )
290 j[
"fSecondarySelect"] =
false;
void Reset(Int_t atom_size, Int_t chunk_size)
Empty the container and reset it with given atom and chunk sizes.
void Refit()
Refit the container so that all current data fits into a single chunk.
const char * GetCName() const
virtual REveTrans * PtrMainTrans(Bool_t create=kTRUE)
Return pointer to main transformation.
REveEllipsoidProjected(const REveEllipsoidProjected &)
virtual void OutlineProjected()
Find longest projection of axes and draw an arch.
std::vector< REveVector > fArchPnts
virtual void SetProjection(REveProjectionManager *mng, REveProjectable *model) override
This is virtual method from base-class REveProjected.
float GetEllipseSurface(const REveVector &v1, const REveVector &v2)
Get surface size of projected ellipse.
Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override
Fill core part of JSON representation.
void DrawArchProjected(float phiStart, float phiEnd, float phiStep, REveVector &v0, REveVector &v1, REveVector &v2)
Draw archade around base vectors.
void BuildRenderData() override
Crates 3D point array for rendering.
void UpdateProjection() override
Callback that actually performs the projection.
virtual ~REveEllipsoidProjected()
Destructor.
void SetBaseVectors(REveVector &v0, REveVector &v1, REveVector &v3)
Three defining base vectors of ellipse.
Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override
Fill core part of JSON representation.
void DrawArch(float phiStart, float phiEnd, float phiStep, REveVector &v0, REveVector &v1, REveVector &v2)
Draw archade as straight line set.
TClass * ProjectedClass(const REveProjection *p) const override
Virtual from REveProjectable, returns REveEllipsoidProjected class.
virtual void Outline()
Draw archade around base vectors.
void SetPhiStep(float ps)
Set size of phi step in archade drawing.
virtual void SetProjection(REveProjectionManager *mng, REveProjectable *model)
Sets projection manager and reference in the projectable object.
REveProjectable * fProjectable
REveProjectionManager * fManager
REveProjectionManager Manager class for steering of projections and managing projected objects.
REveProjection * GetProjection()
REveProjection Base for specific classes that implement non-linear projections.
void ProjectPointfv(Float_t *v, Float_t d)
Project float array.
virtual Bool_t HasSeveralSubSpaces() const
virtual Bool_t AcceptSegment(REveVector &, REveVector &, Float_t) const
virtual void BisectBreakPoint(REveVector &vL, REveVector &vR, Float_t eps_sqr)
Find break-point on both sides of the discontinuity.
REveStraightLineSetProjected Projected copy of a REveStraightLineSet.
REveStraightLineSet Set of straight lines with optional markers along the lines.
Line_t * AddLine(Float_t x1, Float_t y1, Float_t z1, Float_t x2, Float_t y2, Float_t z2)
Add a line.
Marker_t * AddMarker(Float_t x, Float_t y, Float_t z, Int_t line_id=-1)
Add a marker with given position.
Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override
Fill core part of JSON representation.
void BuildRenderData() override
Crates 3D point array for rendering.
REveChunkManager fMarkerPlex
void CopyVizParams(const REveElement *el) override
Copy visualization parameters from element el.
REveChunkManager fLinePlex
REveChunkManager & GetMarkerPlex()
void GetPos(Double_t &x, Double_t &y, Double_t &z) const
Get position (base-vec 4).
void MultiplyIP(TVector3 &v, Double_t w=1) const
Multiply vector in-place.
void Dump() const
Dump to stdout as "(x, y, z)\n".
TClass instances represent classes, structs and namespaces in the ROOT type system.
TVector3 is a general three vector class, which can be used for the description of different vectors ...
T Mag2(const SVector< T, D > &rhs)
Vector magnitude square Template to compute .
static constexpr double ps
Short_t Max(Short_t a, Short_t b)
constexpr Double_t TwoPi()
Bool_t next()
Go to next atom.