CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Private Member Functions | Friends
FWGeoTopNode Class Reference

#include <Fireworks/Core/interface/FWGeoTopNode.h>

Inheritance diagram for FWGeoTopNode:
FWEveDetectorGeo FWEveOverlap

Public Types

enum  MenuOptions {
  kSetTopNode, kSetTopNodeCam, kVisSelfOff, kVisChldOn,
  kVisChldOff, kCamera, kPrintMaterial, kPrintPath,
  kPrintShape, kPrintOverlap, kOverlapVisibilityMotherOn, kOverlapVisibilityMotherOff
}
 

Public Member Functions

virtual FWGeometryTableViewBasebrowser ()
 
void clearSelection ()
 
 FWGeoTopNode (const char *n="FWGeoTopNode", const char *t="FWGeoTopNode")
 
int getFirstSelectedTableIndex ()
 
virtual void Paint (Option_t *option="")
 
virtual void popupMenu (int x, int y, TGLViewer *)
 
void printSelected ()
 
bool selectPhysicalFromTable (int)
 
virtual
FWGeometryTableManagerBase
tableManager ()
 
virtual void UnHighlighted ()
 
virtual void UnSelected ()
 
virtual ~FWGeoTopNode ()
 

Public Attributes

std::set< TGLPhysicalShape * > fHted
 
std::set< TGLPhysicalShape * > fSted
 
FWGeoTopNodeGLScenem_scene
 

Static Public Attributes

static TGLVector3 s_pickedCamera3DCenter
 
static TGLViewer * s_pickedViewer = 0
 

Protected Member Functions

void ClearSet (std::set< TGLPhysicalShape * > &sset)
 
virtual void ComputeBBox ()
 
void EraseFromSet (std::set< TGLPhysicalShape * > &sset, TGLPhysicalShape *id)
 
void paintShape (Int_t idx, const TGeoHMatrix &nm, bool volumeColor, bool parentNode)
 
void ProcessSelection (TGLSelectRecord &rec, std::set< TGLPhysicalShape * > &sset, TGLPhysicalShape *id)
 
FWPopupMenusetPopupMenu (int iX, int iY, TGLViewer *v, bool)
 
void SetStateOf (TGLPhysicalShape *id)
 
void setupBuffMtx (TBuffer3D &buff, const TGeoHMatrix &mat)
 

Static Protected Member Functions

static UInt_t phyID (int tableIdx)
 
static int tableIdx (TGLPhysicalShape *ps)
 

Private Member Functions

 ClassDef (FWGeoTopNode, 0)
 
 FWGeoTopNode (const FWGeoTopNode &)
 
const FWGeoTopNodeoperator= (const FWGeoTopNode &)
 
UChar_t wrapTransparency (FWGeometryTableManagerBase::NodeInfo &data, bool leafNode)
 

Friends

class FWGeoTopNodeGL
 

Detailed Description

Description: [one line class summary]

Usage: <usage>

Definition at line 41 of file FWGeoTopNode.h.

Member Enumeration Documentation

Enumerator
kSetTopNode 
kSetTopNodeCam 
kVisSelfOff 
kVisChldOn 
kVisChldOff 
kCamera 
kPrintMaterial 
kPrintPath 
kPrintShape 
kPrintOverlap 
kOverlapVisibilityMotherOn 
kOverlapVisibilityMotherOff 

Definition at line 47 of file FWGeoTopNode.h.

Constructor & Destructor Documentation

FWGeoTopNode::FWGeoTopNode ( const char *  n = "FWGeoTopNode",
const char *  t = "FWGeoTopNode" 
)
inline

Definition at line 62 of file FWGeoTopNode.h.

62 {}
virtual FWGeoTopNode::~FWGeoTopNode ( )
inlinevirtual

Definition at line 63 of file FWGeoTopNode.h.

63 {}
FWGeoTopNode::FWGeoTopNode ( const FWGeoTopNode )
private

Member Function Documentation

virtual FWGeometryTableViewBase* FWGeoTopNode::browser ( )
inlinevirtual

Reimplemented in FWEveDetectorGeo, and FWEveOverlap.

Definition at line 69 of file FWGeoTopNode.h.

Referenced by wrapTransparency().

69 { return 0; }
FWGeoTopNode::ClassDef ( FWGeoTopNode  ,
 
)
private
void FWGeoTopNode::clearSelection ( )
inline

Definition at line 76 of file FWGeoTopNode.h.

References fHted, and fSted.

Referenced by FWGeometryTableView::setPath(), and FWGeometryTableViewBase::setPath().

76 {fHted.clear(); fSted.clear();}
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
std::set< TGLPhysicalShape * > fHted
Definition: FWGeoTopNode.h:71
void FWGeoTopNode::ClearSet ( std::set< TGLPhysicalShape * > &  sset)
protected

Definition at line 71 of file FWGeoTopNode.cc.

References SetStateOf().

Referenced by ProcessSelection(), UnHighlighted(), and UnSelected().

72 {
73  while (!sset.empty())
74  {
75  TGLPhysicalShape *id = *sset.begin();
76  sset.erase(id);
77  SetStateOf(id);
78  }
79 }
void SetStateOf(TGLPhysicalShape *id)
Definition: FWGeoTopNode.cc:81
void FWGeoTopNode::ComputeBBox ( )
protectedvirtual

Definition at line 223 of file FWGeoTopNode.cc.

References f.

224 {
225  // Fill bounding-box information. Virtual from TAttBBox.
226 
227  BBoxZero(1.0f);
228 }
double f[11][100]
void FWGeoTopNode::EraseFromSet ( std::set< TGLPhysicalShape * > &  sset,
TGLPhysicalShape *  id 
)
protected

Definition at line 64 of file FWGeoTopNode.cc.

References SetStateOf().

Referenced by ProcessSelection().

65 {
66  sset.erase(id);
67  SetStateOf(id);
68 }
void SetStateOf(TGLPhysicalShape *id)
Definition: FWGeoTopNode.cc:81
int FWGeoTopNode::getFirstSelectedTableIndex ( )

Definition at line 207 of file FWGeoTopNode.cc.

References fSted, i, FWGeometryTableManagerBase::kSelected, FWGeometryTableManagerBase::refEntries(), and tableManager().

Referenced by FWOverlapTableView::chosenItem(), FWGeometryTableViewBase::chosenItem(), and setPopupMenu().

208 {
209  // Note: if object would be rendered, this would return fSted.begin().
210 
211  if (fSted.size() <= 1)
212  {
213  int cnt = 0;
214  for (FWGeometryTableManagerBase::Entries_i i = tableManager()->refEntries().begin(); i != tableManager()->refEntries().end(); ++i, ++cnt)
215  {
216  if (i->testBit(FWGeometryTableManagerBase::kSelected)) return cnt;
217  }
218  }
219  return -1;
220 }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
int i
Definition: DBlmapReader.cc:9
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
const FWGeoTopNode& FWGeoTopNode::operator= ( const FWGeoTopNode )
private
void FWGeoTopNode::Paint ( Option_t *  option = "")
virtual

Reimplemented in FWEveDetectorGeo, and FWEveOverlap.

Definition at line 329 of file FWGeoTopNode.cc.

References WDecay::kNone.

Referenced by FWEveDetectorGeo::Paint(), and FWEveOverlap::Paint().

330 {
331  static const TEveException eh("FWGeoTopNode::Paint ");
332 
333  TBuffer3D buff(TBuffer3DTypes::kGeneric);
334 
335  // Section kCore
336  buff.fID = this;
337  buff.fColor = GetMainColor();
338  buff.fTransparency = GetMainTransparency();
339  if (HasMainTrans()) RefMainTrans().SetBuffer3D(buff);
340 
341  buff.SetSectionsValid(TBuffer3D::kCore);
342 
343  Int_t reqSections = gPad->GetViewer3D()->AddObject(1, buff);
344  if (reqSections != TBuffer3D::kNone)
345  {
346  Warning(eh, "IsA='%s'. Viewer3D requires more sections (%d). Only direct-rendering supported.",
347  ClassName(), reqSections);
348  }
349 }
void FWGeoTopNode::paintShape ( Int_t  idx,
const TGeoHMatrix &  nm,
bool  volumeColor,
bool  parentNode 
)
protected

