Mirror in surface toolbox

Hi there.

I’m working on maxillo-facial surgical planning. I’d need to mirror a model. I use the surface toolbox with the mirror option.
We can mirror above the 3 axes x,y,z. My question is : how to mirror above a specific plane that we could have created?
Is it possible to use the angle plane module to creat a plane and use this plane as the reference for the mirror module?

thanks for helping me

1 Like

I would recommend to mirror first (the whole surface), then align the two sides (using Fiducial registration wizard and/or Surface registration modules in SlicerIGT extension), and finally cut the original and mirrored models using the same slice plane.

1 Like

A user was asking me for help via direct communication (in Russian), and one of the questions was how to mirror the model. I came across this post, which was helpful, and in the process I realized the documentation for Surface Toolbox is outdated (does not list the newly added functions, including mirror): Documentation/4.10/Modules/SurfaceToolbox - Slicer Wiki. Considering this is a Slicer core module, it doesn’t look particularly good. Is that module supported? Figure below shows documentation for 4.10 on the left vs actual Surface Toolbox interface on the right in 4.10.1.

Also, on a related note (another question from the same user) - do we have a model subtract functionality somewhere?

image

Hi @fedorov - I’m going to resist the temptation to say “wiki edits welcome” (oops, I said it!).

But regarding the model subtract, I suggest that the most robust approach would be to convert to a Segmentation and perform the subtraction in image space and then re-convert the result to a model. The underlying issue is that boolean operations on meshes is a numerically unstable operation while image space operations are very robust. The tradeoff of course is that you might need to make a very high res image or you’ll lose too much detail (depends on your models).

1 Like

Isn’t it possible to do the mirroring by Transforms module??? e.g. by changing the sign of one of the diagonal elements of the transformation matrix.

Well, I did have a temptation to update it, or at least a part of it, but it was not a trivial edit. Several new capabilities are missing, and I feel like I may not know enough about the module to make those edits. I have not used this module, never ever, and as always, there are many competing priorities.

I can’t resist the temptation to say “I kind of expected this response!” :wink:

1 Like

Mirroring using a transform turns the model inside out. Usually this is not desirable, so you need to reorient the cells of the mesh. Surface toolbox Mirror function performs these two steps.

1 Like