#include <ScdElementData.hpp>
Classes | |
class | VertexDataRef |
structure to hold references to bounding vertex blocks More... | |
Public Member Functions | |
ScdElementData (EntityHandle start_handle, const int imin, const int jmin, const int kmin, const int imax, const int jmax, const int kmax, int *is_periodic) | |
constructor More... | |
virtual | ~ScdElementData () |
EntityHandle | get_vertex (const HomCoord &coords) const |
get handle of vertex at homogeneous coords More... | |
EntityHandle | get_vertex (int i, int j, int k) const |
EntityHandle | get_element (const int i, const int j, const int k) const |
get handle of element at i, j, k More... | |
const HomCoord & | min_params () const |
get min params for this element More... | |
const HomCoord & | max_params () const |
get max params for this element More... | |
void | param_extents (int &di, int &dj, int &dk) const |
get the number of vertices in each direction, inclusive More... | |
ErrorCode | get_params (const EntityHandle ehandle, int &i, int &j, int &k) const |
given a handle, get the corresponding parameters More... | |
int | is_periodic_i () const |
return whether rectangle is periodic in i More... | |
int | is_periodic_j () const |
return whether rectangle is periodic in j More... | |
void | is_periodic (int is_p[2]) const |
int | i_min () const |
convenience functions for parameter extents More... | |
int | j_min () const |
int | k_min () const |
int | i_max () const |
int | j_max () const |
int | k_max () const |
bool | boundary_complete () const |
test the bounding vertex sequences and determine whether they fully define the vertices covering this element block's parameter space More... | |
bool | contains (const HomCoord &coords) const |
test whether this sequence contains these parameters More... | |
bool | contains_vertex (const HomCoord &coords) const |
test whether vertex parameterization in this sequence contains these parameters More... | |
ErrorCode | get_params_connectivity (const int i, const int j, const int k, std::vector< EntityHandle > &connectivity) const |
get connectivity of an entity given entity's parameters More... | |
ErrorCode | add_vsequence (ScdVertexData *vseq, const HomCoord &p1, const HomCoord &q1, const HomCoord &p2, const HomCoord &q2, const HomCoord &p3, const HomCoord &q3, bool bb_input=false, const HomCoord &bb_min=HomCoord::unitv[0], const HomCoord &bb_max=HomCoord::unitv[0]) |
add a vertex seq ref to this element sequence; if bb_input is true, bounding box (in eseq-local coords) of vseq being added is input in bb_min and bb_max (allows partial sharing of vseq rather than the whole vseq); if it's false, the whole vseq is referenced and the eseq-local coordinates is computed from the transformed bounding box of the vseq More... | |
SequenceData * | subset (EntityHandle start, EntityHandle end, const int *sequence_data_sizes, const int *tag_data_sizes) const |
unsigned long | get_memory_use () const |
Public Member Functions inherited from moab::SequenceData | |
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... | |
Static Public Member Functions | |
static EntityID | calc_num_entities (EntityHandle start_handle, int irange, int jrange, int krange, int *is_periodic=NULL) |
Private Member Functions | |
ScdElementData () | |
bare constructor, so compiler doesn't create one for me More... | |
Private Attributes | |
HomCoord | boxParams [3] |
parameter min/max/stride for vertices, in homogeneous coords ijkh; elements are one less than max More... | |
int | dIJK [3] |
difference between max and min params plus one (i.e. # VERTICES in each parametric direction) More... | |
int | dIJKm1 [3] |
difference between max and min params (i.e. # ELEMENTS in each parametric direction) More... | |
int | isPeriodic [2] |
whether scd element rectangle is periodic in i and possibly j More... | |
std::vector< VertexDataRef > | vertexSeqRefs |
list of bounding vertex blocks More... | |
Additional Inherited Members | |
Public Types inherited from moab::SequenceData | |
typedef std::vector< EntityHandle > * | AdjacencyDataType |
Public Attributes inherited from moab::SequenceData | |
TypeSequenceManager::SequenceDataPtr | seqManData |
SequenceManager data. More... | |
Protected Member Functions inherited from moab::SequenceData | |
SequenceData (const SequenceData *subset_from, EntityHandle start, EntityHandle end, const int *sequence_data_sizes) | |
Definition at line 43 of file ScdElementData.hpp.
|
private |
bare constructor, so compiler doesn't create one for me
moab::ScdElementData::ScdElementData | ( | EntityHandle | start_handle, |
const int | imin, | ||
const int | jmin, | ||
const int | kmin, | ||
const int | imax, | ||
const int | jmax, | ||
const int | kmax, | ||
int * | is_periodic | ||
) |
constructor
Definition at line 54 of file ScdElementData.cpp.
References boxParams, dIJK, dIJKm1, and isPeriodic.
|
virtual |
Definition at line 85 of file ScdElementData.cpp.
|
inline |
add a vertex seq ref to this element sequence; if bb_input is true, bounding box (in eseq-local coords) of vseq being added is input in bb_min and bb_max (allows partial sharing of vseq rather than the whole vseq); if it's false, the whole vseq is referenced and the eseq-local coordinates is computed from the transformed bounding box of the vseq
Definition at line 312 of file ScdElementData.hpp.
References moab::ScdVertexData::max_params(), MB_SUCCESS, moab::ScdVertexData::min_params(), moab::HomXform::three_pt_xform(), and vertexSeqRefs.
Referenced by moab::ScdBox::add_vbox(), and moab::SequenceManager::add_vsequence().
bool moab::ScdElementData::boundary_complete | ( | ) | const |
test the bounding vertex sequences and determine whether they fully define the vertices covering this element block's parameter space
Definition at line 87 of file ScdElementData.cpp.
References boxParams, moab::HomCoord::unitv, and vertexSeqRefs.
Referenced by moab::StructuredElementSeq::boundary_complete(), moab::SweptElementSeq::boundary_complete(), and get_vertex().
|
static |
Definition at line 27 of file ScdElementData.cpp.
References dim, moab::CN::Dimension(), is_periodic(), moab::SequenceData::start_handle(), and moab::TYPE_FROM_HANDLE().
|
inline |
test whether this sequence contains these parameters
Definition at line 254 of file ScdElementData.hpp.
References boxParams, dIJKm1, moab::HomCoord::i(), moab::HomCoord::j(), and moab::HomCoord::k().
Referenced by moab::StructuredElementSeq::contains(), moab::SweptElementSeq::contains(), and get_params_connectivity().
|
inline |
test whether vertex parameterization in this sequence contains these parameters
Definition at line 265 of file ScdElementData.hpp.
References boxParams, dIJK, moab::HomCoord::i(), moab::HomCoord::j(), and moab::HomCoord::k().
|
inline |
get handle of element at i, j, k
Definition at line 209 of file ScdElementData.hpp.
References dIJKm1, i_min(), j_min(), k_min(), and moab::SequenceData::start_handle().
Referenced by moab::StructuredElementSeq::get_element(), and moab::SweptElementSeq::get_element().
unsigned long moab::ScdElementData::get_memory_use | ( | ) | const |
Definition at line 169 of file ScdElementData.cpp.
References vertexSeqRefs.
Referenced by moab::StructuredElementSeq::get_const_memory_use(), and moab::SweptElementSeq::get_const_memory_use().
|
inline |
given a handle, get the corresponding parameters
Definition at line 232 of file ScdElementData.hpp.
References boxParams, dIJKm1, moab::HomCoord::i(), i_max(), i_min(), moab::HomCoord::j(), j_max(), j_min(), moab::HomCoord::k(), k_max(), k_min(), MB_SUCCESS, moab::SequenceData::size(), moab::SequenceData::start_handle(), and moab::TYPE_FROM_HANDLE().
Referenced by moab::StructuredElementSeq::get_params(), and moab::SweptElementSeq::get_params().
|
inline |
get connectivity of an entity given entity's parameters
Definition at line 362 of file ScdElementData.hpp.
References contains(), dIJKm1, moab::CN::Dimension(), get_vertex(), isPeriodic, MB_SUCCESS, moab::SequenceData::start_handle(), and moab::TYPE_FROM_HANDLE().
Referenced by moab::StructuredElementSeq::get_params_connectivity(), and moab::SweptElementSeq::get_params_connectivity().
|
inline |
get handle of vertex at homogeneous coords
Definition at line 291 of file ScdElementData.hpp.
References boundary_complete(), and vertexSeqRefs.
Referenced by get_params_connectivity(), moab::StructuredElementSeq::get_vertex(), moab::SweptElementSeq::get_vertex(), and get_vertex().
|
inline |
Definition at line 99 of file ScdElementData.hpp.
References get_vertex().
|
inline |
Definition at line 150 of file ScdElementData.hpp.
References boxParams.
Referenced by get_params().
|
inline |
convenience functions for parameter extents
Definition at line 138 of file ScdElementData.hpp.
References boxParams.
Referenced by get_element(), and get_params().
|
inline |
Definition at line 131 of file ScdElementData.hpp.
References isPeriodic.
Referenced by calc_num_entities(), and moab::StructuredElementSeq::is_periodic().
|
inline |
return whether rectangle is periodic in i
Definition at line 120 of file ScdElementData.hpp.
References isPeriodic.
Referenced by moab::StructuredElementSeq::is_periodic_i().
|
inline |
return whether rectangle is periodic in j
Definition at line 126 of file ScdElementData.hpp.
References isPeriodic.
Referenced by moab::StructuredElementSeq::is_periodic_j().
|
inline |
Definition at line 154 of file ScdElementData.hpp.
References boxParams.
Referenced by get_params().
|
inline |
Definition at line 142 of file ScdElementData.hpp.
References boxParams.
Referenced by get_element(), and get_params().
|
inline |
Definition at line 158 of file ScdElementData.hpp.
References boxParams.
Referenced by get_params().
|
inline |
Definition at line 146 of file ScdElementData.hpp.
References boxParams.
Referenced by get_element(), and get_params().
|
inline |
get max params for this element
Definition at line 219 of file ScdElementData.hpp.
References boxParams.
Referenced by moab::StructuredElementSeq::max_params(), moab::SweptElementSeq::max_params(), and moab::ScdBox::ScdBox().
|
inline |
get min params for this element
Definition at line 214 of file ScdElementData.hpp.
References boxParams.
Referenced by moab::StructuredElementSeq::min_params(), moab::SweptElementSeq::min_params(), and moab::ScdBox::ScdBox().
|
inline |
get the number of vertices in each direction, inclusive
Definition at line 225 of file ScdElementData.hpp.
References dIJK.
Referenced by moab::StructuredElementSeq::param_extents(), and moab::SweptElementSeq::param_extents().
SequenceData * moab::ScdElementData::subset | ( | EntityHandle | start, |
EntityHandle | end, | ||
const int * | sequence_data_sizes, | ||
const int * | tag_data_sizes | ||
) | const |
Definition at line 161 of file ScdElementData.cpp.
|
private |
parameter min/max/stride for vertices, in homogeneous coords ijkh; elements are one less than max
Definition at line 65 of file ScdElementData.hpp.
Referenced by boundary_complete(), contains(), contains_vertex(), get_params(), i_max(), i_min(), j_max(), j_min(), k_max(), k_min(), max_params(), min_params(), and ScdElementData().
|
private |
difference between max and min params plus one (i.e. # VERTICES in each parametric direction)
Definition at line 69 of file ScdElementData.hpp.
Referenced by contains_vertex(), param_extents(), and ScdElementData().
|
private |
difference between max and min params (i.e. # ELEMENTS in each parametric direction)
Definition at line 73 of file ScdElementData.hpp.
Referenced by contains(), get_element(), get_params(), get_params_connectivity(), and ScdElementData().
|
private |
whether scd element rectangle is periodic in i and possibly j
Definition at line 76 of file ScdElementData.hpp.
Referenced by get_params_connectivity(), is_periodic(), is_periodic_i(), is_periodic_j(), and ScdElementData().
|
private |
list of bounding vertex blocks
Definition at line 82 of file ScdElementData.hpp.
Referenced by add_vsequence(), boundary_complete(), get_memory_use(), and get_vertex().