119        std::cout << 
"Pipeline::updateImpl" << std::endl;
 
  136                    std::stringstream name;
 
  137                    std::stringstream ss;
 
  138                    name << std::setw(40) << m->getClassInfo()->getClassName();
 
  141                    std::string info = 
"\t Module: " + name.str() + 
": \t " + ss.str() + 
"ms";
 
 
  182        std::queue<Module*> moduleQueue;
 
  183        std::set<ObjectId> moduleSet;
 
  187        auto retrieveModules = [&](
ObjectId id, std::vector<FBase*>& fields) {
 
  188            for (
auto f : fields) {
 
  189                auto& sinks = f->getSinks();
 
  190                for (
auto sink : sinks)
 
  193                    if (module != 
nullptr)
 
  198                        if (moduleSet.find(oId) == moduleSet.end() && 
mModuleMap.count(oId) > 0)
 
  200                            moduleSet.insert(oId);
 
  201                            moduleQueue.push(module);
 
  209        retrieveModules(
baseId, fields);
 
  211        auto flushQueue = [&]()
 
  213                while (!moduleQueue.empty())
 
  215                    Module* m = moduleQueue.front();
 
  218                    retrieveModules(m->
objectId(), outFields);
 
  227            ObjectId oId = m.second->objectId();
 
  230            if (moduleSet.find(oId) == moduleSet.end())
 
  232                moduleSet.insert(oId);
 
  233                moduleQueue.push(m.second.get());
 
  239            auto exports = m.second->getExportModules();
 
  240            for (
auto exp : exports)
 
  242                auto eId = 
exp->getParent()->objectId();
 
 
double getElapsedTime()
return the elapsed time in (ms)
 
Graph class represents a directed graph.
 
void addEdge(ObjectId v, ObjectId w)
 
std::vector< ObjectId > & topologicalSort(ObjectId v)
 
FieldTypeEnum getFieldType()
 
@ Info
Information to user.
 
static void sendMessage(MessageType type, const std::string &text)
Add a new message to log.
 
virtual void setParentNode(Node *node)
Set the parent node.
 
Module(std::string name="default")
 
bool addModule(std::shared_ptr< Module > module)
Add a module to m_module_list and other special module lists.
 
bool deleteModule(std::shared_ptr< Module > module)
 
std::vector< FBase * > & getAllFields()
 
std::vector< FBase * > & getOutputFields()
 
bool removeOutputField(FBase *field)
 
bool addOutputField(FBase *field)
 
static ObjectId baseId()
Base Id.
 
std::list< std::shared_ptr< Module > > mModuleList
 
uint sizeOfDynamicModules()
 
std::map< ObjectId, std::shared_ptr< Module > > mModuleMap
 
uint sizeOfPersistentModules()
 
void pushModule(std::shared_ptr< Module > m)
 
virtual bool printDebugInfo()
 
void updateExecutionQueue()
 
FBase * promoteOutputToNode(FBase *base)
 
void pushPersistentModule(std::shared_ptr< Module > m)
 
bool requireUpdate() final
 
void demoteOutputFromNode(FBase *base)
 
std::list< std::shared_ptr< Module > > mPersistentModule
 
void updateImpl() override
 
void popModule(std::shared_ptr< Module > m)
 
void reconstructPipeline()
 
This is an implementation of AdditiveCCD based on peridyno.
 
DYN_FUNC Complex< Real > exp(const Complex< Real > &)