У меня есть базовая привет-программа libvtk, которая работает следующим образом:
#include "vtkGraphLayoutView.h"
#include "vtkRandomGraphSource.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
int main(int, char*[])
{
vtkRandomGraphSource* source = vtkRandomGraphSource::New();
vtkGraphLayoutView* view = vtkGraphLayoutView::New();
view->SetRepresentationFromInputConnection(source->GetOutputPort());
view->ResetCamera();
view->Render();
view->GetInteractor()->Start();
source->Delete();
view->Delete();
return 0;
}
скомпилировать с:
$ g++ -I/usr/include/vtk-5.6 hello_vtk.cpp -lvtkInfovis -lvtkViews -lvtkFiltering
выполнить с:
$ ./a.out
У меня есть два набора данных, которые я хочу визуализировать, оба в виде полей высоты:
Первый имеет вид:
double x1[N*M];
представляет поле высоты N x M, где высота в (i, j) равна x [N * j + i]
Второй имеет вид:
map<pair<double, double>, double> x2;
, где имеется образец сплошной поверхности от (i, j) высоты h, представленной:
x2[make_pair(i,j)] = h
Очевидно, что при необходимости экземпляр x2 можно интерполировать в x1.
У меня вопрос, какие классы следует использовать и какой эскиз реализации необходим для визуализации x1 и / или x2 в VTK?
(Есть ли какая-нибудь документация VTK сверху вниз? Она кажется очень большой библиотекой, и единственная ссылка, которую я могу найти, - это доксиген, который требует линейного поиска по времени, чтобы найти то, что вы ищете)