library: libRGL
#include "TGLRotateManip.h"

TGLRotateManip


class description - source file - inheritance tree (.pdf)

class TGLRotateManip : public TGLManip

Inheritance Chart:
TGLManip
<-
TGLRotateManip
    private:
Double_t CalculateAngleDelta(const TPoint& mouse, const TGLCamera& camera) TGLLine3 CalculateRingLine(const TPoint& mouse, const TGLCamera& camera) const void DrawAxisRing(const TGLVertex3& origin, const TGLVector3& axis, Double_t radius, Float_t* rgba) const public:
TGLRotateManip(TGLViewer& viewer) TGLRotateManip(TGLViewer& viewer, TGLPhysicalShape* shape) virtual ~TGLRotateManip() static TClass* Class() virtual void Draw(const TGLCamera& camera) const virtual Bool_t HandleButton(const Event_t* event, const TGLCamera& camera) virtual Bool_t HandleMotion(const Event_t* event, const TGLCamera& camera) virtual TClass* IsA() const virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members

    private:
Bool_t fShallowRing Bool_t fShallowFront TGLPlane fActiveRingPlane TGLVertex3 fActiveRingCenter TGLLine3 fRingLine TGLLine3 fRingLineOld

Class Description

                                                                      
 TGLRotateManip                                                       
                                                                      
 Rotate manipulator - attaches to physical shape and draws local axes 
 widgets - rings drawn from attached physical center, in plane defined
 by axis. User can mouse over (turns yellow) and L click/drag to      
 rotate attached physical round the ring center.                      
 Widgets use standard 3D package axes colours: X red, Y green, Z blue.


TGLRotateManip(TGLViewer & viewer) : TGLManip(viewer), fShallowRing(kFALSE), fShallowFront(kTRUE), fActiveRingPlane(TGLVector3(1.0, 0.0, 0.0), TGLVertex3(0.0, 0.0, 0.0)), fActiveRingCenter(TGLVertex3(0.0, 0.0, 0.0)), fRingLine(TGLVertex3(0.0, 0.0, 0.0), TGLVertex3(0.0, 0.0, 0.0)), fRingLineOld(TGLVertex3(0.0, 0.0, 0.0), TGLVertex3(0.0, 0.0, 0.0))
 Construct rotation manipulator, attached to supplied TGLViewer
 'viewer', not bound to any physical shape.

TGLRotateManip(TGLViewer & viewer, TGLPhysicalShape * shape) : TGLManip(viewer, shape), fShallowRing(kFALSE), fShallowFront(kTRUE), fActiveRingPlane(TGLVector3(1.0, 0.0, 0.0), TGLVertex3(0.0, 0.0, 0.0)), fActiveRingCenter(TGLVertex3(0.0, 0.0, 0.0)), fRingLine(TGLVertex3(0.0, 0.0, 0.0), TGLVertex3(0.0, 0.0, 0.0)), fRingLineOld(TGLVertex3(0.0, 0.0, 0.0), TGLVertex3(0.0, 0.0, 0.0))
 Construct rotation manipulator, attached to supplied TGLViewer
 'viewer', bound to TGLPhysicalShape 'shape'.

~TGLRotateManip()
 Destory the rotation manipulator

void Draw(const TGLCamera & camera) const
 Draw rotate manipulator - axis rings drawn from attached physical center,
 in plane defined by axis as normal, 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) rotate
 physical around selected ring widget plane normal. Returns kTRUE if redraw
 required kFALSE otherwise.

Double_t CalculateAngleDelta(const TPoint & mouse, const TGLCamera & camera)
 Calculate angle delta for rotation based on new mouse position

TGLLine3 CalculateRingLine(const TPoint & mouse, const TGLCamera & camera) const
 Calculated interaction line between 'mouse' viewport point, and current selected
 widget (ring), under supplied 'camera' projection.
 Find mouse position in viewport coords



Inline Functions


               void DrawAxisRing(const TGLVertex3& origin, const TGLVector3& axis, Double_t radius, Float_t* rgba) const
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)


Author: Richard Maunder 04/10/2005
Last update: root/gl:$Name: $:$Id: TGLRotateManip.cxx
Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.