Commit 5fe3545109fc3e09e87894441f235da87d42cf6d
1 parent
89814612
Exists in
master
and in
68 other branches
ADD: X3D export support
Showing
3 changed files
with
13 additions
and
4 deletions
Show diff stats
invesalius/constants.py
| @@ -403,6 +403,7 @@ FILETYPE_VRML = wx.NewId() | @@ -403,6 +403,7 @@ FILETYPE_VRML = wx.NewId() | ||
| 403 | FILETYPE_OBJ = wx.NewId() | 403 | FILETYPE_OBJ = wx.NewId() |
| 404 | FILETYPE_VTP = wx.NewId() | 404 | FILETYPE_VTP = wx.NewId() |
| 405 | FILETYPE_PLY = wx.NewId() | 405 | FILETYPE_PLY = wx.NewId() |
| 406 | +FILETYPE_X3D = wx.NewId() | ||
| 406 | 407 | ||
| 407 | FILETYPE_IMAGEDATA = wx.NewId() | 408 | FILETYPE_IMAGEDATA = wx.NewId() |
| 408 | 409 |
invesalius/data/viewer_volume.py
| @@ -168,7 +168,6 @@ class Viewer(wx.Panel): | @@ -168,7 +168,6 @@ class Viewer(wx.Panel): | ||
| 168 | def OnExportPicture(self, pubsub_evt): | 168 | def OnExportPicture(self, pubsub_evt): |
| 169 | ps.Publisher().sendMessage('Begin busy cursor') | 169 | ps.Publisher().sendMessage('Begin busy cursor') |
| 170 | id, filename, filetype = pubsub_evt.data | 170 | id, filename, filetype = pubsub_evt.data |
| 171 | - | ||
| 172 | if id == const.VOLUME: | 171 | if id == const.VOLUME: |
| 173 | if filetype == const.FILETYPE_POV: | 172 | if filetype == const.FILETYPE_POV: |
| 174 | renwin = self.interactor.GetRenderWindow() | 173 | renwin = self.interactor.GetRenderWindow() |
| @@ -458,6 +457,12 @@ class Viewer(wx.Panel): | @@ -458,6 +457,12 @@ class Viewer(wx.Panel): | ||
| 458 | writer.SetFileName(filename) | 457 | writer.SetFileName(filename) |
| 459 | writer.SetInput(renwin) | 458 | writer.SetInput(renwin) |
| 460 | writer.Write() | 459 | writer.Write() |
| 460 | + elif filetype == const.FILETYPE_X3D: | ||
| 461 | + writer = vtk.vtkX3DExporter() | ||
| 462 | + writer.SetInput(renwin) | ||
| 463 | + writer.SetFileName(filename) | ||
| 464 | + writer.Update() | ||
| 465 | + writer.Write() | ||
| 461 | elif filetype == const.FILETYPE_OBJ: | 466 | elif filetype == const.FILETYPE_OBJ: |
| 462 | writer = vtk.vtkOBJExporter() | 467 | writer = vtk.vtkOBJExporter() |
| 463 | writer.SetFilePrefix(fileprefix) | 468 | writer.SetFilePrefix(fileprefix) |
invesalius/gui/task_exporter.py
| @@ -42,7 +42,8 @@ WILDCARD_SAVE_3D = "Inventor (*.iv)|*.iv|"\ | @@ -42,7 +42,8 @@ WILDCARD_SAVE_3D = "Inventor (*.iv)|*.iv|"\ | ||
| 42 | "STL ASCII (*.stl)|*.stl|"\ | 42 | "STL ASCII (*.stl)|*.stl|"\ |
| 43 | "VRML (*.vrml)|*.vrml|"\ | 43 | "VRML (*.vrml)|*.vrml|"\ |
| 44 | "VTK PolyData (*.vtp)|*.vtp|"\ | 44 | "VTK PolyData (*.vtp)|*.vtp|"\ |
| 45 | - "Wavefront (*.obj)|*.obj" | 45 | + "Wavefront (*.obj)|*.obj|"\ |
| 46 | + "X3D (*.x3d)|*.x3d" | ||
| 46 | 47 | ||
| 47 | INDEX_TO_TYPE_3D = {0: const.FILETYPE_IV, | 48 | INDEX_TO_TYPE_3D = {0: const.FILETYPE_IV, |
| 48 | 1: const.FILETYPE_PLY, | 49 | 1: const.FILETYPE_PLY, |
| @@ -51,7 +52,8 @@ INDEX_TO_TYPE_3D = {0: const.FILETYPE_IV, | @@ -51,7 +52,8 @@ INDEX_TO_TYPE_3D = {0: const.FILETYPE_IV, | ||
| 51 | 4: const.FILETYPE_STL_ASCII, | 52 | 4: const.FILETYPE_STL_ASCII, |
| 52 | 5: const.FILETYPE_VRML, | 53 | 5: const.FILETYPE_VRML, |
| 53 | 6: const.FILETYPE_VTP, | 54 | 6: const.FILETYPE_VTP, |
| 54 | - 7: const.FILETYPE_OBJ} | 55 | + 7: const.FILETYPE_OBJ, |
| 56 | + 8: const.FILETYPE_X3D} | ||
| 55 | INDEX_TO_EXTENSION = {0: "iv", | 57 | INDEX_TO_EXTENSION = {0: "iv", |
| 56 | 1: "ply", | 58 | 1: "ply", |
| 57 | 2: "rib", | 59 | 2: "rib", |
| @@ -59,7 +61,8 @@ INDEX_TO_EXTENSION = {0: "iv", | @@ -59,7 +61,8 @@ INDEX_TO_EXTENSION = {0: "iv", | ||
| 59 | 4: "stl", | 61 | 4: "stl", |
| 60 | 5: "vrml", | 62 | 5: "vrml", |
| 61 | 6: "vtp", | 63 | 6: "vtp", |
| 62 | - 7: "obj"} | 64 | + 7: "obj", |
| 65 | + 8: "x3d"} | ||
| 63 | 66 | ||
| 64 | WILDCARD_SAVE_2D = "BMP (*.bmp)|*.bmp|"\ | 67 | WILDCARD_SAVE_2D = "BMP (*.bmp)|*.bmp|"\ |
| 65 | "JPEG (*.jpg)|*.jpg|"\ | 68 | "JPEG (*.jpg)|*.jpg|"\ |