library: libRGL #include "TGLPhysicalShape.h"

# TGLPhysicalShape

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

## class TGLPhysicalShape : public TGLDrawable

| Inheritance Chart:
`TGLDrawable`
| <- | `TGLPhysicalShape` |

        protected:

          virtual void DirectDraw(UInt_t LOD) const

        public:

                                 TGLPhysicalShape(ULong_t ID, const TGLLogicalShape& logicalShape, const TGLMatrix& transform, Bool_t invertedWind, const Float_t* rgba)
                                 TGLPhysicalShape(ULong_t ID, const TGLLogicalShape& logicalShape, const double* transform, Bool_t invertedWind, const Float_t* rgba)
                         virtual ~TGLPhysicalShape()
                  static TClass* Class()
                    virtual void Draw(UInt_t LOD) const
                    virtual void DrawOutline(UInt_t lod) const
                    virtual void DrawWireFrame(UInt_t lod) const
                  const Float_t* GetColor() const
          const TGLLogicalShape& GetLogical() const
                      TGLVector3 GetScale() const
                      TGLVertex3 GetTranslation() const
                            void InvokeContextMenu(TContextMenu& menu, UInt_t x, UInt_t y) const
                 virtual TClass* IsA() const
                          Bool_t IsModified() const
                          Bool_t IsSelected() const
                          Bool_t IsTransparent() const
                            void Select(Bool_t select)
                            void SetColor(const Float_t* rgba)
                            void SetScale(const TGLVector3& scale)
                            void SetTranslation(const TGLVertex3& trans)
                            void Shift(const TGLVector3& shift)
                    virtual void ShowMembers(TMemberInspector& insp, char* parent)
                    virtual void Streamer(TBuffer& b)
                            void StreamerNVirtual(TBuffer& b)
                            void UpdateBoundingBox()

### Data Members

        private:

          const TGLLogicalShape& fLogicalShape  ! the associate logical shape
                       TGLMatrix fTransform     ! transform (placement) of physical instance
                         Float_t fColor[17]     ! GL color array
                          Bool_t fSelected      ! selected state
                          Bool_t fInvertedWind  ! face winding TODO: can get directly from fTransform?
                          Bool_t fModified      ! has been modified - retain across scene rebuilds

## Class Description

TGLPhysicalShape(ULong_t ID, const TGLLogicalShape & logicalShape, const TGLMatrix & transform, Bool_t invertedWind, const Float_t rgba[4]) : TGLDrawable(ID, kFALSE), // Physical shapes not DL cached by default fLogicalShape(logicalShape), fTransform(transform), fSelected(kFALSE), fInvertedWind(invertedWind), fModified(kFALSE)

TGLPhysicalShape(ULong_t ID, const TGLLogicalShape & logicalShape, const Double_t * transform, Bool_t invertedWind, const Float_t rgba[4]) : TGLDrawable(ID, kFALSE), // Physical shapes not DL cached by default fLogicalShape(logicalShape), fTransform(transform), fSelected(kFALSE), fInvertedWind(invertedWind), fModified(kFALSE)

~TGLPhysicalShape()

void UpdateBoundingBox()

void SetColor(const Float_t rgba[4])

     TODO: Make a color class

void Draw(UInt_t LOD) const

     Debug tracing

void DirectDraw(UInt_t LOD) const

     Debug tracing

void DrawWireFrame(UInt_t lod) const

void DrawOutline(UInt_t LOD) const

     Debug tracing

void InvokeContextMenu(TContextMenu & menu, UInt_t x, UInt_t y) const

     Just defer to our logical at present

### Inline Functions

            const TGLLogicalShape& GetLogical() const
                            Bool_t IsModified() const
                            Bool_t IsSelected() const
                              void Select(Bool_t select)
                    const Float_t* GetColor() const
                            Bool_t IsTransparent() const
                        TGLVertex3 GetTranslation() const
                              void SetTranslation(const TGLVertex3& trans)
                              void Shift(const TGLVector3& shift)
                        TGLVector3 GetScale() const
                              void SetScale(const TGLVector3& scale)
                           TClass* Class()
                           TClass* IsA() const
                              void ShowMembers(TMemberInspector& insp, char* parent)
                              void Streamer(TBuffer& b)
                              void StreamerNVirtual(TBuffer& b)

Author: Richard Maunder 25/05/2005
Last update: root/gl:$Name: $:$Id: TGLPhysicalShape.cxx,v 1.9 2005/06/23 15:08:45 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *