#include <AbstractPoint.hxx>


Static Public Member Functions | |
| static void | TryAsNotSimpleCase (AbstractPoint *father, const std::vector< AbstractPoint * > &ptsToKill, std::list< AbstractPoint * > &nodes, bool &somethingDone) |
| static bool | IsGatherB4Ext (Node *node) |
| static bool | IsSimplyLinkedAfterExt (Node *node) |
| static bool | IsScatterAfterExt (Node *node) |
| static bool | IsSimplyLinkedBeforeExt (Node *node) |
| static bool | IsNoLinksBefore (Node *node) |
| static bool | IsNoLinksAfter (Node *node) |
| static Node * | GetNodeB4 (Node *node) |
| static Node * | GetNodeAfter (Node *node) |
| static AbstractPoint * | GetDirectSonOf (AbstractPoint *refFather, AbstractPoint *sonOrLittleSon) |
| static bool | IsCommonDirectSonOf (AbstractPoint *refFather, const std::list< OutGate * > &outgs, AbstractPoint *&ret) |
| static bool | IsCommonDirectSonOf (AbstractPoint *refFather, const std::list< InGate * > &ings, AbstractPoint *&ret) |
| static void | FeedData (AbstractPoint *ptToBeRewired, std::map< std::string, std::tuple< ElementaryPoint *, Node *, std::shared_ptr< Bloc > > > *m) |
| static void | FeedData (const std::list< AbstractPoint * > &ptsToBeRewired, std::map< std::string, std::tuple< ElementaryPoint *, Node *, std::shared_ptr< Bloc > > > *m) |
| static void | Rewire (const std::vector< AbstractPoint * > &ptsToKill, std::map< std::string, std::tuple< ElementaryPoint *, Node *, std::shared_ptr< Bloc > > > *m) |
| static void | UnRewire (std::map< std::string, std::tuple< ElementaryPoint *, Node *, std::shared_ptr< Bloc > > > &m) |
| static void | Display (std::map< std::string, std::tuple< ElementaryPoint *, Node *, std::shared_ptr< Bloc > > > *m) |
Protected Attributes | |
| AbstractPoint * | _father = nullptr |
Definition at line 50 of file AbstractPoint.hxx.
|
default |
|
inline |
Definition at line 54 of file AbstractPoint.hxx.
|
virtual |
Definition at line 34 of file AbstractPoint.cxx.
|
pure virtual |
Implemented in YACS::ENGINE::NotSimpleCasePoint, YACS::ENGINE::LinkedBlocPoint, YACS::ENGINE::ForkBlocPoint, YACS::ENGINE::ElementaryPoint, and YACS::ENGINE::BagPoint.
Referenced by FeedData().
|
inline |
Definition at line 57 of file AbstractPoint.hxx.
|
pure virtual |
Implemented in YACS::ENGINE::ElementaryPoint, and YACS::ENGINE::BlocPoint.
|
pure virtual |
Implemented in YACS::ENGINE::ElementaryPoint, and YACS::ENGINE::BlocPoint.
Referenced by IsCommonDirectSonOf().
|
pure virtual |
|
static |
Definition at line 375 of file AbstractPoint.cxx.
References YACS::ENGINE::ElementaryPoint::getNode(), YACS::ENGINE::ElementaryPoint::getNodeName(), and gui.GraphViewer::m.
|
pure virtual |
|
static |
Feed m with all ElementaryPoints inside ptToBeRewired.
Definition at line 290 of file AbstractPoint.cxx.
References accept(), and gui.GraphViewer::m.
Referenced by FeedData(), and TryAsNotSimpleCase().
|
static |
Feed m with all ElementaryPoints inside ptsToBeRewired.
Definition at line 299 of file AbstractPoint.cxx.
References FeedData(), and gui.GraphViewer::m.
|
pure virtual |
Implemented in YACS::ENGINE::ElementaryPoint, and YACS::ENGINE::BlocPoint.
Referenced by IsCommonDirectSonOf().
|
static |
Definition at line 518 of file AbstractPoint.cxx.
References getFather().
Referenced by YACS::ENGINE::BlocPoint::findPointWithNode(), and IsCommonDirectSonOf().
|
inline |
Definition at line 55 of file AbstractPoint.hxx.
Referenced by YACS::ENGINE::ElementaryPoint::expandNonSimpleCaseOn(), YACS::ENGINE::LinkedBlocPoint::expandNonSimpleCaseOn(), GetDirectSonOf(), tryAsFork(), tryAsForkBis(), tryAsForkQuatro(), tryAsForkTer(), and tryAsLink().
|
pure virtual |
Implemented in YACS::ENGINE::NotSimpleCasePoint, YACS::ENGINE::LinkedBlocPoint, YACS::ENGINE::ForkBlocPoint, YACS::ENGINE::ElementaryPoint, and YACS::ENGINE::BagPoint.
Referenced by YACS::ENGINE::BagPoint::expandNonSimpleCaseOn(), YACS::ENGINE::BagPoint::getFirstNode(), isBegin(), isNullBeforeNullAfter(), isSimplyLinkedAfterNullBefore(), isSimplyLinkedBeforeAfter(), isSimplyLinkedBeforeNullAfter(), tryAsFork(), tryAsForkBis(), tryAsForkQuatro(), tryAsForkTer(), and tryAsLink().
| AbstractPoint * AbstractPoint::getGodFather | ( | ) |
Definition at line 38 of file AbstractPoint.cxx.
References _father, and getGodFather().
Referenced by getGodFather().
|
pure virtual |
Implemented in YACS::ENGINE::NotSimpleCasePoint, YACS::ENGINE::LinkedBlocPoint, YACS::ENGINE::ForkBlocPoint, YACS::ENGINE::ElementaryPoint, and YACS::ENGINE::BagPoint.
Referenced by YACS::ENGINE::BagPoint::expandNonSimpleCaseOn(), YACS::ENGINE::BagPoint::getLastNode(), isLast(), isNullBeforeNullAfter(), isSimplyLinkedAfterNullBefore(), isSimplyLinkedBeforeAfter(), isSimplyLinkedBeforeNullAfter(), tryAsFork(), tryAsForkBis(), tryAsForkQuatro(), tryAsForkTer(), and tryAsLink().
|
pure virtual |
Definition at line 507 of file AbstractPoint.cxx.
References YACS::ENGINE::OutGate::edSetInGate(), and YACS::ENGINE::Node::getOutGate().
Referenced by tryAsFork(), tryAsForkBis(), tryAsForkQuatro(), and tryAsForkTer().
Definition at line 496 of file AbstractPoint.cxx.
References YACS::ENGINE::InGate::getBackLinks(), and YACS::ENGINE::Node::getInGate().
Referenced by tryAsFork(), tryAsForkBis(), tryAsForkQuatro(), and tryAsForkTer().
|
pure virtual |
Implemented in YACS::ENGINE::ElementaryPoint, and YACS::ENGINE::BlocPoint.
|
pure virtual |
|
pure virtual |
| bool AbstractPoint::isBegin | ( | ) |
Definition at line 46 of file AbstractPoint.cxx.
References YACS::ENGINE::InGate::getBackLinks(), getFirstNode(), and YACS::ENGINE::Node::getInGate().
|
static |
Definition at line 549 of file AbstractPoint.cxx.
References contains(), findPointWithNode(), GetDirectSonOf(), and gui.CONNECTOR::ref().
|
static |
Definition at line 533 of file AbstractPoint.cxx.
References contains(), findPointWithNode(), GetDirectSonOf(), and gui.CONNECTOR::ref().
Referenced by YACS::ENGINE::BlocPoint::getNodeAfter(), YACS::ENGINE::BlocPoint::getNodeB4(), isSimplyLinkedAfter(), and isSimplyLinkedBefore().
|
static |
Definition at line 436 of file AbstractPoint.cxx.
References YACS::ENGINE::InGate::getBackLinks(), and YACS::ENGINE::Node::getInGate().
Referenced by tryAsLink().
| bool AbstractPoint::isLast | ( | ) |
Definition at line 53 of file AbstractPoint.cxx.
References YACS::ENGINE::OutGate::edSetInGate(), getLastNode(), and YACS::ENGINE::Node::getOutGate().
|
static |
Definition at line 490 of file AbstractPoint.cxx.
References YACS::ENGINE::OutGate::edSetInGate(), and YACS::ENGINE::Node::getOutGate().
Referenced by isNullBeforeNullAfter(), isSimplyLinkedBeforeNullAfter(), tryAsForkQuatro(), and tryAsForkTer().
|
static |
Definition at line 484 of file AbstractPoint.cxx.
References YACS::ENGINE::InGate::getBackLinks(), and YACS::ENGINE::Node::getInGate().
Referenced by isNullBeforeNullAfter(), isSimplyLinkedAfterNullBefore(), tryAsForkBis(), and tryAsForkQuatro().
| bool AbstractPoint::isNullBeforeNullAfter | ( | BlocPoint * | sop | ) |
Definition at line 78 of file AbstractPoint.cxx.
References getFirstNode(), getLastNode(), IsNoLinksAfter(), and IsNoLinksBefore().
|
static |
Definition at line 460 of file AbstractPoint.cxx.
References YACS::ENGINE::OutGate::edSetInGate(), and YACS::ENGINE::Node::getOutGate().
Referenced by tryAsLink().
Definition at line 442 of file AbstractPoint.cxx.
References YACS::ENGINE::OutGate::edSetInGate(), YACS::ENGINE::Node::getOutGate(), and IsCommonDirectSonOf().
Referenced by isSimplyLinkedAfterNullBefore(), isSimplyLinkedBeforeAfter(), and tryAsLink().
|
static |
Definition at line 454 of file AbstractPoint.cxx.
References YACS::ENGINE::OutGate::edSetInGate(), and YACS::ENGINE::Node::getOutGate().
Referenced by tryAsFork(), and tryAsForkBis().
| bool AbstractPoint::isSimplyLinkedAfterNullBefore | ( | BlocPoint * | sop | ) |
Definition at line 66 of file AbstractPoint.cxx.
References getFirstNode(), getLastNode(), IsNoLinksBefore(), and isSimplyLinkedAfter().
Definition at line 466 of file AbstractPoint.cxx.
References YACS::ENGINE::InGate::getBackLinks(), YACS::ENGINE::Node::getInGate(), and IsCommonDirectSonOf().
Referenced by isSimplyLinkedBeforeAfter(), isSimplyLinkedBeforeNullAfter(), and tryAsLink().
| bool AbstractPoint::isSimplyLinkedBeforeAfter | ( | BlocPoint * | sop | ) |
Definition at line 60 of file AbstractPoint.cxx.
References getFirstNode(), getLastNode(), isSimplyLinkedAfter(), and isSimplyLinkedBefore().
Referenced by tryAsLink().
|
static |
Definition at line 478 of file AbstractPoint.cxx.
References YACS::ENGINE::InGate::getBackLinks(), and YACS::ENGINE::Node::getInGate().
Referenced by tryAsFork(), and tryAsForkTer().
| bool AbstractPoint::isSimplyLinkedBeforeNullAfter | ( | BlocPoint * | sop | ) |
Definition at line 72 of file AbstractPoint.cxx.
References getFirstNode(), getLastNode(), IsNoLinksAfter(), and isSimplyLinkedBefore().
|
pure virtual |
|
static |
This method go throw all ElementaryPoints of m. For each ElementaryPoint change the Node instance underneath. And then create links between those new Node by excluding all links going whose destination :
CF links of old nodes are NOT touched for unrewire phase. Typically all ElementaryPoints inside ptToKill are NOT into m.
Definition at line 322 of file AbstractPoint.cxx.
References containsPtsToKill(), YACS::ENGINE::OutGate::edAddInGate(), YACS::ENGINE::OutGate::edSetInGate(), YACS::ENGINE::Node::getInGate(), YACS::ENGINE::Node::getName(), YACS::ENGINE::Node::getOutGate(), gui.GraphViewer::m, and YACS::ENGINE::ElementaryPoint::setNode().
Referenced by TryAsNotSimpleCase().
|
inline |
Definition at line 58 of file AbstractPoint.hxx.
Referenced by YACS::ENGINE::BlocPoint::BlocPoint(), YACS::ENGINE::BagPoint::deepCopy(), YACS::ENGINE::ElementaryPoint::deepCopy(), YACS::ENGINE::ForkBlocPoint::deepCopy(), YACS::ENGINE::LinkedBlocPoint::deepCopy(), YACS::ENGINE::NotSimpleCasePoint::deepCopy(), YACS::ENGINE::ElementaryPoint::expandNonSimpleCaseOn(), YACS::ENGINE::ForkBlocPoint::expandNonSimpleCaseOn(), YACS::ENGINE::LinkedBlocPoint::expandNonSimpleCaseOn(), YACS::ENGINE::BlocPoint::getOutPoint(), and TryAsNotSimpleCase().
| ForkBlocPoint * AbstractPoint::tryAsFork | ( | BlocPoint * | sop | ) |
precondition : isSimplyLinkedBeforeAfter must return true on this.
Definition at line 145 of file AbstractPoint.cxx.
References YACS::ENGINE::BlocPoint::findPointWithNode(), getFather(), getFirstNode(), getLastNode(), YACS::ENGINE::BlocPoint::getListOfPoints(), GetNodeAfter(), GetNodeB4(), IsSimplyLinkedAfterExt(), IsSimplyLinkedBeforeExt(), and testCppPluginInvokation::l.
| ForkBlocPoint * AbstractPoint::tryAsForkBis | ( | BlocPoint * | sop | ) |
Definition at line 174 of file AbstractPoint.cxx.
References YACS::ENGINE::BlocPoint::findPointWithNode(), getFather(), getFirstNode(), getLastNode(), YACS::ENGINE::BlocPoint::getListOfPoints(), GetNodeAfter(), GetNodeB4(), IsNoLinksBefore(), IsSimplyLinkedAfterExt(), and testCppPluginInvokation::l.
| ForkBlocPoint * AbstractPoint::tryAsForkQuatro | ( | BlocPoint * | sop | ) |
Definition at line 232 of file AbstractPoint.cxx.
References YACS::ENGINE::BlocPoint::findPointWithNode(), getFather(), getFirstNode(), getLastNode(), YACS::ENGINE::BlocPoint::getListOfPoints(), GetNodeAfter(), GetNodeB4(), IsNoLinksAfter(), IsNoLinksBefore(), and testCppPluginInvokation::l.
| ForkBlocPoint * AbstractPoint::tryAsForkTer | ( | BlocPoint * | sop | ) |
Definition at line 203 of file AbstractPoint.cxx.
References YACS::ENGINE::BlocPoint::findPointWithNode(), getFather(), getFirstNode(), getLastNode(), YACS::ENGINE::BlocPoint::getListOfPoints(), GetNodeAfter(), GetNodeB4(), IsNoLinksAfter(), IsSimplyLinkedBeforeExt(), and testCppPluginInvokation::l.
| LinkedBlocPoint * AbstractPoint::tryAsLink | ( | BlocPoint * | sop | ) |
precondition : isSimplyLinkedBeforeAfter must return true on this.
Definition at line 87 of file AbstractPoint.cxx.
References getFather(), getFirstNode(), getLastNode(), YACS::ENGINE::BlocPoint::getNodeAfter(), YACS::ENGINE::BlocPoint::getNodeB4(), IsGatherB4Ext(), IsScatterAfterExt(), isSimplyLinkedAfter(), isSimplyLinkedBefore(), isSimplyLinkedBeforeAfter(), and testCppPluginInvokation::l.
|
static |
This methods tries to deal with sop that can t be considered as a composite of Link, Fork.
Do do so, this methods tries to exclude this from sop and then analyze if the graph can be decomposited into Links and Forks. If yes somethingDone is set to true and nodes is updated in consequence.
If the algorithm fails nodes are let untouched and somethingDone is let false.
Definition at line 396 of file AbstractPoint.cxx.
References YACS::ENGINE::SetOfPoints::basicSimplify(), testCppPluginInvokation::ex, FeedData(), YACS::ENGINE::SetOfPoints::getUniqueAndReleaseIt(), testCppPluginInvokation::l, gui.GraphViewer::m, Rewire(), setFather(), and UnRewire().
Referenced by YACS::ENGINE::BagPoint::dealNotSimpleCase().
|
static |
Unrewire consists into replacing newly created nodes into old one in ElementaryPoints contained in m. As CF links of old ENGINE::Node * has not be touched the CF graph is the same.
Definition at line 365 of file AbstractPoint.cxx.
References gui.GraphViewer::m, and YACS::ENGINE::ElementaryPoint::setNode().
Referenced by TryAsNotSimpleCase().
|
protected |
Definition at line 110 of file AbstractPoint.hxx.
Referenced by getGodFather().