This PR fixes the the long-prevailing segmentation fault at the end of a Python process which includes Exotica. The source of the issue was a destructor order in Property which is key for the Initializers: The boost::any destructor particularly in conjunction with Eigen types did not exit cleanly. Processes finish faster (!) and cleaner now without a segmentation fault. I also moved the OcTree header (a large header-only type) to the implementation which reduces overall compile time considerably.
This PR fixes the the long-prevailing segmentation fault at the end of a Python process which includes Exotica. The source of the issue was a destructor order in
Property
which is key for theInitializer
s: Theboost::any
destructor particularly in conjunction with Eigen types did not exit cleanly. Processes finish faster (!) and cleaner now without a segmentation fault. I also moved the OcTree header (a large header-only type) to the implementation which reduces overall compile time considerably.