ROOT  6.06/09
Reference Guide
Public Member Functions | Private Member Functions | Private Attributes | List of all members
TGLPadPainter Class Reference

"Delegating" part of TGLPadPainter.

Line/fill/etc. attributes can be set inside TPad, but not only there: many of them are set by base sub-objects of 2d primitives (2d primitives usually inherit TAttLine or TAttFill etc.). And these sub-objects call gVirtualX->SetLineWidth ... etc. So, if I save some attributes in my painter, it will be mess - at any moment I do not know, where to take line attribute - from gVirtualX or from my own member. So! All attributed, ALL go to/from gVirtualX.

Definition at line 36 of file TGLPadPainter.h.

Public Member Functions

 TGLPadPainter ()
 
Color_t GetLineColor () const
 Delegate to gVirtualX. More...
 
Style_t GetLineStyle () const
 Delegate to gVirtualX. More...
 
Width_t GetLineWidth () const
 Delegate to gVirtualX. More...
 
void SetLineColor (Color_t lcolor)
 Delegate to gVirtualX. More...
 
void SetLineStyle (Style_t lstyle)
 Delegate to gVirtualX. More...
 
void SetLineWidth (Width_t lwidth)
 Delegate to gVirtualX. More...
 
Color_t GetFillColor () const
 Delegate to gVirtualX. More...
 
Style_t GetFillStyle () const
 Delegate to gVirtualX. More...
 
Bool_t IsTransparent () const
 Delegate to gVirtualX. More...
 
void SetFillColor (Color_t fcolor)
 Delegate to gVirtualX. More...
 
void SetFillStyle (Style_t fstyle)
 Delegate to gVirtualX. More...
 
void SetOpacity (Int_t percent)
 Delegate to gVirtualX. More...
 
Short_t GetTextAlign () const
 Delegate to gVirtualX. More...
 
Float_t GetTextAngle () const
 Delegate to gVirtualX. More...
 
Color_t GetTextColor () const
 Delegate to gVirtualX. More...
 
Font_t GetTextFont () const
 Delegate to gVirtualX. More...
 
Float_t GetTextSize () const
 Delegate to gVirtualX. More...
 
Float_t GetTextMagnitude () const
 Delegate to gVirtualX. More...
 
void SetTextAlign (Short_t align)
 Delegate to gVirtualX. More...
 
void SetTextAngle (Float_t tangle)
 Delegate to gVirtualX. More...
 
void SetTextColor (Color_t tcolor)
 Delegate to gVirtualX. More...
 
void SetTextFont (Font_t tfont)
 Delegate to gVirtualX. More...
 
void SetTextSize (Float_t tsize)
 Delegate to gVirtualX. More...
 
void SetTextSizePixels (Int_t npixels)
 Delegate to gVirtualX. More...
 
Int_t CreateDrawable (UInt_t w, UInt_t h)
 Not required at the moment. More...
 
void ClearDrawable ()
 Not required at the moment. More...
 
void CopyDrawable (Int_t id, Int_t px, Int_t py)
 Not required at the moment. More...
 
void DestroyDrawable ()
 Not required at the moment. More...
 
void SelectDrawable (Int_t device)
 For gVirtualX this means select pixmap (or window) and all subsequent drawings will go into this pixmap. More...
 
void InitPainter ()
 Init gl-pad painter: More...
 
void InvalidateCS ()
 When TPad::Range for gPad is called, projection must be changed in OpenGL. More...
 
void LockPainter ()
 Locked state of painter means, that GL context can be invalid, so no GL calls can be executed. More...
 
void DrawLine (Double_t x1, Double_t y1, Double_t x2, Double_t y2)
 Draw line segment. More...
 
void DrawLineNDC (Double_t u1, Double_t v1, Double_t u2, Double_t v2)
 Draw line segment in NDC coordinates. More...
 
void DrawBox (Double_t x1, Double_t y1, Double_t x2, Double_t y2, EBoxMode mode)
 Draw filled or hollow box. More...
 
void DrawFillArea (Int_t n, const Double_t *x, const Double_t *y)
 Draw tesselated polygon (probably, outline only). More...
 
void DrawFillArea (Int_t n, const Float_t *x, const Float_t *y)
 Draw tesselated polygon (never called, probably, since TPad::PaintFillArea for floats is deprecated). More...
 
void DrawPolyLine (Int_t n, const Double_t *x, const Double_t *y)
 Draw poly-line in user coordinates. More...
 
void DrawPolyLine (Int_t n, const Float_t *x, const Float_t *y)
 Never called? More...
 
