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

📄 mgcbezierrectangle3.cpp

📁 《3D游戏引擎设计》的源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
            kSubBP.m_aakTsstt[1][1] = kTssttMM;
        }

        Subdivide(uiLevel,fDSqr,akX,akXs,akXt,akColor,akTexture,kSubBP);

        // subblock [s0,sM]x[tM,t1]
        kSubBP.m_uiI00 = uiI0M;
        kSubBP.m_uiI01 = rkBP.m_uiI01;
        kSubBP.m_uiI10 = uiIMM;
        kSubBP.m_uiI11 = uiIM1;

        kSubBP.m_aakXss[0][0] = kXss0M;
        kSubBP.m_aakXss[0][1] = rkBP.m_aakXss[0][1];
        kSubBP.m_aakXss[1][0] = kXssMM;
        kSubBP.m_aakXss[1][1] = kXssM1;
        kSubBP.m_aakXtt[0][0] = kXtt0M;
        kSubBP.m_aakXtt[0][1] = rkBP.m_aakXtt[0][1];
        kSubBP.m_aakXtt[1][0] = kXttMM;
        kSubBP.m_aakXtt[1][1] = kXttM1;
        kSubBP.m_aakXsstt[0][0] = kXsstt0M;
        kSubBP.m_aakXsstt[0][1] = rkBP.m_aakXsstt[0][1];
        kSubBP.m_aakXsstt[1][0] = kXssttMM;
        kSubBP.m_aakXsstt[1][1] = kXssttM1;

        if ( akXs )
        {
            kSubBP.m_akXsss[0] = kXsss0M;
            kSubBP.m_akXsss[1] = rkBP.m_akXsss[1];
            kSubBP.m_aakXsst[0][0] = kXsst0M;
            kSubBP.m_aakXsst[0][1] = rkBP.m_aakXsst[0][1];
            kSubBP.m_aakXsst[1][0] = kXsstMM;
            kSubBP.m_aakXsst[1][1] = kXsstM1;
            kSubBP.m_aakXstt[0][0] = kXstt0M;
            kSubBP.m_aakXstt[0][1] = rkBP.m_aakXstt[0][1];
            kSubBP.m_aakXstt[1][0] = kXsttMM;
            kSubBP.m_aakXstt[1][1] = kXsttM1;
            kSubBP.m_akXttt[0] = rkBP.m_akXttt[0];
            kSubBP.m_akXttt[1] = kXtttM0;
            kSubBP.m_akXssstt[0] = kXssstt0M;
            kSubBP.m_akXssstt[1] = rkBP.m_akXssstt[1];
            kSubBP.m_akXssttt[0] = rkBP.m_akXssttt[0];
            kSubBP.m_akXssttt[1] = kXsstttM0;
        }

        if ( akColor )
        {
            kSubBP.m_aakCss[0][0] = kCss0M;
            kSubBP.m_aakCss[0][1] = rkBP.m_aakCss[0][1];
            kSubBP.m_aakCss[1][0] = kCssMM;
            kSubBP.m_aakCss[1][1] = kCssM1;
            kSubBP.m_aakCtt[0][0] = kCtt0M;
            kSubBP.m_aakCtt[0][1] = rkBP.m_aakCtt[0][1];
            kSubBP.m_aakCtt[1][0] = kCttMM;
            kSubBP.m_aakCtt[1][1] = kCttM1;
            kSubBP.m_aakCsstt[0][0] = kCsstt0M;
            kSubBP.m_aakCsstt[0][1] = rkBP.m_aakCsstt[0][1];
            kSubBP.m_aakCsstt[1][0] = kCssttMM;
            kSubBP.m_aakCsstt[1][1] = kCssttM1;
        }

        if ( akTexture )
        {
            kSubBP.m_aakTss[0][0] = kTss0M;
            kSubBP.m_aakTss[0][1] = rkBP.m_aakTss[0][1];
            kSubBP.m_aakTss[1][0] = kTssMM;
            kSubBP.m_aakTss[1][1] = kTssM1;
            kSubBP.m_aakTtt[0][0] = kTtt0M;
            kSubBP.m_aakTtt[0][1] = rkBP.m_aakTtt[0][1];
            kSubBP.m_aakTtt[1][0] = kTttMM;
            kSubBP.m_aakTtt[1][1] = kTttM1;
            kSubBP.m_aakTsstt[0][0] = kTsstt0M;
            kSubBP.m_aakTsstt[0][1] = rkBP.m_aakTsstt[0][1];
            kSubBP.m_aakTsstt[1][0] = kTssttMM;
            kSubBP.m_aakTsstt[1][1] = kTssttM1;
        }

        Subdivide(uiLevel,fDSqr,akX,akXs,akXt,akColor,akTexture,kSubBP);

        // subblock [sM,s1]x[t0,tM]
        kSubBP.m_uiI00 = uiIM0;
        kSubBP.m_uiI01 = uiIMM;
        kSubBP.m_uiI10 = rkBP.m_uiI10;
        kSubBP.m_uiI11 = uiI1M;

        kSubBP.m_aakXss[0][0] = kXssM0;
        kSubBP.m_aakXss[0][1] = kXssMM;
        kSubBP.m_aakXss[1][0] = rkBP.m_aakXss[1][0];
        kSubBP.m_aakXss[1][1] = kXss1M;
        kSubBP.m_aakXtt[0][0] = kXttM0;
        kSubBP.m_aakXtt[0][1] = kXttMM;
        kSubBP.m_aakXtt[1][0] = rkBP.m_aakXtt[1][0];
        kSubBP.m_aakXtt[1][1] = kXtt1M;
        kSubBP.m_aakXsstt[0][0] = kXssttM0;
        kSubBP.m_aakXsstt[0][1] = kXssttMM;
        kSubBP.m_aakXsstt[1][0] = rkBP.m_aakXsstt[1][0];
        kSubBP.m_aakXsstt[1][1] = kXsstt1M;

        if ( akXs )
        {
            kSubBP.m_akXsss[0] = rkBP.m_akXsss[0];
            kSubBP.m_akXsss[1] = kXsss0M;
            kSubBP.m_aakXsst[0][0] = kXsstM0;
            kSubBP.m_aakXsst[0][1] = kXsstMM;
            kSubBP.m_aakXsst[1][0] = rkBP.m_aakXsst[1][0];
            kSubBP.m_aakXsst[1][1] = kXsst1M;
            kSubBP.m_aakXstt[0][0] = kXsttM0;
            kSubBP.m_aakXstt[0][1] = kXsttMM;
            kSubBP.m_aakXstt[1][0] = rkBP.m_aakXstt[1][0];
            kSubBP.m_aakXstt[1][1] = kXstt1M;
            kSubBP.m_akXttt[0] = kXtttM0;
            kSubBP.m_akXttt[1] = rkBP.m_akXttt[1];
            kSubBP.m_akXssstt[0] = rkBP.m_akXssstt[0];
            kSubBP.m_akXssstt[1] = kXssstt0M;
            kSubBP.m_akXssttt[0] = kXsstttM0;
            kSubBP.m_akXssttt[1] = rkBP.m_akXssttt[1];
        }

        if ( akColor )
        {
            kSubBP.m_aakCss[0][0] = kCssM0;
            kSubBP.m_aakCss[0][1] = kCssMM;
            kSubBP.m_aakCss[1][0] = rkBP.m_aakCss[1][0];
            kSubBP.m_aakCss[1][1] = kCss1M;
            kSubBP.m_aakCtt[0][0] = kCttM0;
            kSubBP.m_aakCtt[0][1] = kCttMM;
            kSubBP.m_aakCtt[1][0] = rkBP.m_aakCtt[1][0];
            kSubBP.m_aakCtt[1][1] = kCtt1M;
            kSubBP.m_aakCsstt[0][0] = kCssttM0;
            kSubBP.m_aakCsstt[0][1] = kCssttMM;
            kSubBP.m_aakCsstt[1][0] = rkBP.m_aakCsstt[1][0];
            kSubBP.m_aakCsstt[1][1] = kCsstt1M;
        }

        if ( akTexture )
        {
            kSubBP.m_aakTss[0][0] = kTssM0;
            kSubBP.m_aakTss[0][1] = kTssMM;
            kSubBP.m_aakTss[1][0] = rkBP.m_aakTss[1][0];
            kSubBP.m_aakTss[1][1] = kTss1M;
            kSubBP.m_aakTtt[0][0] = kTttM0;
            kSubBP.m_aakTtt[0][1] = kTttMM;
            kSubBP.m_aakTtt[1][0] = rkBP.m_aakTtt[1][0];
            kSubBP.m_aakTtt[1][1] = kTtt1M;
            kSubBP.m_aakTsstt[0][0] = kTssttM0;
            kSubBP.m_aakTsstt[0][1] = kTssttMM;
            kSubBP.m_aakTsstt[1][0] = rkBP.m_aakTsstt[1][0];
            kSubBP.m_aakTsstt[1][1] = kTsstt1M;
        }

        Subdivide(uiLevel,fDSqr,akX,akXs,akXt,akColor,akTexture,kSubBP);

        // subblock [sM,s1]x[tM,t1]
        kSubBP.m_uiI00 = uiIMM;
        kSubBP.m_uiI01 = uiIM1;
        kSubBP.m_uiI10 = uiI1M;
        kSubBP.m_uiI11 = rkBP.m_uiI11;

        kSubBP.m_aakXss[0][0] = kXssMM;
        kSubBP.m_aakXss[0][1] = kXssM1;
        kSubBP.m_aakXss[1][0] = kXss1M;
        kSubBP.m_aakXss[1][1] = rkBP.m_aakXss[1][1];
        kSubBP.m_aakXtt[0][0] = kXttMM;
        kSubBP.m_aakXtt[0][1] = kXttM1;
        kSubBP.m_aakXtt[1][0] = kXtt1M;
        kSubBP.m_aakXtt[1][1] = rkBP.m_aakXtt[1][1];
        kSubBP.m_aakXsstt[0][0] = kXssttMM;
        kSubBP.m_aakXsstt[0][1] = kXssttM1;
        kSubBP.m_aakXsstt[1][0] = kXsstt1M;
        kSubBP.m_aakXsstt[1][1] = rkBP.m_aakXsstt[1][1];

        if ( akXs )
        {
            kSubBP.m_akXsss[0] = kXsss0M;
            kSubBP.m_akXsss[1] = rkBP.m_akXsss[1];
            kSubBP.m_aakXsst[0][0] = kXsstMM;
            kSubBP.m_aakXsst[0][1] = kXsstM1;
            kSubBP.m_aakXsst[1][0] = kXsst1M;
            kSubBP.m_aakXsst[1][1] = rkBP.m_aakXsst[1][1];
            kSubBP.m_aakXstt[0][0] = kXsttMM;
            kSubBP.m_aakXstt[0][1] = kXsttM1;
            kSubBP.m_aakXstt[1][0] = kXstt1M;
            kSubBP.m_aakXstt[1][1] = rkBP.m_aakXstt[1][1];
            kSubBP.m_akXttt[0] = kXtttM0;
            kSubBP.m_akXttt[1] = rkBP.m_akXttt[1];
            kSubBP.m_akXssstt[0] = kXssstt0M;
            kSubBP.m_akXssstt[1] = rkBP.m_akXssstt[1];
            kSubBP.m_akXssttt[0] = kXsstttM0;
            kSubBP.m_akXssttt[1] = rkBP.m_akXssttt[1];
        }

        if ( akColor )
        {
            kSubBP.m_aakCss[0][0] = kCssMM;
            kSubBP.m_aakCss[0][1] = kCssM1;
            kSubBP.m_aakCss[1][0] = kCss1M;
            kSubBP.m_aakCss[1][1] = rkBP.m_aakCss[1][1];
            kSubBP.m_aakCtt[0][0] = kCttMM;
            kSubBP.m_aakCtt[0][1] = kCttM1;
            kSubBP.m_aakCtt[1][0] = kCtt1M;
            kSubBP.m_aakCtt[1][1] = rkBP.m_aakCtt[1][1];
            kSubBP.m_aakCsstt[0][0] = kCssttMM;
            kSubBP.m_aakCsstt[0][1] = kCssttM1;
            kSubBP.m_aakCsstt[1][0] = kCsstt1M;
            kSubBP.m_aakCsstt[1][1] = rkBP.m_aakCsstt[1][1];
        }

        if ( akTexture )
        {
            kSubBP.m_aakTss[0][0] = kTssMM;
            kSubBP.m_aakTss[0][1] = kTssM1;
            kSubBP.m_aakTss[1][0] = kTss1M;
            kSubBP.m_aakTss[1][1] = rkBP.m_aakTss[1][1];
            kSubBP.m_aakTtt[0][0] = kTttMM;
            kSubBP.m_aakTtt[0][1] = kTttM1;
            kSubBP.m_aakTtt[1][0] = kTtt1M;
            kSubBP.m_aakTtt[1][1] = rkBP.m_aakTtt[1][1];
            kSubBP.m_aakTsstt[0][0] = kTssttMM;
            kSubBP.m_aakTsstt[0][1] = kTssttM1;
            kSubBP.m_aakTsstt[1][0] = kTsstt1M;
            kSubBP.m_aakTsstt[1][1] = rkBP.m_aakTsstt[1][1];
        }

        Subdivide(uiLevel,fDSqr,akX,akXs,akXt,akColor,akTexture,kSubBP);
    }
}
//----------------------------------------------------------------------------

//----------------------------------------------------------------------------
// streaming
//----------------------------------------------------------------------------
MgcObject* MgcBezierRectangle3::Factory (MgcStream& rkStream)
{
    MgcBezierRectangle3* pkObject = new MgcBezierRectangle3;
    MgcStream::Link* pkLink = new MgcStream::Link(pkObject);
    pkObject->Load(rkStream,pkLink);
    return pkObject;
}
//----------------------------------------------------------------------------
void MgcBezierRectangle3::Load (MgcStream& rkStream, MgcStream::Link* pkLink)
{
    MgcBezierRectangle::Load(rkStream,pkLink);
}
//----------------------------------------------------------------------------
void MgcBezierRectangle3::Link (MgcStream& rkStream, MgcStream::Link* pkLink)
{
    MgcBezierRectangle::Link(rkStream,pkLink);
}
//----------------------------------------------------------------------------
bool MgcBezierRectangle3::Register (MgcStream& rkStream)
{
    return MgcBezierRectangle::Register(rkStream);
}
//----------------------------------------------------------------------------
void MgcBezierRectangle3::Save (MgcStream& rkStream)
{
    MgcBezierRectangle::Save(rkStream);
}
//----------------------------------------------------------------------------

⌨️ 快捷键说明

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