26 #ifdef G4VIS_BUILD_OI_DRIVER 
   33 #include <Inventor/nodes/SoNode.h> 
   34 #include <Inventor/elements/SoSwitchElement.h> 
   35 #include <Inventor/elements/SoCoordinateElement.h> 
   50   SO_ACTION_ADD_METHOD(SoNode,nodeAction);
 
   75   fGenerate = aGenerate;
 
   87 #include <Inventor/nodes/SoNode.h> 
   88 #include <Inventor/nodes/SoGroup.h> 
   89 #include <Inventor/nodes/SoCoordinate3.h> 
   95 #define IF_CLASS(aClass) \ 
   96   if(aNode->isOfType(aClass::getClassTypeId())) {\ 
   98     aClass* node = (aClass*)aNode;\ 
   99     if(This->fGenerate==TRUE) {\ 
  100       if(node->alternateRep.getValue()==NULL) {\ 
  101         node->generateAlternateRep();\ 
  103         SoNode* altRep = node->alternateRep.getValue();\ 
  104         if((altRep!=NULL) && altRep->isOfType(SoGroup::getClassTypeId()))\ 
  105           altRep->doAction(This);\ 
  109       SoNode* altRep = node->alternateRep.getValue();\ 
  110       if((altRep!=NULL) && altRep->isOfType(SoGroup::getClassTypeId()))\ 
  111         altRep->doAction(This);\ 
  113       node->clearAlternateRep();\ 
  118 void SoAlternateRepAction::nodeAction(
 
  136   else if(aNode->isOfType(SoGroup::getClassTypeId())) {
 
  137     aNode->doAction(aThis);
 
  139   else if(aNode->isOfType(SoCoordinate3::getClassTypeId())) { 
 
  140     aNode->doAction(aThis);
 
  143   else if(aNode->getField(
"alternateRep")!=NULL) {
 
  144     aNode->doAction(aThis);
 
typedef void(XMLCALL *XML_ElementDeclHandler)(void *userData
 
virtual ~SoAlternateRepAction()
 
const G4ThreeVector const G4double const
 
SbBool getGenerate() const