vtk
नमस्ते दुनिया
खोज…
हैलो वर्ल्ड उदाहरण
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkRenderingFreeType);
VTK_MODULE_INIT(vtkInteractionStyle);
#include <vtkSmartPointer.h>
#include <vtkTextActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
int main(int /*argc*/, char ** /*argv*/)
{
auto textActor = vtkSmartPointer<vtkTextActor>::New();
textActor->SetInput("Hello World");
auto renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(textActor);
renderer->ResetCamera();
auto interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
auto renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
renderWindow->SetInteractor(interactor);
interactor->Start();
return 0;
}
टूट - फूट:
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkRenderingFreeType);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK डिज़ाइन <ClassName>::New()
className <ClassName>::New()
पद्धति का उपयोग करके vtkObject व्युत्पन्न वर्गों के नए उदाहरण बनाने के लिए एक फ़ैक्टरी विधि डिज़ाइन पैटर्न का उपयोग करता है। इससे प्लेटफ़ॉर्म विशिष्ट कार्यान्वयन को आवश्यक इंटरफ़ेस को पूरा करने के लिए रनटाइम के दौरान चुना जा सकता है।
इस तंत्र को काम करने के लिए, कारखाना वर्गों को खुद को "पंजीकृत" करने की आवश्यकता है ताकि उन्हें vtk बुनियादी ढांचे द्वारा चुना जा सके। इस विषय पर विवरण यहाँ उपलब्ध है ।
VTK_MODULE_INIT
एक मैक्रो है जिसका उपयोग आवश्यक मॉड्यूल / लाइब्रेरी (ies) को स्वचालित रूप से शुरू करने के लिए किया जाता है ( vtkRenderingOpenGL2
, vtkRenderingFreeType
, vtkInteractionStyle
इस उदाहरण में)। मॉड्यूल को शुरू करने में विफलता के परिणामस्वरूप <ClassName>::New()
कॉल NULL
और इसलिए रनटाइम त्रुटियों को वापस करेगा।
#include <vtkSmartPointer.h>
#include <vtkTextActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
vtkSmartPointer
भूमिका एक std::unique_ptr
है कि यह संदर्भ संख्या का प्रबंधन करता है जो vtkObject
व्युत्पन्न वर्ग उदाहरणों के जीवनकाल को नियंत्रित करता है।
vtkTextActor
एक साधारण वर्ग है जिसका उपयोग स्क्रीन पर तार प्रदर्शित करने के लिए किया जा सकता है।
vtkRenderer
एक दृश्य की सामग्री के प्रबंधन के लिए जिम्मेदार एक वर्ग है। विशेष रूप से यह के संग्रह का प्रबंधन करता है
- 2D अभिनेता
vtkActor2D
से प्राप्तvtkActor2D
- 3D अभिनेता
vtkProp3D
से प्राप्तvtkProp3D
- वॉल्यूम:
vtkVolume
- कैमरा:
vtkCamera
- रोशनी:
vtkLight
vtkRenderWindow
एक वर्ग है जो मंच के लिए स्वतंत्र इंटरफ़ेस प्रदान करता है
- रेंडरर्स के संग्रह का प्रबंधन करना।
- उपयोगकर्ता इनपुट को
vtkRenderWindowInteractor
और आगे की प्रक्रिया के लिए इसेvtkRenderWindowInteractor
परvtkRenderWindowInteractor
vtkRenderWindowInteractor
एक वर्ग है जो यूजर इनपुट (माउस / कीबोर्ड / टाइमिंग) ईवेंट्स को मैप करने के लिए जिम्मेदार है। आंतरिक रूप से यह अलग मैपिंग व्यवहार प्रदान करने के लिए एक vtkInteractorStyle
का उपयोग करता है।
auto textActor = vtkSmartPointer<vtkTextActor>::New();
textActor->SetInput("Hello World");
टेक्स्ट एक्टर बनाएं और प्रदर्शित करने के लिए स्ट्रिंग सेट करें
auto renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(textActor);
renderer->ResetCamera();
- रेंडर बनाएं
- इसमें टेक्स्ट एक्टर जोड़ें
- अभिनेता स्क्रीन में दिखाई दे रहा है यह सुनिश्चित करने के लिए कैमरा स्थिति को रीसेट करता है।
auto interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
auto renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
renderWindow->SetInteractor(interactor);
रेंडर करने के लिए एक विंडो बनाएं, इसमें रेंडरर जोड़ें और इंटरेक्टर सेट करें। फ़ैक्टरी फ़ंक्शन स्वचालित रूप से उपलब्ध / पंजीकृत फ़ैक्टरी वर्गों के आधार पर एक उपयुक्त कार्यान्वयन को चुन लेगा
interactor->Start();
यह एक अवरोधक कॉल है जो केवल तभी वापस आती है जब उपयोगकर्ता एक छोड़ने ( q कुंजी) का अनुरोध करता है या खिड़की बंद करता है। एक संदेश लूप चलाता है और संदेशों को भेजता है।
इसे चलाने के लिए एक खिड़की बनानी चाहिए जो इस तरह दिखती है
टिप्पणियाँ
DLL की यह सूची जो इस exe द्वारा उपयोग की गई थी:
VTKCommonCore-7.0.DLL
VTKInteractionStyle-7.0.DLL
VTKRenderingCore-7.0.DLL
VTKRenderingFreeType-7.0.DLL
VTKRenderingOpenGL2-7.0.DLL