CMS 3D CMS Logo

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, kApplyChldCol, kApplyChldColRec, 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 ()
 
void Paint (Option_t *option="") override
 
virtual void popupMenu (int x, int y, TGLViewer *)
 
void printSelected ()
 
bool selectPhysicalFromTable (int)
 
virtual FWGeometryTableManagerBasetableManager ()
 
void UnHighlighted () override
 
void UnSelected () override
 
 ~FWGeoTopNode () override
 

Public Attributes

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

Static Public Attributes

static TGLVector3 s_pickedCamera3DCenter
 
static TGLViewer * s_pickedViewer = nullptr
 

Protected Member Functions

void ClearSet (std::set< TGLPhysicalShape *> &sset)
 
void ComputeBBox () override
 
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

 ClassDefOverride (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

◆ MenuOptions

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

Definition at line 45 of file FWGeoTopNode.h.

Constructor & Destructor Documentation

◆ FWGeoTopNode() [1/2]

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

Definition at line 62 of file FWGeoTopNode.h.

62 {}

◆ ~FWGeoTopNode()

FWGeoTopNode::~FWGeoTopNode ( )
inlineoverride

Definition at line 63 of file FWGeoTopNode.h.

63 {}

◆ FWGeoTopNode() [2/2]

FWGeoTopNode::FWGeoTopNode ( const FWGeoTopNode )
private

Member Function Documentation

◆ browser()

virtual FWGeometryTableViewBase* FWGeoTopNode::browser ( )
inlinevirtual

Reimplemented in FWEveDetectorGeo, and FWEveOverlap.

Definition at line 69 of file FWGeoTopNode.h.

Referenced by wrapTransparency().

69 { return nullptr; }

◆ ClassDefOverride()

FWGeoTopNode::ClassDefOverride ( FWGeoTopNode  ,
 
)
private

◆ clearSelection()

void FWGeoTopNode::clearSelection ( )
inline

Definition at line 76 of file FWGeoTopNode.h.

References fHted, and fSted.

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

76  {
77  fHted.clear();
78  fSted.clear();
79  }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
std::set< TGLPhysicalShape * > fHted
Definition: FWGeoTopNode.h:71

◆ ClearSet()

void FWGeoTopNode::ClearSet ( std::set< TGLPhysicalShape *> &  sset)
protected

Definition at line 63 of file FWGeoTopNode.cc.

References SetStateOf().

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

63  {
64  while (!sset.empty()) {
65  TGLPhysicalShape* id = *sset.begin();
66  sset.erase(id);
67  SetStateOf(id);
68  }
69 }
void SetStateOf(TGLPhysicalShape *id)
Definition: FWGeoTopNode.cc:71

◆ ComputeBBox()

void FWGeoTopNode::ComputeBBox ( )
overrideprotected

Definition at line 180 of file FWGeoTopNode.cc.

References f.

180  {
181  // Fill bounding-box information. Virtual from TAttBBox.
182 
183  BBoxZero(1.0f);
184 }
double f[11][100]

◆ EraseFromSet()

void FWGeoTopNode::EraseFromSet ( std::set< TGLPhysicalShape *> &  sset,
TGLPhysicalShape *  id 
)
protected

Definition at line 57 of file FWGeoTopNode.cc.

References SetStateOf().

Referenced by ProcessSelection().

57  {
58  sset.erase(id);
59  SetStateOf(id);
60 }
void SetStateOf(TGLPhysicalShape *id)
Definition: FWGeoTopNode.cc:71

◆ getFirstSelectedTableIndex()

int FWGeoTopNode::getFirstSelectedTableIndex ( )

Definition at line 164 of file FWGeoTopNode.cc.

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

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

164  {
165  // Note: if object would be rendered, this would return fSted.begin().
166 
167  if (fSted.size() <= 1) {
168  int cnt = 0;
170  i != tableManager()->refEntries().end();
171  ++i, ++cnt) {
173  return cnt;
174  }
175  }
176  return -1;
177 }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68

◆ operator=()

const FWGeoTopNode& FWGeoTopNode::operator= ( const FWGeoTopNode )
private

◆ Paint()

void FWGeoTopNode::Paint ( Option_t *  option = "")
override

Definition at line 294 of file FWGeoTopNode.cc.

References WDecay::kNone.

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

