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

📄 texmat.cpp

📁 最新osg包
💻 CPP
字号:
#include <osg/TexMat>#include <osgDB/Registry>#include <osgDB/Input>#include <osgDB/Output>using namespace osg;using namespace osgDB;// forward declare functions to use later.bool TexMat_readLocalData(Object& obj, Input& fr);bool TexMat_writeLocalData(const Object& obj, Output& fw);// register the read and write functions with the osgDB::Registry.RegisterDotOsgWrapperProxy g_TexMatProxy(    new osg::TexMat,    "TexMat",    "Object StateAttribute TexMat",    &TexMat_readLocalData,    &TexMat_writeLocalData);bool TexMat_readLocalData(Object& obj, Input& fr){    bool iteratorAdvanced = false;    TexMat& texmat = static_cast<TexMat&>(obj);    bool matched = true;    for(int k=0;k<16 && matched;++k)    {        matched = fr[k].isFloat();    }    if (matched)    {            Matrix& matrix = texmat.getMatrix();            int k=0;        double v;        for(int i=0;i<4;++i)        {            for(int j=0;j<4;++j)            {                fr[k].getFloat(v);                matrix(i,j)=v;                k++;            }        }        fr += 16;        iteratorAdvanced = true;    }    if (fr[0].matchWord("scaleByTextureRectangleSize"))    {        if (fr[1].matchWord("TRUE"))         {            texmat.setScaleByTextureRectangleSize(true);            fr +=2 ;            iteratorAdvanced = true;        }        else if (fr[1].matchWord("FALSE"))         {            texmat.setScaleByTextureRectangleSize(false);            fr +=2 ;            iteratorAdvanced = true;        }    }    return iteratorAdvanced;}bool TexMat_writeLocalData(const Object& obj, Output& fw){    const TexMat& texmat = static_cast<const TexMat&>(obj);    const Matrix& matrix = texmat.getMatrix();    fw.indent() << matrix(0,0) << " " << matrix(0,1) << " " << matrix(0,2) << " " << matrix(0,3) << std::endl;    fw.indent() << matrix(1,0) << " " << matrix(1,1) << " " << matrix(1,2) << " " << matrix(1,3) << std::endl;    fw.indent() << matrix(2,0) << " " << matrix(2,1) << " " << matrix(2,2) << " " << matrix(2,3) << std::endl;    fw.indent() << matrix(3,0) << " " << matrix(3,1) << " " << matrix(3,2) << " " << matrix(3,3) << std::endl;        if (texmat.getScaleByTextureRectangleSize())    {        fw.indent() << "scaleByTextureRectangleSize TRUE"<<std::endl;    }         return true;}

⌨️ 快捷键说明

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