35 #ifdef G4VIS_BUILD_DAWN_DRIVER 
   39 #define G4FukuiRenderer_STRUCTURE_PRIORITY  1. 
   63 G4FukuiRendererViewer::G4FukuiRendererViewer (G4FukuiRendererSceneHandler& sceneHandler,
 
   66              sceneHandler.IncrementViewCount (),
 
   68   fSceneHandler (sceneHandler)
 
   72 G4FukuiRendererViewer::~G4FukuiRendererViewer () 
 
   76 void G4FukuiRendererViewer::SetView () 
 
   78 #if defined DEBUG_FR_VIEW 
   80     G4cout << 
"***** G4FukuiRendererViewer::SetView(): No effects" << 
G4endl;
 
   88 G4FukuiRendererViewer::ClearView( 
void )
 
   90 #if defined DEBUG_FR_VIEW 
   92     G4cout << 
"***** G4FukuiRendererViewer::ClearView (): No effects " << 
G4endl;
 
   99 void G4FukuiRendererViewer::DrawView () 
 
  101 #if defined DEBUG_FR_VIEW 
  103         G4cout << 
"***** G4FukuiRendererViewer::DrawView () " << 
G4endl;
 
  107         fSceneHandler.FRBeginModeling();        
 
  119 void G4FukuiRendererViewer::ShowView( 
void )
 
  121 #if defined DEBUG_FR_VIEW 
  123         G4cout << 
"***** G4FukuiRendererViewer::ShowView () " << 
G4endl;
 
  126         if( fSceneHandler.FRIsInModeling() ) 
 
  131                 fSceneHandler.FREndModeling();
 
  141 void  G4FukuiRendererViewer::Wait()
 
  143 #if defined DEBUG_FR_VIEW 
  145         G4cout << 
"***** G4FukuiRendererViewer::Wait () : Begin" << 
G4endl;
 
  147   fSceneHandler.SendStr    ( 
FR_WAIT );
 
  148   fSceneHandler.GetPrimDest().WaitSendBack( 
FR_WAIT );
 
  149 #if defined DEBUG_FR_VIEW 
  151         G4cout << 
"***** G4FukuiRendererViewer::Wait () : end" << 
G4endl;
 
  159 G4FukuiRendererViewer::SendDevice( FRDEV dev )
 
  161 #if defined DEBUG_FR_VIEW 
  163         G4cout << 
"***** G4FukuiRendererViewer::SendDevice() " << 
G4endl;
 
  168         if( dev >= FRDEV_PS || dev < FRDEV_DEVICE_END ) {
 
  169                 fSceneHandler.SendStrInt ( 
FR_DEVICE, dev );
 
  175 void  G4FukuiRendererViewer::SendDrawingStyle() 
 
  177 #if defined DEBUG_FR_VIEW 
  179         G4cout << 
"***** G4FukuiRendererViewer::SendDrawingStyle() " << 
G4endl;
 
  182         G4int  style = fVP.GetDrawingStyle();
 
  205 void G4FukuiRendererViewer::SendViewParameters () 
 
  211 #if defined DEBUG_FR_VIEW 
  213     G4cout << 
"***** G4FukuiRendererViewer::SendViewParameters()" << 
G4endl;
 
  218         const    G4double        MIN_HALF_ANGLE     = 0.01         ;
 
  224         G4double  radius = fSceneHandler.GetScene()->GetExtent().GetExtentRadius();
 
  226         G4double half_view_angle  = std::fabs ( fVP.GetFieldHalfAngle () ) ;
 
  227         if( half_view_angle > MAX_HALF_ANGLE ) { 
 
  228           half_view_angle = MAX_HALF_ANGLE ; 
 
  231         if( half_view_angle < MIN_HALF_ANGLE ) {
 
  233                 camera_distance = radius * HOW_FAR ;  
 
  236                 camera_distance = radius / std::sin ( half_view_angle );
 
  237                 camera_distance -= fVP.GetDolly();
 
  240         if ( camera_distance < radius ) { 
 
  242                 G4cout << 
"WARNING from FukuiRenderer (DAWN) driver:" << 
G4endl;
 
  243                 G4cout << 
"  Camera cannot enter inside objects"      << 
G4endl;
 
  245                 camera_distance = radius ; 
 
  250           = fVP.GetViewpointDirection().unit();
 
  251         const G4double v_angle =  (180.0 / 
pi) * camera_direction.theta() ;
 
  252         const G4double h_angle =  (180.0 / 
pi) * camera_direction.phi  () ;
 
  262           = fSceneHandler.GetScene()->GetStandardTargetPoint()
 
  263           + fVP.GetCurrentTargetPoint();
 
  272         const G4double   zoom_factor  = fVP.GetZoomFactor();
 
  275         if( half_view_angle < MIN_HALF_ANGLE ) {
 
  278                         = fSceneHandler.GetScene()->GetStandardTargetPoint();
 
  282                                        std_target_point.x(), 
 
  283                                        std_target_point.y(), 
 
  284                                        std_target_point.z());
 
  290                 const G4double FR_HALF_SCREEN_SIZE = 0.5 ;
 
  292                   = FR_HALF_SCREEN_SIZE / std::tan( half_view_angle ); 
 
  293                 focal_distance *= zoom_factor ;
 
  298         if( fSceneHandler.GetSystem().IsGUIMode() ) {
 
  300                 fSceneHandler.SendStr( 
FR_GUI );
 
  305                 fSceneHandler.GetPrimDest().WaitSendBack( 
FR_GUI );
 
  310 #endif // G4VIS_BUILD_DAWN_DRIVER 
const char FR_FOCAL_DISTANCE[]
 
HepGeom::Point3D< G4double > G4Point3D
 
HepGeom::Vector3D< G4double > G4Vector3D
 
const char FR_TARGET_POINT[]
 
G4GLOB_DLL std::ostream G4cout
 
const char FR_ZOOM_FACTOR[]
 
static Verbosity GetVerbosity()
 
const char FR_CAMERA_POSITION[]
 
const char FR_WIREFRAME[]