294  {
295  static const TEveException eh("FWGeoTopNode::Paint ");
296 
297  TBuffer3D buff(TBuffer3DTypes::kGeneric);
298 
299  // Section kCore
300  buff.fID = this;
301  buff.fColor = GetMainColor();
302  buff.fTransparency = GetMainTransparency();
303  if (HasMainTrans())
304  RefMainTrans().SetBuffer3D(buff);
305 
306  buff.SetSectionsValid(TBuffer3D::kCore);
307 
308  Int_t reqSections = gPad->GetViewer3D()->AddObject(1, buff);
309  if (reqSections != TBuffer3D::kNone) {
310  Warning(eh,
311  "IsA='%s'. Viewer3D requires more sections (%d). Only direct-rendering supported.",
312  ClassName(),
313  reqSections);
314  }
315 }

◆ paintShape()

void FWGeoTopNode::paintShape ( Int_t  idx,
const TGeoHMatrix &  nm,
bool  volumeColor,
bool  parentNode 
)
protected

Definition at line 213 of file FWGeoTopNode.cc.

References data, GetTransform(), WDecay::kNone, m_scene, FWGeoTopNodeGLScene::OpenCompositeWithPhyID(), phyID(), FWGeometryTableManagerBase::refEntries(), setupBuffMtx(), l1trig_cff::shape, tableManager(), wrapTransparency(), and testFFTrackingParticleHits::xxx.

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

213  {
214  static const TEveException eh("FWGeoTopNode::paintShape ");
215 
216  // printf("paint sahpe id %d\n", tableIndex );
217 
219  UChar_t transparency = wrapTransparency(data, isParentNode);
220  // printf("trans %d \n", transparency );
221  if (transparency >= 100)
222  return;
223 
224  if (data.m_node->GetVolume()->IsAssembly())
225  return;
226  TGeoShape* shape = data.m_node->GetVolume()->GetShape();
227 
228  TGeoCompositeShape* compositeShape = dynamic_cast<TGeoCompositeShape*>(shape);
229  if (compositeShape) {
230  // m_scene->fNextCompositeID = phyID(tableIndex);
231 
232  Double_t halfLengths[3] = {compositeShape->GetDX(), compositeShape->GetDY(), compositeShape->GetDZ()};
233 
234  TBuffer3D buff(TBuffer3DTypes::kComposite);
235  buff.fID = data.m_node->GetVolume();
236  buff.fColor = volumeColor ? data.m_node->GetVolume()->GetLineColor() : data.m_color;
237  buff.fTransparency = transparency; // data.m_node->GetVolume()->GetTransparency();
238 
239  nm.GetHomogenousMatrix(buff.fLocalMaster);
240  buff.fLocalFrame = kTRUE; // Always enforce local frame (no geo manager).
241  buff.SetAABoundingBox(compositeShape->GetOrigin(), halfLengths);
242  buff.SetSectionsValid(TBuffer3D::kCore | TBuffer3D::kBoundingBox);
243 
244  Bool_t paintComponents = kTRUE;
245  // Start a composite shape, identified by this buffer
246  if (TBuffer3D::GetCSLevel() == 0) {
247  paintComponents = m_scene->OpenCompositeWithPhyID(phyID(tableIndex), buff);
248  }
249 
250  TBuffer3D::IncCSLevel();
251 
252  // Paint the boolean node - will add more buffers to viewer
253  TGeoHMatrix xxx;
254  TGeoMatrix* gst = TGeoShape::GetTransform();
255  TGeoShape::SetTransform(&xxx);
256 
257  if (paintComponents)
258  compositeShape->GetBoolNode()->Paint("");
259  TGeoShape::SetTransform(gst);
260  // Close the composite shape
261  if (TBuffer3D::DecCSLevel() == 0)
262  gPad->GetViewer3D()->CloseComposite();
263 
264  // m_scene->fNextCompositeID = 0;
265  } else {
266  TBuffer3D& buff = (TBuffer3D&)shape->GetBuffer3D(TBuffer3D::kCore, kFALSE);
267  setupBuffMtx(buff, nm);
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 
275  Int_t sections = TBuffer3D::kBoundingBox | TBuffer3D::kShapeSpecific;
276  shape->GetBuffer3D(sections, kTRUE);
277 
278  Int_t reqSec = gPad->GetViewer3D()->AddObject(phyID(tableIndex), buff);
279 
280  if (reqSec != TBuffer3D::kNone) {
281  // This shouldn't happen, but I suspect it does sometimes.
282  if (reqSec & TBuffer3D::kCore)
283  Warning(eh, "Core section required again for shape='%s'. This shouldn't happen.", GetName());
284  shape->GetBuffer3D(reqSec, kTRUE);
285  reqSec = gPad->GetViewer3D()->AddObject(phyID(tableIndex), buff);
286  }
287 
288  if (reqSec != TBuffer3D::kNone)
289  Warning(eh, "Extra section required: reqSec=%d, shape=%s.", reqSec, GetName());
290  }
291 }
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:79
void setupBuffMtx(TBuffer3D &buff, const TGeoHMatrix &mat)
static UInt_t phyID(int tableIdx)
Definition: FWGeoTopNode.cc:53

