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


C++ Locator::getDescription方法代码示例

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


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

示例1: findUnsolvedSceneItems

    ResourceSolverPtr findUnsolvedSceneItems(SceneInfo* sceneInfo)
    {
        SceneSolver* solver = new SceneSolver;
        ResourceSolverPtr holder(solver);

        MeshLocator meshLocator(DEFAULT_RESOURCE_GROUP_NAME);

        typedef std::map<String, Locator*> LocatorMap;
        LocatorMap locators;
        locators["MeshName"] = &meshLocator;
        // TODO: other locators

        typedef std::pair<String,Ogre::String> TypeValuePair;
        typedef std::map<TypeValuePair, UnsolvedSceneItem*> UnsolvedMap;
        UnsolvedMap unsolvedMap;

        const Scene::Objects& objects = sceneInfo->getObjects();
        for (Scene::Objects::const_iterator itObject = objects.begin(); itObject != objects.end(); ++itObject)
        {
            const ObjectPtr& object = *itObject;
            const PropertyList& properties = object->getProperties();
            for (PropertyList::const_iterator itProperty = properties.begin(); itProperty != properties.end(); ++itProperty)
            {
                const PropertyDef& propertyDef = *itProperty;
                LocatorMap::const_iterator itLocator = locators.find(propertyDef.type);
                if (itLocator == locators.end())
                    continue;

                Locator* locator = itLocator->second;
                assert(locator);

               Ogre::String value = object->getPropertyAsString(propertyDef.name);
                TypeValuePair key(propertyDef.type, value);
                std::pair<UnsolvedMap::iterator, bool> inserted =
                    unsolvedMap.insert(UnsolvedMap::value_type(key, NULL));
                if (!inserted.second)
                {
                    // The item already checked
                    if (!inserted.first->second)
                    {
                        // The item exists
                        continue;
                    }
                }
                else
                {
                    // First time to check the item
                    bool found = locator->exists(value);
                    if (found)
                    {
                        continue;
                    }

                    // Create new unsolved resource
                    UnsolvedSceneItem* item = new UnsolvedSceneItem(solver);
                    solver->unsolvedResources.push_back(UnsolvedResourcePtr(item));

                    // Setup origin name
                    item->origin = value;

                    // Setup description
                    item->description = locator->getDescription(value, object->getName(), propertyDef.name);

                    // Setup recommend values
                    item->recommends = locator->getRecommendValues(value);

                    // Setup possible values
                    item->possibles = locator->getPossibleValues(value);

                    inserted.first->second = item;
                }

                inserted.first->second->references.push_back(UnsolvedSceneItem::Reference(object, propertyDef.name));
            }
        }

        return holder;
    }
开发者ID:gitrider,项目名称:wxsj2,代码行数:78,代码来源:FairySceneSolver.cpp


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