当前位置: 首页>>代码示例>>C++>>正文


C++ VisWindow::GetViewAxisArray方法代码示例

本文整理汇总了C++中VisWindow::GetViewAxisArray方法的典型用法代码示例。如果您正苦于以下问题:C++ VisWindow::GetViewAxisArray方法的具体用法?C++ VisWindow::GetViewAxisArray怎么用?C++ VisWindow::GetViewAxisArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在VisWindow的用法示例。


在下文中一共展示了VisWindow::GetViewAxisArray方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: pow

void
NavigateAxisArray::ZoomVertical(double f)
{
    vtkRenderWindowInteractor *rwi = Interactor;

    //
    // Calculate the zoom factor.
    //
    double zoomFactor = pow((double)1.1, f);

    //
    // Calculate the new parallel scale.
    //
    VisWindow *vw = proxy;

    avtViewAxisArray newViewAxisArray = vw->GetViewAxisArray();

    double yDist = newViewAxisArray.range[1] - newViewAxisArray.range[0];
    double dY = ((1. / zoomFactor) - 1.) * (yDist / 2.);

    newViewAxisArray.range[0]  -= dY;
    newViewAxisArray.range[1]  += dY;

    vw->SetViewAxisArray(newViewAxisArray);
}
开发者ID:HarinarayanKrishnan,项目名称:VisIt26RC_Trunk,代码行数:25,代码来源:NavigateAxisArray.C

示例2:

void
NavigateAxisArray::ZoomVerticalFixed(double f)
{
    vtkRenderWindowInteractor *rwi = Interactor;

    VisWindow *vw = proxy;

    avtViewAxisArray newViewAxisArray = vw->GetViewAxisArray();

    newViewAxisArray.range[0] -= f;
    newViewAxisArray.range[1] += f;
    if (newViewAxisArray.range[0] >= newViewAxisArray.domain[1])
    {
        newViewAxisArray.range[0] += f;
        newViewAxisArray.range[1] -= f;
    }

    vw->SetViewAxisArray(newViewAxisArray);
}
开发者ID:HarinarayanKrishnan,项目名称:VisIt26RC_Trunk,代码行数:19,代码来源:NavigateAxisArray.C

示例3: switch

void
VisWinAxesArray::GetRange(double &min_x, double &max_x,
                          double &min_y, double &max_y)
{
    VisWindow *vw = mediator;

    switch (vw->GetWindowMode())
    {
      case WINMODE_AXISARRAY:
        {
        const avtViewAxisArray viewAxisArray = vw->GetViewAxisArray();
        min_x = viewAxisArray.domain[0];
        max_x = viewAxisArray.domain[1];
        min_y = viewAxisArray.range[0];
        max_y = viewAxisArray.range[1];
        }
        break;
      default:
        break;
    }
}
开发者ID:HarinarayanKrishnan,项目名称:VisIt26RC_Trunk,代码行数:21,代码来源:VisWinAxesArray.C

示例4: if

void
NavigateAxisArray::PanCamera(const int x, const int y, bool snap_horiz)
{
    vtkRenderWindowInteractor *rwi = Interactor;

    if ((OldX != x) || (OldY != y))
    {
        //
        // Determine the size of the window.
        //
        int       size[2];

        rwi->GetSize(size);

        //
        // Get the current view information.
        //
        VisWindow *vw = proxy;

        double    pan[2];

        avtViewAxisArray newView = vw->GetViewAxisArray();
        
        double xscale = (newView.domain[1] - newView.domain[0]) /
            ((newView.viewport[1] - newView.viewport[0]) * (double)(size[0]));
        double yscale = (newView.range[1] - newView.range[0]) /
            ((newView.viewport[3] - newView.viewport[2]) * (double)(size[0]));

        pan[0] = (double)(x - OldX) * xscale;
        pan[1] = (double)(y - OldY) * yscale;

        newView.domain[0] -= pan[0];
        newView.domain[1] -= pan[0];
        newView.range[0]  -= pan[1];
        newView.range[1]  -= pan[1];

        // perform a horizontal snap
        int newX = x;
        if (snap_horiz)
        {
            double dx0 = newView.domain[0] - double(int(newView.domain[0]));
            double dx1 = newView.domain[1] - double(int(newView.domain[1]));
            double dx0check = dx0 / (newView.domain[1] - newView.domain[0]);
            double dx1check = dx1 / (newView.domain[1] - newView.domain[0]);

            const double threshold = 0.025;
            if (fabs(dx0check) < threshold)
            {
                newView.domain[0] -= dx0;
                newView.domain[1] -= dx0;
                newX += int(.5 + dx0 / xscale);
            }
            else if (fabs(dx1check) < threshold)
            {
                newView.domain[0] -= dx1;
                newView.domain[1] -= dx1;
                newX += int(.5 + dx1 / xscale);
            }
        }

        if (newX == OldX && OldY == y)
        {
            // do nothing
        }
        else
        {
            vw->SetViewAxisArray(newView);

            OldX = newX;
            OldY = y;
            rwi->Render();
        }
    }
}
开发者ID:HarinarayanKrishnan,项目名称:VisIt26RC_Trunk,代码行数:74,代码来源:NavigateAxisArray.C


注:本文中的VisWindow::GetViewAxisArray方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。