◆ phyID()

UInt_t FWGeoTopNode::phyID ( int  tableIdx)
staticprotected

Definition at line 53 of file FWGeoTopNode.cc.

References tableIdx().

Referenced by paintShape(), and selectPhysicalFromTable().

53 { return UInt_t(tableIdx + 2); }
static int tableIdx(TGLPhysicalShape *ps)
Definition: FWGeoTopNode.cc:55

◆ popupMenu()

virtual void FWGeoTopNode::popupMenu ( int  x,
int  y,
TGLViewer *   
)
inlinevirtual

Reimplemented in FWEveDetectorGeo, and FWEveOverlap.

Definition at line 82 of file FWGeoTopNode.h.

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

82 {}

◆ printSelected()

void FWGeoTopNode::printSelected ( )

Definition at line 156 of file FWGeoTopNode.cc.

References fSted, Skims_PA_cff::name, tableIdx(), and tableManager().

156  {
157  for (std::set<TGLPhysicalShape*>::iterator it = fSted.begin(); it != fSted.end(); ++it) {
158  printf("FWGeoTopNode::printSelected %s \n", tableManager()->refEntries().at(tableIdx(*it)).name());
159  }
160 }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
static int tableIdx(TGLPhysicalShape *ps)
Definition: FWGeoTopNode.cc:55

◆ ProcessSelection()

void FWGeoTopNode::ProcessSelection ( TGLSelectRecord &  rec,
std::set< TGLPhysicalShape *> &  sset,
TGLPhysicalShape *  id 
)
protected

Definition at line 88 of file FWGeoTopNode.cc.

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

Referenced by FWGeoTopNodeGL::ProcessSelection().

88  {
89  // printf("FWGeoTopNode::ProcessSelection ===============================\n");
90 
91  m_scene->BeginUpdate();
92 
93  if (sset.empty()) {
94  if (id) {
95  sset.insert(id);
96  rec.SetSecSelResult(TGLSelectRecord::kEnteringSelection);
97  }
98  } else {
99  if (id) {
100  if (rec.GetMultiple()) {
101  if (sset.find(id) == sset.end()) {
102  sset.insert(id);
103  rec.SetSecSelResult(TGLSelectRecord::kModifyingInternalSelection);
104  } else {
105  EraseFromSet(sset, id);
106  if (sset.empty())
107  rec.SetSecSelResult(TGLSelectRecord::kLeavingSelection);
108  else
109  rec.SetSecSelResult(TGLSelectRecord::kModifyingInternalSelection);
110  }
111  } else {
112  if (sset.size() != 1 || sset.find(id) == sset.end()) {
113  ClearSet(sset);
114  sset.insert(id);
115  rec.SetSecSelResult(TGLSelectRecord::kModifyingInternalSelection);
116  }
117  }
118  } else {
119  if (!rec.GetMultiple()) {
120  ClearSet(sset);
121  rec.SetSecSelResult(TGLSelectRecord::kLeavingSelection);
122  }
123  }
124  }
125 
126  if (id) {
127  SetStateOf(id);
128  }
129 
130  if (rec.GetSecSelResult() != TGLSelectRecord::kNone) {
131  m_scene->EndUpdate(kTRUE, kFALSE, kTRUE);
132  gEve->Redraw3D();
133 
135  } else {
136  m_scene->EndUpdate(kFALSE, kFALSE, kFALSE);
137  }
138 }
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
void ClearSet(std::set< TGLPhysicalShape *> &sset)
Definition: FWGeoTopNode.cc:63
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:57
void SetStateOf(TGLPhysicalShape *id)
Definition: FWGeoTopNode.cc:71

◆ selectPhysicalFromTable()

