#include <VP1ExtraSepLayerHelper.h>
Definition at line 22 of file VP1ExtraSepLayerHelper.h.
◆ VP1ExtraSepLayerHelper() [1/2]
VP1ExtraSepLayerHelper::VP1ExtraSepLayerHelper |
( |
SoSeparator * |
topsep, |
|
|
int |
numberOfNodesPerExtraSep = 32 |
|
) |
| |
◆ ~VP1ExtraSepLayerHelper()
VP1ExtraSepLayerHelper::~VP1ExtraSepLayerHelper |
( |
| ) |
|
◆ VP1ExtraSepLayerHelper() [2/2]
◆ addNode()
void VP1ExtraSepLayerHelper::addNode |
( |
SoNode * |
node | ) |
|
Definition at line 54 of file VP1ExtraSepLayerHelper.cxx.
59 VP1Msg::message(
"VP1ExtraSepLayerHelper::addNode ERROR: Node already added!");
63 SoSeparator *
sep =
new SoSeparator;
65 sep->setName(
"SepHelperInternalSep");
66 sep->renderCaching.setValue(SoSeparator::ON);
67 sep->boundingBoxCaching.setValue(SoSeparator::ON);
75 assert(
m_d->
topsep->getChild(
m_d->
topsep->getNumChildren()-1)->getTypeId().isDerivedFrom(SoSeparator::getClassTypeId()));
76 SoSeparator * lastsep =
static_cast<SoSeparator*
>(
m_d->
topsep->getChild(
m_d->
topsep->getNumChildren()-1));
78 lastsep->addChild(
node);
84 SoSeparator *
sep =
new SoSeparator;
86 sep->setName(
"SepHelperInternalSep");
87 sep->renderCaching.setValue(SoSeparator::ON);
88 sep->boundingBoxCaching.setValue(SoSeparator::ON);
◆ addNodeUnderMaterial()
void VP1ExtraSepLayerHelper::addNodeUnderMaterial |
( |
SoNode * |
node, |
|
|
SoMaterial * |
mat |
|
) |
| |
Definition at line 190 of file VP1ExtraSepLayerHelper.cxx.
197 SoSeparator * matsep =
new SoSeparator;
199 matsep->setName(
"SepHelperInternalSep_MatSep");
201 matsep->addChild(
mat);
202 SoSeparator *
sep =
new SoSeparator;
204 sep->setName(
"SepHelperInternalSep_InternalSepHelperTop");
205 matsep->addChild(
sep);
211 it->second.second->addNode(
node);
◆ largeChangesBegin()
void VP1ExtraSepLayerHelper::largeChangesBegin |
( |
| ) |
|
◆ largeChangesEnd()
void VP1ExtraSepLayerHelper::largeChangesEnd |
( |
| ) |
|
◆ moveNodeToNewMaterial()
void VP1ExtraSepLayerHelper::moveNodeToNewMaterial |
( |
SoNode * |
node, |
|
|
SoMaterial * |
oldmat, |
|
|
SoMaterial * |
newmat |
|
) |
| |
◆ numberOfNodesPerExtraSep()
int VP1ExtraSepLayerHelper::numberOfNodesPerExtraSep |
( |
| ) |
const |
◆ operator=()
◆ removeNode()
void VP1ExtraSepLayerHelper::removeNode |
( |
SoNode * |
node | ) |
|
Definition at line 95 of file VP1ExtraSepLayerHelper.cxx.
100 VP1Msg::message(
"VP1ExtraSepLayerHelper::removeNode ERROR: Node not added previously!");
105 assert(extrasep->findChild(
node)>-1);
106 assert(
m_d->
topsep->getChild(
m_d->
topsep->getNumChildren()-1)->getTypeId()==SoSeparator::getClassTypeId());
107 SoSeparator * lastsep =
static_cast<SoSeparator*
>(
m_d->
topsep->getChild(
m_d->
topsep->getNumChildren()-1));
108 assert(lastsep->getNumChildren()>0);
112 extrasep->removeChild(
node);
117 if (lastsep!=extrasep&&lastsep->getNumChildren()>0) {
118 SoNode * othernode = lastsep->getChild(lastsep->getNumChildren()-1);
120 lastsep->removeChild(othernode);
121 extrasep->addChild(othernode);
127 if (lastsep->getNumChildren()==0) {
◆ removeNodeUnderMaterial()
void VP1ExtraSepLayerHelper::removeNodeUnderMaterial |
( |
SoNode * |
node, |
|
|
SoMaterial * |
mat |
|
) |
| |
Definition at line 216 of file VP1ExtraSepLayerHelper.cxx.
221 it->second.second->removeNode(
node);
222 if (
it->second.second->topSeparator()->getNumChildren()==0) {
225 it->second.first->unref();
◆ topSeparator()
SoSeparator * VP1ExtraSepLayerHelper::topSeparator |
( |
| ) |
const |
◆ m_d
Imp* VP1ExtraSepLayerHelper::m_d |
|
private |
The documentation for this class was generated from the following files: