off_furniture.py 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. # Pure vtk stuff.
  2. # Create the furniture objects for the office.py example
  3. import vtk
  4. def furniture():
  5. # generate a whole bunch of planes which correspond to
  6. # the geometry in the analysis; tables, bookshelves and so on.
  7. from vedo import download
  8. reader = vtk.vtkStructuredGridReader()
  9. fpath = download('https://vedo.embl.es/examples/data/office.binary.vtk', verbose=0)
  10. reader.SetFileName(fpath)
  11. reader.Update()
  12. sgrid = reader.GetOutput()
  13. table1 = vtk.vtkStructuredGridGeometryFilter()
  14. table1.SetInputData(sgrid)
  15. table1.SetExtent(11, 15, 7, 9, 8, 8)
  16. mapTable1 = vtk.vtkPolyDataMapper()
  17. mapTable1.SetInputConnection(table1.GetOutputPort())
  18. mapTable1.ScalarVisibilityOff()
  19. table1Actor = vtk.vtkActor()
  20. table1Actor.SetMapper(mapTable1)
  21. table1Actor.GetProperty().SetColor(.59, .427, .392)
  22. table2 = vtk.vtkStructuredGridGeometryFilter()
  23. table2.SetInputData(sgrid)
  24. table2.SetExtent(11, 15, 10, 12, 8, 8)
  25. mapTable2 = vtk.vtkPolyDataMapper()
  26. mapTable2.SetInputConnection(table2.GetOutputPort())
  27. mapTable2.ScalarVisibilityOff()
  28. table2Actor = vtk.vtkActor()
  29. table2Actor.SetMapper(mapTable2)
  30. table2Actor.GetProperty().SetColor(.59, .427, .392)
  31. FilingCabinet1 = vtk.vtkStructuredGridGeometryFilter()
  32. FilingCabinet1.SetInputData(sgrid)
  33. FilingCabinet1.SetExtent(15, 15, 7, 9, 0, 8)
  34. mapFilingCabinet1 = vtk.vtkPolyDataMapper()
  35. mapFilingCabinet1.SetInputConnection(FilingCabinet1.GetOutputPort())
  36. mapFilingCabinet1.ScalarVisibilityOff()
  37. FilingCabinet1Actor = vtk.vtkActor()
  38. FilingCabinet1Actor.SetMapper(mapFilingCabinet1)
  39. FilingCabinet1Actor.GetProperty().SetColor(.8, .8, .6)
  40. FilingCabinet2 = vtk.vtkStructuredGridGeometryFilter()
  41. FilingCabinet2.SetInputData(sgrid)
  42. FilingCabinet2.SetExtent(15, 15, 10, 12, 0, 8)
  43. mapFilingCabinet2 = vtk.vtkPolyDataMapper()
  44. mapFilingCabinet2.SetInputConnection(FilingCabinet2.GetOutputPort())
  45. mapFilingCabinet2.ScalarVisibilityOff()
  46. FilingCabinet2Actor = vtk.vtkActor()
  47. FilingCabinet2Actor.SetMapper(mapFilingCabinet2)
  48. FilingCabinet2Actor.GetProperty().SetColor(.8, .8, .6)
  49. bookshelf1Top = vtk.vtkStructuredGridGeometryFilter()
  50. bookshelf1Top.SetInputData(sgrid)
  51. bookshelf1Top.SetExtent(13, 13, 0, 4, 0, 11)
  52. mapBookshelf1Top = vtk.vtkPolyDataMapper()
  53. mapBookshelf1Top.SetInputConnection(bookshelf1Top.GetOutputPort())
  54. mapBookshelf1Top.ScalarVisibilityOff()
  55. bookshelf1TopActor = vtk.vtkActor()
  56. bookshelf1TopActor.SetMapper(mapBookshelf1Top)
  57. bookshelf1TopActor.GetProperty().SetColor(.8, .8, .6)
  58. bookshelf1Bottom = vtk.vtkStructuredGridGeometryFilter()
  59. bookshelf1Bottom.SetInputData(sgrid)
  60. bookshelf1Bottom.SetExtent(20, 20, 0, 4, 0, 11)
  61. mapBookshelf1Bottom = vtk.vtkPolyDataMapper()
  62. mapBookshelf1Bottom.SetInputConnection(bookshelf1Bottom.GetOutputPort())
  63. mapBookshelf1Bottom.ScalarVisibilityOff()
  64. bookshelf1BottomActor = vtk.vtkActor()
  65. bookshelf1BottomActor.SetMapper(mapBookshelf1Bottom)
  66. bookshelf1BottomActor.GetProperty().SetColor(.8, .8, .6)
  67. bookshelf1Front = vtk.vtkStructuredGridGeometryFilter()
  68. bookshelf1Front.SetInputData(sgrid)
  69. bookshelf1Front.SetExtent(13, 20, 0, 0, 0, 11)
  70. mapBookshelf1Front = vtk.vtkPolyDataMapper()
  71. mapBookshelf1Front.SetInputConnection(bookshelf1Front.GetOutputPort())
  72. mapBookshelf1Front.ScalarVisibilityOff()
  73. bookshelf1FrontActor = vtk.vtkActor()
  74. bookshelf1FrontActor.SetMapper(mapBookshelf1Front)
  75. bookshelf1FrontActor.GetProperty().SetColor(.8, .8, .6)
  76. bookshelf1Back = vtk.vtkStructuredGridGeometryFilter()
  77. bookshelf1Back.SetInputData(sgrid)
  78. bookshelf1Back.SetExtent(13, 20, 4, 4, 0, 11)
  79. mapBookshelf1Back = vtk.vtkPolyDataMapper()
  80. mapBookshelf1Back.SetInputConnection(bookshelf1Back.GetOutputPort())
  81. mapBookshelf1Back.ScalarVisibilityOff()
  82. bookshelf1BackActor = vtk.vtkActor()
  83. bookshelf1BackActor.SetMapper(mapBookshelf1Back)
  84. bookshelf1BackActor.GetProperty().SetColor(.8, .8, .6)
  85. bookshelf1LHS = vtk.vtkStructuredGridGeometryFilter()
  86. bookshelf1LHS.SetInputData(sgrid)
  87. bookshelf1LHS.SetExtent(13, 20, 0, 4, 0, 0)
  88. mapBookshelf1LHS = vtk.vtkPolyDataMapper()
  89. mapBookshelf1LHS.SetInputConnection(bookshelf1LHS.GetOutputPort())
  90. mapBookshelf1LHS.ScalarVisibilityOff()
  91. bookshelf1LHSActor = vtk.vtkActor()
  92. bookshelf1LHSActor.SetMapper(mapBookshelf1LHS)
  93. bookshelf1LHSActor.GetProperty().SetColor(.8, .8, .6)
  94. bookshelf1RHS = vtk.vtkStructuredGridGeometryFilter()
  95. bookshelf1RHS.SetInputData(sgrid)
  96. bookshelf1RHS.SetExtent(13, 20, 0, 4, 11, 11)
  97. mapBookshelf1RHS = vtk.vtkPolyDataMapper()
  98. mapBookshelf1RHS.SetInputConnection(bookshelf1RHS.GetOutputPort())
  99. mapBookshelf1RHS.ScalarVisibilityOff()
  100. bookshelf1RHSActor = vtk.vtkActor()
  101. bookshelf1RHSActor.SetMapper(mapBookshelf1RHS)
  102. bookshelf1RHSActor.GetProperty().SetColor(.8, .8, .6)
  103. bookshelf2Top = vtk.vtkStructuredGridGeometryFilter()
  104. bookshelf2Top.SetInputData(sgrid)
  105. bookshelf2Top.SetExtent(13, 13, 15, 19, 0, 11)
  106. mapBookshelf2Top = vtk.vtkPolyDataMapper()
  107. mapBookshelf2Top.SetInputConnection(bookshelf2Top.GetOutputPort())
  108. mapBookshelf2Top.ScalarVisibilityOff()
  109. bookshelf2TopActor = vtk.vtkActor()
  110. bookshelf2TopActor.SetMapper(mapBookshelf2Top)
  111. bookshelf2TopActor.GetProperty().SetColor(.8, .8, .6)
  112. bookshelf2Bottom = vtk.vtkStructuredGridGeometryFilter()
  113. bookshelf2Bottom.SetInputData(sgrid)
  114. bookshelf2Bottom.SetExtent(20, 20, 15, 19, 0, 11)
  115. mapBookshelf2Bottom = vtk.vtkPolyDataMapper()
  116. mapBookshelf2Bottom.SetInputConnection(bookshelf2Bottom.GetOutputPort())
  117. mapBookshelf2Bottom.ScalarVisibilityOff()
  118. bookshelf2BottomActor = vtk.vtkActor()
  119. bookshelf2BottomActor.SetMapper(mapBookshelf2Bottom)
  120. bookshelf2BottomActor.GetProperty().SetColor(.8, .8, .6)
  121. bookshelf2Front = vtk.vtkStructuredGridGeometryFilter()
  122. bookshelf2Front.SetInputData(sgrid)
  123. bookshelf2Front.SetExtent(13, 20, 15, 15, 0, 11)
  124. mapBookshelf2Front = vtk.vtkPolyDataMapper()
  125. mapBookshelf2Front.SetInputConnection(bookshelf2Front.GetOutputPort())
  126. mapBookshelf2Front.ScalarVisibilityOff()
  127. bookshelf2FrontActor = vtk.vtkActor()
  128. bookshelf2FrontActor.SetMapper(mapBookshelf2Front)
  129. bookshelf2FrontActor.GetProperty().SetColor(.8, .8, .6)
  130. bookshelf2Back = vtk.vtkStructuredGridGeometryFilter()
  131. bookshelf2Back.SetInputData(sgrid)
  132. bookshelf2Back.SetExtent(13, 20, 19, 19, 0, 11)
  133. mapBookshelf2Back = vtk.vtkPolyDataMapper()
  134. mapBookshelf2Back.SetInputConnection(bookshelf2Back.GetOutputPort())
  135. mapBookshelf2Back.ScalarVisibilityOff()
  136. bookshelf2BackActor = vtk.vtkActor()
  137. bookshelf2BackActor.SetMapper(mapBookshelf2Back)
  138. bookshelf2BackActor.GetProperty().SetColor(.8, .8, .6)
  139. bookshelf2LHS = vtk.vtkStructuredGridGeometryFilter()
  140. bookshelf2LHS.SetInputData(sgrid)
  141. bookshelf2LHS.SetExtent(13, 20, 15, 19, 0, 0)
  142. mapBookshelf2LHS = vtk.vtkPolyDataMapper()
  143. mapBookshelf2LHS.SetInputConnection(bookshelf2LHS.GetOutputPort())
  144. mapBookshelf2LHS.ScalarVisibilityOff()
  145. bookshelf2LHSActor = vtk.vtkActor()
  146. bookshelf2LHSActor.SetMapper(mapBookshelf2LHS)
  147. bookshelf2LHSActor.GetProperty().SetColor(.8, .8, .6)
  148. bookshelf2RHS = vtk.vtkStructuredGridGeometryFilter()
  149. bookshelf2RHS.SetInputData(sgrid)
  150. bookshelf2RHS.SetExtent(13, 20, 15, 19, 11, 11)
  151. mapBookshelf2RHS = vtk.vtkPolyDataMapper()
  152. mapBookshelf2RHS.SetInputConnection(bookshelf2RHS.GetOutputPort())
  153. mapBookshelf2RHS.ScalarVisibilityOff()
  154. bookshelf2RHSActor = vtk.vtkActor()
  155. bookshelf2RHSActor.SetMapper(mapBookshelf2RHS)
  156. bookshelf2RHSActor.GetProperty().SetColor(.8, .8, .6)
  157. window = vtk.vtkStructuredGridGeometryFilter()
  158. window.SetInputData(sgrid)
  159. window.SetExtent(20, 20, 6, 13, 10, 13)
  160. mapWindow = vtk.vtkPolyDataMapper()
  161. mapWindow.SetInputConnection(window.GetOutputPort())
  162. mapWindow.ScalarVisibilityOff()
  163. windowActor = vtk.vtkActor()
  164. windowActor.SetMapper(mapWindow)
  165. windowActor.GetProperty().SetColor(.3, .3, .5)
  166. outlet = vtk.vtkStructuredGridGeometryFilter()
  167. outlet.SetInputData(sgrid)
  168. outlet.SetExtent(0, 0, 9, 10, 14, 16)
  169. mapOutlet = vtk.vtkPolyDataMapper()
  170. mapOutlet.SetInputConnection(outlet.GetOutputPort())
  171. mapOutlet.ScalarVisibilityOff()
  172. outletActor = vtk.vtkActor()
  173. outletActor.SetMapper(mapOutlet)
  174. outletActor.GetProperty().SetColor(1, 1, 1)
  175. inlet = vtk.vtkStructuredGridGeometryFilter()
  176. inlet.SetInputData(sgrid)
  177. inlet.SetExtent(0, 0, 9, 10, 0, 6)
  178. mapInlet = vtk.vtkPolyDataMapper()
  179. mapInlet.SetInputConnection(inlet.GetOutputPort())
  180. mapInlet.ScalarVisibilityOff()
  181. inletActor = vtk.vtkActor()
  182. inletActor.SetMapper(mapInlet)
  183. inletActor.GetProperty().SetColor(1, 1, 1)
  184. outline = vtk.vtkStructuredGridOutlineFilter()
  185. outline.SetInputData(sgrid)
  186. mapOutline = vtk.vtkPolyDataMapper()
  187. mapOutline.SetInputConnection(outline.GetOutputPort())
  188. outlineActor = vtk.vtkActor()
  189. outlineActor.SetMapper(mapOutline)
  190. outlineActor.GetProperty().SetColor(1, 1, 1)
  191. acts = []
  192. acts.append(table1Actor)
  193. acts.append(table2Actor)
  194. acts.append(FilingCabinet1Actor)
  195. acts.append(FilingCabinet2Actor)
  196. acts.append(bookshelf1TopActor)
  197. acts.append(bookshelf1BottomActor)
  198. acts.append(bookshelf1FrontActor)
  199. acts.append(bookshelf1BackActor)
  200. acts.append(bookshelf1LHSActor)
  201. acts.append(bookshelf1RHSActor)
  202. acts.append(bookshelf2TopActor)
  203. acts.append(bookshelf2BottomActor)
  204. acts.append(bookshelf2FrontActor)
  205. acts.append(bookshelf2BackActor)
  206. acts.append(bookshelf2LHSActor)
  207. acts.append(bookshelf2RHSActor)
  208. acts.append(windowActor)
  209. acts.append(outletActor)
  210. acts.append(inletActor)
  211. acts.append(outlineActor)
  212. return acts
  213. if __name__ == "__main__":
  214. from vedo import show
  215. show(furniture())