ROOT logo
ROOT » GRAF3D » GL » TGLScaleManip

class TGLScaleManip: public TGLManip


TGLScaleManip

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.
 Widgets use standard 3D package axes colours: X red, Y green, Z blue.

Function Members (Methods)

public:
TGLScaleManip()
TGLScaleManip(TGLPhysicalShape* shape)
TGLScaleManip(const TGLScaleManip&)
virtual~TGLScaleManip()
voidTGLManip::Attach(TGLPhysicalShape* shape)
static TClass*Class()
virtual voidDraw(const TGLCamera& camera) const
Bool_tTGLManip::GetActive() const
TGLPhysicalShape*TGLManip::GetAttached() const
UInt_tTGLManip::GetSelectedWidget() const
virtual Bool_tHandleButton(const Event_t& event, const TGLCamera& camera)
virtual Bool_tHandleMotion(const Event_t& event, const TGLCamera& camera)
virtual TClass*IsA() const
virtual Bool_tTGLManip::Select(const TGLCamera&, const TGLRect&, const TGLBoundingBox&)
voidTGLManip::SetActive(Bool_t a)
voidTGLManip::SetSelectedWidget(UInt_t s)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
protected:
voidTGLManip::CalcDrawScale(const TGLBoundingBox& box, const TGLCamera& camera, Double_t& base, TGLVector3* axis) const
TGLManip&TGLManip::operator=(const TGLManip&)
private:
voidLimitScale(Double_t& factor) const

Data Members

protected:
Bool_tTGLManip::fActive! manipulator is active?
TPointTGLManip::fFirstMouse! first (start) mouse position (in WINDOW coords)
TPointTGLManip::fLastMouse! last (latest) mouse position (in WINDOW coords)
UInt_tTGLManip::fSelectedWidget! active width (axis) component
TGLPhysicalShape*TGLManip::fShape! manipulated shape
static Float_tTGLManip::fgBlue[4]
static Float_tTGLManip::fgGreen[4]
static Float_tTGLManip::fgGrey[4]
static Float_tTGLManip::fgRed[4]
static Float_tTGLManip::fgWhite[4]
static Float_tTGLManip::fgYellow[4]
private:
TGLVector3fStartScale! initial scaling factors

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGLScaleManip()
 Construct scale manipulator not bound to any physical shape.
TGLScaleManip(TGLPhysicalShape * shape)
 Construct scale manipulator bound to TGLPhysicalShape 'shape'.
~TGLScaleManip()
 Destory the scale manipulator
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.
 If selected widget (mouse over) this is drawn in active colour (yellow).
Bool_t HandleButton(const Event_t& event, const TGLCamera& camera)
 Handle mouse button event over manipulator - returns kTRUE if
 redraw required kFALSE otherwise.
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. Returns kTRUE if redraw
 required kFALSE otherwise.
void LimitScale(Double_t& factor) const
 Clamp scale to sizable values: 1000 - 1/1000
 Guards against div by zero problems.
TGLScaleManip()