Definition at line 246 of file FWGeoTopNode.cc.

References data, GetTransform(), WDecay::kNone, FWGeometryTableManagerBase::NodeInfo::m_color, FWGeometryTableManagerBase::NodeInfo::m_node, m_scene, FWGeoTopNodeGLScene::OpenCompositeWithPhyID(), phyID(), FWGeometryTableManagerBase::refEntries(), setupBuffMtx(), tableManager(), and wrapTransparency().

Referenced by FWEveDetectorGeo::Paint(), FWEveOverlap::Paint(), FWEveOverlap::paintChildNodesRecurse(), and FWEveDetectorGeo::paintChildNodesRecurse().

247 {
248  static const TEveException eh("FWGeoTopNode::paintShape ");
249 
250  // printf("paint sahpe id %d\n", tableIndex );
251 
253  UChar_t transparency = wrapTransparency(data, isParentNode);
254  // printf("trans %d \n", transparency );
255  if (transparency >= 100) return;
256 
257  TGeoShape* shape = data.m_node->GetVolume()->GetShape();
258 
259  TGeoCompositeShape* compositeShape = dynamic_cast<TGeoCompositeShape*>(shape);
260  if (compositeShape)
261  {
262  // m_scene->fNextCompositeID = phyID(tableIndex);
263 
264  Double_t halfLengths[3] = { compositeShape->GetDX(), compositeShape->GetDY(), compositeShape->GetDZ() };
265 
266  TBuffer3D buff(TBuffer3DTypes::kComposite);
267  buff.fID = data.m_node->GetVolume();
268  buff.fColor = volumeColor ? data.m_node->GetVolume()->GetLineColor() : data.m_color ;
269  buff.fTransparency = transparency;// data.m_node->GetVolume()->GetTransparency();
270 
271  nm.GetHomogenousMatrix(buff.fLocalMaster);
272  buff.fLocalFrame = kTRUE; // Always enforce local frame (no geo manager).
273  buff.SetAABoundingBox(compositeShape->GetOrigin(), halfLengths);
274  buff.SetSectionsValid(TBuffer3D::kCore|TBuffer3D::kBoundingBox);
275 
276  Bool_t paintComponents = kTRUE;
277  // Start a composite shape, identified by this buffer
278  if (TBuffer3D::GetCSLevel() == 0) {
279  paintComponents = m_scene->OpenCompositeWithPhyID(phyID(tableIndex), buff);
280  }
281 
282  TBuffer3D::IncCSLevel();
283 
284  // Paint the boolean node - will add more buffers to viewer
285  TGeoHMatrix xxx;
286  TGeoMatrix *gst = TGeoShape::GetTransform();
287  TGeoShape::SetTransform(&xxx);
288 
289  if (paintComponents) compositeShape->GetBoolNode()->Paint("");
290  TGeoShape::SetTransform(gst);
291  // Close the composite shape
292  if (TBuffer3D::DecCSLevel() == 0)
293  gPad->GetViewer3D()->CloseComposite();
294 
295 
296  // m_scene->fNextCompositeID = 0;
297  }
298  else
299  {
300  TBuffer3D& buff = (TBuffer3D&) shape->GetBuffer3D (TBuffer3D::kCore, kFALSE);
301  setupBuffMtx(buff, nm);
302  buff.fID = data.m_node->GetVolume();
303  buff.fColor = volumeColor ? data.m_node->GetVolume()->GetLineColor() : data.m_color ;
304  buff.fTransparency = transparency;// data.m_node->GetVolume()->GetTransparency();
305 
306 
307  nm.GetHomogenousMatrix(buff.fLocalMaster);
308  buff.fLocalFrame = kTRUE; // Always enforce local frame (no geo manager).
309 
310  Int_t sections = TBuffer3D::kBoundingBox | TBuffer3D::kShapeSpecific;
311  shape->GetBuffer3D(sections, kTRUE);
312 
313  Int_t reqSec = gPad->GetViewer3D()->AddObject(phyID(tableIndex), buff);
314 
315  if (reqSec != TBuffer3D::kNone) {
316  // This shouldn't happen, but I suspect it does sometimes.
317  if (reqSec & TBuffer3D::kCore)
318  Warning(eh, "Core section required again for shape='%s'. This shouldn't happen.", GetName());
319  shape->GetBuffer3D(reqSec, kTRUE);
320  reqSec = gPad->GetViewer3D()->AddObject(phyID(tableIndex), buff);
321  }
322 
323  if (reqSec != TBuffer3D::kNone)
324  Warning(eh, "Extra section required: reqSec=%d, shape=%s.", reqSec, GetName());
325  }
326 }
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
bool OpenCompositeWithPhyID(UInt_t phyID, const TBuffer3D &buffer)
static const G4AffineTransform & GetTransform(const G4TouchableHistory *touchable, int depth)
FWGeoTopNodeGLScene * m_scene
Definition: FWGeoTopNode.h:66
UChar_t wrapTransparency(FWGeometryTableManagerBase::NodeInfo &data, bool leafNode)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
void setupBuffMtx(TBuffer3D &buff, const TGeoHMatrix &mat)
static UInt_t phyID(int tableIdx)
Definition: FWGeoTopNode.cc:53
UInt_t FWGeoTopNode::phyID ( int  tableIdx)
staticprotected

Definition at line 53 of file FWGeoTopNode.cc.

Referenced by paintShape(), and selectPhysicalFromTable().

54 {
55 return UInt_t(tableIdx + 2);
56 
57 }
static int tableIdx(TGLPhysicalShape *ps)
Definition: FWGeoTopNode.cc:59
virtual void FWGeoTopNode::popupMenu ( int  x,
int  y,
TGLViewer *   
)
inlinevirtual

Reimplemented in FWEveDetectorGeo, and FWEveOverlap.

Definition at line 79 of file FWGeoTopNode.h.

Referenced by FWGeometryTableViewBase::cellClicked(), and FWGeoTopNodeGLScene::GeoPopupMenu().

79 {}
void FWGeoTopNode::printSelected ( )

Definition at line 197 of file FWGeoTopNode.cc.

References asciidump::at, fSted, mergeVDriftHistosByStation::name, tableIdx(), and tableManager().

198 {
199  for (std::set<TGLPhysicalShape*>::iterator it = fSted.begin(); it != fSted.end(); ++it)
200  {
201  printf("FWGeoTopNode::printSelected %s \n", tableManager()->refEntries().at(tableIdx(*it)).name() );
202  }
203 }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
static int tableIdx(TGLPhysicalShape *ps)
Definition: FWGeoTopNode.cc:59
list at
Definition: asciidump.py:428
void FWGeoTopNode::ProcessSelection ( TGLSelectRecord &  rec,
std::set< TGLPhysicalShape * > &  sset,
TGLPhysicalShape *  id 
)
protected

Definition at line 105 of file FWGeoTopNode.cc.

References ClearSet(), FWTableManagerBase::dataChanged(), EraseFromSet(), WDecay::kNone, m_scene, SetStateOf(), and tableManager().

Referenced by FWGeoTopNodeGL::ProcessSelection().