bool FWGeoTopNode::selectPhysicalFromTable ( int  tableIndex)

Definition at line 141 of file FWGeoTopNode.cc.

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

Referenced by FWGeometryTableViewBase::setColumnSelected().

141  {
142  // printf("FWGeoTopNode::selectPhysicalFromTable
143 
144  TGLPhysicalShape* ps = m_scene->FindPhysical(phyID(tableIndex));
145  if (ps) {
146  fSted.insert(ps);
147  ps->Select(1);
148  // printf("selectPhysicalFromTable found physical \n");
149  return true;
150  } else if (tableManager()->refEntries().at(tableIndex).testBit(FWGeometryTableManagerBase::kVisNodeSelf))
151  fwLog(fwlog::kInfo) << "Selected entry not drawn in GL viewer. \n";
152  return false;
153 }
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:45
static UInt_t phyID(int tableIdx)
Definition: FWGeoTopNode.cc:53

◆ setPopupMenu()

FWPopupMenu * FWGeoTopNode::setPopupMenu ( int  iX,
int  iY,
TGLViewer *  v,
bool  overlap 
)
protected

Definition at line 336 of file FWGeoTopNode.cc.

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

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

336  {
337  if (getFirstSelectedTableIndex() < 0) {
338  if (fSted.empty())
339  fwLog(fwlog::kInfo) << "No menu -- no node/entry selected \n";
340  return nullptr;
341  }
342 
343  FWPopupMenu* nodePopup = new FWPopupMenu();
344 
345  nodePopup->AddEntry("Set As Top Node", kSetTopNode);
346  nodePopup->AddEntry("Set As Top Node and Reset Camera", kSetTopNodeCam);
347  nodePopup->AddSeparator();
348  if (v) {
349  nodePopup->AddEntry("Rnr Off", kVisSelfOff);
350  }
351  nodePopup->AddEntry("Turn Render On For Children", kVisChldOn);
352  nodePopup->AddEntry("Turn Render Off For Children", kVisChldOff);
353  nodePopup->AddEntry("Apply Color To Children", kApplyChldCol);
354  nodePopup->AddEntry("Apply Color Recursively", kApplyChldColRec);
355  nodePopup->AddSeparator();
356 
357  if (overlap)
358  nodePopup->AddEntry("Print Overlap", kPrintOverlap);
359  nodePopup->AddEntry("Print Path", kPrintPath);
360  nodePopup->AddEntry("Print Shape", kPrintShape);
361  nodePopup->AddEntry("Print Material", kPrintMaterial);
362 
363  nodePopup->AddSeparator();
364  if (v) {
365  Window_t wdummy;
366  Int_t x, y;
367  gVirtualX->TranslateCoordinates(
368  gClient->GetDefaultRoot()->GetId(), v->GetGLWidget()->GetId(), iX, iY, x, y, wdummy);
369  TGLVector3 pnt(x, y, 0.5 * v->GetSelRec().GetMinZ());
370  v->CurrentCamera().WindowToViewport(pnt);
371  s_pickedCamera3DCenter = v->CurrentCamera().ViewportToWorld(pnt);
372  // s_pickedCamera3DCenter.Dump();
373  s_pickedViewer = v;
374 
375  nodePopup->AddEntry("Set Camera Center", kCamera);
376  }
377 
378  nodePopup->PlaceMenu(iX, iY, true, true);
379  return nodePopup;
380 }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
int getFirstSelectedTableIndex()
#define fwLog(_level_)
Definition: fwLog.h:45
static TGLViewer * s_pickedViewer
Definition: FWGeoTopNode.h:88
static TGLVector3 s_pickedCamera3DCenter
Definition: FWGeoTopNode.h:87

◆ SetStateOf()

void FWGeoTopNode::SetStateOf ( TGLPhysicalShape *  id)
protected

Definition at line 71 of file FWGeoTopNode.cc.

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

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

71  {
73 
74  if (fSted.find(id) != fSted.end()) {
75  id->Select(1);
77  } else if (fHted.find(id) != fHted.end()) {
78  id->Select(3);
80  } else {
81  id->Select(0);
84  }
85 }
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:79
static int tableIdx(TGLPhysicalShape *ps)
Definition: FWGeoTopNode.cc:55

◆ setupBuffMtx()

void FWGeoTopNode::setupBuffMtx ( TBuffer3D &  buff,
const TGeoHMatrix &  mat 
)
protected

