12#ifndef ROOT_REveBoxSet
13#define ROOT_REveBoxSet
22namespace Experimental {
84 REveBoxSet(
const char*
n=
"REveBoxSet",
const char* t=
"");
int Int_t
Signed integer 4 bytes (int)
float Float_t
Float 4 bytes (float)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint angle
void SetBoxSkip(Int_t bs)
Bool_t GetDrawConeCap() const
void AddInstanceMat4(const Float_t *mat4)
Create shape with arbitrary transformtaion.
@ kBT_InstancedScaledRotated
void AddEllipticCone(const REveVector &pos, const REveVector &dir, Float_t r, Float_t r2, Float_t angle=0)
Create a cone with apex at pos, axis dir and radius r.
void AddFreeBox(const Float_t *verts)
EInstanceShape_e GetInstanceShape() const
void ComputeBBox() override
Fill the bounding box (virtual from REveElement).
void SetInstanceShape(EInstanceShape_e s)
void AddInstanceCorner(Float_t x, Float_t y, Float_t z)
Create a new axis-aligned box with lower corner (x, y, z) and the default size, see SetDefWidth() and...
void SetDefHalfWidth(Float_t v)
void AddBox(const Float_t *verts)
Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override
Fill core part of JSON representation.
void BuildRenderData() override
Creates 3D point array for rendering.
REveBoxSet(const REveBoxSet &)=delete
friend class REveBoxSetGL
void Test(Int_t nboxes)
Fill the structure with a random set of boxes.
Float_t GetDefHalfHeight() const
void SetDefDepth(Float_t v)
void SetDefHalfHeight(Float_t v)
Float_t GetDefWidth() const
void AddCone(const REveVector &pos, const REveVector &dir, Float_t r)
Create a cone with apex at pos, axis dir and radius r.
void Reset()
Reset the data containers to zero size.
void InstanceHalfSize(const DigitBase_t &digit, Float_t half[3]) const
Half size of an axis-aligned instance, kBT_Instanced or kBT_InstancedScaled, as the client draws it.
Float_t GetDefHalfDepth() const
EInstanceShape_e fInstanceShape
void SetDrawConeCap(Bool_t x)
void SetDefHalfDepth(Float_t v)
void Reset(EBoxType_e boxType, Bool_t valIsCol, Int_t chunkSize)
Float_t GetDefHeight() const
void AddVertices(const Float_t *verts)
Create a new box from a set of 8 vertices.
void AddInstanceScaled(Float_t cx, Float_t cy, Float_t cz, Float_t hw, Float_t hh, Float_t hd)
Create a new axis-aligned box with centre (cx, cy, cz) and half size (hw, hh, hd).
REveBoxSet & operator=(const REveBoxSet &)=delete
void SetDefHeight(Float_t v)
void AddHex(const REveVector &pos, Float_t r, Float_t angle, Float_t depth)
Create a hexagonal prism with center of one hexagon at pos, radius of hexagon vertices r,...
unsigned int GetColorFromDigit(REveDigitSet::DigitBase_t &digit)
Get int value for color.
float GetColorFromDigitAsFloat(REveDigitSet::DigitBase_t &digit)
void WriteShapeData(REveDigitSet::DigitBase_t &digit)
Write shape data for different cases.
EInstanceShape_e
The shape every instance of a kBT_Instanced* box set draws.
static Int_t SizeofAtom(EBoxType_e bt)
Return size of data-structure describing a box of type bt.
bool Instanced()
Use instancing in RenderCore.
Float_t GetDefHalfWidth() const
void SetDefWidth(Float_t v)
void AddInstance(Float_t cx, Float_t cy, Float_t cz)
Create a new axis-aligned box with centre (cx, cy, cz) and the default size, see SetDefWidth() and Se...
Float_t GetDefDepth() const
void AddInstanceScaledCorner(Float_t x, Float_t y, Float_t z, Float_t w, Float_t h, Float_t d)
Create a new axis-aligned box with lower corner (x, y, z) and size (w, h, d).
Geometrical transformation package.
This is the base class for the ROOT Random number generators.