// // ******************************************************************** // * License and Disclaimer * // * * // * The Geant4 software is copyright of the Copyright Holders of * // * the Geant4 Collaboration. It is provided under the terms and * // * conditions of the Geant4 Software License, included in the file * // * LICENSE and available at http://cern.ch/geant4/license . These * // * include a list of copyright holders. * // * * // * Neither the authors of this software system, nor their employing * // * institutes,nor the agencies providing financial support for this * // * work make any representation or warranty, express or implied, * // * regarding this software system or assume any liability for its * // * use. Please see the license in the file LICENSE and URL above * // * for the full disclaimer and the limitation of liability. * // * * // * This code implementation is the result of the scientific and * // * technical work of the GEANT4 collaboration. * // * By using, copying, modifying or distributing the software (or * // * any work based on the software) you agree to acknowledge its * // * use in resulting scientific publications, and indicate your * // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // #ifdef G4VIS_BUILD_OI_DRIVER /*----------------------------HEPVis----------------------------------------*/ /* */ /* Node: SoGL2PSAction */ /* Author: Guy Barrand */ /* */ /*--------------------------------------------------------------------------*/ #define G4DEBUG_VIS_OGL 1 // this : #include // Inventor : #include #include #include "Geant4_gl2ps.h" #include SO_ACTION_SOURCE(SoGL2PSAction) ////////////////////////////////////////////////////////////////////////////// void SoGL2PSAction::initClass( ) ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { #ifdef G4DEBUG_VIS_OGL printf("SoGL2PSAction::initClass\n"); #endif SO_ACTION_INIT_CLASS(SoGL2PSAction,SoGLRenderAction); } ////////////////////////////////////////////////////////////////////////////// SoGL2PSAction::SoGL2PSAction( const SbViewportRegion& aViewPortRegion ) :SoGLRenderAction(aViewPortRegion) ,G4OpenGL2PSAction() ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { #ifdef G4DEBUG_VIS_OGL printf("SoGL2PSAction::SoGL2PSAction\n"); #endif setFileName("out.ps"); SO_ACTION_CONSTRUCTOR(SoGL2PSAction); } void SoGL2PSAction::enableFileWriting( ) ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { fFile = ::fopen(fFileName,"w"); if(!fFile) { SoDebugError::post("SoGL2PSAction::enableFileWriting", "Cannot open file %s",fFileName); return; } #ifdef __COIN__ #else //SGI const SbViewportRegion& vpr = getViewportRegion(); SoViewportRegionElement::set(getState(),vpr); gl2psBegin(); #endif } ////////////////////////////////////////////////////////////////////////////// void SoGL2PSAction::setViewport( ) ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { #ifdef G4DEBUG_VIS_OGL printf("SoGL2PSAction::setViewport\n"); #endif // Useful ? L.Garnier 02/2009 #ifdef __COIN__ #else //SGI const SbViewportRegion& vpr = getViewportRegion(); SoViewportRegionElement::set(getState(),vpr); const SbVec2s& win = vpr.getWindowSize(); fViewport[0] = 0; fViewport[1] = 0; fViewport[2] = win[0]; fViewport[3] = win[1]; #endif } ////////////////////////////////////////////////////////////////////////////// void SoGL2PSAction::beginTraversal( SoNode* aNode ) ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { #ifdef G4DEBUG_VIS_OGL printf("SoGL2PSAction::beginTraversal\n"); #endif if(fFile) { #ifdef __COIN__ const SbViewportRegion& vpr = getViewportRegion(); SoViewportRegionElement::set(getState(),vpr); #ifdef G4DEBUG_VIS_OGL printf("SoGL2PSAction::beginTraversal 1\n"); #endif G4gl2psBegin(); #ifdef G4DEBUG_VIS_OGL printf("SoGL2PSAction::beginTraversal 2\n"); #endif traverse(aNode); #ifdef G4DEBUG_VIS_OGL printf("SoGL2PSAction::beginTraversal 3\n"); #endif gl2psEndPage(); #ifdef G4DEBUG_VIS_OGL printf("SoGL2PSAction::beginTraversal 4\n"); #endif #else //SGI SoGLRenderAction::beginTraversal(aNode); #endif } else { SoGLRenderAction::beginTraversal(aNode); } #ifdef G4DEBUG_VIS_OGL printf("SoGL2PSAction::beginTraversal 5\n"); #endif } #endif