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 42 of file FWGeoTopNode.h.

Member Enumeration Documentation

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

Definition at line 48 of file FWGeoTopNode.h.

Constructor & Destructor Documentation

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

Definition at line 63 of file FWGeoTopNode.h.

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

Definition at line 64 of file FWGeoTopNode.h.

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

Member Function Documentation

virtual FWGeometryTableViewBase* FWGeoTopNode::browser ( )
inlinevirtual

Reimplemented in FWEveDetectorGeo, and FWEveOverlap.

Definition at line 70 of file FWGeoTopNode.h.

Referenced by wrapTransparency().

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

Definition at line 77 of file FWGeoTopNode.h.

References fHted, and fSted.

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

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

Definition at line 72 of file FWGeoTopNode.cc.

References SetStateOf().

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

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

Definition at line 224 of file FWGeoTopNode.cc.

References f.

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

Definition at line 65 of file FWGeoTopNode.cc.

References SetStateOf().

Referenced by ProcessSelection().

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

Definition at line 208 of file FWGeoTopNode.cc.

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

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

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

Reimplemented in FWEveDetectorGeo, and FWEveOverlap.

Definition at line 330 of file FWGeoTopNode.cc.

References WDecay::kNone.

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

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

Definition at line 247 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().

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

Definition at line 54 of file FWGeoTopNode.cc.

Referenced by paintShape(), and selectPhysicalFromTable().

55 {
56 return UInt_t(tableIdx + 2);
57 
58 }
unsigned int UInt_t
Definition: FUTypes.h:12
static int tableIdx(TGLPhysicalShape *ps)
Definition: FWGeoTopNode.cc:60
virtual void FWGeoTopNode::popupMenu ( int  x,
int  y,
TGLViewer *   
)
inlinevirtual

Reimplemented in FWEveDetectorGeo, and FWEveOverlap.

Definition at line 80 of file FWGeoTopNode.h.

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

80 {}
void FWGeoTopNode::printSelected ( )

Definition at line 198 of file FWGeoTopNode.cc.

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

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

Definition at line 106 of file FWGeoTopNode.cc.

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

Referenced by FWGeoTopNodeGL::ProcessSelection().

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

Definition at line 179 of file FWGeoTopNode.cc.

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

Referenced by FWGeometryTableViewBase::setColumnSelected().

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

Definition at line 370 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().

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

Definition at line 82 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().

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

Definition at line 232 of file FWGeoTopNode.cc.

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

Referenced by paintShape().

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

Definition at line 60 of file FWGeoTopNode.cc.

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

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

Definition at line 361 of file FWGeoTopNode.cc.

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

Referenced by FWGeometryTableViewBase::setColumnSelected().

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

Definition at line 353 of file FWGeoTopNode.cc.

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

Referenced by FWGeometryTableViewBase::setColumnSelected().

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

Definition at line 415 of file FWGeoTopNode.cc.

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

Referenced by paintShape().

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

Friends And Related Function Documentation

friend class FWGeoTopNodeGL
friend

Definition at line 45 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 85 of file FWGeoTopNode.h.

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

TGLViewer * FWGeoTopNode::s_pickedViewer = 0
static

Definition at line 86 of file FWGeoTopNode.h.

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