Skip to content

Commit

Permalink
tests
Browse files Browse the repository at this point in the history
  • Loading branch information
even1024 committed Jan 23, 2025
1 parent b992b90 commit 94f043b
Showing 1 changed file with 49 additions and 45 deletions.
94 changes: 49 additions & 45 deletions core/indigo-core/reaction/src/reaction_multistep_detector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1410,65 +1410,69 @@ void ReactionMultistepDetector::constructSimpleArrowReaction(BaseReaction& rxn)
MOLECULE_IDX
};

auto& arrow = (const ReactionArrowObject&)rxn.meta().getMetaObject(ReactionArrowObject::CID, 0);
bool reverseReactionOrder = arrow.getArrowType() == ReactionArrowObject::ERetrosynthetic;
if (rxn.meta().getMetaCount(ReactionArrowObject::CID))
{
auto& arrow = (const ReactionArrowObject&)rxn.meta().getMetaObject(ReactionArrowObject::CID, 0);
bool reverseReactionOrder = arrow.getArrowType() == ReactionArrowObject::ERetrosynthetic;

if (reverseReactionOrder)
rxn.setIsRetrosyntetic();
if (reverseReactionOrder)
rxn.setIsRetrosyntetic();

for (int i = 0; i < rxn.meta().getMetaCount(SimpleTextObject::CID); ++i)
{
auto& text = (const SimpleTextObject&)rxn.meta().getMetaObject(SimpleTextObject::CID, i);
Rect2f bbox(Vec2f(text._pos.x, text._pos.y), Vec2f(text._pos.x, text._pos.y)); // change to real text box later
_reaction_components.emplace_back(ReactionComponent::TEXT, bbox, i, nullptr);
}
for (int i = 0; i < rxn.meta().getMetaCount(SimpleTextObject::CID); ++i)
{
auto& text = (const SimpleTextObject&)rxn.meta().getMetaObject(SimpleTextObject::CID, i);
Rect2f bbox(Vec2f(text._pos.x, text._pos.y), Vec2f(text._pos.x, text._pos.y)); // change to real text box later
_reaction_components.emplace_back(ReactionComponent::TEXT, bbox, i, nullptr);
}

int text_meta_idx = 0;
for (const auto& comp : _reaction_components)
{
switch (comp.component_type)
int text_meta_idx = 0;
for (const auto& comp : _reaction_components)
{
case ReactionComponent::MOLECULE: {
if (comp.molecule)
switch (comp.component_type)
{
auto& cmol = *comp.molecule;
for (int idx = cmol.vertexBegin(); idx < cmol.vertexEnd(); idx = cmol.vertexNext(idx))
case ReactionComponent::MOLECULE: {
if (comp.molecule)
{
Vec3f& pt3d = cmol.getAtomXyz(idx);
Vec2f pt(pt3d.x, pt3d.y);
int side = !reverseReactionOrder ? getPointSide(pt, arrow.getTail(), arrow.getHead()) : getPointSide(pt, arrow.getHead(), arrow.getTail());
switch (side)
auto& cmol = *comp.molecule;
for (int idx = cmol.vertexBegin(); idx < cmol.vertexEnd(); idx = cmol.vertexNext(idx))
{
case KReagentUpArea:
case KReagentDownArea:
rxn.addCatalystCopy(cmol, 0, 0);
break;
case KProductArea:
rxn.addProductCopy(cmol, 0, 0);
break;
default:
rxn.addReactantCopy(cmol, 0, 0);
Vec3f& pt3d = cmol.getAtomXyz(idx);
Vec2f pt(pt3d.x, pt3d.y);
int side =
!reverseReactionOrder ? getPointSide(pt, arrow.getTail(), arrow.getHead()) : getPointSide(pt, arrow.getHead(), arrow.getTail());
switch (side)
{
case KReagentUpArea:
case KReagentDownArea:
rxn.addCatalystCopy(cmol, 0, 0);
break;
case KProductArea:
rxn.addProductCopy(cmol, 0, 0);
break;
default:
rxn.addReactantCopy(cmol, 0, 0);
break;
}
break;
}
}
}
break;
case ReactionComponent::TEXT: {
const auto& bbox = comp.bbox;
Vec2f pt(bbox.center());
int side = !reverseReactionOrder ? getPointSide(pt, arrow.getTail(), arrow.getHead()) : getPointSide(pt, arrow.getHead(), arrow.getTail());
if (side == KReagentUpArea || side == KReagentDownArea)
{
rxn.addSpecialCondition(text_meta_idx, bbox);
break;
}
text_meta_idx++;
}
}
break;
case ReactionComponent::TEXT: {
const auto& bbox = comp.bbox;
Vec2f pt(bbox.center());
int side = !reverseReactionOrder ? getPointSide(pt, arrow.getTail(), arrow.getHead()) : getPointSide(pt, arrow.getHead(), arrow.getTail());
if (side == KReagentUpArea || side == KReagentDownArea)
{
rxn.addSpecialCondition(text_meta_idx, bbox);
break;
default:
break;
}
text_meta_idx++;
}
break;
default:
break;
}
}
}

0 comments on commit 94f043b

Please sign in to comment.