Logo ROOT   6.18/05
Reference Guide
List of all members | Public Member Functions | Private Member Functions | Private Attributes | List of all members
TGLScaleManip Class Reference

Scale manipulator - attaches to physical shape and draws local axes widgets with box heads.

User can mouse over (turns yellow) and L click/drag to scale along this axis.

Definition at line 28 of file TGLScaleManip.h.

Public Member Functions

 TGLScaleManip ()
 Construct scale manipulator not bound to any physical shape. More...
 
 TGLScaleManip (TGLPhysicalShape *shape)
 Construct scale manipulator bound to TGLPhysicalShape 'shape'. More...
 
virtual ~TGLScaleManip ()
 Destroy the scale manipulator. More...
 
virtual void Draw (const TGLCamera &camera) const
 Draw scale manipulator - tubes with box heads, in local axes of attached shape, in red(X), green(Y) and blue(Z), with white center sphere. More...
 
virtual Bool_t HandleButton (const Event_t &event, const TGLCamera &camera)
 Handle mouse button event over manipulator - returns kTRUE if redraw required kFALSE otherwise. More...
 
virtual Bool_t HandleMotion (const Event_t &event, const TGLCamera &camera)
 Handle mouse motion over manipulator - if active (selected widget) scale physical along selected widget (axis) of the manipulator, so it tracks mouse action. More...
 
- Public Member Functions inherited from TGLManip
 TGLManip ()
 Construct a manipulator object, bound to supplied viewer, and no physical shape. More...
 
 TGLManip (TGLPhysicalShape *shape)
 Construct a manipulator object, bound to supplied physical shape. More...
 
virtual ~TGLManip ()
 Destroy manipulator object. More...
 
void Attach (TGLPhysicalShape *shape)
 
virtual void Draw (const TGLCamera &camera) const =0
 
Bool_t GetActive () const
 
TGLPhysicalShapeGetAttached () const
 
UInt_t GetSelectedWidget () const
 
virtual Bool_t HandleButton (const Event_t &event, const TGLCamera &camera)
 Handle a mouse button event - return kTRUE if processed, kFALSE otherwise. More...
 
virtual Bool_t HandleMotion (const Event_t &event, const TGLCamera &camera)
 Handle a mouse button event - return kTRUE if widget selection change kFALSE otherwise. More...
 
virtual Bool_t Select (const TGLCamera &, const TGLRect &, const TGLBoundingBox &)
 
void SetActive (Bool_t a)
 
void SetSelectedWidget (UInt_t s)
 
- Public Member Functions inherited from TVirtualGLManip
virtual ~TVirtualGLManip ()
 
virtual Bool_t Select (const TGLCamera &camera, const TGLRect &rect, const TGLBoundingBox &sceneBox)=0
 

Private Member Functions

void LimitScale (Double_t &factor) const
 initial scaling factors More...
 

Private Attributes

TGLVector3 fStartScale
 

Additional Inherited Members

- Protected Member Functions inherited from TGLManip
 TGLManip (const TGLManip &)
 last (latest) mouse position (in WINDOW coords) More...
 
void CalcDrawScale (const TGLBoundingBox &box, const TGLCamera &camera, Double_t &base, TGLVector3 axis[3]) const
 Calculates base and axis scale factor (in world units) for drawing manipulators with reasonable size range in current camera. More...
 
const UChar_tColorFor (UInt_t widget) const
 Returns color to be used for given widget. More...
 
TGLManipoperator= (const TGLManip &)
 Assignment operator. More...
 
- Protected Attributes inherited from TGLManip
Bool_t fActive
 active width (axis) component More...
 
TPoint fFirstMouse
 manipulator is active? More...
 
TPoint fLastMouse
 first (start) mouse position (in WINDOW coords) More...
 
UInt_t fSelectedWidget
 manipulated shape More...
 
TGLPhysicalShapefShape
 

#include <TGLScaleManip.h>

Inheritance diagram for TGLScaleManip:
[legend]

Constructor & Destructor Documentation

◆ TGLScaleManip() [1/2]

TGLScaleManip::TGLScaleManip ( )

Construct scale manipulator not bound to any physical shape.

Definition at line 29 of file TGLScaleManip.cxx.

◆ TGLScaleManip() [2/2]

TGLScaleManip::TGLScaleManip ( TGLPhysicalShape shape)

Construct scale manipulator bound to TGLPhysicalShape 'shape'.

Definition at line 36 of file TGLScaleManip.cxx.

◆ ~TGLScaleManip()

TGLScaleManip::~TGLScaleManip ( )
virtual

Destroy the scale manipulator.

Definition at line 44 of file TGLScaleManip.cxx.

Member Function Documentation

◆ Draw()

void TGLScaleManip::Draw ( const TGLCamera camera) const
virtual

Draw scale manipulator - tubes with box heads, in local axes of attached shape, in red(X), green(Y) and blue(Z), with white center sphere.

If selected widget (mouse over) this is drawn in active colour (yellow).

Implements TGLManip.

Definition at line 53 of file TGLScaleManip.cxx.

◆ HandleButton()

Bool_t TGLScaleManip::HandleButton ( const Event_t event,
const TGLCamera camera 
)
virtual

Handle mouse button event over manipulator - returns kTRUE if redraw required kFALSE otherwise.

Reimplemented from TGLManip.

Definition at line 113 of file TGLScaleManip.cxx.

◆ HandleMotion()

Bool_t TGLScaleManip::HandleMotion ( const Event_t event,
const TGLCamera camera 
)
virtual

Handle mouse motion over manipulator - if active (selected widget) scale physical along selected widget (axis) of the manipulator, so it tracks mouse action.

Returns kTRUE if redraw required kFALSE otherwise.

Reimplemented from TGLManip.

Definition at line 129 of file TGLScaleManip.cxx.

◆ LimitScale()

void TGLScaleManip::LimitScale ( Double_t factor) const
private

initial scaling factors

Clamp scale to sizable values: 1000 - 1/1000 Guards against div by zero problems.

Definition at line 162 of file TGLScaleManip.cxx.

Member Data Documentation

◆ fStartScale

TGLVector3 TGLScaleManip::fStartScale
private

Definition at line 31 of file TGLScaleManip.h.

Libraries for TGLScaleManip:
[legend]

The documentation for this class was generated from the following files: