ISIS::ShapeModel Class and its calculate*Normal methods
The ISIS::ShapeModel class has three virtual methods for calculating surface normal:
These are then implemented in (from what I can tell) the DemShape, EllipsoidShape, PlaneShape, and MyEllipse classes.
Taking the DemShape class as an example, the calculateSurfaceNormal method makes a call to the ShapeModel class private method calculateEllipsoidalSrufaceNormal.
I am confused about the circular calls.