Phantom objects are processed in two different ways: rasterization and projections. CTSim uses optimized techniques to perform those procedures.
The primary tool used to optimize these processes is Geometric transformations. For every primitive phantom element, a standardized configuration is defined. This standard configuration is used to speed the process of collecting projections.
In general, to transform an object into the standard configuration, the following sequence of transformations occur. When this sequence is performed, the coordinates are termed the normalized phantom element coordinates.
These steps can by combined into a single matrix multiplication which involves only 4 multiplications and 6 additions to transform both x and y coordinates. This matrix is precalculated and stored when the phantom is created. Similarly, the inverse of the matrix is precalculated and store to perform the inverse of this transformation.
As an example of this technique, consider the problem of finding the length of an arbitrary line that may intersect an arbitary ellipse. Define the endpoints of the line by (x1,y1) and (x2,y2).
At this point the line will now lie along the positive x-axis with one end at (0,0). The circle will be rotated around the origin as well. At this point, it is fairly trivial to calculate the length of the intersection of the line with the unit circle. For example, if the y coordinate for the center of the circle is greater than 1 or less than -1, then we know that the unit circle doesn't intersect the line at all and stop further processing. Otherwise, the endpoints of the intersection of the line with the unit circle is a simple calculation.
Those new, intersected endpoints are then inverse transformed by reverse of the above transformation sequence. After the inverse translation, the transformed endpoints will be the endpoints of the line that intersect the actual ellipse prior to any transformations.
Though this sequence of events is somewhat complex, it is quite fast since the multiple transformations can be combined into a single matrix multiplication. Further, this technique is amendable to rapidly calculating the intersection of a line with any of the phantom elements that CTSim supports.