Exemplo n.º 1
0
ErrorCode DenseTag::set_data( SequenceManager* seqman,
                              Error* error,
                              const EntityHandle* entities,
                              size_t num_entities,
                              void const* const* pointers,
                              const int* data_lengths )
{
  ErrorCode rval = validate_lengths( error, data_lengths, num_entities );
  if (MB_SUCCESS != rval)
    return rval;
  
  const EntityHandle* const end = entities + num_entities;
  unsigned char* array;
  size_t junk;
  
  for (const EntityHandle* i = entities; i != end; ++i, ++pointers ) {
    rval = get_array( seqman, error, *i, array, junk, true );
    if (MB_SUCCESS != rval)
      return rval;

    memcpy( array, *pointers, get_size() );
  }

  return MB_SUCCESS;
}
Exemplo n.º 2
0
ErrorCode MeshTag::clear_data(SequenceManager*,
                              Error* /* error */,
                              const EntityHandle* entities,
                              size_t num_entities,
                              const void* value_ptr,
                              int value_len)
{
  if (!all_root_set(get_name(), entities, num_entities))
    return MB_TAG_NOT_FOUND;

  ErrorCode valid = validate_lengths(NULL, value_len ? &value_len : 0, 1);MB_CHK_ERR(valid);

  if (num_entities > 0) {
    mValue.resize(value_len);
    memcpy(&mValue[0], value_ptr, value_len);
  }

  return MB_SUCCESS;
}
Exemplo n.º 3
0
ErrorCode MeshTag::set_data(SequenceManager*,
                            Error* /* error */,
                            const EntityHandle* entities,
                            size_t num_entities,
                            void const* const* data_ptrs,
                            const int* data_lengths)
{
  if (!all_root_set(get_name(), entities, num_entities))
    return MB_TAG_NOT_FOUND;

  ErrorCode valid = validate_lengths(NULL, data_lengths, num_entities);MB_CHK_ERR(valid);

  if (num_entities > 0) {
    mValue.resize(data_lengths[num_entities - 1]);
    memcpy(&mValue[0], data_ptrs[num_entities - 1], mValue.size());
  }

  return MB_SUCCESS;
}