Put all Surfaces in shared_ptrs
This MR attempts to force usage of shared_ptr
s to manage the ownership of Surfaces. The Surface
constructors are made protected so the compiler will disallow any non managed construction. Surface
provides a factory which will produce std::shared_ptr<Surface>
. It also has methods which return a shared_ptr
for any given instance, with the correct shared reference.
Closes ACTS-532
Edited by Paul Gessinger