library: libRGL #include "TGLViewer.h" |
TGLViewer(TVirtualPad* pad) | |
TGLViewer(TVirtualPad* pad, Int_t x, Int_t y, UInt_t width, UInt_t height) | |
virtual | ~TGLViewer() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | AddCompositeOp(UInt_t operation) |
virtual Int_t | AddObject(const TBuffer3D& buffer, Bool_t* addChildren = 0) |
virtual Int_t | AddObject(UInt_t physicalID, const TBuffer3D& buffer, Bool_t* addChildren = 0) |
virtual void | TObject::AppendPad(Option_t* option = "") |
void | ApplySelection() |
virtual void | BeginScene() |
virtual void | TObject::Browse(TBrowser* b) |
virtual Bool_t | BuildingScene() const |
void | ChangedBy(const char* method) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TObject::Clear(Option_t* = "") |
virtual TObject* | TObject::Clone(const char* newname = "") const |
virtual void | CloseComposite() |
virtual Int_t | TObject::Compare(const TObject* obj) const |
Bool_t | Connect(const char* sig, const char* cl, void* rcvr, const char* slt) |
virtual void | TObject::Copy(TObject& object) const |
TGLCamera& | CurrentCamera() const |
virtual void | TObject::Delete(Option_t* option = "") |
void | Destroyed() |
Bool_t | Disconnect(const char* sig = "0", void* rcvr = 0, const char* slt = "0") |
virtual Int_t | DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | DoDraw() |
virtual Bool_t | DoSelect(const TGLRect& rect) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() const |
virtual TObject* | TObject::DrawClone(Option_t* option = "") const |
virtual void | TVirtualViewer3D::DrawViewer() |
virtual void | TObject::Dump() const |
void | Emit(const char* signal) |
void | Emit(const char* signal, const char* params) |
void | Emit(const char* signal, Long_t* paramArr) |
void | Emit(const char* signal, Double_t param) |
void | Emit(const char* signal, Long_t param) |
void | Emit(const char* signal, Long64_t param) |
void | Emit(const char* signal, ULong64_t param) |
void | Emit(const char* signal, Bool_t param) |
void | Emit(const char* signal, Char_t param) |
void | Emit(const char* signal, UChar_t param) |
void | Emit(const char* signal, Short_t param) |
void | Emit(const char* signal, UShort_t param) |
void | Emit(const char* signal, Int_t param) |
void | Emit(const char* signal, UInt_t param) |
void | Emit(const char* signal, ULong_t param) |
void | Emit(const char* signal, Float_t param) |
void | EmitVA(const char* signal, Int_t nargs) |
virtual void | EndScene() |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
TGLCameraMarkupStyle* | GetCameraMarkup() const |
Color_t | GetClearColor() const |
void | GetClipState(EClipType type, Double_t* data) const |
void | GetCurrentClip(EClipType& type, Bool_t& edit) const |
Int_t | GetDev() const |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
void | GetGuideState(TGLViewer::EAxesType& axesType, Bool_t& referenceOn, Double_t* referencePos) const |
virtual const char* | TObject::GetIconName() const |
Bool_t | GetIgnoreSizesOnUpdate() const |
UInt_t | GetLightState() |
TList* | GetListOfSignals() const |
virtual const char* | TObject::GetName() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
Bool_t | GetResetCameraOnDoubleClick() const |
Bool_t | GetResetCamerasOnUpdate() const |
const TGLPhysicalShape* | GetSelected() const |
Bool_t | GetSmartRefresh() const |
virtual const char* | TObject::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() const |
Bool_t | HandleButton(Event_t* ev) |
Bool_t | HandleConfigureNotify(Event_t* ev) |
Bool_t | HandleDoubleClick(Event_t* ev) |
Bool_t | HandleEvent(Event_t* ev) |
Bool_t | HandleExpose(Event_t* ev) |
Bool_t | HandleKey(Event_t* ev) |
Bool_t | HandleMotion(Event_t* ev) |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TObject::Hash() const |
void | HighPriority(const char* signal_name, const char* slot_name = "0") |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual void | TObject::Inspect() const |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TObject::IsSortable() const |
Bool_t | TObject::IsZombie() const |
void | LowPriority(const char* signal_name, const char* slot_name = "0") |
virtual void | TObject::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
void | Message(const char* msg) |
virtual Bool_t | TObject::Notify() |
virtual Bool_t | OpenComposite(const TBuffer3D& buffer, Bool_t* addChildren = 0) |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::operator delete[](void* ptr, void* vp) |
void* | TObject::operator new(size_t sz) |
void* | TObject::operator new(size_t sz, void* vp) |
void* | TObject::operator new[](size_t sz) |
void* | TObject::operator new[](size_t sz, void* vp) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual Bool_t | PreferLocalFrame() const |
virtual void | TObject::Print(Option_t* option = "") const |
virtual void | PrintObjects() |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
virtual void | RefreshPadEditor(TObject* = 0) |
void | RequestDraw(Short_t LOD = TGLDrawFlags::kLODMed) |
Bool_t | RequestSelect(UInt_t x, UInt_t y) |
void | TObject::ResetBit(UInt_t f) |
virtual void | ResetCameras() |
virtual void | ResetCamerasAfterNextUpdate() |
void | ResetCurrentCamera() |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") const |
virtual void | TObject::SavePrimitive(ostream& out, Option_t* option = "") |
virtual TObject* | TVirtualViewer3D::SelectObject(Int_t, Int_t) |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
void | SetCameraMarkup(TGLCameraMarkupStyle* m) |
void | SetClearColor(Color_t col) |
void | SetClipState(EClipType type, const Double_t* data) |
void | SetColorOnSelectedFamily(const Float_t* rgba) |
void | SetCurrentCamera(TGLViewer::ECameraType camera) |
void | SetCurrentClip(EClipType type, Bool_t edit) |
virtual void | TObject::SetDrawOption(Option_t* option = "") |
void | SetDrawStyle(TGLDrawFlags::EStyle style) |
static void | TObject::SetDtorOnly(void* obj) |
void | SetGuideState(TGLViewer::EAxesType axesType, Bool_t referenceOn, const Double_t* referencePos) |
void | SetIgnoreSizesOnUpdate(Bool_t v) |
void | SetLight(TGLViewer::ELight light, Bool_t on) |
static void | TObject::SetObjectStat(Bool_t stat) |
void | SetOrthoCamera(TGLViewer::ECameraType camera, Double_t left, Double_t right, Double_t top, Double_t bottom) |
void | SetPadEditor(TGLViewerEditor* ed) |
void | SetPerspectiveCamera(TGLViewer::ECameraType camera, Double_t fov, Double_t dolly, Double_t* center, Double_t hRotate, Double_t vRotate) |
void | SetResetCameraOnDoubleClick(Bool_t v) |
void | SetResetCamerasOnUpdate(Bool_t v) |
void | SetSelectedColor(const Float_t* rgba) |
void | SetSelectedGeom(const TGLVertex3& trans, const TGLVector3& scale) |
void | SetSmartRefresh(Bool_t smart_ref) |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowMembers(TMemberInspector& insp, char* parent) |
virtual void | Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
void | ToggleLight(TGLViewer::ELight light) |
void | UpdateScene() |
virtual void | TObject::UseCurrentStyle() |
static TVirtualViewer3D* | TVirtualViewer3D::Viewer3D(TVirtualPad* pad = 0, Option_t* type = "") |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = "0", Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = "0", Int_t option = 0, Int_t bufsize = 0) const |
TGLViewer(const TGLViewer&) | |
TGLLogicalShape* | AttemptDirectRenderer(TObject* id) |
RootCsg::TBaseMesh* | BuildComposite() |
virtual void | ClipChanged() |
TGLLogicalShape* | CreateNewLogical(const TBuffer3D& buffer) const |
TGLPhysicalShape* | CreateNewPhysical(UInt_t physicalID, const TBuffer3D& buffer, const TGLLogicalShape& logical) const |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
TClass* | FindDirectRendererClass(TClass* cls) |
void | InitGL() |
void | MakeCurrent() const |
void | TObject::MakeZombie() |
TGLViewer& | operator=(const TGLViewer&) |
void | PostDraw() |
virtual void | PostSceneBuildSetup(Bool_t resetCameras) |
void | PreDraw() |
Bool_t | RebuildScene() |
virtual void | SelectionChanged() |
void | SetupCameras(Bool_t reset) |
void | SetupLights() |
void | SetViewport(Int_t x, Int_t y, UInt_t width, UInt_t height) |
void | SwapBuffers() const |
Int_t | ValidateObjectBuffer(const TBuffer3D& buffer, Bool_t includeRaw) const |
enum ECameraType { | kCameraPerspXOZ | |
kCameraPerspYOZ | ||
kCameraPerspXOY | ||
kCameraOrthoXOY | ||
kCameraOrthoXOZ | ||
kCameraOrthoZOY | ||
}; | ||
enum ELight { | kLightFront | |
kLightTop | ||
kLightBottom | ||
kLightLeft | ||
kLightRight | ||
kLightMask | ||
}; | ||
enum EAxesType { | kAxesNone | |
kAxesEdge | ||
kAxesOrigin | ||
}; | ||
enum ECameraAction { | kCameraNone | |
kCameraRotate | ||
kCameraTruck | ||
kCameraDolly | ||
}; | ||
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
TVirtualPad* | fPad | ! external pad - remove replace with signal |
TContextMenu* | fContextMenu | ! |
TGLPerspectiveCamera | fPerspectiveCameraXOZ | ! |
TGLPerspectiveCamera | fPerspectiveCameraYOZ | ! |
TGLPerspectiveCamera | fPerspectiveCameraXOY | ! |
TGLOrthoCamera | fOrthoXOYCamera | ! |
TGLOrthoCamera | fOrthoXOZCamera | ! |
TGLOrthoCamera | fOrthoZOYCamera | ! |
TGLCamera* | fCurrentCamera | ! |
Bool_t | fInternalRebuild | ! scene rebuild triggered internally/externally? |
Bool_t | fPostSceneBuildSetup | ! setup viewer after (re)build complete? |
Bool_t | fAcceptedAllPhysicals | ! did we take all physicals offered in AddObject() |
Bool_t | fForceAcceptAll | ! force taking of all logicals/physicals in AddObject() |
Bool_t | fInternalPIDs | ! using internal physical IDs |
UInt_t | fNextInternalPID | ! next internal physical ID (from 1 - 0 reserved) |
TGLFaceSet* | fComposite | ! Paritally created composite |
UInt_t | fCSLevel | |
vector<CSPart_t> | fCSTokens | |
TGLViewer::ECameraAction | fAction | |
TPoint | fLastPos | |
UInt_t | fActiveButtonID | |
TGLDrawFlags | fDrawFlags | ! next draw flags - passed to scene |
TGLRedrawTimer* | fRedrawTimer | ! |
TGLScene | fScene | ! the GL scene - owned by viewer at present |
TGLRect | fViewport | ! viewport - drawn area |
Color_t | fClearColor | ! clear-color |
UInt_t | fLightState | ! light states (on/off) mask |
TGLViewer::EAxesType | fAxesType | ! axes type |
Bool_t | fReferenceOn | ! reference marker on? |
TGLVertex3 | fReferencePos | ! reference position |
Bool_t | fInitGL | ! has GL been initialised? |
Bool_t | fSmartRefresh | ! cache logicals during scene rebuilds, use TAtt3D time-stamp to determine if they are still valid |
Bool_t | fDebugMode | ! debug mode (forced rebuild + draw scene/frustum/interest boxes) |
UInt_t | fAcceptedPhysicals | ! number of physicals accepted in last rebuild |
UInt_t | fRejectedPhysicals | ! number of physicals rejected in last rebuild |
Bool_t | fIsPrinting | |
TGLWindow* | fGLWindow | ! remove - replace with TGLManager |
Int_t | fGLDevice | !for embedded gl viewer |
TGLViewerEditor* | fPadEditor | |
map<TClass*,TClass*> | fDirectRendererMap | ! |
Bool_t | fIgnoreSizesOnUpdate | ignore sizes of bounding-boxes on update |
Bool_t | fResetCamerasOnUpdate | reposition camera on each update |
Bool_t | fResetCamerasOnNextUpdate | reposition camera on next update |
Bool_t | fResetCameraOnDoubleClick | reposition camera on double-click |
TQObjSender | fQObject |
TGLViewer Base GL viewer object - used by both standalone and embedded (in pad) GL. Contains core viewer objects : GL scene (fScene) - collection of main drawn objects - see TGLScene Cameras (fXXXXCamera) - ortho and perspective cameras - see TGLCamera Clipping (fClipXXXX) - collection of clip objects - see TGLClip Manipulators (fXXXXManip) - collection of manipulators - see TGLManip It maintains the current active draw styles, clipping object, manipulator, camera etc. TGLViewer is 'GUI free' in that it does not derive from any ROOT GUI TGFrame etc - see TGLSAViewer for this. However it contains GUI GUI style methods HandleButton() etc to which GUI events can be directed from standalone frame or embedding pad to perform interaction. For embedded (pad) GL this viewer is created directly by plugin manager. For standalone the derived TGLSAViewer is.
Construct the viewer object, with following arguments: 'pad' - external pad viewer is bound to 'x', 'y' - initial top left position 'width', 'height' - initial width/height Create timer
gl-embedded viewer's ctor Construct the viewer object, with following arguments: 'pad' - external pad viewer is bound to 'x', 'y' - initial top left position 'width', 'height' - initial width/height Create timer
Indicate if viewer prefers to receive logical shape descriptions in local (kTRUE) or world frame (kFALSE). For GL viewer is kTRUE always TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D.cxx for description of viewer architecture
Start building of viewer scene TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D.cxx for description of viewer architecture
End building of viewer scene TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D.cxx for description of viewer architecture
If we accepted all offered physicals into the scene no point in rebuilding it.
Add an object to the viewer, using internal physical IDs TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D.cxx for description of viewer architecture
Add an object to the viewer, using an external physical ID TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D.cxx for description of viewer architecture
Open new composite container. TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D.cxx for description of viewer architecture.
Close composite container TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D.cxx for description of viewer architecture
Add composite operation used to combine objects added via AddObject TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D.cxx for description of viewer architecture
Validate if the passed 'buffer' contains all sections we require to add object. Returns Int_t combination of TBuffer::ESection flags still required - or TBuffer3D::kNone if buffer is valid. If 'includeRaw' is kTRUE check for kRaw/kRawSizes - skip otherwise. See base/src/TVirtualViewer3D.cxx for description of viewer architecture
Create and return a new TGLLogicalShape from the supplied buffer
Create and return a new TGLPhysicalShape with id 'ID', using 'buffer' placement information (translation etc), and bound to suppled 'logical'
Post request for redraw of viewer at level of detail 'LOD' Request is directed via cross thread gVirtualGL object
Post request for select draw of viewer, picking objects round the WINDOW point (x,y). Request is directed via cross thread gVirtualGL object
Perform GL selection, picking objects overlapping WINDOW area described by 'rect'. Return kTRUE if selection changed, kFALSE otherwise. Selection can be obtained via fScene.GetSelected() Select lock should already been taken in other thread in TGLViewer::DoSelect()
Set viewer viewport (window area) with bottom/left at (x,y), with
dimensions 'width'/'height'
Set the draw style - one of kFill, kWireframe, kOutline
Set current active camera - 'cameraType' one of: kCameraPerspX, kCameraPerspY, kCameraPerspZ kCameraOrthoXOY, kCameraOrthoXOZ, kCameraOrthoZOY
Set an orthographic camera to supplied configuration - note this does not need to be the current camera - though you will not see the effect if it is not. 'camera' defines the ortho camera - one of kCameraOrthoXOY, kCameraOrthoXOZ, kCameraOrthoZOY 'left' / 'right' / 'top' / 'bottom' define the WORLD coordinates which corresepond with the left/right/top/bottom positions on the GL viewer viewport E.g. for kCameraOrthoXOY camera left/right are X world coords, top/bottom are Y world coords As this is an orthographic camera the other axis (in eye direction) is no relevant. The near/far clip planes are set automatically based in scene contents
Set a perspective camera to supplied configuration - note this does not need to be the current camera - though you will not see the effect if it is not. 'camera' defines the persp camera - one of kCameraPerspXOZ, kCameraPerspYOZ, kCameraPerspXOY 'fov' - field of view (lens angle) in degrees (clamped to 0.1 - 170.0) 'dolly' - distance from 'center' 'center' - world position from which dolly/hRotate/vRotate are measured camera rotates round this, always facing in (in center of viewport) 'hRotate' - horizontal rotation from initial configuration in degrees 'hRotate' - vertical rotation from initial configuration in degrees
Toggle light on/off - 'light' one of kFront, kTop, kBottom, kLeft, kRight
Set light on/off - 'light' one of kFront, kTop, kBottom, kLeft, kRight
Fetch the state of guides (axes & reference markers) into arguments
Set the state of guides (axes & reference markers) from arguments
Set full color attributes on current selected physical shape: 0...3 - diffuse 4...7 - ambient 8...11 - specular 12..15 - emission 16 - shininess see OpenGL documentation for details of materials
Set full color attributes on all physical shapes sharing the same logical shape as the selected physical 0...3 - diffuse 4...7 - ambient 8...11 - specular 12..15 - emission 16 - shininess see OpenGL documentation for details of materials
Update geometry of the selected physical. 'trans' and 'scale' specify the translation and scaling components of the physical shapes translation matrix See TGLMatrix for more details
Calcaulate and return pxiel distance to nearest viewer object from window location px, py This is provided for use when embedding GL viewer into pad
Process event of type 'event' - one of EEventType types, occuring at window location px, py This is provided for use when embedding GL viewer into pad
Handle generic Event_t type 'event' - provided to catch focus changes and terminate any interaction in viewer
Handle configure notify 'event' - a window resize/movement
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________