Advertisement
Guest User

Untitled

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