当前位置: 首页>>代码示例>>C++>>正文


C++ TList::Item方法代码示例

本文整理汇总了C++中TList::Item方法的典型用法代码示例。如果您正苦于以下问题:C++ TList::Item方法的具体用法?C++ TList::Item怎么用?C++ TList::Item使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TList的用法示例。


在下文中一共展示了TList::Item方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: RemoveController

//----------------------------------------------------------------------------
void Object::RemoveController (Controller* pkController)
{
    // check if controller is in list
    TList<ControllerPtr>* pkList = m_pkControllerList;
    TList<ControllerPtr>* pkPrev = 0;
    for (/**/; pkList; pkPrev = pkList, pkList = pkList->Next())
    {
        if (pkList->Item() == pkController)
        {
            // unbind controller from object
            pkController->SetObject(0);

            // remove the controller
            if (pkPrev)
            {
                // controller not at front of list
                pkPrev->Next() = pkList->Next();
            }
            else
            {
                // controller at front of list
                assert(pkList == m_pkControllerList);
                m_pkControllerList = pkList->Next();
            }
            pkList->Next() = 0;
            WG_DELETE pkList;
            return;
        }
    }
}
开发者ID:juhgiyo,项目名称:Soft3DEngine,代码行数:31,代码来源:WgObject.cpp

示例2: SetController

//----------------------------------------------------------------------------
// controllers
//----------------------------------------------------------------------------
void Object::SetController (Controller* pkController)
{
    // Controllers may not be controlled.  This avoids arbitrarily complex
    // graphs of Objects.  It is possible to allowed controlled controllers,
    // but modify and proceed at your own risk...
    if (IsDerived(Controller::TYPE))
    {
        assert(false);
        return;
    }

    // controller must exist
    if (!pkController)
    {
        assert(pkController);
        return;
    }

    // check if controller is already in the list
    TList<ControllerPtr>* pkList;
    for (pkList = m_pkControllerList; pkList; pkList = pkList->Next())
    {
        if (pkList->Item() == pkController)
        {
            // controller already exists, nothing to do
            return;
        }
    }

    // bind controller to object
    pkController->SetObject(this);

    // controller not in current list, add it
    pkList = WG_NEW TList<ControllerPtr>;
    pkList->Item() = pkController;
    pkList->Next() = m_pkControllerList;
    m_pkControllerList = pkList;
}
开发者ID:juhgiyo,项目名称:Soft3DEngine,代码行数:41,代码来源:WgObject.cpp

示例3: UpdateControllers

//----------------------------------------------------------------------------
bool Object::UpdateControllers (double dAppTime)
{
    bool bSomeoneUpdated = false;
    TList<ControllerPtr>* pkList;
    for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
    {
        Controller* pkController = pkList->Item();
        assert(pkController);
        if (pkController->Update(dAppTime))
        {
            bSomeoneUpdated = true;
        }
    }
    return bSomeoneUpdated;
}
开发者ID:juhgiyo,项目名称:Soft3DEngine,代码行数:16,代码来源:WgObject.cpp

示例4: GetController

//----------------------------------------------------------------------------
Controller* Object::GetController (int i) const
{
    assert(i >= 0);

    TList<ControllerPtr>* pkList = m_pkControllerList;
    for (int j = 0; j < i; j++, pkList = pkList->Next())
    {
        if (!pkList)
        {
            // i >= iControllerQuantity
            return 0;
        }
    }
    return (pkList ? pkList->Item() : 0);
}
开发者ID:juhgiyo,项目名称:Soft3DEngine,代码行数:16,代码来源:WgObject.cpp

示例5: GetAllObjectsByName

//----------------------------------------------------------------------------
void Object::GetAllObjectsByName (const String& rkName,
    TArray<Object*>& rkObjects)
{
    if (rkName == m_kName)
    {
        rkObjects.Append(this);
    }

    TList<ControllerPtr>* pkList;
    for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
    {
        Controller* pkController = pkList->Item();
        if (pkController)
        {
            pkController->GetAllObjectsByName(rkName,rkObjects);
        }
    }
}
开发者ID:juhgiyo,项目名称:Soft3DEngine,代码行数:19,代码来源:WgObject.cpp

示例6: GetObjectByID

//----------------------------------------------------------------------------
Object* Object::GetObjectByID (unsigned int uiID)
{
    if (uiID == m_uiID)
    {
        return this;
    }

    TList<ControllerPtr>* pkList;
    for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
    {
        Controller* pkController = pkList->Item();
        if (pkController)
        {
            Object* pkFound = pkController->GetObjectByID(uiID);
            if (pkFound)
            {
                return pkFound;
            }
        }
    }

    return 0;
}
开发者ID:juhgiyo,项目名称:Soft3DEngine,代码行数:24,代码来源:WgObject.cpp

示例7: GetObjectByName

//----------------------------------------------------------------------------
// name and unique id
//----------------------------------------------------------------------------
Object* Object::GetObjectByName (const String& rkName)
{
    if (rkName == m_kName)
    {
        return this;
    }

    TList<ControllerPtr>* pkList;
    for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
    {
        Controller* pkController = pkList->Item();
        if (pkController)
        {
            Object* pkFound = pkController->GetObjectByName(rkName);
            if (pkFound)
            {
                return pkFound;
            }
        }
    }

    return 0;
}
开发者ID:juhgiyo,项目名称:Soft3DEngine,代码行数:26,代码来源:WgObject.cpp


注:本文中的TList::Item方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。