Cutting¶
Cutting is available in iMSTK. There are a large amount of cutting methods in surgical simulation. iMSTK currently supports a discrete mesh based cutting method in it's PbdObjectCutting
. Discrete cut meaning it can only cut once in an instance and is not suitable for continuous cutting. The PBDThinTissueCut
and PBDTissueCut
examples can be a good first reference for using cutting.
PbdObjectCutting¶
Setting up a PBD cloth and a cut quad mesh one can configure PbdObjectCutting
like so:
It could, for example, be hooked up to a key press g
.
This also works for LineMesh
meshes. Useful for ConnectiveTissue
cutting.
PbdObjectTearing¶
PbdObjectBurning¶
RigidObjectLevelSetCollision¶
The RigidObjectLevelSetCollision
can be used for material removal. It is good for bone sawing, burring and tooth milling actions where the object being removed from is static. It does this with the LevelSetModel
in iMSTK, intended for movement of the levelset with a rigid body tool. It can be utilized like so:
It can further be modified with:
The femurObj here must be setup with a SignedDistanceField
geometry provided to the LevelSetModel
for initialization.
To visualize the SignedDistanceField
one can volume render it or isosurface extract it every frame. Doing this every frame for a large image may be costly so iMSTK provides a LocalMarchingCubes
operation that can be read about in the Filtering section of this documentation. It effectively chunks the image and only re-extracts modified portions of it.