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


C++ Vector4f::cwiseQuotient方法代码示例

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


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

示例1: GetEntryPoint

bool VoxRaytracer::GetEntryPoint(const HLine3f line, Vector4f &pt) const
{
    Vector4f s = m_Image->GetLocalPoint(line.direction());
    pt = m_Image->GetLocalPoint(line.origin());

    // Considers Structured grid dimensions //
    Vector4f dims = m_Image->GetDims().homogeneous().cast<float>();
    pt = pt.cwiseQuotient(dims);
    s  = s.cwiseQuotient(dims);

    float l = s.head(3).norm();
    Vector3f L(l/s(0), l/s(1), l/s(2));

    Vector3f offset;
    for(int i=0;i<3;++i)
        offset(i) = (s(i)>0) - (pt(i)-floor(pt(i))) ;
    offset = offset.cwiseProduct(L).cwiseAbs();

    int id; float d;
    for(int loop=0; loop<8; loop++)
    {
        int check_border = 0;
        for ( int i=0; i<3 ;++i) {
            check_border += pt(i) > 1;
            check_border += pt(i) < 0;
        }
        if(check_border == 0) {
            for(int i=0;i<3;++i)
                pt(i) *= (float)dims(i);
            pt = m_Image->GetWorldPoint(pt);
            return true;
        }

       d = offset.minCoeff(&id);
       for(int i=0; i<3; ++i)
           pt(i) += d / L(i);

       pt(id) = rintf(pt(id));


       offset.array() -= d;
       offset(id) = fabs(L(id));
    }
    for(int i=0;i<3;++i)
        pt(i) *= (float)dims(i);
    pt = m_Image->GetWorldPoint(pt);
    return false;
}
开发者ID:AndreaRigoni,项目名称:uLib,代码行数:48,代码来源:VoxRaytracer.cpp


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