106 {
107  // printf("FWGeoTopNode::ProcessSelection ===============================\n");
108 
109  m_scene->BeginUpdate();
110 
111  if (sset.empty())
112  {
113  if (id)
114  {
115  sset.insert(id);
116  rec.SetSecSelResult(TGLSelectRecord::kEnteringSelection);
117  }
118  }
119  else
120  {
121  if (id)
122  {
123  if (rec.GetMultiple())
124  {
125  if (sset.find(id) == sset.end())
126  {
127  sset.insert(id);
128  rec.SetSecSelResult(TGLSelectRecord::kModifyingInternalSelection);
129  }
130  else
131  {
132  EraseFromSet(sset, id);
133  if (sset.empty())
134  rec.SetSecSelResult(TGLSelectRecord::kLeavingSelection);
135  else
136  rec.SetSecSelResult(TGLSelectRecord::kModifyingInternalSelection);
137  }
138  }
139  else
140  {
141  if (sset.size() != 1 || sset.find(id) == sset.end())
142  {
143  ClearSet(sset);
144  sset.insert(id);
145  rec.SetSecSelResult(TGLSelectRecord::kModifyingInternalSelection);
146  }
147  }
148  }
149  else
150  {
151  if (!rec.GetMultiple())
152  {
153  ClearSet(sset);
154  rec.SetSecSelResult(TGLSelectRecord::kLeavingSelection);
155  }
156  }
157  }
158 
159  if (id)
160  {
161  SetStateOf(id);
162  }
163 
164  if (rec.GetSecSelResult() != TGLSelectRecord::kNone)
165  {
166  m_scene->EndUpdate(kTRUE, kFALSE, kTRUE);
167  gEve->Redraw3D();
168 
170  }
171  else
172  {
173  m_scene->EndUpdate(kFALSE, kFALSE, kFALSE);
174  }
175 }
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
void ClearSet(std::set< TGLPhysicalShape * > &sset)
Definition: FWGeoTopNode.cc:71
void dataChanged()
Classes which inherit from FWTableManagerBase must call this when their underlying data changes...
FWGeoTopNodeGLScene * m_scene
Definition: FWGeoTopNode.h:66
void EraseFromSet(std::set< TGLPhysicalShape * > &sset, TGLPhysicalShape *id)
Definition: FWGeoTopNode.cc:64
void SetStateOf(TGLPhysicalShape *id)
Definition: FWGeoTopNode.cc:81
bool FWGeoTopNode::selectPhysicalFromTable ( int  tableIndex)

Definition at line 178 of file FWGeoTopNode.cc.

References asciidump::at, fSted, fwLog, fwlog::kInfo, FWGeometryTableManagerBase::kVisNodeSelf, m_scene, phyID(), and tableManager().

Referenced by FWGeometryTableViewBase::setColumnSelected().

179 {
180  // printf("FWGeoTopNode::selectPhysicalFromTable
181 
182  TGLPhysicalShape* ps = m_scene->FindPhysical(phyID(tableIndex));
183  if (ps) {
184  fSted.insert(ps);
185  ps->Select(1);
186  // printf("selectPhysicalFromTable found physical \n");
187  return true;
188  }
189  else if ( tableManager()->refEntries().at(tableIndex).testBit(FWGeometryTableManagerBase::kVisNodeSelf));
190  {
191  fwLog(fwlog::kInfo) << "Selected entry not drawn in GL viewer. \n" ;
192  return false;
193  }
194 }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
FWGeoTopNodeGLScene * m_scene
Definition: FWGeoTopNode.h:66
#define fwLog(_level_)
Definition: fwLog.h:50
list at
Definition: asciidump.py:428
static UInt_t phyID(int tableIdx)
Definition: FWGeoTopNode.cc:53
FWPopupMenu * FWGeoTopNode::setPopupMenu ( int  iX,
int  iY,
TGLViewer *  v,
bool  overlap 
)
protected

Definition at line 369 of file FWGeoTopNode.cc.

References fSted, fwLog, getFirstSelectedTableIndex(), kCamera, fwlog::kInfo, kPrintMaterial, kPrintOverlap, kPrintPath, kPrintShape, kSetTopNode, kSetTopNodeCam, kVisChldOff, kVisChldOn, kVisSelfOff, s_pickedCamera3DCenter, s_pickedViewer, findQualityFiles::v, x, and detailsBasic3DVector::y.

Referenced by FWEveOverlap::popupMenu(), and FWEveDetectorGeo::popupMenu().

