Ejemplo n.º 1
0
Layer* ThresholdLayerAdapter::copy(const string& layerName, bool bCopyElement, DataElement* pParent) const
{
   // Get the layer name
   string name = layerName;
   if (name.empty() == true)
   {
      name = getName();
   }

   // Get the raster element
   RasterElement* pRasterElement = NULL;

   RasterElement* pCurrentRasterElement = dynamic_cast<RasterElement*>(getDataElement());
   if (bCopyElement == true && pCurrentRasterElement != NULL)
   {
      pRasterElement = dynamic_cast<RasterElement*>(pCurrentRasterElement->copy(name, pParent));
   }
   else
   {
      pRasterElement = pCurrentRasterElement;
   }

   if (pRasterElement == NULL)
   {
      return NULL;
   }

   // Create the new layer
   ThresholdLayerAdapter* pLayer = new ThresholdLayerAdapter(SessionItemImp::generateUniqueId(), name, pRasterElement);
   if (pLayer != NULL)
   {
      *pLayer = *this;
   }

   return pLayer;
}