Bug in Field3DFile.h?

22 views
Skip to first unread message

Zalazan

unread,
Jul 4, 2013, 2:28:46 PM7/4/13
to field...@googlegroups.com
Begin from Line 987, please compare lines that are marked in red.

template <template <typename T> class Field_T, class Data_T>typename Field_T<Data_T>::VecField3DInputFile::readScalarLayersAs(const std::string &layerName) const
{
  typedef typename Field<Data_T>::Vec FieldList;
  typedef typename Field_T<Data_T>::Vec TypedFieldList;

  // First, read the layers as-is
  FieldList originals;
  originals = readScalarLayers<Data_T>(layerName);
 
  // Loop over fields, converting if needed
  TypedFieldList output;
  typename FieldList::iterator i = originals.begin();
  for (; i != originals.end(); ++i) {
    typename Field_T<Data_T>::Ptr targetField;
    targetField = field_dynamic_cast<Field_T<Data_T> >(*i);
    if (targetField) {
      output.push_back(targetField);
    } else {
      typename Field_T<Data_T>::Ptr newTarget(new Field_T<Data_T>);
      newTarget->name = (*i)->name;
      newTarget->attribute = (*i)->attribute;
      newTarget->copyMetadata(*i);
      newTarget->copyFrom(*i);
      output.push_back(newTarget);
    }
  }

  return output;
}

//----------------------------------------------------------------------------//

template <template <typename T> class Field_T, class Data_T>
typename Field_T<Data_T>::Vec
Field3DInputFile::readScalarLayersAs(const std::string &partitionName,
                                     const std::string &layerName) const
{
  typedef typename Field<Data_T>::Vec FieldList;
  typedef typename Field_T<Data_T>::Vec TypedFieldList;

  // First, read the layers as-is
  FieldList originals;
  originals = readScalarLayers<Data_T>(partitionName, layerName);
 
  // Loop over fields, converting if needed
  TypedFieldList output;
  typename FieldList::iterator i = originals.begin();
  for (; i != originals.end(); ++i) {
    typename Field_T<Data_T>::Ptr targetField;
    targetField = field_dynamic_cast<Field_T<Data_T> >(*i);
    if (targetField) {
      output.push_back(targetField);
    } else {
      typename Field_T<Data_T>::Ptr newTarget(new Field_T<Data_T>);
      newTarget->name = (*i)->name;
      newTarget->attribute = (*i)->attribute;
      newTarget->copyMetadata(**i);
      newTarget->copyFrom(*i);
      output.push_back(newTarget);
    }
  }

  return output;
}

//----------------------------------------------------------------------------//

template <template <typename T> class Field_T, class Data_T>
typename Field_T<Data_T>::Vec
Field3DInputFile::readVectorLayersAs(const std::string &layerName) const
{
  typedef typename Field<Data_T>::Vec FieldList;
  typedef typename Field_T<Data_T>::Vec TypedFieldList;

  // First, read the layers as-is
  FieldList originals;
  originals = readVectorLayers<Data_T>(layerName);
 
  // Loop over fields, converting if needed
  TypedFieldList output;
  typename FieldList::iterator i = originals.begin();
  for (; i != originals.end(); ++i) {
    typename Field_T<Data_T>::Ptr targetField;
    targetField = field_dynamic_cast<Field_T<Data_T> >(*i);
    if (targetField) {
      output.push_back(targetField);
    } else {
      typename Field_T<Data_T>::Ptr newTarget(new Field_T<Data_T>);
      newTarget->name = (*i)->name;
      newTarget->attribute = (*i)->attribute;
      newTarget->copyMetadata(*i);
      newTarget->copyFrom(*i);
      output.push_back(newTarget);
    }
  }

  return output;
}

//----------------------------------------------------------------------------//

template <template <typename T> class Field_T, class Data_T>
typename Field_T<Data_T>::Vec
Field3DInputFile::readVectorLayersAs(const std::string &partitionName,
                                     const std::string &layerName) const
{
  typedef typename Field<Data_T>::Vec FieldList;
  typedef typename Field_T<Data_T>::Vec TypedFieldList;

  // First, read the layers as-is
  FieldList originals;
  originals = readVectorLayers<Data_T>(partitionName, layerName);
 
  // Loop over fields, converting if needed
  TypedFieldList output;
  typename FieldList::iterator i = originals.begin();
  for (; i != originals.end(); ++i) {
    typename Field_T<Data_T>::Ptr targetField;
    targetField = field_dynamic_cast<Field_T<Data_T> >(*i);
    if (targetField) {
      output.push_back(targetField);
    } else {
      typename Field_T<Data_T>::Ptr newTarget(new Field_T<Data_T>);
      newTarget->name = (*i)->name;
      newTarget->attribute = (*i)->attribute;
      newTarget->copyMetadata(*i);
      newTarget->copyFrom(*i);
      output.push_back(newTarget);
    }
  }

  return output;
}

//----------------------------------------------------------------------------//

Magnus Wrenninge

unread,
Jul 6, 2013, 1:33:50 PM7/6/13
to field...@googlegroups.com
Thanks, I'll update the main branch.

Magnus



--
You received this message because you are subscribed to the Google Groups "Field3D dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to field3d-dev...@googlegroups.com.
To post to this group, send email to field...@googlegroups.com.
Visit this group at http://groups.google.com/group/field3d-dev.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Reply all
Reply to author
Forward
0 new messages