370 {
371  if (getFirstSelectedTableIndex() < 0)
372  {
373  if (fSted.empty()) fwLog(fwlog::kInfo) << "No menu -- no node/entry selected \n";
374  return 0;
375  }
376 
377  FWPopupMenu* nodePopup = new FWPopupMenu();
378 
379  nodePopup->AddEntry("Set As Top Node", kSetTopNode);
380  nodePopup->AddEntry("Set As Top Node And Reset Camera", kSetTopNodeCam);
381  nodePopup->AddSeparator();
382  if (v) {
383  nodePopup->AddEntry("Rnr Off", kVisSelfOff);
384  }
385  nodePopup->AddEntry("Rnr Off For All Children", kVisChldOff);
386  nodePopup->AddEntry("Rnr On For All Children", kVisChldOn);
387  nodePopup->AddSeparator();
388 
389  if (overlap)
390  nodePopup->AddEntry("Print Overlap", kPrintOverlap);
391  nodePopup->AddEntry("Print Path", kPrintPath);
392  nodePopup->AddEntry("Print Shape", kPrintShape);
393  nodePopup->AddEntry("Print Material", kPrintMaterial);
394 
395  nodePopup->AddSeparator();
396  if (v) {
397  Window_t wdummy;
398  Int_t x,y;
399  gVirtualX->TranslateCoordinates(gClient->GetDefaultRoot()->GetId(), v->GetGLWidget()->GetId(), iX, iY, x, y, wdummy);
400  TGLVector3 pnt(x, y, 0.5*v->GetSelRec().GetMinZ());
401  v->CurrentCamera().WindowToViewport(pnt);
402  s_pickedCamera3DCenter = v->CurrentCamera().ViewportToWorld(pnt);
403  // s_pickedCamera3DCenter.Dump();
404  s_pickedViewer = v;
405 
406  nodePopup->AddEntry("Set Camera Center", kCamera);
407  }
408 
409  nodePopup->PlaceMenu(iX, iY,true,true);
410  return nodePopup;
411 }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
int getFirstSelectedTableIndex()
bool overlap(const reco::Muon &muon1, const reco::Muon &muon2, double pullX=1.0, double pullY=1.0, bool checkAdjacentChambers=false)
#define fwLog(_level_)
Definition: fwLog.h:50
static TGLViewer * s_pickedViewer
Definition: FWGeoTopNode.h:85
Definition: DDAxes.h:10
static TGLVector3 s_pickedCamera3DCenter
Definition: FWGeoTopNode.h:84
void FWGeoTopNode::SetStateOf ( TGLPhysicalShape *  id)
protected

Definition at line 81 of file FWGeoTopNode.cc.

References data, fHted, fSted, FWGeometryTableManagerBase::kHighlighted, FWGeometryTableManagerBase::kSelected, FWGeometryTableManagerBase::refEntries(), FWGeometryTableManagerBase::NodeInfo::resetBit(), FWGeometryTableManagerBase::NodeInfo::setBit(), tableIdx(), and tableManager().

Referenced by ClearSet(), EraseFromSet(), and ProcessSelection().

82 {
84 
85  if (fSted.find(id) != fSted.end())
86  {
87  id->Select(1);
89  }
90  else if (fHted.find(id) != fHted.end())
91  {
92  id->Select(3);
94  }
95  else
96  {
97  id->Select(0);
100  }
101 
102 }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
std::set< TGLPhysicalShape * > fHted
Definition: FWGeoTopNode.h:71
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
static int tableIdx(TGLPhysicalShape *ps)
Definition: FWGeoTopNode.cc:59
void FWGeoTopNode::setupBuffMtx ( TBuffer3D &  buff,
const TGeoHMatrix &  mat 
)
protected

Definition at line 231 of file FWGeoTopNode.cc.

References m, alignCSCRings::r, alignCSCRings::s, and edmStreamStallGrapher::t.

Referenced by paintShape().

232 {
233  const Double_t *r = mat.GetRotationMatrix();
234  const Double_t *t = mat.GetTranslation();
235  const Double_t *s = mat.GetScale();
236  Double_t *m = buff.fLocalMaster;
237  m[0] = r[0]*s[0]; m[1] = r[1]*s[1]; m[2] = r[2]*s[2]; m[3] = 0;
238  m[4] = r[3]*s[0]; m[5] = r[4]*s[1]; m[6] = r[5]*s[2]; m[7] = 0;
239  m[8] = r[6]*s[0]; m[9] = r[7]*s[1]; m[10] = r[8]*s[2]; m[11] = 0;
240  m[12] = t[0]; m[13] = t[1]; m[15] = t[2]; m[15] = 1;
241 
242  buff.fLocalFrame = kTRUE;
243 }
int FWGeoTopNode::tableIdx ( TGLPhysicalShape *  ps)
staticprotected