void DrawPolyLineNDC (Int_t n, const Double_t *u, const Double_t *v)
 Poly line in NDC. More...
 
void DrawPolyMarker (Int_t n, const Double_t *x, const Double_t *y)
 Poly-marker. More...
 
void DrawPolyMarker (Int_t n, const Float_t *x, const Float_t *y)
 Poly-marker. More...
 
void DrawText (Double_t x, Double_t y, const char *text, ETextMode mode)
 Draw text. More...
 
void DrawText (Double_t, Double_t, const wchar_t *, ETextMode)
 Draw text. More...
 
void DrawTextNDC (Double_t x, Double_t y, const char *text, ETextMode mode)
 Draw text in NDC. More...
 
void DrawTextNDC (Double_t, Double_t, const wchar_t *, ETextMode)
 Draw text in NDC. More...
 
void SaveImage (TVirtualPad *pad, const char *fileName, Int_t type) const
 Using TImage save frame-buffer contents as a picture. More...
 
void DrawPixels (const unsigned char *pixelData, UInt_t width, UInt_t height, Int_t dstX, Int_t dstY, Bool_t enableBlending)
 
template<class Char >
void DrawTextHelper (Double_t x, Double_t y, const Char *text, ETextMode)
 
- Public Member Functions inherited from TVirtualPadPainter
virtual ~TVirtualPadPainter ()
 

Private Member Functions

template<class Char_t >
void DrawTextHelper (Double_t x, Double_t y, const Char_t *text, ETextMode mode)
 
void SaveProjectionMatrix () const
 Save the projection matrix. More...
 
void RestoreProjectionMatrix () const
 Restore the projection matrix. More...
 
void SaveModelviewMatrix () const
 Save the modelview matrix. More...
 
void RestoreModelviewMatrix () const
 Restore the modelview matrix. More...
 
void SaveViewport ()
 Extract and save the current viewport. More...
 
void RestoreViewport ()
 Restore the saved viewport. More...
 
void DrawPolyMarker ()
 Poly-marker. More...
 
void DrawPolygonWithGradient (Int_t n, const Double_t *x, const Double_t *y)
 At the moment I assume both linear and radial gradients will work the same way - using a stencil buffer and some big rectangle(s) to fill with a gradient. More...
 
void DrawGradient (const TLinearGradient *gradient, Int_t n, const Double_t *x, const Double_t *y)
 
void DrawGradient (const TRadialGradient *gradient, Int_t n, const Double_t *x, const Double_t *y)
 
void DrawTesselation (Int_t n, const Double_t *x, const Double_t *y)
 
 TGLPadPainter (const TGLPadPainter &rhs)
 
TGLPadPainteroperator= (const TGLPadPainter &rhs)
 

Private Attributes

Rgl::Pad::PolygonStippleSet fSSet
 
Rgl::Pad::Tesselator fTess
 
Rgl::Pad::MarkerPainter fMarker
 
Rgl::Pad::GLLimits fLimits
 
std::vector< Double_tfVs
 
TGLFontManager fFM
 
TGLFont fF
 
Int_t fVp [4]
 
std::vector< TPointfPoly
 
Bool_t fIsHollowArea
 
Bool_t fLocked
 

Additional Inherited Members

- Public Types inherited from TVirtualPadPainter
enum  EBoxMode { kHollow, kFilled }
 
enum  ETextMode { kClear, kOpaque }
 
- Static Public Member Functions inherited from TVirtualPadPainter
static TVirtualPadPainterPadPainter (Option_t *opt="")
 Create a pad painter of specified type. More...
 

#include <TGLPadPainter.h>

+ Inheritance diagram for TGLPadPainter:
+ Collaboration diagram for TGLPadPainter:

Constructor & Destructor Documentation

TGLPadPainter::TGLPadPainter ( )
TGLPadPainter::TGLPadPainter ( const TGLPadPainter rhs)
private

Member Function Documentation

void TGLPadPainter::ClearDrawable ( )
virtual

Not required at the moment.

Implements TVirtualPadPainter.

Definition at line 276 of file TGLPadPainter.cxx.

void TGLPadPainter::CopyDrawable ( Int_t  id,
Int_t  px,
Int_t  py 
)
virtual

Not required at the moment.

Implements TVirtualPadPainter.

Definition at line 283 of file TGLPadPainter.cxx.

Int_t TGLPadPainter::CreateDrawable ( UInt_t  w,
UInt_t  h 
)
virtual

Not required at the moment.

Implements TVirtualPadPainter.

