Molassembler  3.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Scine::Molassembler::BondStereopermutator::Impl Struct Reference
Inheritance diagram for Scine::Molassembler::BondStereopermutator::Impl:

Public Member Functions

 Impl (const AtomStereopermutator &stereopermutatorA, const AtomStereopermutator &stereopermutatorB, BondIndex edge, Alignment alignment)
 Constructor for use of BondStereopermutator in isolation. More...
 
 Impl (const PrivateGraph &graph, const StereopermutatorList &stereopermutators, BondIndex edge, Alignment alignment)
 Constructor for use of BondStereopermutator in a Molecule. More...
 
void assign (boost::optional< unsigned > assignment)
 
void assignRandom (Random::Engine &engine)
 
void applyPermutation (const std::vector< AtomIndex > &permutation)
 
void fit (const SitePositionsPair &sitePositions, std::pair< FittingReferences, FittingReferences > fittingReferences, FittingMode mode)
 
void propagateGraphChange (const AtomStereopermutator::PropagatedState &oldPermutatorState, const AtomStereopermutator &newPermutator, const PrivateGraph &graph, const StereopermutatorList &permutators)
 
void propagateVertexRemoval (AtomIndex removedIndex)
 
Alignment alignment () const
 
boost::optional< unsigned > assigned () const
 
const
Stereopermutations::Composite
composite () const
 
double dihedral (const AtomStereopermutator &stereopermutatorA, SiteIndex siteIndexA, const AtomStereopermutator &stereopermutatorB, SiteIndex siteIndexB) const
 
bool hasSameCompositeOrientation (const BondStereopermutator::Impl &other) const
 
boost::optional< unsigned > indexOfPermutation () const
 
unsigned numAssignments () const
 
unsigned numStereopermutations () const
 
std::string info () const
 
std::string rankInfo () const
 
BondIndex placement () const
 
auto tie () const
 
- Public Member Functions inherited from Scine::Molassembler::Temple::Crtp::LexicographicComparable< Impl >
constexpr bool operator== (const LexicographicComparable &other) const
 
constexpr bool operator!= (const LexicographicComparable &other) const
 
constexpr bool operator< (const LexicographicComparable &other) const
 
constexpr bool operator<= (const LexicographicComparable &other) const
 
constexpr bool operator> (const LexicographicComparable &other) const
 
constexpr bool operator>= (const LexicographicComparable &other) const
 

Static Public Member Functions

Static methods
static bool cycleObviouslyInfeasible (const PrivateGraph &graph, const StereopermutatorList &stereopermutators, const AtomStereopermutator &firstStereopermutator, const AtomStereopermutator &secondStereopermutator, std::tuple< AtomIndex, AtomIndex, double > dihedral, const RankingInformation::Link &link)
 Check whether a cycle is obviously infeasible. More...
 
static std::vector< unsigned > notObviouslyInfeasibleStereopermutations (const PrivateGraph &graph, const StereopermutatorList &stereopermutators, const Stereopermutations::Composite &composite)
 Check whether a cycle is obviously infeasible. More...
 
- Static Public Member Functions inherited from Scine::Molassembler::Temple::Crtp::LexicographicComparable< Impl >
static constexpr const Impl & derived (const LexicographicComparable &base)
 

Static Private Member Functions

static
Stereopermutations::Stereopermutation::Occupation 
makeOccupation_ (const RankingInformation::RankedSitesType &sitesRanking, const AtomStereopermutator::ShapeMap &shapeVertexMap)
 Yields abstract site characters at their shape positions.
 
static
Stereopermutations::Composite 
constructComposite_ (const StereopermutatorList &stereopermutators, BondIndex edge, Alignment alignment)
 
static
Stereopermutations::Composite::OrientationState 
makeOrientationState_ (const AtomStereopermutator &focalStereopermutator, const AtomStereopermutator::ShapeMap &focalShapeMap, const AtomStereopermutator &attachedStereopermutator)
 

Private Attributes

Stereopermutations::Composite composite_
 
BondIndex edge_
 Edge this stereopermutator is placed on.
 
std::vector< unsigned > feasiblePermutations_
 List of indices into allPermutations of composite_ that are not obviously infeasible.
 
boost::optional< unsigned > assignment_
 Index optional into feasiblePermutations_ of the current assignment.
 

Constructor & Destructor Documentation

Scine::Molassembler::BondStereopermutator::Impl::Impl ( const AtomStereopermutator stereopermutatorA,
const AtomStereopermutator stereopermutatorB,
BondIndex  edge,
Alignment  alignment 
)

Constructor for use of BondStereopermutator in isolation.

This constructor does not check whether stereopermutations are feasible

Scine::Molassembler::BondStereopermutator::Impl::Impl ( const PrivateGraph graph,
const StereopermutatorList stereopermutators,
BondIndex  edge,
Alignment  alignment 
)

Constructor for use of BondStereopermutator in a Molecule.

This constructor checks whether its stereopermutations are feasible!

Member Function Documentation

static bool Scine::Molassembler::BondStereopermutator::Impl::cycleObviouslyInfeasible ( const PrivateGraph graph,
const StereopermutatorList stereopermutators,
const AtomStereopermutator firstStereopermutator,
const AtomStereopermutator secondStereopermutator,
std::tuple< AtomIndex, AtomIndex, double >  dihedral,
const RankingInformation::Link link 
)
static

Check whether a cycle is obviously infeasible.

Complexity \(\Theta(1)\), but not instant, either

static std::vector<unsigned> Scine::Molassembler::BondStereopermutator::Impl::notObviouslyInfeasibleStereopermutations ( const PrivateGraph graph,
const StereopermutatorList stereopermutators,
const Stereopermutations::Composite composite 
)
static

Check whether a cycle is obviously infeasible.

Complexity \(\Theta(1)\), but not instant, either

Field Documentation

Stereopermutations::Composite Scine::Molassembler::BondStereopermutator::Impl::composite_
private

Object representing union of both atom stereopermutators, yields abstract spatial arrangements


The documentation for this struct was generated from the following file: