11 #ifndef INCLUDE_MOLASSEMBLER_BOND_STEREOPERMUTATOR_H
12 #define INCLUDE_MOLASSEMBLER_BOND_STEREOPERMUTATOR_H
19 namespace Molassembler {
22 namespace Stereopermutations {
30 class AngstromPositions;
32 class StereopermutatorList;
34 namespace DistanceGeometry {
36 struct ChiralConstraint;
61 BetweenEclipsedAndStaggered
92 static constexpr
double assignmentAcceptanceParameter = 0.1;
102 static std::vector<unsigned> notObviouslyInfeasibleStereopermutations(
161 void assign(boost::optional<
unsigned> assignment);
172 void assignRandom(Random::Engine& engine);
205 std::pair<FittingReferences, FittingReferences> fittingReferences,
212 std::pair<FittingReferences, FittingReferences> fittingReferences,
231 void propagateGraphChange(
239 void propagateVertexRemoval(
AtomIndex removedIndex);
256 boost::optional<unsigned> assigned()
const;
265 std::pair<AtomIndex, AtomIndex> compositeAlignment()
const;
297 boost::optional<unsigned> indexOfPermutation()
const;
303 unsigned numAssignments()
const;
309 unsigned numStereopermutations()
const;
315 std::string info()
const;
321 std::string rankInfo()
const;
344 std::unique_ptr<Impl> pImpl_;
std::pair< SitePositions, SitePositions > SitePositionsPair
Spatial centroids of two atom stereopermutators' site atoms.
Definition: BondStereopermutator.h:77
Definition: BondStereopermutatorImpl.h:23
Type helper for creating strong index types that are type-level distinct from their fundamental types...
Definition: StrongIndex.h:37
A wrapper class around Utils' PositionCollection to emphasize that the positions stored therein are i...
Definition: AngstromPositions.h:25
std::tuple< RankingInformation, ShapeMap > PropagatedState
Old state dumped upon propagation.
Definition: AtomStereopermutator.h:102
Handles the steric permutation of substituents of a non-terminal central atom.
Definition: AtomStereopermutator.h:79
Handle arrangements of substituents at corners of an atom-centered shape.
Handles specific relative arrangements of two atom stereopermutators joined by a bond.
Definition: BondStereopermutator.h:46
Definition: BondStereopermutator.h:181
Manages all stereopermutators that are part of a Molecule.
Definition: StereopermutatorList.h:30
std::size_t AtomIndex
Unsigned integer atom index type. Used to refer to particular atoms.
Definition: Types.h:51
Permutation applyPermutation(const Permutation &occupation, const Permutation &permutation)
Rotates a passed list of indices with a specified rotation vector.
Library internal graph class wrapping BGL types.
Definition: PrivateGraph.h:26
Eigen::Matrix< double, 3, Eigen::Dynamic > SitePositions
Spatial centroids of atom stereopermutator site atoms.
Definition: BondStereopermutator.h:75
Type used to refer to particular bonds. Orders first < second.
Definition: Types.h:54
FittingMode
Differentiates how viable assignments are chosen during fitting.
Definition: BondStereopermutator.h:67
Alignment
How dihedrals are aligned in the generation of stereopermutations.
Definition: BondStereopermutator.h:53
Represents the composite of two shapes joined by a bond at arbitrary shape vertices.
Definition: Composites.h:34