Exemplo n.º 1
0
 I32 add_extra_attribute(const LASattribute extra_attribute)
 {
   if (extra_attribute.get_size())
   {
     if (extra_attributes)
     {
       number_extra_attributes++;
       extra_attributes = (LASattribute*)realloc(extra_attributes, sizeof(LASattribute)*number_extra_attributes);
       extra_attribute_array_offsets = (I32*)realloc(extra_attribute_array_offsets, sizeof(I32)*number_extra_attributes);
       extra_attribute_sizes = (I32*)realloc(extra_attribute_sizes, sizeof(I32)*number_extra_attributes);
       extra_attributes[number_extra_attributes-1] = extra_attribute;
       extra_attribute_array_offsets[number_extra_attributes-1] = extra_attribute_array_offsets[number_extra_attributes-2] + extra_attribute_sizes[number_extra_attributes-2];
       extra_attribute_sizes[number_extra_attributes-1] = extra_attributes[number_extra_attributes-1].get_size();
     }
     else
     {
       number_extra_attributes = 1;
       extra_attributes = (LASattribute*)malloc(sizeof(LASattribute));
       extra_attribute_array_offsets = (I32*)malloc(sizeof(I32));
       extra_attribute_sizes = (I32*)malloc(sizeof(I32));
       extra_attributes[0] = extra_attribute;
       extra_attribute_array_offsets[0] = 0;
       extra_attribute_sizes[0] = extra_attributes[0].get_size();
     }
     return number_extra_attributes-1;
   }
   return -1;
 };
Exemplo n.º 2
0
 I32 add_attribute(const LASattribute attribute)
 {
   if (attribute.get_size())
   {
     if (attributes)
     {
       number_attributes++;
       attributes = (LASattribute*)realloc(attributes, sizeof(LASattribute)*number_attributes);
       if (attributes == 0)
       {
         return -1;
       }
       attribute_starts = (I32*)realloc(attribute_starts, sizeof(I32)*number_attributes);
       if (attribute_starts == 0)
       {
         return -1;
       }
       attribute_sizes = (I32*)realloc(attribute_sizes, sizeof(I32)*number_attributes);
       if (attribute_sizes == 0)
       {
         return -1;
       }
       attributes[number_attributes-1] = attribute;
       attribute_starts[number_attributes-1] = attribute_starts[number_attributes-2] + attribute_sizes[number_attributes-2];
       attribute_sizes[number_attributes-1] = attributes[number_attributes-1].get_size();
     }
     else
     {
       number_attributes = 1;
       attributes = (LASattribute*)malloc(sizeof(LASattribute));
       if (attributes == 0)
       {
         return -1;
       }
       attribute_starts = (I32*)malloc(sizeof(I32));
       if (attribute_starts == 0)
       {
         return -1;
       }
       attribute_sizes = (I32*)malloc(sizeof(I32));
       if (attribute_sizes == 0)
       {
         return -1;
       }
       attributes[0] = attribute;
       attribute_starts[0] = 0;
       attribute_sizes[0] = attributes[0].get_size();
     }
     return number_attributes-1;
   }
   return -1;
 };