86 SoGroup * newgroup(0);
87 if ( g->getTypeId().isDerivedFrom(SoSeparator::getClassTypeId()) &&
88 ! g->getTypeId().isDerivedFrom(SoSelection::getClassTypeId()) ) {
89 SoSeparator * sep =
new SoSeparator;
90 SoSeparator * origsep =
static_cast<SoSeparator*
>(g);
91 sep->renderCaching.setValue(origsep->renderCaching.getValue());
92 sep->boundingBoxCaching.setValue(origsep->boundingBoxCaching.getValue());
93 sep->renderCulling.setValue(origsep->renderCulling.getValue());
94 sep->pickCulling.setValue(origsep->pickCulling.getValue());
96 }
else if ( g->getTypeId().isDerivedFrom(SoSelection::getClassTypeId()) ) {
97 SoSelection *
sel =
new SoSelection;
98 SoSelection * origsel =
static_cast<SoSelection*
>(g);
99 sel->renderCaching.setValue(origsel->renderCaching.getValue());
100 sel->boundingBoxCaching.setValue(origsel->boundingBoxCaching.getValue());
101 sel->renderCulling.setValue(origsel->renderCulling.getValue());
102 sel->pickCulling.setValue(origsel->pickCulling.getValue());
103 sel->policy.setValue(origsel->policy.getValue());
105 }
else if ( g->getTypeId().isDerivedFrom(SoSwitch::getClassTypeId()) ) {
106 SoSwitch *sw =
new SoSwitch;
107 sw->whichChild.setValue(
static_cast<SoSwitch*
>(g)->whichChild.getValue());
111 newgroup =
new SoGroup;
115 newgroup->setName(g->getName());
118 if (transferChildren)
119 for (
int i = 0; i<g->getNumChildren();++i)
120 newgroup->addChild(g->getChild(i));
269 for (
int i = 0; i<g->getNumChildren();++i) {
270 SoNode * n = g->getChild(i);
299 for (
int i = 0; i<g->getNumChildren();++i) {
300 SoNode * n = g->getChild(i);