Merge pull request #1972 from RosettaCommons/aleaverfay/offrot_w_lkball
Per-residue setup-for-scoring
Residue contains a datacache similar to Conformation's and Pose's datacaches, but the only way the datacache can be updated is through setup_for_packing, when you have constructed a RotamerSet object. In the off-rotamer packer, you do not have a pre-calculated set of rotamers and so this function cannot be used. This has the unfortunate consequence of making LK_Ball inaccessible to the off-rotamer packer.
The new interface for energy methods proposed in this PR would allow them the opportunity to indicate "yes, I need a per-residue setup-for-scoring opportunity" and then for those EMs to be given write access to the per-residue data cache, without getting write access to the Residues themselves.
- [x] rename "requires_a_setup_for_scoring_opportunity" to "requires_a_setup_for_scoring_during_minimization_opportunity" in all existing 2BEMs
- [x] create a new "requires_a_setup_for_scoring_during_regular_scoring_opportunity" function in EM base class
- [x] create a new (overloaded) "setup_for_scoring_for_residue" function that passes in a Residue's datacache. Add accessors for this datacache to Conformation.
- [x] Add calls to "setup_for_scoring_for_residue" to ScoreFunction and the off-rotamer packer.
- [x] Update LK_BallEnergy to use this new interface
It may very well be that EnergyMethod::update_residue_for_packing could be replaced by this new interface.