Tools within the Spring Framework:
Cynthia D. Bruyns 1,2 Kevin Montgomery 1
Center for Bioinformatics, NASA Ames Research Center, Moffett Field, CA 94035,
National Biocomputation Center, Stanford University, Stanford, CA 94305
We present schemes for real-time generalized mesh cutting. Starting with the a basic example, we describe the details of implementing cutting on single and multiple surface objects as well as hybrid and volumetric meshes using virtual tools with single and multiple cutting surfaces. These methods have been implemented in a robust surgical simulation environment allowing us to model procedures ranging from animal dissection to cleft lip correction.
Cutting is a common manipulation encountered in simulations such as surgical training, clothing design and CAD/CAM manufacturing. A number of techniques have been developed to simulate cutting surface and volumetric meshes [1-17]. The number of intermediate steps required to recreate the cutting procedure often limits the level of realism offered by these methods, but intermediate steps have historically been necessitated by the inability to interactively update the underlying topological changes on large meshes.
The common element missing from these previous cutting tools is the ability to represent various forms of cutting using realistic tools on irregular meshes in real-time. The goal of this paper is to demonstrate how by using a very simple scheme, one can model widely differing behaviors of virtual tools within a real-time surgical simulation environment.
Starting with the most basic form of cutting, the following sections will describe the implementation of various cutting tools in a virtual environment. Since we start with a very general cutting scheme, each tool is an extension of the most basic cutting method requiring very little “special purpose” routines in order to model various forms of cutting.
This method allows for any arbitrary cut to be made within an virtual object, and can simulate cutting surface, layered surface or tetrahedral objects using virtual scalpel, scissors, and loop cautery tools.
The basic engine for the cutting routine is collision detection, collision response, deformable object solution, and user interface information. This paper will describe the first two phases, the reader is directed to  for a detailed description of the last two phases. Collision Detection
When modeling a cutting instrument one can either pre-compute the sharp regions of the mesh or choose which areas will be allowed to cut based on inspection of the model and included as information within the object’s data file. This information can be a list of edges or faces .
Even if an object is visually composed of faces, for the sake of collision detection, we can create bounding volumes around other primitives to directly obtain the information important to cutting. If we choose to ignore intersections away from the sharp regions of a cutting instrument, we can enclose only the sharp primitives, reducing the number of intersection tests. If we choose more than one primitive to be sharp, the bounding hierarchy will enclose all of the sharp primitives. Since most tools will have fewer sharp primitives than the number of primitives in the overall geometry, this dramatically reduces the number of intersections tests that are necessary at each iteration.
When modeling cutting tools that are only composed of edges it is possible to pass over objects due to sampling latency. To solve this problem, we can choose to detect collisions not on the edge, but on the surface swept by the edge . Furthermore, by enclosing the swept surfaces of the sharp edges by bounding volumes , we can still exploit the benefits of a binary search tree.
Currently we are storing intersection information as collision pairs with pointers to the objects that were in collision, the point…