return SecondaryStructuresStatusArray[static_cast<std::size_t>(secondaryStructureTypeName)];
}
-bool secondaryStructures::secondaryStructuresData::isBreakPartnerWith(secondaryStructuresData *partner) const{
+bool secondaryStructures::secondaryStructuresData::isBreakPartnerWith(const secondaryStructuresData *partner) const{
return breakPartners[0] == partner || breakPartners[1] == partner;
}
}
bool secondaryStructures::NoChainBreaksBetween(std::size_t Resi1, std::size_t Resi2) const{
- bool flag {true};
- if (Resi1 < Resi2){
- for(std::size_t i{Resi1}; flag and i < Resi2; ++i ){
- if (SecondaryStructuresStatusMap[Resi1].getStatus(secondaryStructureTypes::Break)){
- flag = false;
- }
- }
- }
- else if (Resi1 > Resi2){
- for(std::size_t i{Resi2}; flag and i < Resi1; ++i ){
- if (SecondaryStructuresStatusMap[Resi1].getStatus(secondaryStructureTypes::Break)){
- flag = false;
- }
- }
- }
- return flag;
+// bool flag {true};
+// if (Resi1 < Resi2){
+// for(std::size_t i{Resi1}; flag and i < Resi2; ++i ){
+// if (SecondaryStructuresStatusMap[Resi1].getStatus(secondaryStructureTypes::Break)){
+// flag = false;
+// }
+// }
+// }
+// else if (Resi1 > Resi2){
+// for(std::size_t i{Resi2}; flag and i < Resi1; ++i ){
+// if (SecondaryStructuresStatusMap[Resi1].getStatus(secondaryStructureTypes::Break)){
+// flag = false;
+// }
+// }
+// }
+// return flag;
+ return SecondaryStructuresStatusMap[Resi1].isBreakPartnerWith(&SecondaryStructuresStatusMap[Resi2]) || SecondaryStructuresStatusMap[Resi2].isBreakPartnerWith(&SecondaryStructuresStatusMap[Resi1]);
}
bridgeTypes secondaryStructures::calculateBridge(std::size_t i, std::size_t j) const{
PatternSearch.SecondaryStructuresStatusMap[i].setBreak(&PatternSearch.SecondaryStructuresStatusMap[i + 1]);
PatternSearch.SecondaryStructuresStatusMap[i + 1].setBreak(&PatternSearch.SecondaryStructuresStatusMap[i]);
- std::cout << "Break between " << i + 1 << " and " << i + 2 << std::endl;
+// std::cout << "Break between " << i + 1 << " and " << i + 2 << std::endl;
}
}
for (std::size_t i{ 2 }; i + 2 < IndexMap.size() ; ++i)
public:
void setStatus(const secondaryStructureTypes secondaryStructureTypeName);
void setStatus(const HelixPositions helixPosition, const turnsTypes turn);
- bool getStatus(const secondaryStructureTypes secondaryStructureTypeName) const, isBreakPartnerWith(secondaryStructuresData *partner) const;
+ bool getStatus(const secondaryStructureTypes secondaryStructureTypeName) const, isBreakPartnerWith(const secondaryStructuresData *partner) const;
HelixPositions getStatus(const turnsTypes turn) const;
secondaryStructureTypes getStatus() const;
void setBreak(secondaryStructuresData *breakPartner);