Definition at line 268 of file TGLPadPainter.cxx.

void TGLPadPainter::DestroyDrawable ( )
virtual

Not required at the moment.

Implements TVirtualPadPainter.

Definition at line 290 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawBox ( Double_t  x1,
Double_t  y1,
Double_t  x2,
Double_t  y2,
EBoxMode  mode 
)
virtual

Draw filled or hollow box.

Implements TVirtualPadPainter.

Definition at line 468 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawFillArea ( Int_t  n,
const Double_t x,
const Double_t y 
)
virtual

Draw tesselated polygon (probably, outline only).

Implements TVirtualPadPainter.

Definition at line 495 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawFillArea ( Int_t  n,
const Float_t x,
const Float_t y 
)
virtual

Draw tesselated polygon (never called, probably, since TPad::PaintFillArea for floats is deprecated).

Implements TVirtualPadPainter.

Definition at line 525 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawGradient ( const TLinearGradient gradient,
Int_t  n,
const Double_t x,
const Double_t y 
)
private

Definition at line 1279 of file TGLPadPainter.cxx.

Referenced by DrawPolygonWithGradient().

void TGLPadPainter::DrawGradient ( const TRadialGradient gradient,
Int_t  n,
const Double_t x,
const Double_t y 
)
private

Definition at line 1100 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawLine ( Double_t  x1,
Double_t  y1,
Double_t  x2,
Double_t  y2 
)
virtual

Draw line segment.

Implements TVirtualPadPainter.

Definition at line 407 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawLineNDC ( Double_t  u1,
Double_t  v1,
Double_t  u2,
Double_t  v2 
)
virtual

Draw line segment in NDC coordinates.

Implements TVirtualPadPainter.

Definition at line 451 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawPixels ( const unsigned char *  pixelData,
UInt_t  width,
UInt_t  height,
Int_t  dstX,
Int_t  dstY,
Bool_t  enableBlending 
)
virtual

Implements TVirtualPadPainter.

Definition at line 968 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawPolygonWithGradient ( Int_t  n,
const Double_t x,
const Double_t y 
)
private

At the moment I assume both linear and radial gradients will work the same way - using a stencil buffer and some big rectangle(s) to fill with a gradient.

Thus I have a 'common' part - the part responsible for a stencil test.

Definition at line 1046 of file TGLPadPainter.cxx.

Referenced by DrawBox(), and DrawFillArea().

void TGLPadPainter::DrawPolyLine ( Int_t  n,
const Double_t x,
const Double_t y 
)
virtual

Draw poly-line in user coordinates.

Implements TVirtualPadPainter.

Definition at line 557 of file TGLPadPainter.cxx.

Referenced by DrawFillArea().

void TGLPadPainter::DrawPolyLine ( Int_t  n,
const Float_t x,
const Float_t y 
)
virtual

Never called?

Implements TVirtualPadPainter.

Definition at line 594 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawPolyLineNDC ( Int_t  n,
const Double_t u,
const Double_t v 
)
virtual

Poly line in NDC.

Implements TVirtualPadPainter.

Definition at line 616 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawPolyMarker ( Int_t  n,
const Double_t x,
const Double_t y 
)
virtual

Poly-marker.

Implements TVirtualPadPainter.

Definition at line 644 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawPolyMarker ( Int_t  n,
const Float_t x,
const Float_t y 
)
virtual

Poly-marker.

Implements TVirtualPadPainter.

Definition at line 655 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawPolyMarker ( )
private

Poly-marker.

Definition at line 666 of file TGLPadPainter.cxx.

Referenced by DrawPolyMarker().

void TGLPadPainter::DrawTesselation ( Int_t  n,
const Double_t x,
const Double_t y 
)
private

Definition at line 1400 of file TGLPadPainter.cxx.

Referenced by DrawFillArea(), and DrawPolygonWithGradient().

void TGLPadPainter::DrawText ( Double_t  x,
Double_t  y,
const char *  text,
ETextMode  mode 
)
virtual

Draw text.

This operation is especially dangerous if in locked state - ftgl will assert on zero texture size (which is result of bad GL context).

Implements TVirtualPadPainter.

Definition at line 798 of file TGLPadPainter.cxx.

Referenced by DrawTextNDC().

void TGLPadPainter::DrawText ( Double_t  x,
Double_t  y,
const wchar_t *  text,
ETextMode  mode 
)
virtual

Draw text.

This operation is especially dangerous if in locked state - ftgl will assert on zero texture size (which is result of bad GL context).

Implements TVirtualPadPainter.

Definition at line 814 of file TGLPadPainter.cxx.

