Advertisement
Guest User

ubgrid

a guest
Jun 25th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.09 KB | None | 0 0
  1. #include <vtkOutlineFilter.h>
  2. #include "vtkConeSource.h"
  3. #include "vtkPolyDataMapper.h"
  4. #include "vtkRenderWindow.h"
  5. #include "vtkRenderWindowInteractor.h"
  6. #include "vtkCamera.h"
  7. #include "vtkActor.h"
  8. #include "vtkRenderer.h"
  9. #include "vtkInteractorStyleTrackballCamera.h"
  10. #include "vtkInteractorStyleJoystickCamera.h"
  11. #include "vtkInteractorStyleRubberBandZoom.h"
  12. #include <vtkDataSetReader.h>
  13. #include <vtkDataSetMapper.h>
  14. #include <vtkLookupTable.h>
  15. #include "vtkPointData.h"
  16. #include "vtkContourFilter.h"
  17. #include <vtkScalarBarActor.h>
  18. #include <vtkProperty.h>
  19. #include "vtkConeSource.h"
  20. #include "vtkPolyDataMapper.h"
  21. #include "vtkRenderWindow.h"
  22. #include "vtkRenderWindowInteractor.h"
  23. #include "vtkCamera.h"
  24. #include "vtkActor.h"
  25. #include "vtkRenderer.h"
  26. #include "vtkInteractorStyleTrackballCamera.h"
  27. #include "vtkInteractorStyleJoystickCamera.h"
  28. #include "vtkInteractorStyleRubberBandZoom.h"
  29. #include <vtkDataSetReader.h>
  30. #include <vtkDataSetMapper.h>
  31. #include <vtkWarpVector.h>
  32. #include <vtkPointDataToCellData.h>
  33. #include <vtkThreshold.h>
  34. #include <vtkPointSetAlgorithm.h>
  35. #include <vtkPointData.h>
  36. #include <vtkConnectivityFilter.h>
  37. #include <vtkProperty.h>
  38. #include <vtkGeometryFilter.h>
  39. #include <vtkPolyDataNormals.h>
  40. #include <vtkLookupTable.h>
  41. #include <vtkContourFilter.h>
  42. #include <vtkDataSet.h>
  43. #include <vtkUnstructuredGridReader.h>
  44. #include <vtkCellArray.h>
  45. #include <vtkDoubleArray.h>
  46. #include <vtkLine.h>
  47. #include <vtkPoints.h>
  48. #include <vtkPolyData.h>
  49. #include <vtkRenderer.h>
  50. #include <vtkSmartPointer.h>
  51. #include <vtkWarpVector.h>
  52. #include <vtkSmartPointer.h>
  53. #include <vtkBoxClipDataSet.h>
  54. #include <vtkLookupTable.h>
  55. #include <vtkMetaImageReader.h>
  56. #include <vtkImageData.h>
  57. #include <vtkDataSetSurfaceFilter.h>
  58. #include <vtkDataSetMapper.h>
  59. #include <vtkCamera.h>
  60. #include <vtkActor.h>
  61. #include <vtkRenderWindow.h>
  62. #include <vtkRenderer.h>
  63. #include <vtkRenderWindowInteractor.h>
  64. #include <vtkVersion.h>
  65. #include <vtkSmartPointer.h>
  66. #include <vtkPolyData.h>
  67. #include <vtkUnstructuredGrid.h>
  68. #include <vtkCellArray.h>
  69. #include <vtkDataSetSurfaceFilter.h>
  70. #include <vtkPointSource.h>
  71. #include <vtkActor.h>
  72. #include <vtkCamera.h>
  73. #include <vtkColorTransferFunction.h>
  74. #include <vtkDataSetMapper.h>
  75. #include <vtkLookupTable.h>
  76. #include <vtkNamedColors.h>
  77. #include <vtkPolyDataNormals.h>
  78. #include <vtkPolyDataReader.h>
  79. #include <vtkRenderWindow.h>
  80. #include <vtkRenderWindowInteractor.h>
  81. #include <vtkRenderer.h>
  82. #include <vtkSmartPointer.h>
  83. #include <vtkVectorDot.h>
  84. #include <vtkWarpVector.h>
  85. #include <vtkActor.h>
  86. #include <vtkColorTransferFunction.h>
  87. #include <vtkContourFilter.h>
  88. #include <vtkDataSetTriangleFilter.h>
  89. #include <vtkPiecewiseFunction.h>
  90. #include <vtkPolyDataMapper.h>
  91. #include <vtkRenderWindow.h>
  92. #include <vtkRenderWindowInteractor.h>
  93. #include <vtkRenderer.h>
  94. #include <vtkSLCReader.h>
  95. #include <vtkSmartPointer.h>
  96. #include <vtkStructuredPointsReader.h>
  97. #include <vtkThreshold.h>
  98. #include <vtkUnstructuredGridVolumeRayCastMapper.h>
  99. #include <vtkVolumeProperty.h>
  100.  
  101.  
  102.  
  103. int main() {
  104.  
  105. // NUSKAITOMAS OBJEKTAS
  106.  
  107. vtkDataSetReader *object = vtkDataSetReader::New();
  108. object->SetFileName("ubgrid.vtk");
  109. object->Update();
  110.  
  111.  
  112. vtkSmartPointer<vtkSLCReader> reader2 = vtkSmartPointer<vtkSLCReader>::New();
  113. reader2->SetFileName("ubgrid.vtk");
  114.  
  115. // IŠTRAUKIAMA ATKARTPA
  116.  
  117. double bounds[6];
  118. object->GetOutput()->GetBounds(bounds);
  119.  
  120. double range[2];
  121. object->GetOutput()->GetScalarRange(range);
  122.  
  123. double minBoxPoint[3];
  124. double maxBoxPoint[3];
  125. minBoxPoint[0] = (bounds[1] - bounds[0]) / 2 + bounds[0];
  126. minBoxPoint[1] = (bounds[3] - bounds[2]) / 2 + bounds[2];
  127. minBoxPoint[2] = (bounds[5] - bounds[4]) / 2 + bounds[4];
  128. maxBoxPoint[0] = bounds[1];
  129. maxBoxPoint[1] = bounds[3];
  130. maxBoxPoint[2] = bounds[5];
  131.  
  132. vtkSmartPointer<vtkBoxClipDataSet> boxClip =
  133. vtkSmartPointer<vtkBoxClipDataSet>::New();
  134. boxClip->SetInputConnection(object->GetOutputPort());
  135. boxClip->GenerateClippedOutputOn();
  136.  
  137. const double minusx[] = { -1.0, -0.0, 0.0 };
  138. const double minusy[] = { -1.0, -0.0, 0.0 };
  139. const double minusz[] = { 0.0, 0.0, -1.0 };
  140. const double plusx[] = { 1.0, 0.0, 0.0 };
  141. const double plusy[] = { 0.0, 1.0, 0.0 };
  142. const double plusz[] = { 0.0, 0.0, 1.0 };
  143. boxClip->SetBoxClip(minusx, minBoxPoint,
  144. minusy, minBoxPoint,
  145. minusz, minBoxPoint,
  146. plusx, maxBoxPoint,
  147. plusy, maxBoxPoint,
  148. plusz, maxBoxPoint);
  149.  
  150.  
  151. vtkSmartPointer<vtkDataSetSurfaceFilter> surfaceIn =
  152. vtkSmartPointer<vtkDataSetSurfaceFilter>::New();
  153. surfaceIn->SetInputConnection(boxClip->GetOutputPort(0));
  154.  
  155. vtkSmartPointer<vtkDataSetMapper> mapperIn = vtkSmartPointer<vtkDataSetMapper>::New();
  156. mapperIn->SetInputConnection(surfaceIn->GetOutputPort());
  157. mapperIn->SetScalarRange(object->GetOutput()->GetPointData()->GetArray("group/Vector1")->GetRange(0)); // Atkarpa nuspalvinta group/Vector1
  158. mapperIn->ColorByArrayComponent("group/Vector1", 0);
  159. mapperIn->SetScalarModeToUsePointFieldData();
  160.  
  161. vtkSmartPointer<vtkActor> actorIn =
  162. vtkSmartPointer<vtkActor>::New();
  163. actorIn->SetMapper(mapperIn);
  164.  
  165. actorIn->AddPosition(0.0 * (maxBoxPoint[0] - minBoxPoint[0]), // x asis
  166. -.0 * (maxBoxPoint[1] - minBoxPoint[1]), // y asis
  167. -.5 * (maxBoxPoint[2] - minBoxPoint[2]));
  168.  
  169.  
  170. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
  171.  
  172.  
  173.  
  174. vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid = vtkSmartPointer<vtkUnstructuredGrid>::New();
  175.  
  176. vtkSmartPointer<vtkDataSetSurfaceFilter> surfaceFilter = vtkSmartPointer<vtkDataSetSurfaceFilter>::New();
  177.  
  178. surfaceFilter->SetInputData(unstructuredGrid);
  179.  
  180. vtkPolyData* polydata = surfaceFilter->GetOutput();
  181.  
  182. vtkSmartPointer<vtkGeometryFilter> geometryFilter =
  183. vtkSmartPointer<vtkGeometryFilter>::New();
  184. geometryFilter->SetInputData(unstructuredGrid);
  185. geometryFilter->Update();
  186.  
  187. /////////////////////////////////////////////////////
  188.  
  189.  
  190. vtkSmartPointer<vtkWarpVector> warp = vtkSmartPointer<vtkWarpVector>::New();
  191. warp->SetInputConnection(reader2->GetOutputPort());
  192. warp->SetScaleFactor(0.5);
  193.  
  194. vtkSmartPointer<vtkPolyDataNormals> normals =
  195. vtkSmartPointer<vtkPolyDataNormals>::New();
  196. normals->SetInputConnection(warp->GetOutputPort());
  197.  
  198. vtkSmartPointer<vtkVectorDot> color = vtkSmartPointer<vtkVectorDot>::New();
  199. color->SetInputConnection(normals->GetOutputPort());
  200.  
  201. vtkSmartPointer<vtkActor> reader2Actor = vtkSmartPointer<vtkActor>::New();
  202. reader2Actor->SetMapper(mapperIn);
  203.  
  204.  
  205.  
  206.  
  207. // Pridedamas outline original DATA
  208.  
  209. vtkSmartPointer<vtkOutlineFilter> outlineData =
  210. vtkSmartPointer<vtkOutlineFilter>::New();
  211. outlineData->SetInputConnection(object->GetOutputPort());
  212.  
  213. vtkSmartPointer<vtkPolyDataMapper> mapOutline =
  214. vtkSmartPointer<vtkPolyDataMapper>::New();
  215. mapOutline->SetInputConnection(outlineData->GetOutputPort());
  216.  
  217. vtkSmartPointer<vtkActor> outline =
  218. vtkSmartPointer<vtkActor>::New();
  219. outline->SetMapper(mapOutline);
  220. outline->GetProperty()->SetColor(1, 1, 1);
  221.  
  222.  
  223.  
  224.  
  225. // vtkRenderer: sukuriamas renderis, prie kurio prijungiamas kugio aktorius
  226. vtkRenderer *ren1 = vtkRenderer::New();
  227. ren1->AddActor(outline);
  228. ren1->AddActor(actorIn);
  229. ren1->SetBackground(0.1, 0.2, 0.4);
  230.  
  231.  
  232. // vtkRenderWindow: sukuriamas atvaizdavimo langas, prie kurio prijungiamas renderis
  233. vtkRenderWindow *renWin = vtkRenderWindow::New();
  234. renWin->AddRenderer(ren1);
  235. renWin->SetSize(900, 900);
  236.  
  237.  
  238. // vtkRenderWindowInteractor: sukuriamas interaktoriaus objektas, prie kurio prijungiams atvaizdavimo langas
  239. vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
  240. iren->SetRenderWindow(renWin);
  241.  
  242.  
  243. // vtkInteractorStyleJoystickCamera: ijungiams JoystickCamera stilius
  244. vtkInteractorStyleJoystickCamera*style = vtkInteractorStyleJoystickCamera::New();
  245. iren->SetInteractorStyle(style);
  246.  
  247.  
  248. // vtkRenderWindowInteractor: inicializacija ir paleidimas (vietoje atvaizdavimo ciklo)
  249. iren->Initialize();
  250. iren->Start();
  251.  
  252. // Naikinami nereikalingi objektai, atklaisvinama atmintis
  253. object->Delete();
  254. ren1->Delete();
  255. renWin->Delete();
  256. iren->Delete();
  257. style->Delete();
  258.  
  259. return 0;
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement