⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 view.c

📁 seismic software,very useful
💻 C
📖 第 1 页 / 共 4 页
字号:
{    extern View view;    if( !view ){        return;    }    view->showpicks = 1 - view->showpicks;    PickDrawAll(view->showpicks);    PikDraw(NO_INDEX, view->showpicks);}/* return pick state */int ViewPick(void){    extern View view;    if( !view ){        return (0);    }else{        return (view->showpicks);    }}/* return view movie */int ViewMovie(void){    extern View view;    if( !view ){        return (NO_INDEX);    }    return (view->movie);}/* return map axis */Map      ViewMovieMap(View view){    return (view->map[view->movie]);}/* set frames to middle */void ViewFramesMiddle(void){    extern View view;    int      imap;    if( !view ){        return;    }    for( imap = 1; imap < VIEW_NAXIS; imap++ ){        MapSetFrameBounds(view->map[imap], MapFirst(view->map[imap]),                          MapLast(view->map[imap]));        MapSetFrame(view->map[imap],                    (MapFirst(view->map[imap]) + MapLast(view->map[imap])) / 2);    }    ViewDrawAll();}/* set frames to origin */void ViewFramesOrigin(void){    extern View view;    int      imap;    if( !view ){        return;    }    for( imap = 1; imap < VIEW_NAXIS; imap++ ){        MapSetFrame(view->map[imap], 0);    }    ViewDrawAll();}/* swap two map axes and draw */void ViewSwapAxis(int a, int b){    extern View view;    Map      map;    if( !view ){        return;    }    if( MapSize(view->map[b]) <= 1 || MapSize(view->map[b]) <= 1 ){        return;    }    if( view->shape == SHAPE_FIT ){        MapSwap(view->map[a], view->map[b]);        DrawFreePixmaps();    }else{        map = view->map[a];        view->map[a] = view->map[b];        view->map[b] = map;    }    ViewSize(view);    MapSetTics(view->map[a]);    MapSetTics(view->map[b]);    ViewSetMovie(view->movie);    if( view->style != VIEW_ARRAY ){        ViewDrawAll();    }}/* flip an axes direction */void ViewFlipAxis(int imap){    extern View view;    if( !view ){        return;    }    MapFlip(view->map[imap]);    DrawFreePixmaps();    ViewDraw(view, DRAW_ALL);    RenderDraw();}/* magnification window given corner coordinates */void ViewWindow(int x1, int y1, int x2, int y2, int hzoom, int vzoom){    extern View view;    extern Data data;    Map      map;    int      v, iaxis, haxis, vaxis;    PickPoint_ pick11, pick12, pick21, pick22;    PickPoint_ bad = { {-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1,-1,-1}};    if( !view ){        return;    }    /* slippy mouse tolerance is five pixels */    if( hzoom && (x1 - x2) * (x1 - x2) < 25 ){        return;    }    if( vzoom && (y1 - y2) * (y1 - y2) < 25 ){        return;    }    /* fetch indices */    PickDecode((x1 < x2 ? x1 : x2), (y1 < y2 ? y1 : y2), &pick11, 0);    PickDecode((x1 < x2 ? x1 : x2), (y1 > y2 ? y1 : y2), &pick12, 0);    PickDecode((x1 > x2 ? x1 : x2), (y1 < y2 ? y1 : y2), &pick21, 0);    PickDecode((x1 > x2 ? x1 : x2), (y1 > y2 ? y1 : y2), &pick22, 0);        if(  !memcmp(&pick11 ,&bad , sizeof(bad) )       || !memcmp(&pick12 ,&bad , sizeof(bad) )       || !memcmp(&pick21 ,&bad , sizeof(bad) )       || !memcmp(&pick22 ,&bad , sizeof(bad) ) ){        return;    }/*--------------------------------------------------------------------*\       if( PickSameDir (&pick11,&pick22) ){ printf ("Pick direction is       %s\n",AxisLabel(data->axis[pick11.iaxis[AXIS_DEEP]])); } if       (PickSameFrame (&pick11,&pick22) ){ iaxis = pick11.iaxis[AXIS_DEEP];       printf ("Pick frame is       %s\n",AxisScript(data->axis[iaxis],pick11.index[iaxis])); } if       ((haxis=PickSharedDir (&pick11,&pick12)) > 0 ){ printf ("Pick       horizontal is %s\n",AxisLabel(data->axis[haxis])); } if       ((vaxis=PickSharedDir (&pick11,&pick21)) > 0 ){ printf ("Pick vertical        is %s\n",AxisLabel(data->axis[vaxis])); } printf ("\n"); \*--------------------------------------------------------------------*/    /* window across an array of frames */    if( view->style == VIEW_ARRAY && PickSameDir(&pick11, &pick22)        && !PickSameFrame(&pick11, &pick22) ){        MapSetFrameBounds(view->map[AXIS_DEEP], pick11.index[haxis],                          pick22.index[vaxis]);        UIArrayReset(0);        UIArrayDraw();        return;    }    /* within a frame */    if( !PickSameFrame(&pick11, &pick22) ){        return;    }    /* sort out horizontal and vertical axes; horizontal is that which       differs for two corners with same y coordinate vertical is that which       differs for two corners with same x coordinate */    haxis = PickSharedDir(&pick11, &pick12);    vaxis = PickSharedDir(&pick11, &pick21);    /* one of these will fail for a skewed plot; then the answer is the       remaining coordinate */    if( !haxis ){        if( !vaxis ){            return;        }        if( vaxis == pick11.iaxis[AXIS_ACROSS] ){            haxis = pick11.iaxis[AXIS_DOWN];        }else{            haxis = pick11.iaxis[AXIS_ACROSS];        }    }    if( !vaxis ){        if( !haxis ){            return;        }        if( haxis == pick11.iaxis[AXIS_ACROSS] ){            vaxis = pick11.iaxis[AXIS_DOWN];        }else{            vaxis = pick11.iaxis[AXIS_ACROSS];        }    }    /* map */    if( hzoom ){        for( iaxis = 1; iaxis < VIEW_NAXIS; iaxis++ ){            if( AxisDir(MapAxis(view->map[iaxis])) == haxis ){                break;            }        }        map = view->map[iaxis];        MapSet(map, MapAxis(map), MapSize(map),               pick11.index[haxis], pick22.index[haxis],               pick11.index[haxis], pick22.index[haxis], MapDmovie(map));    }    if( vzoom ){        for( iaxis = 1; iaxis < VIEW_NAXIS; iaxis++ ){            if( AxisDir(MapAxis(view->map[iaxis])) == vaxis ){                break;            }        }        map = view->map[iaxis];        MapSet(map, MapAxis(map), MapSize(map),               pick11.index[vaxis], pick22.index[vaxis],               pick11.index[vaxis], pick22.index[vaxis], MapDmovie(map));    }    /* non-cube shapes require resize */    if( view->shape == SHAPE_TRUE || view->shape == SHAPE_PIXEL ){        ViewSize(view);    }else{        DrawFreePixmaps();    }    ViewDraw(view, DRAW_ALL);    RenderDraw();}/* restore initial map */void ViewWindow0(void){    extern View view;    Map      map;    int      iaxis;    if( !view ){        return;    }    for( iaxis = 1; iaxis < VIEW_NAXIS; iaxis++ ){        map = view->map[iaxis];        MapSet(map, MapAxis(map), MapSize(map), 0, AxisSize(MapAxis(map)) - 1,               0, AxisSize(MapAxis(map)) - 1, 1);/*              MapSetFrame (map,0);*/    }    /* non-vue shapes require resize */    if( !(view->shape == SHAPE_TRUE || view->shape == SHAPE_PIXEL) ){        DrawFreePixmaps();    }    ViewSize(view);    MapSetTics( view->map[0] );    MapSetTics( view->map[1] );    MapSetTics( view->map[2] );    MapSetTics( view->map[3] );    MapSetTics( view->map[4] );    ViewDraw(view, DRAW_ALL);    ViewSetMovie(view->movie);    RenderDraw();}void ViewRestoreSize(void){    extern View view;    Map      map;    int      iaxis;    if( !view ){        return;    }    for( iaxis = 1; iaxis < VIEW_NAXIS; iaxis++ ){        map = view->map[iaxis];        if( MapFirst(map) < MapLast(map) ){            MapSet(map, MapAxis(map), MapSize(map),                0, AxisSize(MapAxis(map)) - 1,               0, AxisSize(MapAxis(map)) - 1, 1);        }else{            MapSet(map, MapAxis(map), MapSize(map),                AxisSize(MapAxis(map)) - 1, 0,               AxisSize(MapAxis(map)) - 1, 0 , 1);        }    }    /* non-vue shapes require resize */    if( !(view->shape == SHAPE_TRUE || view->shape == SHAPE_PIXEL) ){        DrawFreePixmaps();    }    ViewSize(view);    MapSetTics( view->map[0] );    MapSetTics( view->map[1] );    MapSetTics( view->map[2] );    MapSetTics( view->map[3] );    MapSetTics( view->map[4] );    ViewDraw(view, DRAW_ALL);    ViewSetMovie(view->movie);    RenderDraw();}/* return view map */Map      ViewMap(View view, int index){    if( !view || index >= VIEW_NAXIS ){        return (0);    }    return (view->map[index]);}/* return view map data axis */Axis     ViewDataAxis(View view, int imap){    return (MapAxis(view->map[imap]));}/* print view information */void ViewInfo(View view){    if( !view ){        return;    }    sprintf(message,            "Style: wide=%d hite=%d movie=%d style=%d shape=%d pick=%d across=%d down=%d delta=%d fence=%d rate=%d",            view->wide, view->hite, view->movie, view->style, view->shape,            view->showpicks, view->nacross, view->ndown, view->dacross,            view->fence, view->rate);    UIMessage(message);}/* save view parameters */void ViewSavePar(View view){    int      imap;    if( !view ){        return;    }    sprintf(message,            "Style: wide=%d hite=%d movie=%d style=%d shape=%d showpicks=%d\n      across=%d down=%d delta=%d fence=%d rate=%d",            view->wide, view->hite, view->movie, view->style, view->shape,            view->showpicks, view->nacross, view->ndown, view->dacross,            view->fence, view->rate);    UISaveMessage(message);    for( imap = 1; imap < VIEW_NAXIS; imap++ ){        MapSavePar(view->map[imap]);    }}/* initial axis orientation */void ViewOrient0(void){    extern View view;    int      imap;    Map_     map_[VIEW_NAXIS];    Map      map[VIEW_NAXIS];    /* copy map axes */    for( imap = 1; imap < VIEW_NAXIS; imap++ ){        map_[imap] = *view->map[imap];        map[imap] = &map_[imap];    }    /* replace map axes in original order */    for( imap = 1; imap < VIEW_NAXIS; imap++ ){        MapSet(view->map[AxisDir(MapAxis(map[imap]))],               MapAxis(map[imap]),               MapSize(view->map[AxisDir(MapAxis(map[imap]))]),               MapLow(map[imap]),               MapHigh(map[imap]),               MapLow(map[imap]), MapHigh(map[imap]), MapDmovie(map[imap]));        MapSetFrame(view->map[AxisDir(MapAxis(map[imap]))],                    MapFrame(map[imap]));    }    if( !(view->shape == SHAPE_TRUE || view->shape == SHAPE_PIXEL) ){        DrawFreePixmaps();    }    ViewSize(view);    MapSetTics( view->map[0] );    MapSetTics( view->map[1] );    MapSetTics( view->map[2] );    MapSetTics( view->map[3] );    MapSetTics( view->map[4] );    ViewSetMovie(view->movie);    ViewDraw(view, DRAW_ALL);    RenderDraw();}#include <sys/time.h>double   Tyme(void){    double   tyme;    struct timeval tp;    struct timezone tzp;    gettimeofday(&tp, &tzp);    tyme = tp.tv_sec;    tyme = tyme * 1000. + tp.tv_usec * .001;    return (tyme);}static double   tyme;void TymeStart(void){    tyme = Tyme();}void TymeEnd(int pixels){    if( pixels == 0 || tyme == 0.0 ){        return;    }    tyme = Tyme() - tyme;    sprintf(message, "render=%d msec pixels=%d rate=%d pixels/sec", (int) tyme,            pixels, (int) (1000. * pixels / tyme));    UIMessage(message);    tyme = 0.0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -