#include <SequenceData.hpp>
Public Types | |
typedef std::vector< EntityHandle > * | AdjacencyDataType |
Public Member Functions | |
SequenceData (int num_sequence_arrays, EntityHandle start, EntityHandle end) | |
virtual | ~SequenceData () |
EntityHandle | start_handle () const |
EntityHandle | end_handle () const |
EntityID | size () const |
void * | get_sequence_data (int array_num) |
void const * | get_sequence_data (int array_num) const |
AdjacencyDataType * | get_adjacency_data () |
AdjacencyDataType const * | get_adjacency_data () const |
void * | get_tag_data (unsigned tag_num) |
void const * | get_tag_data (unsigned tag_num) const |
void * | create_sequence_data (int array_num, int bytes_per_ent, const void *initial_val=0) |
Allocate array of sequence-specific data. More... | |
void * | create_custom_data (int array_num, size_t total_bytes) |
Allocate array of sequence-specific data. More... | |
AdjacencyDataType * | allocate_adjacency_data () |
Allocate array for storing adjacency data. More... | |
void * | allocate_tag_array (int index, int bytes_per_ent, const void *default_value=0) |
Allocate array of dense tag data. More... | |
SequenceData * | subset (EntityHandle start, EntityHandle end, const int *sequence_data_sizes) const |
Create new SequenceData that is a copy of a subset of this one. More... | |
void | move_tag_data (SequenceData *destination, const int *tag_sizes, int num_tag_sizes) |
Move tag data for a subset of this sequences to specified sequence. More... | |
void | release_tag_data (const int *tag_sizes, int num_tag_sizes) |
Free all tag data arrays. More... | |
void | release_tag_data (int index, int tag_size) |
Free specified tag data array. More... | |
Public Attributes | |
TypeSequenceManager::SequenceDataPtr | seqManData |
SequenceManager data. More... | |
Protected Member Functions | |
SequenceData (const SequenceData *subset_from, EntityHandle start, EntityHandle end, const int *sequence_data_sizes) | |
Private Member Functions | |
void | increase_tag_count (unsigned by_this_many) |
void * | create_data (int index, int bytes_per_ent, const void *initial_val=0) |
void | copy_data_subset (int index, int size_per_ent, const void *source, size_t offset, size_t count) |
Private Attributes | |
const int | numSequenceData |
unsigned | numTagData |
void ** | arraySet |
EntityHandle | startHandle |
EntityHandle | endHandle |
Definition at line 13 of file SequenceData.hpp.
typedef std::vector< EntityHandle >* moab::SequenceData::AdjacencyDataType |
Definition at line 16 of file SequenceData.hpp.
|
inline |
num_sequence_arrays | Number of data arrays needed by the EntitySequence |
start | First handle in this SequenceData |
end | Last handle in this SequenceData |
Definition at line 157 of file SequenceData.hpp.
References arraySet.
Referenced by subset().
|
virtual |
Definition at line 9 of file SequenceData.cpp.
References arraySet, numSequenceData, and numTagData.
|
protected |
Definition at line 84 of file SequenceData.cpp.
References arraySet, copy_data_subset(), end_handle(), get_adjacency_data(), get_sequence_data(), numSequenceData, numTagData, and start_handle().
SequenceData::AdjacencyDataType * moab::SequenceData::allocate_adjacency_data | ( | ) |
Allocate array for storing adjacency data.
Allocate array for storing adjacency data.
Definition at line 44 of file SequenceData.cpp.
References arraySet, and size().
Referenced by moab::AEntityFactory::set_adjacency_ptr().
void * moab::SequenceData::allocate_tag_array | ( | int | index, |
int | bytes_per_ent, | ||
const void * | default_value = 0 |
||
) |
Allocate array of dense tag data.
Allocate an array of dense tag data.
index | Dense tag ID for which to allocate array. |
bytes_per_ent | Bytes to allocate for each entity. |
Definition at line 71 of file SequenceData.cpp.
References arraySet, create_data(), increase_tag_count(), and numTagData.
Referenced by moab::VarLenDenseTag::get_array(), and moab::DenseTag::get_array_private().
|
private |
void * moab::SequenceData::create_custom_data | ( | int | array_num, |
size_t | total_bytes | ||
) |
Allocate array of sequence-specific data.
Allocate an array of EntitySequence-specific data.
array_num | Index for which to allocate array. Must be in [0,num_sequence_arrays], where num_sequence_arrays is constructor argument. |
Definition at line 33 of file SequenceData.cpp.
References arraySet, and numSequenceData.
|
private |
Definition at line 16 of file SequenceData.cpp.
References arraySet, moab::SysUtil::setmem(), and size().
Referenced by allocate_tag_array(), and create_sequence_data().
void * moab::SequenceData::create_sequence_data | ( | int | array_num, |
int | bytes_per_ent, | ||
const void * | initial_val = 0 |
||
) |
Allocate array of sequence-specific data.
Allocate an array of EntitySequence-specific data.
array_num | Index for which to allocate array. Must be in [0,num_sequence_arrays], where num_sequence_arrays is constructor argument. |
bytes_per_ent | Bytes to allocate for each entity. |
initial_val | Value to initialize array with. If non-null, must be bytes_per_ent long. If NULL, array will be zeroed. |
Definition at line 25 of file SequenceData.cpp.
References arraySet, create_data(), and numSequenceData.
Referenced by moab::MeshSetSequence::initialize(), moab::ScdVertexData::ScdVertexData(), moab::SweptVertexData::SweptVertexData(), moab::UnstructuredElemSeq::UnstructuredElemSeq(), and moab::VertexSequence::VertexSequence().
|
inline |
Definition at line 33 of file SequenceData.hpp.
References endHandle.
Referenced by moab::TypeSequenceManager::check_valid_data(), moab::VarLenDenseTag::get_array(), moab::DenseTag::get_array_private(), moab::TypeSequenceManager::get_memory_use(), moab::TypeSequenceManager::insert_sequence(), moab::TypeSequenceManager::is_free_handle(), moab::TypeSequenceManager::is_free_sequence(), move_tag_data(), moab::operator<<(), moab::Core::print_database(), SequenceData(), and moab::EntitySequence::using_entire_data().
|
inline |
Definition at line 55 of file SequenceData.hpp.
References arraySet.
Referenced by moab::Core::adjacencies_iterate(), moab::AEntityFactory::get_adjacency_ptr(), moab::AEntityFactory::get_memory_use(), SequenceData(), and moab::AEntityFactory::set_adjacency_ptr().
|
inline |
Definition at line 60 of file SequenceData.hpp.
References arraySet.
|
inline |
Definition at line 44 of file SequenceData.hpp.
References arraySet.
Referenced by moab::MeshSetSequence::array(), moab::VertexSequence::array(), moab::Core::coords_iterate(), moab::UnstructuredElemSeq::get_array(), moab::ScdBox::get_coordinate_arrays(), and SequenceData().
|
inline |
Definition at line 49 of file SequenceData.hpp.
References arraySet.
|
inline |
Definition at line 66 of file SequenceData.hpp.
References arraySet, and numTagData.
Referenced by moab::VarLenDenseTag::get_array(), moab::DenseTag::get_array_private(), moab::DenseTag::get_memory_use(), moab::VarLenDenseTag::get_memory_use(), and moab::get_tagged().
|
inline |
Definition at line 71 of file SequenceData.hpp.
References arraySet, and numTagData.
|
private |
Definition at line 53 of file SequenceData.cpp.
References arraySet, numSequenceData, and numTagData.
Referenced by allocate_tag_array(), and move_tag_data().
void moab::SequenceData::move_tag_data | ( | SequenceData * | destination, |
const int * | tag_sizes, | ||
int | num_tag_sizes | ||
) |
Move tag data for a subset of this sequences to specified sequence.
Definition at line 118 of file SequenceData.cpp.
References arraySet, end_handle(), increase_tag_count(), numTagData, size(), and start_handle().
Referenced by moab::TypeSequenceManager::replace_subsequence().
void moab::SequenceData::release_tag_data | ( | const int * | tag_sizes, |
int | num_tag_sizes | ||
) |
void moab::SequenceData::release_tag_data | ( | int | index, |
int | tag_size | ||
) |
Free specified tag data array.
Definition at line 152 of file SequenceData.cpp.
References arraySet, moab::VarLenTag::clear(), MB_VARIABLE_LENGTH, numTagData, and size().
|
inline |
Definition at line 38 of file SequenceData.hpp.
References endHandle, and startHandle.
Referenced by allocate_adjacency_data(), moab::TypeSequenceManager::append_memory_use(), create_data(), moab::SequenceManager::create_scd_sequence(), moab::SequenceManager::create_sweep_sequence(), moab::VarLenDenseTag::get_array(), moab::DenseTag::get_array_private(), moab::StructuredElementSeq::get_const_memory_use(), moab::SweptElementSeq::get_const_memory_use(), moab::VarLenDenseTag::get_memory_use(), moab::AEntityFactory::get_memory_use(), moab::ScdElementData::get_params(), moab::SweptElementData::get_params(), move_tag_data(), and release_tag_data().
|
inline |
Definition at line 27 of file SequenceData.hpp.
References startHandle.
Referenced by moab::Core::adjacencies_iterate(), moab::SweptElementData::calc_num_entities(), moab::ScdElementData::calc_num_entities(), moab::TypeSequenceManager::check_valid_data(), moab::Core::coords_iterate(), moab::AEntityFactory::get_adjacency_ptr(), moab::UnstructuredElemSeq::get_array(), moab::VarLenDenseTag::get_array(), moab::DenseTag::get_array_private(), moab::VertexSequence::get_coordinate_arrays(), moab::VertexSequence::get_coordinates(), moab::VertexSequence::get_coordinates_ref(), moab::ScdElementData::get_element(), moab::SweptElementData::get_element(), moab::AEntityFactory::get_memory_use(), moab::ScdElementData::get_params(), moab::SweptElementData::get_params(), moab::ScdVertexData::get_params(), moab::SweptVertexData::get_params(), moab::ScdElementData::get_params_connectivity(), moab::SweptElementData::get_params_connectivity(), moab::MeshSetSequence::get_set(), moab::get_tagged(), moab::ScdVertexData::get_vertex(), moab::SweptVertexData::get_vertex(), moab::MeshSetSequence::initialize(), moab::TypeSequenceManager::insert_sequence(), moab::TypeSequenceManager::is_free_handle(), moab::TypeSequenceManager::is_free_sequence(), move_tag_data(), moab::operator<<(), moab::MeshSetSequence::pop_back(), moab::MeshSetSequence::pop_front(), moab::Core::print_database(), moab::MeshSetSequence::push_back(), moab::MeshSetSequence::push_front(), moab::TypeSequenceManager::remove_sequence(), moab::ScdBox::ScdBox(), SequenceData(), moab::AEntityFactory::set_adjacency_ptr(), moab::VertexSequence::set_coordinates(), moab::EntitySequence::using_entire_data(), and moab::MeshSetSequence::~MeshSetSequence().
SequenceData * moab::SequenceData::subset | ( | EntityHandle | start, |
EntityHandle | end, | ||
const int * | sequence_data_sizes | ||
) | const |
Create new SequenceData that is a copy of a subset of this one.
Create a new SequenceData that is a copy of a subset of this one. This function is intended for use in subdividing a SequenceData for operations such as changing the number of nodes in a block of elements.
start | First handle for resulting subset |
end | Last handle for resulting subset |
sequence_data_sizes | Bytes-per-entity for sequence-specific data. \NOTE Does not copy tag data. |
Definition at line 79 of file SequenceData.cpp.
References SequenceData().
Referenced by moab::UnstructuredElemSeq::create_data_subset(), and moab::VertexSequence::create_data_subset().
|
private |
Definition at line 153 of file SequenceData.hpp.
Referenced by allocate_adjacency_data(), allocate_tag_array(), copy_data_subset(), create_custom_data(), create_data(), create_sequence_data(), get_adjacency_data(), get_sequence_data(), get_tag_data(), increase_tag_count(), move_tag_data(), release_tag_data(), SequenceData(), and ~SequenceData().
|
private |
Definition at line 154 of file SequenceData.hpp.
Referenced by end_handle(), and size().
|
private |
Definition at line 151 of file SequenceData.hpp.
Referenced by create_custom_data(), create_sequence_data(), increase_tag_count(), SequenceData(), and ~SequenceData().
|
private |
Definition at line 152 of file SequenceData.hpp.
Referenced by allocate_tag_array(), get_tag_data(), increase_tag_count(), move_tag_data(), release_tag_data(), SequenceData(), and ~SequenceData().
TypeSequenceManager::SequenceDataPtr moab::SequenceData::seqManData |
SequenceManager data.
Definition at line 129 of file SequenceData.hpp.
Referenced by moab::TypeSequenceManager::append_memory_use(), moab::TypeSequenceManager::check_valid_data(), moab::TypeSequenceManager::erase(), moab::TypeSequenceManager::get_occupied_size(), moab::TypeSequenceManager::insert_sequence(), moab::TypeSequenceManager::remove_sequence(), and moab::TypeSequenceManager::replace_subsequence().
|
private |
Definition at line 154 of file SequenceData.hpp.
Referenced by size(), and start_handle().