Yes. The extra work of splitting something into an interface module and an implementation module is significant, and does not reduce the complexity of reasoning about a change, nor the amount of code ...
This appendix contains a full C++ implementation of a photon map class. This class can be integrated into any ray tracer to provide the basic tool to add caustics and simple global illumination. The ...