29 #ifndef CDPL_CHEM_BONDDIRECTIONCALCULATOR_HPP
30 #define CDPL_CHEM_BONDDIRECTIONCALCULATOR_HPP
123 class StereoBondOrderingFunction
130 bool operator()(
const StereoBond*,
const StereoBond*)
const;
136 BondDirectionCalculator(
const BondDirectionCalculator&);
138 BondDirectionCalculator& operator=(
const BondDirectionCalculator&);
144 void switchDirection(
unsigned int&);
150 StereoBond(
const Bond&);
152 const Bond& getBond()
const;
154 unsigned int getConfiguration()
const;
155 void setConfiguration(
unsigned int);
157 void setConfigRefBondIndex(std::size_t, std::size_t);
159 std::size_t getNumNeighbors(std::size_t)
const;
161 std::size_t getNeighborBondIndex(std::size_t, std::size_t)
const;
162 std::size_t getNeighborAtomIndex(std::size_t, std::size_t)
const;
164 void addNeighborIndices(std::size_t, std::size_t, std::size_t);
172 std::size_t nbrBondCounts[2];
173 std::size_t nbrAtomIndices[2][2];
174 std::size_t nbrBondIndices[2][2];
175 unsigned int configuration;
178 typedef std::vector<StereoBond> StereoBondArray;
179 typedef std::vector<StereoBond*> StereoBondPtrArray;
181 const MolecularGraph* molGraph;
183 std::size_t minRingSize;
184 StereoBondArray stereoBonds;
185 StereoBondPtrArray orderedStereoBonds;
186 StereoBondPtrArray atomStereoBondTable;
189 std::size_t numMismatches;
190 std::size_t minNumMismatches;
191 std::size_t numDirBonds;
192 std::size_t minNumDirBonds;
197 #endif // CDPL_CHEM_BONDDIRECTIONCALCULATOR_HPP