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


C++ RasterElement::createInMemoryPager方法代码示例

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


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

示例1: createElement

DataElement* ModelServicesImp::createElement(const DataDescriptor* pDescriptor, const string& id)
{
    const DataDescriptorImp* pDescriptorImp = dynamic_cast<const DataDescriptorImp*>(pDescriptor);
    if (pDescriptorImp == NULL)
    {
        return NULL;
    }
    if (pDescriptorImp->getParent() == NULL && !pDescriptorImp->getParentDesignator().empty())
    {
        // Set the parent element pointer into the data descriptor if the descriptor was created with the designator
        DataElement* pParent = getElement(pDescriptorImp->getParentDesignator(), string());
        if (pParent == NULL)
        {
            // The parent element does not exist, so do not create the element
            return NULL;
        }

        const_cast<DataDescriptorImp*>(pDescriptorImp)->setParent(pParent);
    }

    // Check if an element with the same name, type, and parent already exists
    const string& name = pDescriptorImp->getName();
    const string& type = pDescriptorImp->getType();
    DataElement* pParent = pDescriptorImp->getParent();

    if (getElement(name, type, pParent) != NULL)
    {
        return NULL;
    }

    // Create the element
    DataElement* pElement = NULL;
    if ((type == "AnnotationElement") || (type == "AnnotationElementAdapter"))
    {
        pElement = new AnnotationElementAdapter(*pDescriptorImp, id);
    }
    else if ((type == "AoiElement") || (type == "AoiElementAdapter"))
    {
        pElement = new AoiElementAdapter(*pDescriptorImp, id);
    }
    else if ((type == "DataElement") || (type == "DataElementAdapter"))
    {
        pElement = new DataElementAdapter(*pDescriptorImp, id);
    }
    else if ((type == "DataElementGroup") || (type == "DataElementGroupAdapter"))
    {
        pElement = new DataElementGroupAdapter(*pDescriptorImp, id);
    }
    else if ((type == "GcpList") || (type == "GcpListAdapter"))
    {
        pElement = new GcpListAdapter(*pDescriptorImp, id);
    }
    else if ((type == "RasterElement") || (type == "RasterElementAdapter"))
    {
        const RasterDataDescriptor* pRasterDescriptor = dynamic_cast<const RasterDataDescriptor*>(pDescriptor);
        if (pRasterDescriptor != NULL)
        {
            RasterElement* pRaster = new RasterElementAdapter(*pDescriptorImp, id);

            if (pRaster != NULL)
            {
                if (pDescriptorImp->getProcessingLocation() == IN_MEMORY)
                {
                    if (!pRaster->createInMemoryPager())
                    {
                        delete dynamic_cast<RasterElementImp*>(pRaster);
                        pRaster = NULL;
                    }
                }
            }
            pElement = pRaster;
        }
    }
    else if ((type == "Signature") || (type == "SignatureAdapter"))
    {
        pElement = new SignatureAdapter(*pDescriptorImp, id);
    }
    else if ((type == "SignatureLibrary") || (type == "SignatureLibraryAdapter"))
    {
        pElement = new SignatureLibraryAdapter(*pDescriptorImp, id);
    }
    else if ((type == "SignatureSet") || (type == "SignatureSetAdapter"))
    {
        pElement = new SignatureSetAdapter(*pDescriptorImp, id);
    }
    else if ((type == "TiePointList") || (type == "TiePointListAdapter"))
    {
        pElement = new TiePointListAdapter(*pDescriptorImp, id);
    }
    else if ((type == "Any") || (type == "AnyAdapter") || (hasElementType(type) == true))
    {
        pElement = new AnyAdapter(type, *pDescriptorImp, id);
    }

    if (pElement != NULL)
    {
        // Add the element to the session
        addElement(pElement);

        // Notify of change
//.........这里部分代码省略.........
开发者ID:,项目名称:,代码行数:101,代码来源:


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