void WMHeadPositionCorrection::connectors() { WLModuleDrawable::connectors(); m_input = WLModuleInputDataRingBuffer< WLEMMCommand >::instance( WLConstantsModule::BUFFER_SIZE, shared_from_this(), WLConstantsModule::CONNECTOR_NAME_IN, WLConstantsModule::CONNECTOR_DESCR_IN ); addConnector( m_input ); m_output = WLModuleOutputDataCollectionable< WLEMMCommand >::instance( shared_from_this(), WLConstantsModule::CONNECTOR_NAME_OUT, WLConstantsModule::CONNECTOR_DESCR_OUT ); addConnector( m_output ); }
DspAmpSpecPlugin::DspAmpSpecPlugin(int _id, QString _name) : BasePlugin(_id, _name) { nofLowClip = 0; nofHiClip = 0; estimateForBaseline = 0; outData = new QVector<double>(4096,0.); createSettings(settingsLayout); addConnector(new PluginConnectorQVUint(this,ScopeCommon::in,"in")); addConnector(new PluginConnectorQVDouble(this,ScopeCommon::out,"spectrum")); std::cout << "Instantiated DspAmpSpecPlugin" << std::endl; }
void ControlFlowItem::addConnector(const QPoint& begin, const QPoint& end, bool arrowEnding) { QList< QPoint > points; points.append(begin); points.append(end); addConnector(points, arrowEnding); }
OSG_BEGIN_NAMESPACE /*---------------------------------------------------------------------*/ /*! \name Connection handling */ /*! \{ */ /*! \ingroup GrpBaseFieldContainerConnector \relatesalso AttachmentContainer */ bool addConnection( OSG::AttachmentContainer *pSrcContainer, const OSG::Char8 *szSrcName, OSG::FieldContainer *pDstContainer, const OSG::Char8 *szDstName ) { if(pSrcContainer == NULL || szSrcName == NULL || pDstContainer == NULL || szDstName == NULL ) { return false; } const FieldDescriptionBase *pSrcDesc = NULL; const FieldDescriptionBase *pDstDesc = NULL; GetFieldHandlePtr pSrcHnd = pSrcContainer->getField(szSrcName); GetFieldHandlePtr pDstHnd = pDstContainer->getField(szDstName); if(pSrcHnd != NULL && pSrcHnd->isValid() == true) { pSrcDesc = pSrcHnd->getDescription(); } if(pDstHnd != NULL && pDstHnd->isValid() == true) { pDstDesc = pDstHnd->getDescription(); } // check core for node if(pSrcDesc == NULL) { Node *pNode = dynamic_cast<Node *>(pSrcContainer); if(pNode != NULL && pNode->getCore() != NULL) { pSrcHnd = pNode->getCore()->getField(szSrcName); if(pSrcHnd != NULL && pSrcHnd->isValid() == true) { pSrcDesc = pSrcHnd->getDescription(); } } } // same here if(pDstDesc == NULL) { Node *pNode = dynamic_cast<Node *>(pDstContainer); if(pNode != NULL && pNode->getCore() != NULL) { pDstHnd = pNode->getCore()->getField(szDstName); if(pDstHnd != NULL && pDstHnd->isValid() == true) { pDstDesc = pDstHnd->getDescription(); } } } if(pSrcDesc == NULL || pDstDesc == NULL) { FWARNING(("addConnection: Failed to obtain field descriptions for " "source container [%p] field [%s] desc [%p] - " "destination container [%p] field [%s] desc [%p]\n", static_cast<void *>(pSrcContainer), szSrcName, static_cast<const void *>(pSrcDesc), static_cast<void *>(pDstContainer), szDstName, static_cast<const void *>(pDstDesc) )); return false; } const Field *pSrcField = pSrcHnd->getField(); Field *pDstField = const_cast<Field *>(pDstHnd->getField()); pSrcContainer = dynamic_cast<AttachmentContainer *>(pSrcHnd->getContainer()); pDstContainer = dynamic_cast<FieldContainer *>(pDstHnd->getContainer()); if(pSrcContainer == NULL || pDstContainer == NULL) { FWARNING(("addConnection: Failed to obtain field handles for " "source container [%p] - destination container [%p]\n", static_cast<void *>(pSrcContainer), static_cast<void *>(pDstContainer))); return false; } BasicFieldConnector *pConn = pSrcDesc->createConnector(pSrcField, pDstDesc, pDstField); if(pConn != NULL) { pConn->setTargetContainer(pDstContainer); addConnector(pSrcContainer, pConn); } return true; }
Mesh::Mesh(const Pie3Level& p3) { std::vector<Pie3Polygon>::const_iterator itL; typedef std::set<WZMPoint, compareWZMPoint_less_wEps> t_tupleSet; t_tupleSet tupleSet; std::pair<t_tupleSet::iterator, bool> inResult; std::vector<unsigned> mapping; std::vector<unsigned>::iterator itMap; IndexedTri iTri; WZMVertex tmpNrm; defaultConstructor(); /* * Try to prevent duplicate vertices * (remember, different UV's, or animations, * will cause unavoidable duplication) * so that our transformed vertex cache isn't * completely useless. */ // For each pie3 polygon for (itL = p3.m_polygons.begin(); itL != p3.m_polygons.end(); ++itL) { // pie2 integer-type problem? if (itL->getIndex(0) == itL->getIndex(1) || itL->getIndex(1) == itL->getIndex(2) || itL->getIndex(0) == itL->getIndex(2)) { continue; } if (itL->m_texCoords[0] == itL->m_texCoords[1] || itL->m_texCoords[1] == itL->m_texCoords[2] || itL->m_texCoords[0] == itL->m_texCoords[2]) { continue; } tmpNrm = normalizeVector(WZMVertex(WZMVertex(p3.m_points[itL->getIndex(1)]) - WZMVertex(p3.m_points[itL->getIndex(0)])) .crossProduct(WZMVertex(p3.m_points[itL->getIndex(2)]) - WZMVertex(p3.m_points[itL->getIndex(0)])));; // For all 3 vertices of the triangle for (int i = 0; i < 3; ++i) { inResult = tupleSet.insert(WZMPoint(p3.m_points[itL->getIndex(i)], itL->getUV(i, 0), tmpNrm)); if (!inResult.second) { iTri.operator[](i) = mapping[std::distance(tupleSet.begin(), inResult.first)]; } else { itMap = mapping.begin(); std::advance(itMap, std::distance(tupleSet.begin(), inResult.first)); mapping.insert(itMap, vertices()); iTri.operator[](i) = vertices(); addPoint(*inResult.first); } } addIndices(iTri); } std::list<Pie3Connector>::const_iterator itC; // For each pie3 connector for (itC = p3.m_connectors.begin(); itC != p3.m_connectors.end(); ++itC) { addConnector(WZMConnector(itC->pos.operator[](0), itC->pos.operator[](1), itC->pos.operator[](2))); } finishImport(); recalculateBoundData(); }
void ControlFlowItem::addConnector(int xBegin, int yBegin, int xEnd, int yEnd, bool arrowEnding) { addConnector(QPoint(xBegin, yBegin),QPoint(xEnd, yEnd), arrowEnding); }