[Музей программирования ]
Главная » 2015 » Сентябрь » 10 » SoUnits
07:04
SoUnits
#include <Inventor/nodes/SoUnits.h>SoUnits - Узел, преобразующий текущие единицы длиныЭтот узел определяет однородное 3D масштабирование в соответствии с указанными единицами измерения. По умолчанию длина задаётся в метрах. C++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55    #include <Inventor/Win/SoWin.h> #include <Inventor/Win/viewers/SoWinExaminerViewer.h> #include <Inventor/nodes/SoSeparator.h> #include <Inventor/nodes/SoCube.h> #include <Inventor/nodes/SoUnits.h> #include <Inventor/nodes/SoTransform.h> #include <Inventor/nodes/SoBaseColor.h> #include "SoAutoPtr.h" #include <math.h> int main(int argc, char* argv[]) { HWND wnd = SoWin::init( "example" ); SoAutoPtr<SoSeparator> root; SoAutoPtr<SoCube> cube; SoAutoPtr<SoBaseColor> colors[3]; colors[0]->rgb = SbColor(1.0f, 0, 0); colors[1]->rgb = SbColor(0, 1.0f, 0); colors[2]->rgb = SbColor(0, 0, 1.0f); SoAutoPtr<SoTransform> transform; transform->translation = SbVec3f(2.0f, 2.0f, 0); transform->rotation.setValue( SbVec3f(0,0,1.0f), float(40.0*M_PI/180.0) ); for( int i = 0; i < 9; ++i ) { root->addChild(transform); SoAutoPtr<SoUnits> unit; if( i > 4 ) unit->units = SoUnits::FEET; else unit->units = SoUnits::METERS; root->addChild(unit); root->addChild( colors[i%3] ); root->addChild(cube); } SoWinExaminerViewer * viewer = new SoWinExaminerViewer(wnd); viewer->setSceneGraph( root ); viewer->setSize( SbVec2s(800, 600) ); viewer->show(); SoWin::mainLoop(); return 0; }
Просмотров: 38 | Добавил: admin | Рейтинг: 0.0/0
Всего комментариев: 0
avatar