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. | |
TGLScaleManip (TGLPhysicalShape *shape) | |
Construct scale manipulator bound to TGLPhysicalShape 'shape'. | |
~TGLScaleManip () override | |
Destroy the scale manipulator. | |
void | Draw (const TGLCamera &camera) const override |
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. | |
Bool_t | HandleButton (const Event_t &event, const TGLCamera &camera) override |
Handle mouse button event over manipulator - returns kTRUE if redraw required kFALSE otherwise. | |
Bool_t | HandleMotion (const Event_t &event, const TGLCamera &camera) override |
Handle mouse motion over manipulator - if active (selected widget) scale physical along selected widget (axis) of the manipulator, so it tracks mouse action. | |
TClass * | IsA () const override |
void | Streamer (TBuffer &) override |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TGLManip | |
TGLManip () | |
Construct a manipulator object, bound to supplied viewer, and no physical shape. | |
TGLManip (TGLPhysicalShape *shape) | |
Construct a manipulator object, bound to supplied physical shape. | |
~TGLManip () override | |
Destroy manipulator object. | |
void | Attach (TGLPhysicalShape *shape) |
Bool_t | GetActive () const |
TGLPhysicalShape * | GetAttached () const |
UInt_t | GetSelectedWidget () const |
Bool_t | Select (const TGLCamera &, const TGLRect &, const TGLBoundingBox &) override |
void | SetActive (Bool_t a) |
void | SetSelectedWidget (UInt_t s) |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TVirtualGLManip | |
virtual | ~TVirtualGLManip () |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TGLManip | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TVirtualGLManip | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Private Member Functions | |
void | LimitScale (Double_t &factor) const |
initial scaling factors | |
Private Attributes | |
TGLVector3 | fStartScale |
Additional Inherited Members | |
Protected Member Functions inherited from TGLManip | |
TGLManip (const TGLManip &) | |
last (latest) mouse position (in WINDOW coords) | |
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. | |
const UChar_t * | ColorFor (UInt_t widget) const |
Returns color to be used for given widget. | |
TGLManip & | operator= (const TGLManip &) |
Assignment operator. | |
Protected Attributes inherited from TGLManip | |
Bool_t | fActive |
active width (axis) component | |
TPoint | fFirstMouse |
manipulator is active? | |
TPoint | fLastMouse |
first (start) mouse position (in WINDOW coords) | |
UInt_t | fSelectedWidget |
manipulated shape | |
TGLPhysicalShape * | fShape |
#include <TGLScaleManip.h>
TGLScaleManip::TGLScaleManip | ( | ) |
Construct scale manipulator not bound to any physical shape.
Definition at line 29 of file TGLScaleManip.cxx.
TGLScaleManip::TGLScaleManip | ( | TGLPhysicalShape * | shape | ) |
Construct scale manipulator bound to TGLPhysicalShape 'shape'.
Definition at line 36 of file TGLScaleManip.cxx.
|
override |
Destroy the scale manipulator.
Definition at line 44 of file TGLScaleManip.cxx.
|
static |
|
inlinestaticconstexpr |
Definition at line 44 of file TGLScaleManip.h.
|
inlinestatic |
Definition at line 44 of file TGLScaleManip.h.
|
overridevirtual |
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.
|
overridevirtual |
Handle mouse button event over manipulator - returns kTRUE if redraw required kFALSE otherwise.
Reimplemented from TGLManip.
Definition at line 113 of file TGLScaleManip.cxx.
|
overridevirtual |
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.
|
inlineoverridevirtual |
Reimplemented from TGLManip.
Definition at line 44 of file TGLScaleManip.h.
|
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.
|
inline |
Definition at line 44 of file TGLScaleManip.h.
|
private |
Definition at line 31 of file TGLScaleManip.h.