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 );
}
Пример #2
0
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;
}
Пример #3
0
void ControlFlowItem::addConnector(const QPoint& begin, const QPoint& end, bool arrowEnding)
{
	QList< QPoint > points;
	points.append(begin);
	points.append(end);
	addConnector(points, arrowEnding);
}
Пример #4
0
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;
}
Пример #5
0
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();
}
Пример #6
0
void ControlFlowItem::addConnector(int xBegin, int yBegin, int xEnd, int yEnd, bool arrowEnding)
{
	addConnector(QPoint(xBegin, yBegin),QPoint(xEnd, yEnd), arrowEnding);
}