13#include "TGLIncludes.h"
46 UpdateBoundingBoxesOfPhysicals();
58 fBoundingBox.Draw(
rnrCtx.IsDrawPassFilled());
69 UpdateBoundingBoxesOfPhysicals();
111 Warning(
"TGLClip::Setup",
"Called on base-class -- should be re-implemented in derived class.");
182 TGLClipPlaneLogical*
cpl = (TGLClipPlaneLogical*)
GetLogical();
211 TGLClipPlaneLogical*
cpl = (TGLClipPlaneLogical*)
GetLogical();
220 Warning(
"TGLClipPlane::Setup",
"Normal with zero length passed.");
316 while (i != set.end()) {
336 fCurrentClip (nullptr),
507 Error(
"TGLClipSet::GetClipState",
"invalid clip type '%d'.",
type);
566 Error(
"TGLClipSet::GetClipType" ,
"Unknown clip type");
592 Error(
"TGLClipSet::SetClipType" ,
"Unknown clip type");
double Double_t
Double 8 bytes.
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
std::vector< TGLPlane > TGLPlaneSet_t
std::vector< TGLPlane >::iterator TGLPlaneSet_i
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
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 Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Concrete class describing an orientated (free) or axis aligned box of 8 vertices.
TGLVector3 Extents() const
TGLVertex3 Center() const
Concrete clip box object.
~TGLClipBox() override
Destroy clip box object.
void Setup(const TGLBoundingBox &bbox) override
Setup the clip object for scene encompassed by bbox.
void PlaneSet(TGLPlaneSet_t &set) const override
Return set of 6 planes describing faces of the box but invert them so that they point inside of box.
TGLClipBox()
Construct an (initially) axis aligned clip pbox object, extents 'halfLengths', centered on 'center' v...
static const float fgColor[4]
! Fixed color of clip box
Concrete clip plane object.
static const float fgColor[4]
! Fixed color of clip plane
void Set(const TGLPlane &plane)
Update clip plane object to follow passed 'plane' equation.
void PlaneSet(TGLPlaneSet_t &set) const override
Return set of planes (actually a single one) describing this clip plane.
~TGLClipPlane() override
Destroy clip plane object.
void Setup(const TGLBoundingBox &bbox) override
Setup the clip object for scene encompassed by bbox.
TGLClipPlane()
Construct a clip plane object, based on supplied 'plane', with initial manipulation pivot at 'center'...
~TGLClipSet() override
Destructor.
void InvalidateClips()
Invalidate clip objects.
TGLClip * fCurrentClip
! the current clipping shape
void GetClipState(TGLClip::EType type, Double_t data[6]) const
Get state of clip object 'type' into data vector:
void SetClipState(TGLClip::EType type, const Double_t data[6])
Set state of clip object 'type' into data vector:
void FillPlaneSet(TGLPlaneSet_t &set) const
Forward request to fill the plane-set to the current clip.
void SetupCurrentClip(const TGLBoundingBox &sceneBBox)
Setup current clipping object for given scene bounding box.
void SetClipType(TGLClip::EType type)
Set current clip active in viewer - 'type' is one of kClipNone kClipPlane or kClipBox.
Bool_t Handle(TGLRnrCtx &rnrCtx, TGLOvlSelectRecord &selRec, Event_t *event) override
Handle overlay event.
void MouseLeave() override
Mouse has left the element.
Bool_t MouseStillInside(TGLOvlSelectRecord &selRec) override
TGLClipPlane * fClipPlane
Bool_t MouseEnter(TGLOvlSelectRecord &selRec) override
Mouse has entered this element.
void SetupCurrentClipIfInvalid(const TGLBoundingBox &sceneBBox)
Setup current clipping object for given scene bounding box.
TGLClip::EType GetClipType() const
Get current type active in viewer - returns one of kClipNone kClipPlane or kClipBox.
void SetupClips(const TGLBoundingBox &sceneBBox)
Setup clipping objects for given scene bounding box.
void Render(TGLRnrCtx &rnrCtx) override
Render clip-shape and manipulator.
void InvalidateCurrentClip()
Invalidate current clip object.
Abstract clipping shape - derives from TGLPhysicalShape Adds clip mode (inside/outside) and pure virt...
~TGLClip() override
Destroy clip object.
virtual void Setup(const TGLBoundingBox &bbox)=0
TGLClip(const TGLLogicalShape &logical, const TGLMatrix &transform, const float color[4])
Construct a stand-alone physical clipping object.
virtual void PlaneSet(TGLPlaneSet_t &set) const =0
void Draw(TGLRnrCtx &rnrCtx) const override
Draw out clipping object with blending and back + front filling.
Abstract logical shape - a GL 'drawable' - base for all shapes - faceset sphere etc.
Combine all available manipulators in a collection.
void MouseLeave() override
Mouse has left the element.
Bool_t Handle(TGLRnrCtx &rnrCtx, TGLOvlSelectRecord &selRec, Event_t *event) override
Handle overlay event.
Bool_t MouseEnter(TGLOvlSelectRecord &selRec) override
Mouse has entered this element.
void Render(TGLRnrCtx &rnrCtx) override
Render the manipulator and bounding-box.
void SetPShape(TGLPhysicalShape *shape) override
Set phys-shape, override of virtual from TGLPShapeRef.
16 component (4x4) transform matrix - column MAJOR as per GL.
virtual Bool_t MouseStillInside(TGLOvlSelectRecord &selRec)
Selection record for overlay objects.
Concrete physical shape - a GL drawable.
void Scale(const TGLVector3 &scale)
void SetTransform(const TGLMatrix &transform)
const TGLBoundingBox & BoundingBox() const
void SetManip(EManip manip)
TGLVector3 GetScale() const
const TGLLogicalShape * GetLogical() const
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw physical shape, using LOD flags, potential from display list cache.
void Translate(const TGLVector3 &vect)
3D plane class - of format Ax + By + Cz + D = 0
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
3 component (x/y/z) vector class.
3 component (x/y/z) vertex class.
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)