Definition at line 59 of file FWGeoTopNode.cc.

Referenced by FWEveOverlap::GetHighlightTooltip(), FWEveDetectorGeo::GetHighlightTooltip(), printSelected(), and SetStateOf().

60 {
61  return ps->ID() - 2;
62 }
virtual FWGeometryTableManagerBase* FWGeoTopNode::tableManager ( )
inlinevirtual
void FWGeoTopNode::UnHighlighted ( )
virtual

Definition at line 360 of file FWGeoTopNode.cc.

References begin, ClearSet(), fHted, i, FWGeometryTableManagerBase::kHighlighted, FWGeometryTableManagerBase::refEntries(), and tableManager().

Referenced by FWGeometryTableViewBase::setColumnSelected().

361 {
362  ClearSet(fHted);
363  for (FWGeometryTableManagerBase::Entries_i i = tableManager()->refEntries().begin(); i != tableManager()->refEntries().end(); ++i)
365 }
int i
Definition: DBlmapReader.cc:9
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
void ClearSet(std::set< TGLPhysicalShape * > &sset)
Definition: FWGeoTopNode.cc:71
std::set< TGLPhysicalShape * > fHted
Definition: FWGeoTopNode.h:71
#define begin
Definition: vmac.h:30
void FWGeoTopNode::UnSelected ( )
virtual

Definition at line 352 of file FWGeoTopNode.cc.

References begin, ClearSet(), fSted, i, FWGeometryTableManagerBase::kSelected, FWGeometryTableManagerBase::refEntries(), and tableManager().

Referenced by FWGeometryTableViewBase::setColumnSelected().

353 {
354  ClearSet(fSted);
355  for (FWGeometryTableManagerBase::Entries_i i = tableManager()->refEntries().begin(); i != tableManager()->refEntries().end(); ++i)
357 }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
int i
Definition: DBlmapReader.cc:9
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
void ClearSet(std::set< TGLPhysicalShape * > &sset)
Definition: FWGeoTopNode.cc:71
#define begin
Definition: vmac.h:30
UChar_t FWGeoTopNode::wrapTransparency ( FWGeometryTableManagerBase::NodeInfo data,
bool  leafNode 
)
private

Definition at line 414 of file FWGeoTopNode.cc.

References browser(), FWGeometryTableViewBase::getLeafTransparencyFactor(), FWGeometryTableViewBase::getParentTransparencyFactor(), FWGeometryTableManagerBase::NodeInfo::m_transparency, and siStripFEDMonitor_P5_cff::Max.

Referenced by paintShape().

415 {
416  if (isParentNode)
417  {
418  return TMath::Max((Char_t)browser()->getMinParentTransparency(), data.m_transparency) * browser()->getParentTransparencyFactor();
419  }
420  else
421  {
422  return TMath::Max((Char_t)browser()->getMinLeafTransparency(), data.m_transparency) * browser()->getLeafTransparencyFactor();
423  }
424 }
virtual FWGeometryTableViewBase * browser()
Definition: FWGeoTopNode.h:69

Friends And Related Function Documentation

friend class FWGeoTopNodeGL
friend

Definition at line 44 of file FWGeoTopNode.h.

Member Data Documentation

std::set<TGLPhysicalShape*> FWGeoTopNode::fHted
std::set<TGLPhysicalShape*> FWGeoTopNode::fSted
FWGeoTopNodeGLScene* FWGeoTopNode::m_scene
TGLVector3 FWGeoTopNode::s_pickedCamera3DCenter
static

Definition at line 84 of file FWGeoTopNode.h.

Referenced by FWGeometryTableViewBase::chosenItem(), and setPopupMenu().

TGLViewer * FWGeoTopNode::s_pickedViewer = 0
static

Definition at line 85 of file FWGeoTopNode.h.

Referenced by FWGeometryTableViewBase::chosenItem(), and setPopupMenu().