本文整理汇总了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
//.........这里部分代码省略.........