Definition at line 187 of file FWGeoTopNode.cc.

References visualization-live-secondInstance_cfg::m, alignCSCRings::r, alignCSCRings::s, and submitPVValidationJobs::t.

Referenced by paintShape().

187  {
188  const Double_t* r = mat.GetRotationMatrix();
189  const Double_t* t = mat.GetTranslation();
190  const Double_t* s = mat.GetScale();
191  Double_t* m = buff.fLocalMaster;
192  m[0] = r[0] * s[0];
193  m[1] = r[1] * s[1];
194  m[2] = r[2] * s[2];
195  m[3] = 0;
196  m[4] = r[3] * s[0];
197  m[5] = r[4] * s[1];
198  m[6] = r[5] * s[2];
199  m[7] = 0;
200  m[8] = r[6] * s[0];
201  m[9] = r[7] * s[1];
202  m[10] = r[8] * s[2];
203  m[11] = 0;
204  m[12] = t[0];
205  m[13] = t[1];
206  m[15] = t[2];
207  m[15] = 1;
208 
209  buff.fLocalFrame = kTRUE;
210 }

◆ tableIdx()

int FWGeoTopNode::tableIdx ( TGLPhysicalShape *  ps)
staticprotected

Definition at line 55 of file FWGeoTopNode.cc.

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

55 { return ps->ID() - 2; }

◆ tableManager()

virtual FWGeometryTableManagerBase* FWGeoTopNode::tableManager ( )
inlinevirtual

◆ UnHighlighted()

void FWGeoTopNode::UnHighlighted ( )
override

Definition at line 327 of file FWGeoTopNode.cc.

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

Referenced by FWGeometryTableViewBase::setColumnSelected().

327  {
328  ClearSet(fHted);
330  i != tableManager()->refEntries().end();
331  ++i)
333 }
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
void ClearSet(std::set< TGLPhysicalShape *> &sset)
Definition: FWGeoTopNode.cc:63
std::set< TGLPhysicalShape * > fHted
Definition: FWGeoTopNode.h:71

◆ UnSelected()

void FWGeoTopNode::UnSelected ( )
override

Definition at line 318 of file FWGeoTopNode.cc.

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

Referenced by FWGeometryTableViewBase::setColumnSelected().

318  {
319  ClearSet(fSted);
321  i != tableManager()->refEntries().end();
322  ++i)
324 }
std::set< TGLPhysicalShape * > fSted
Definition: FWGeoTopNode.h:72
virtual FWGeometryTableManagerBase * tableManager()
Definition: FWGeoTopNode.h:68
void ClearSet(std::set< TGLPhysicalShape *> &sset)
Definition: FWGeoTopNode.cc:63

◆ wrapTransparency()

UChar_t FWGeoTopNode::wrapTransparency ( FWGeometryTableManagerBase::NodeInfo data,
bool  leafNode 
)
private

Definition at line 382 of file FWGeoTopNode.cc.

References browser(), data, FWGeometryTableViewBase::getLeafTransparencyFactor(), FWGeometryTableViewBase::getParentTransparencyFactor(), and METSkim_cff::Max.

Referenced by paintShape().

382  {
383  if (isParentNode) {
384  return TMath::Max((Char_t)browser()->getMinParentTransparency(), data.m_transparency) *
386  } else {
387  return TMath::Max((Char_t)browser()->getMinLeafTransparency(), data.m_transparency) *
389  }
390 }
virtual FWGeometryTableViewBase * browser()
Definition: FWGeoTopNode.h:69
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79

Friends And Related Function Documentation

◆ FWGeoTopNodeGL

friend class FWGeoTopNodeGL
friend

Definition at line 42 of file FWGeoTopNode.h.

Member Data Documentation

◆ fHted

std::set<TGLPhysicalShape*> FWGeoTopNode::fHted

◆ fSted

std::set<TGLPhysicalShape*> FWGeoTopNode::fSted

◆ m_scene

FWGeoTopNodeGLScene* FWGeoTopNode::m_scene

◆ s_pickedCamera3DCenter

TGLVector3 FWGeoTopNode::s_pickedCamera3DCenter
static

Definition at line 87 of file FWGeoTopNode.h.

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

◆ s_pickedViewer

TGLViewer * FWGeoTopNode::s_pickedViewer = nullptr
static

Definition at line 88 of file FWGeoTopNode.h.

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