1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
17 // $MpId: AliMpRowSegmentPainter.cxx,v 1.7 2006/03/17 11:35:29 ivana Exp $
20 // Class AliMpRowSegmentPainter
21 // ----------------------------
22 // Class for drawing a motif into canvas
23 // Included in AliRoot: 2003/05/02
24 // Authors: David Guez, IPN Orsay
26 #include "AliMpRowSegmentPainter.h"
27 #include "AliMpGraphContext.h"
28 #include "AliMpVRowSegment.h"
30 #include "AliMpMotifMap.h"
31 #include "AliMpMotifPosition.h"
33 #include <TVirtualX.h>
36 ClassImp(AliMpRowSegmentPainter)
38 //_______________________________________________________________________
39 AliMpRowSegmentPainter::AliMpRowSegmentPainter()
43 /// Default constructor
46 //_______________________________________________________________________
47 AliMpRowSegmentPainter::AliMpRowSegmentPainter(AliMpVRowSegment *row)
51 /// Standard constructor
55 //_____________________________________________________________________________
56 AliMpRowSegmentPainter::AliMpRowSegmentPainter(
57 const AliMpRowSegmentPainter& right)
58 : AliMpVPainter(right)
60 /// Protected copy constructor (not provided)
62 Fatal("AliMpRowSegmentPainter", "Copy constructor not provided.");
65 //_______________________________________________________________________
66 AliMpRowSegmentPainter::~AliMpRowSegmentPainter()
71 //_____________________________________________________________________________
72 AliMpRowSegmentPainter&
73 AliMpRowSegmentPainter::operator=(const AliMpRowSegmentPainter& right)
75 /// Assignment operator (not provided)
77 // check assignment to self
78 if (this == &right) return *this;
80 Fatal("operator =", "Assignment operator not provided.");
85 //_______________________________________________________________________
86 TVector2 AliMpRowSegmentPainter::GetPosition() const
88 /// Get the owned object's position
90 return fRowSegment->Position();
93 //_______________________________________________________________________
94 TVector2 AliMpRowSegmentPainter::GetDimensions() const
96 /// Get the owned object's dimensions
98 return fRowSegment->Dimensions();
101 //_______________________________________________________________________
102 void AliMpRowSegmentPainter::DumpObject()
104 /// Draw the owned object
109 //_______________________________________________________________________
110 void AliMpRowSegmentPainter::Draw(Option_t *option)
112 /// Draw the sector on the current pad
113 /// The first letter of <option> is treated as follows:
114 /// - case "S" : each row segments are drawn separately
115 /// - case "" : the whole row is drawn at once
116 /// in both cases, the rest of the option is passed
117 /// as argument to the Draw function of respectively
118 /// zone or row objects.
120 AliMpGraphContext *gr = AliMpGraphContext::Instance();
121 if( !fRowSegment) return;
129 for (Int_t iMotif=0;iMotif<fRowSegment->GetNofMotifs();++iMotif){
132 Int_t motifPositionId = fRowSegment->GetMotifPositionId(iMotif);
133 AliMpMotifPosition *motifPos =
134 fRowSegment->GetRow()->GetMotifMap()
135 ->FindMotifPosition(motifPositionId);
137 gr->SetPadPosForReal(motifPos->Position(),motifPos->Dimensions());
138 gr->SetColor(GetColor());
139 DrawObject(motifPos,option+1);
145 default: AppendPad(option);
151 //_______________________________________________________________________
152 void AliMpRowSegmentPainter::Paint(Option_t* /*option*/)
156 AliMpGraphContext *gr = AliMpGraphContext::Instance();
157 if (!fRowSegment) return;
158 Int_t col=gVirtualX->GetFillColor();
160 gPad->Range(0.,0.,1.,1.);
162 PaintWholeBox(kTRUE);
164 // Float_t textSize = gVirtualX->GetTextSize();
165 // if (option[0]=='T')
166 // gPad->PaintText(GetPadPosition().X()-0.01,GetPadPosition().Y()-0.01,
167 // Form("%d",fRowSegment->GetMotif()->GetID()));
168 // gVirtualX->SetTextSize(textSize);
170 gVirtualX->SetFillColor(col);