template<class Char_t >
void TGLPadPainter::DrawTextHelper ( Double_t  x,
Double_t  y,
const Char_t text,
ETextMode  mode 
)
private

Referenced by DrawText().

template<class Char >
void TGLPadPainter::DrawTextHelper ( Double_t  x,
Double_t  y,
const Char *  text,
ETextMode   
)

Definition at line 753 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawTextNDC ( Double_t  u,
Double_t  v,
const char *  text,
ETextMode  mode 
)
virtual

Draw text in NDC.

This operation is especially dangerous if in locked state - ftgl will assert on zero texture size (which is result of bad GL context).

Implements TVirtualPadPainter.

Definition at line 830 of file TGLPadPainter.cxx.

void TGLPadPainter::DrawTextNDC ( Double_t  u,
Double_t  v,
const wchar_t *  text,
ETextMode  mode 
)
virtual

Draw text in NDC.

This operation is especially dangerous if in locked state - ftgl will assert on zero texture size (which is result of bad GL context).

Implements TVirtualPadPainter.

Definition at line 845 of file TGLPadPainter.cxx.

Color_t TGLPadPainter::GetFillColor ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 119 of file TGLPadPainter.cxx.

Style_t TGLPadPainter::GetFillStyle ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 127 of file TGLPadPainter.cxx.

Color_t TGLPadPainter::GetLineColor ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 71 of file TGLPadPainter.cxx.

Style_t TGLPadPainter::GetLineStyle ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 79 of file TGLPadPainter.cxx.

Width_t TGLPadPainter::GetLineWidth ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 87 of file TGLPadPainter.cxx.

Short_t TGLPadPainter::GetTextAlign ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 168 of file TGLPadPainter.cxx.

Float_t TGLPadPainter::GetTextAngle ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 176 of file TGLPadPainter.cxx.

Referenced by DrawTextHelper().

Color_t TGLPadPainter::GetTextColor ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 184 of file TGLPadPainter.cxx.

Font_t TGLPadPainter::GetTextFont ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 192 of file TGLPadPainter.cxx.

Float_t TGLPadPainter::GetTextMagnitude ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 208 of file TGLPadPainter.cxx.

Referenced by DrawTextHelper().

Float_t TGLPadPainter::GetTextSize ( ) const
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 200 of file TGLPadPainter.cxx.

void TGLPadPainter::InitPainter ( )
virtual

Init gl-pad painter:

  1. 2D painter does not use depth test, should not modify depth-buffer content (except initial cleanup).
  2. Disable cull face.
  3. Disable lighting.
  4. Set viewport (to the whole canvas area).
  5. Set camera.
  6. Unlock painter.

Reimplemented from TVirtualPadPainter.

Definition at line 343 of file TGLPadPainter.cxx.

void TGLPadPainter::InvalidateCS ( )
virtual

When TPad::Range for gPad is called, projection must be changed in OpenGL.

Reimplemented from TVirtualPadPainter.

Definition at line 373 of file TGLPadPainter.cxx.

Bool_t TGLPadPainter::IsTransparent ( ) const
virtual

Delegate to gVirtualX.

IsTransparent is implemented as inline function in TAttFill.

Implements TVirtualPadPainter.

Definition at line 136 of file TGLPadPainter.cxx.

void TGLPadPainter::LockPainter ( )
virtual

Locked state of painter means, that GL context can be invalid, so no GL calls can be executed.

Reimplemented from TVirtualPadPainter.

Definition at line 390 of file TGLPadPainter.cxx.

TGLPadPainter& TGLPadPainter::operator= ( const TGLPadPainter rhs)
private
void TGLPadPainter::RestoreModelviewMatrix ( ) const
private

Restore the modelview matrix.

Attention! GL_MODELVIEW will become the current matrix after this call!

Definition at line 892 of file TGLPadPainter.cxx.

Referenced by DrawGradient().

void TGLPadPainter::RestoreProjectionMatrix ( ) const
private

Restore the projection matrix.

Attention! GL_PROJECTION will become the current matrix after this call!

Definition at line 870 of file TGLPadPainter.cxx.

Referenced by DrawGradient(), DrawPolyMarker(), and DrawTextHelper().

void TGLPadPainter::RestoreViewport ( )
private

Restore the saved viewport.

Definition at line 909 of file TGLPadPainter.cxx.

void TGLPadPainter::SaveImage ( TVirtualPad pad,
const char *  fileName,
Int_t  type 
) const
virtual

Using TImage save frame-buffer contents as a picture.

Implements TVirtualPadPainter.

Definition at line 917 of file TGLPadPainter.cxx.

void TGLPadPainter::SaveModelviewMatrix ( ) const
private

Save the modelview matrix.

Attention! GL_MODELVIEW will become the current matrix after this call!

Definition at line 881 of file TGLPadPainter.cxx.

Referenced by DrawGradient().

void TGLPadPainter::SaveProjectionMatrix ( ) const
private

Save the projection matrix.

Attention! GL_PROJECTION will become the current matrix after this call!

Definition at line 859 of file TGLPadPainter.cxx.

Referenced by DrawGradient(), DrawPolyMarker(), and DrawTextHelper().

void TGLPadPainter::SaveViewport ( )
private

Extract and save the current viewport.

Definition at line 901 of file TGLPadPainter.cxx.

void TGLPadPainter::SelectDrawable ( Int_t  device)
virtual

For gVirtualX this means select pixmap (or window) and all subsequent drawings will go into this pixmap.

For OpenGL this means the change of coordinate system and viewport.

Implements TVirtualPadPainter.

Definition at line 300 of file TGLPadPainter.cxx.

void TGLPadPainter::SetFillColor ( Color_t  fcolor)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 144 of file TGLPadPainter.cxx.

void TGLPadPainter::SetFillStyle ( Style_t  fstyle)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 152 of file TGLPadPainter.cxx.

void TGLPadPainter::SetLineColor ( Color_t  lcolor)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 95 of file TGLPadPainter.cxx.

void TGLPadPainter::SetLineStyle ( Style_t  lstyle)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 103 of file TGLPadPainter.cxx.

void TGLPadPainter::SetLineWidth ( Width_t  lwidth)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 111 of file TGLPadPainter.cxx.

void TGLPadPainter::SetOpacity ( Int_t  percent)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 160 of file TGLPadPainter.cxx.

void TGLPadPainter::SetTextAlign ( Short_t  align)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 216 of file TGLPadPainter.cxx.

void TGLPadPainter::SetTextAngle ( Float_t  tangle)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 224 of file TGLPadPainter.cxx.

void TGLPadPainter::SetTextColor ( Color_t  tcolor)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 232 of file TGLPadPainter.cxx.

void TGLPadPainter::SetTextFont ( Font_t  tfont)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 240 of file TGLPadPainter.cxx.

void TGLPadPainter::SetTextSize ( Float_t  tsize)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 248 of file TGLPadPainter.cxx.

void TGLPadPainter::SetTextSizePixels ( Int_t  npixels)
virtual

Delegate to gVirtualX.

Implements TVirtualPadPainter.

Definition at line 256 of file TGLPadPainter.cxx.

Member Data Documentation

TGLFont TGLPadPainter::fF
private

Definition at line 46 of file TGLPadPainter.h.

Referenced by DrawTextHelper().

TGLFontManager TGLPadPainter::fFM
private

Definition at line 45 of file TGLPadPainter.h.

Referenced by DrawTextHelper().

Bool_t TGLPadPainter::fIsHollowArea
private

Definition at line 51 of file TGLPadPainter.h.

Referenced by DrawFillArea(), and DrawPolyLine().

Rgl::Pad::GLLimits TGLPadPainter::fLimits
private

Definition at line 41 of file TGLPadPainter.h.

Referenced by DrawBox(), DrawLine(), DrawLineNDC(), DrawPolyLine(), and DrawPolyLineNDC().

Bool_t TGLPadPainter::fLocked
private
Rgl::Pad::MarkerPainter TGLPadPainter::fMarker
private

Definition at line 40 of file TGLPadPainter.h.

Referenced by DrawPolyMarker().

std::vector<TPoint> TGLPadPainter::fPoly
private

Definition at line 50 of file TGLPadPainter.h.

Referenced by DrawPolyMarker().

Rgl::Pad::PolygonStippleSet TGLPadPainter::fSSet
private

Definition at line 38 of file TGLPadPainter.h.

Referenced by DrawBox(), and DrawFillArea().

Rgl::Pad::Tesselator TGLPadPainter::fTess
private

Definition at line 39 of file TGLPadPainter.h.

Referenced by DrawFillArea(), and DrawTesselation().

Int_t TGLPadPainter::fVp[4]
private

Definition at line 48 of file TGLPadPainter.h.

Referenced by RestoreViewport(), and SaveViewport().

std::vector<Double_t> TGLPadPainter::fVs
private

Definition at line 43 of file TGLPadPainter.h.

Referenced by DrawFillArea(), and DrawTesselation().


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