Advertisement
Guest User

V9 su įkeltom komandom

a guest
Jun 24th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.33 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.  
  86.  
  87.  
  88. int main() {
  89.  
  90. // NUSKAITOMAS OBJEKTAS
  91.  
  92. vtkDataSetReader *object = vtkDataSetReader::New();
  93. object->SetFileName("ubgrid.vtk");
  94. object->Update();
  95.  
  96.  
  97.  
  98.  
  99. // IŠTRAUKIAMA ATKARTPA
  100.  
  101. double bounds[6];
  102. object->GetOutput()->GetBounds(bounds);
  103.  
  104. double range[2];
  105. object->GetOutput()->GetScalarRange(range);
  106.  
  107. double minBoxPoint[3];
  108. double maxBoxPoint[3];
  109. minBoxPoint[0] = (bounds[1] - bounds[0]) / 1.005 + bounds[0];
  110. minBoxPoint[1] = (bounds[3] - bounds[2]) / 1.005 + bounds[2];
  111. minBoxPoint[2] = (bounds[5] - bounds[4]) / 1.005 + bounds[4];
  112. maxBoxPoint[0] = bounds[1];
  113. maxBoxPoint[1] = bounds[3];
  114. maxBoxPoint[2] = bounds[5];
  115.  
  116. vtkSmartPointer<vtkBoxClipDataSet> boxClip =
  117. vtkSmartPointer<vtkBoxClipDataSet>::New();
  118. boxClip->SetInputConnection(object->GetOutputPort());
  119. boxClip->GenerateClippedOutputOn();
  120.  
  121. const double minusx[] = { -1.0, -0.0, 0.0 };
  122. const double minusy[] = { -1.0, -0.0, 0.0 };
  123. const double minusz[] = { 0.0, 0.0, -1.0 };
  124. const double plusx[] = { 1.0, 0.0, 0.0 };
  125. const double plusy[] = { 0.0, 1.0, 0.0 };
  126. const double plusz[] = { 0.0, 0.0, 1.0 };
  127. boxClip->SetBoxClip(minusx, minBoxPoint,
  128. minusy, minBoxPoint,
  129. minusz, minBoxPoint,
  130. plusx, maxBoxPoint,
  131. plusy, maxBoxPoint,
  132. plusz, maxBoxPoint);
  133.  
  134.  
  135. vtkSmartPointer<vtkDataSetSurfaceFilter> surfaceIn =
  136. vtkSmartPointer<vtkDataSetSurfaceFilter>::New();
  137. surfaceIn->SetInputConnection(boxClip->GetOutputPort(0));
  138.  
  139. vtkSmartPointer<vtkDataSetMapper> mapperIn = vtkSmartPointer<vtkDataSetMapper>::New();
  140. mapperIn->SetInputConnection(surfaceIn->GetOutputPort());
  141. mapperIn->SetScalarRange(object->GetOutput()->GetPointData()->GetArray("group/Vector1")->GetRange(0)); // Atkarpa nuspalvinta group/Vector1
  142. mapperIn->ColorByArrayComponent("group/Vector1", 0);
  143. mapperIn->SetScalarModeToUsePointFieldData();
  144.  
  145. vtkSmartPointer<vtkActor> actorIn =
  146. vtkSmartPointer<vtkActor>::New();
  147. actorIn->SetMapper(mapperIn);
  148.  
  149. actorIn->AddPosition(-90.0 * (maxBoxPoint[0] - minBoxPoint[0]), // x asis
  150. -.0 * (maxBoxPoint[1] - minBoxPoint[1]), // y asis
  151. -.5 * (maxBoxPoint[2] - minBoxPoint[2]));
  152.  
  153.  
  154. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
  155.  
  156.  
  157.  
  158. vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid = vtkSmartPointer<vtkUnstructuredGrid>::New();
  159.  
  160. vtkSmartPointer<vtkDataSetSurfaceFilter> surfaceFilter = vtkSmartPointer<vtkDataSetSurfaceFilter>::New();
  161.  
  162. surfaceFilter->SetInputData(unstructuredGrid);
  163.  
  164. vtkPolyData* polydata = surfaceFilter->GetOutput();
  165.  
  166.  
  167. /////////////////////////////////////////////////////
  168.  
  169.  
  170. vtkSmartPointer<vtkWarpVector> warp = vtkSmartPointer<vtkWarpVector>::New();
  171. warp->SetInputConnection(object->GetOutputPort());
  172. warp->SetScaleFactor(0.5);
  173.  
  174. vtkSmartPointer<vtkPolyDataNormals> normals =
  175. vtkSmartPointer<vtkPolyDataNormals>::New();
  176. normals->SetInputConnection(warp->GetOutputPort());
  177.  
  178. vtkSmartPointer<vtkVectorDot> color = vtkSmartPointer<vtkVectorDot>::New();
  179. color->SetInputConnection(normals->GetOutputPort());
  180.  
  181. vtkSmartPointer<vtkActor> objectActor = vtkSmartPointer<vtkActor>::New();
  182. objectActor->SetMapper(mapperIn);
  183.  
  184.  
  185.  
  186.  
  187. // Pridedamas outline original DATA
  188.  
  189. vtkSmartPointer<vtkOutlineFilter> outlineData =
  190. vtkSmartPointer<vtkOutlineFilter>::New();
  191. outlineData->SetInputConnection(object->GetOutputPort());
  192.  
  193. vtkSmartPointer<vtkPolyDataMapper> mapOutline =
  194. vtkSmartPointer<vtkPolyDataMapper>::New();
  195. mapOutline->SetInputConnection(outlineData->GetOutputPort());
  196.  
  197. vtkSmartPointer<vtkActor> outline =
  198. vtkSmartPointer<vtkActor>::New();
  199. outline->SetMapper(mapOutline);
  200. outline->GetProperty()->SetColor(1, 1, 1);
  201.  
  202.  
  203.  
  204.  
  205. // vtkRenderer: sukuriamas renderis, prie kurio prijungiamas kugio aktorius
  206. vtkRenderer *ren1 = vtkRenderer::New();
  207. ren1->AddActor(outline);
  208. ren1->AddActor(actorIn);
  209. ren1->SetBackground(0.1, 0.2, 0.4);
  210.  
  211.  
  212. // vtkRenderWindow: sukuriamas atvaizdavimo langas, prie kurio prijungiamas renderis
  213. vtkRenderWindow *renWin = vtkRenderWindow::New();
  214. renWin->AddRenderer(ren1);
  215. renWin->SetSize(900, 900);
  216.  
  217.  
  218. // vtkRenderWindowInteractor: sukuriamas interaktoriaus objektas, prie kurio prijungiams atvaizdavimo langas
  219. vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
  220. iren->SetRenderWindow(renWin);
  221.  
  222.  
  223. // vtkInteractorStyleJoystickCamera: ijungiams JoystickCamera stilius
  224. vtkInteractorStyleJoystickCamera*style = vtkInteractorStyleJoystickCamera::New();
  225. iren->SetInteractorStyle(style);
  226.  
  227.  
  228. // vtkRenderWindowInteractor: inicializacija ir paleidimas (vietoje atvaizdavimo ciklo)
  229. iren->Initialize();
  230. iren->Start();
  231.  
  232. // Naikinami nereikalingi objektai, atklaisvinama atmintis
  233. object->Delete();
  234. ren1->Delete();
  235. renWin->Delete();
  236. iren->Delete();
  237. style->Delete();
  238.  
  239. return 0;
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement