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

📄 view.c

📁 seismic software,very useful
💻 C
📖 第 1 页 / 共 4 页
字号:
    switch (view->rate ){       case VIEW_RATE_ALL:        block = 1;        break;       case VIEW_RATE_TENTHS:        block = 10;        break;       case VIEW_RATE_EACH:        block = 10000;        break;    }    switch (view->movie ){        /* front */       case MOVIE_FRONT:        block = MapSize(view->map[AXIS_DEEP]) / block;        block = block > 0 ? block : 1;        MapSetFrame(view->map[AXIS_DEEP],                    MapMap(view->map[AXIS_DEEP],                           MapFrame1(view->map[AXIS_DEEP])));        RENDER_ATTR(1, 0, 0, 0, 1, 0, 0, 0, 0, 0);        RenderHorz(data, view->map[AXIS_ACROSS],                   view->map[AXIS_DOWN], view->map[AXIS_DEEP],                   view->map[AXIS_4D], view->map[AXIS_5D],                   view->margins[MARGIN_LEFT] + MapSize(view->map[AXIS_DEEP]) -                   MapFrame1(view->map[AXIS_DEEP]),                   view->margins[MARGIN_TOP] + MapFrame1(view->map[AXIS_DEEP]),                   render, view->margins, _attr_);        if( MapFrame1(view->map[AXIS_DEEP])            && (MapFrame1(view->map[AXIS_DEEP]) % block) == 0 ){            RenderDraw();        }        if( MapFrame1(view->map[AXIS_DEEP]) < MapSize(view->map[AXIS_DEEP]) - 1 ){            UITimer(1, ViewDrawTranspCallback);        }else{            RenderDraw();            MapRestoreFrame(view->map[AXIS_DEEP]);            TymeEnd(MapSize(view->map[AXIS_DOWN]) *                    MapSize(view->map[AXIS_ACROSS]) *                    MapSize(view->map[AXIS_DEEP]));            DrawWatch(0);        }        MapSetFrame1(view->map[AXIS_DEEP], MapFrame1(view->map[AXIS_DEEP]) + 1);        break;        /* side */       case MOVIE_SIDE:        block = MapSize(view->map[AXIS_ACROSS]) / block;        block = block > 0 ? block : 1;        MapSetFrame(view->map[AXIS_ACROSS],                    MapMap(view->map[AXIS_ACROSS],                           MapFrame1(view->map[AXIS_ACROSS])));        RENDER_ATTR(1, 1, 0, 0, 1, 0, 0, 0, 0, 0);        RenderVert(data, view->map[AXIS_DEEP], view->map[AXIS_DOWN],                   view->map[AXIS_ACROSS], view->map[AXIS_4D],                   view->map[AXIS_5D],                   view->margins[MARGIN_LEFT] +                   MapFrame1(view->map[AXIS_ACROSS]),                   MapSize(view->map[AXIS_DEEP]) + view->margins[MARGIN_TOP],                   render, view->margins, _attr_);        if( MapFrame1(view->map[AXIS_ACROSS])            && MapFrame1(view->map[AXIS_ACROSS]) % block == 0)            RenderDraw();        if( MapFrame1(view->map[AXIS_ACROSS]) <            MapSize(view->map[AXIS_ACROSS]) - 1 ){            UITimer(1, ViewDrawTranspCallback);        }else{            RenderDraw();            MapRestoreFrame(view->map[AXIS_ACROSS]);            TymeEnd(MapSize(view->map[AXIS_DOWN]) *                    MapSize(view->map[AXIS_ACROSS]) *                    MapSize(view->map[AXIS_DEEP]));            DrawWatch(0);        }        MapSetFrame1(view->map[AXIS_ACROSS],                     MapFrame1(view->map[AXIS_ACROSS]) + 1);        break;        /* top */       case MOVIE_TOP:        block = MapSize(view->map[AXIS_DOWN]) / block;        block = block > 0 ? block : 1;        MapSetFrame(view->map[AXIS_DOWN],                    MapMap(view->map[AXIS_DOWN],                           MapFrame1(view->map[AXIS_DOWN])));        RENDER_ATTR(1, 1, 0, 0, 1, 0, 0, 0, 0, 0);        RenderHorz(data, view->map[AXIS_ACROSS],                   view->map[AXIS_DEEP], view->map[AXIS_DOWN],                   view->map[AXIS_4D], view->map[AXIS_5D],                   view->margins[MARGIN_LEFT],                   view->margins[MARGIN_TOP] + MapFrame1(view->map[AXIS_DOWN]),                   render, view->margins, _attr_);        if( MapFrame1(view->map[AXIS_DOWN]) != MapSize(view->map[AXIS_DOWN]) - 1            && MapFrame1(view->map[AXIS_DOWN]) % block == 0 ){            RenderDraw();        }        if( MapFrame1(view->map[AXIS_DOWN]) > 0 ){            UITimer(1, ViewDrawTranspCallback);        }else{            RenderDraw();            MapRestoreFrame(view->map[AXIS_DOWN]);            TymeEnd(MapSize(view->map[AXIS_DOWN]) *                    MapSize(view->map[AXIS_ACROSS]) *                    MapSize(view->map[AXIS_DEEP]));            DrawWatch(0);        }        MapSetFrame1(view->map[AXIS_DOWN], MapFrame1(view->map[AXIS_DOWN]) - 1);        break;    }}/* callback to draw entire view */void ViewDrawAll(void){    extern View view;    if( !view ){        return;    }    if( UIFirst() ){        MainFirst();    }    ColorbarDraw();    ViewDraw(view, DRAW_ALL);    if( view->style != VIEW_TRANSP ){        RenderDraw();    }}/* callback to draw only current movie frame panel plus crosslines */void ViewDrawMovie(void){    int      h0, v0, nh, nv, mode = 0;    extern View view;    Map      map;    if( !view ){        return;    }    map = ViewMovieMap(view);    MapNextFrame(map);    if( MovieCache() ){        mode = DrawPixmap(MapFrame(map));    }    mode = (1 - mode) * DRAW_IMAGE;    switch (view->movie ){       case MOVIE_TOP:        ViewDraw(view, DRAW_TOP | mode);        break;       case MOVIE_SIDE:        ViewDraw(view, DRAW_SIDE | mode);        break;       case MOVIE_FRONT:        ViewDraw(view, DRAW_FRONT | mode);        break;    }    if( mode ){        RenderDraw();        if( MovieCache() ){            DrawSavePixmap(MapFrame(map));        }    }#ifdef XAW    if( MovieRun() ){        UITimer(MovieDelay() + 1, ViewDrawMovie);    }#endif#ifdef XM    if( MovieRun() ){        UITimer(MovieDelay() * 10 + 1, ViewDrawMovie);    }#endif    UIWakeup();}/* set movie option */void ViewSetMovie(int movie){    extern View view;    Map      map;    if( !view ){        return;    }    view->movie = movie;    map = ViewMovieMap(view);    DrawFreePixmaps();    if( view->style == VIEW_TRANSP ){        ViewDraw(view, DRAW_ALL);    }}/* initialize movie bounds */void ViewMovieFullBounds(void){    int      imap;    extern View view;    MovieOff();    for( imap = 1; imap < VIEW_NAXIS; imap++ ){        MapSetFrameBounds(view->map[imap], MapFirst(view->map[imap]),                          MapLast(view->map[imap]));        MapSetDmovie(view->map[imap], 1);    }}/* one of 3d views? */int View3D(void){    extern View view;    switch (view->style ){       case VIEW_THREE:       case VIEW_CUBE:       case VIEW_FENCE:        return (1);        break;       default:        return (0);        break;    }}/* OK to turn on movie */int ViewMovieOK(void){    extern View view;    switch (view->style ){       case VIEW_CUBE:       case VIEW_THREE:       case VIEW_FRONT:       case VIEW_SIDE:       case VIEW_TOP:        return (1);        break;       default:        return (0);        break;    }}/* set view option */void ViewSetStyle(int style){    extern View view;    int      size;    if( !view ){        return;    }    if( style == view->style ){        return;    }    view->style = style;    /* shape defaults with view style */    /* set movie directions too */    switch (style ){       case VIEW_TRANSP:        view->shape = SHAPE_PIXEL;        view->movie = MOVIE_SIDE;        break;       case VIEW_FRONT:        view->movie = MOVIE_FRONT;        break;       case VIEW_SIDE:        view->movie = MOVIE_SIDE;/*--------------------------------------------------------------------*\        if( view->map[AXIS_DEEP]->first > view->map[AXIS_DEEP]->last ){            MapFlip(view->map[AXIS_DEEP]);        }\*--------------------------------------------------------------------*/        break;       case VIEW_TOP:        view->movie = MOVIE_TOP;        break;    }    MovieOff();    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);    RenderDraw();}/* set fence mode */void ViewSetFence(int mode){    extern View view;    if( !view ){        return;    }    view->fence = mode;    view->style = VIEW_FENCE;    DrawFreePixmaps();    ViewDraw(view, DRAW_ALL);    RenderDraw();}/* set transparency draw rate */void ViewSetTranspRate(int mode){    extern View view;    if( !view ){        return;    }    if( view->rate == mode ){        return;    }    view->rate = mode;}/* set shape mode */void ViewSetShape(int shape){    extern View view;    if( !view ){        return;    }    if( view->shape != shape ){        view->shape = shape;        ViewSize(view);        ViewDraw(view, DRAW_ALL);        RenderDraw();    }}/* set fence mode */void ViewToggleFence(int mode){    extern View view;    if( !view ){        return;    }    view->fence ^= mode;    view->style = VIEW_FENCE;    DrawFreePixmaps();    ViewDraw(view, DRAW_ALL);    RenderDraw();}/* set two cross line frames */void ViewSetFrames(int x, int y){    extern View view;    Map      map;    PickPoint_ pick;    int      iaxis;    if( !view ){        return;    }    /* undefined views */    switch (view->style ){       case VIEW_FRONT:       case VIEW_SIDE:       case VIEW_TOP:       case VIEW_XSEC:       case VIEW_ARRAY:       case VIEW_TRANSP:        return;    }    /* translate pick */    PickDecode(x, y, &pick, 1);    /* reset frames */    for( iaxis = 1; iaxis < VIEW_NAXIS; iaxis++ ){        map = view->map[iaxis];        MapSetFrame(map, pick.index[AxisDir(MapAxis(map))]);    }    DrawFreePixmaps();    ViewDraw(view, DRAW_ALL);    RenderDraw();}/* set frame from slider */void ViewSetFrame(int index, int mode){    extern View view;    Map      map;    int      frame;    map = ViewMovieMap(view);    if( mode == FRAME_PERCENT ){        frame = MapLow(map) + (index * (MapHigh(map) - MapLow(map))) / 100;    }    MapSetFrame(map, frame);    if( view->style == VIEW_ARRAY ){        RenderClear();        DrawClear();    }    switch (view->movie ){       case MOVIE_TOP:        ViewDraw(view, DRAW_TOP);        break;       case MOVIE_SIDE:        ViewDraw(view, DRAW_SIDE);        break;       case MOVIE_FRONT:        ViewDraw(view, DRAW_FRONT);        break;    }    RenderDraw();}/* set pick mode */void ViewSetPick(int pick){    extern View view;    if( !view ){        return;    }    if( pick != view->showpicks ){        PickDrawAll(pick);    }    view->showpicks = pick;    PikDraw(NO_INDEX, view->showpicks);}/* toggle pick mode */void ViewTogglePick(void)

⌨️ 快捷键说明

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