ATLAS Offline Software
Loading...
Searching...
No Matches
VP1RawDataHandleBase::Imp Class Reference
Collaboration diagram for VP1RawDataHandleBase::Imp:

Public Member Functions

 Imp ()
void rebuild3DObjects (VP1RawDataHandleBase *)
void ensureAttach3DObjects (VP1RawDataHandleBase *theclass)
void ensureDetach3DObjects (VP1RawDataHandleBase *theclass)
void ensureInitSepAndTransform (VP1RawDataHandleBase *theclass)
bool hasShape () const
void clearShape ()

Public Attributes

SoSeparator * sep
bool isAttached

Detailed Description

Definition at line 26 of file VP1RawDataHandleBase.cxx.

Constructor & Destructor Documentation

◆ Imp()

VP1RawDataHandleBase::Imp::Imp ( )
inline

Member Function Documentation

◆ clearShape()

void VP1RawDataHandleBase::Imp::clearShape ( )
inline

Definition at line 41 of file VP1RawDataHandleBase.cxx.

42 {
43 if (hasShape()) {
44 sep->removeChild(1);
45 }
46 }

◆ ensureAttach3DObjects()

void VP1RawDataHandleBase::Imp::ensureAttach3DObjects ( VP1RawDataHandleBase * theclass)

Definition at line 134 of file VP1RawDataHandleBase.cxx.

135{
136 if (isAttached)
137 return;
138 isAttached = true;
139
140 VP1ExtraSepLayerHelper * sh(theclass->m_coll->sepHelper());
141 if (sep && sh)
142 sh->addNode(sep);
143}
VP1ExtraSepLayerHelper * sepHelper() const
VP1RawDataCollBase * m_coll

◆ ensureDetach3DObjects()

void VP1RawDataHandleBase::Imp::ensureDetach3DObjects ( VP1RawDataHandleBase * theclass)

Definition at line 146 of file VP1RawDataHandleBase.cxx.

147{
148 if (!isAttached)
149 return;
150 isAttached = false;
151
152 VP1ExtraSepLayerHelper * sh(theclass->m_coll->sepHelper());
153 if (sep && sh)
154 sh->removeNode(sep);
155}

◆ ensureInitSepAndTransform()

void VP1RawDataHandleBase::Imp::ensureInitSepAndTransform ( VP1RawDataHandleBase * theclass)

Definition at line 94 of file VP1RawDataHandleBase.cxx.

95{
96 if (sep)
97 return;
98 sep = new SoSeparator;
99 sep->ref();
100 SoTransform * transform = theclass->buildTransform();
101 sep->addChild(transform);
102 theclass->common()->registerTransformAndHandle(transform,theclass);
103
104}
void registerTransformAndHandle(SoTransform *, VP1RawDataHandleBase *)
VP1RawDataCommonData * common() const
virtual SoTransform * buildTransform()=0
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.

◆ hasShape()

bool VP1RawDataHandleBase::Imp::hasShape ( ) const
inline

Definition at line 36 of file VP1RawDataHandleBase.cxx.

37 {
38 return sep&&sep->getNumChildren()>1;
39 }

◆ rebuild3DObjects()

void VP1RawDataHandleBase::Imp::rebuild3DObjects ( VP1RawDataHandleBase * theclass)

Definition at line 107 of file VP1RawDataHandleBase.cxx.

108{
109 if (!sep) {
110 if (!theclass->m_visible)
111 return;
113 ensureAttach3DObjects(theclass);
114 }
115
116 bool save(false);
117 if (theclass->m_visible)
118 save = sep->enableNotify(false);
119
120 clearShape();
121
122 SoNode * shape = theclass->buildShape();
123 sep->addChild(shape);
124
125 theclass->updateShownOutlines();
126
127 if (save) {
128 sep->enableNotify(true);
129 sep->touch();
130 }
131}
void ensureAttach3DObjects(VP1RawDataHandleBase *theclass)
void ensureInitSepAndTransform(VP1RawDataHandleBase *theclass)
virtual SoNode * buildShape()=0

Member Data Documentation

◆ isAttached

bool VP1RawDataHandleBase::Imp::isAttached

Definition at line 34 of file VP1RawDataHandleBase.cxx.

◆ sep

SoSeparator* VP1RawDataHandleBase::Imp::sep

Definition at line 33 of file VP1RawDataHandleBase.cxx.


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