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

📄 createdisk.c++

📁 一个计算分岔的软件
💻 C++
字号:
#include <Inventor/So.h>#include <Inventor/SbLinear.h>#ifdef USE_SOQT#include <Inventor/Qt/editors/SoQtMaterialEditor.h>#else#include <Inventor/Xt/SoXtMaterialEditor.h>#endifextern char autoDir[256];extern float diskTransparency;extern bool diskFromFile;SoSeparator *createDisk(float where[], float scaler){// create DISK    SoSeparator *diskSep = new SoSeparator;    static bool obj = diskFromFile;    SoInput mySceneInput;    static char diskFileName[256];    strcpy(diskFileName, autoDir);    strcat(diskFileName,"/r3bplaut04/widgets/disk.iv");    if (obj && mySceneInput.openFile(diskFileName))    {        SoSeparator *disk = SoDB::readAll(&mySceneInput);        if (disk == NULL)        {            obj=FALSE;        }        else        {            mySceneInput.closeFile();            SoTransform *diskXform = new SoTransform;            diskXform->translation.setValue(where[0],where[1],where[2]);            diskXform->scaleFactor.setValue(scaler, scaler, scaler);            diskSep->addChild(diskXform);            diskSep->addChild(disk);            obj = TRUE;        }    }    else    {        obj = FALSE;    }    if(!obj)    {        SoMaterial *diskMtl = new SoMaterial;        diskMtl->diffuseColor.setValue(1.0,1.0,1.0);        diskMtl->transparency = diskTransparency;        SoComplexity *diskComplx = new SoComplexity;        diskComplx->type = SoComplexity::OBJECT_SPACE;        diskComplx->value = 1.0;        diskComplx->textureQuality = 0.5;        SoTransform *diskXform = new SoTransform;        diskXform->translation.setValue(where[0],where[1],where[2]);        diskXform->rotation.setValue(SbVec3f(1.0, 0.0, 0.0), M_PI_2);        SoCylinder  *disk = new SoCylinder;        disk->radius = 1.0 * scaler;        disk->height = 0.001;        diskSep->addChild(diskXform);        diskSep->addChild(diskComplx);        diskSep->addChild(diskMtl);        diskSep->addChild(disk);    }#ifdef ENABLE_MTL_EDITOR#ifdef USE_SOQT    SoQtMaterialEditor *mtlEditor = new SoQtMaterialEditor;#else    SoXtMaterialEditor *mtlEditor = new SoXtMaterialEditor;#endif    mtlEditor->attach(diskMtl);    mtlEditor->show();#endif    return diskSep;}

⌨️ 快捷键说明

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