moab
|
#include <VertexSequence.hpp>
Public Member Functions | |
VertexSequence (EntityHandle start, EntityID count, SequenceData *dat) | |
VertexSequence (EntityHandle start, EntityID count, EntityID data_size) | |
virtual | ~VertexSequence () |
ErrorCode | get_coordinates (EntityHandle handle, double &x, double &y, double &z) const |
ErrorCode | get_coordinates (EntityHandle handle, double coords[3]) const |
ErrorCode | get_coordinates_ref (EntityHandle handle, const double *&x, const double *&y, const double *&z) const |
ErrorCode | set_coordinates (EntityHandle entity, double x, double y, double z) |
ErrorCode | set_coordinates (EntityHandle entity, const double xyz[3]) |
ErrorCode | get_coordinate_arrays (double *&x, double *&y, double *&z) |
ErrorCode | get_coordinate_arrays (const double *&x, const double *&y, const double *&z) const |
EntitySequence * | split (EntityHandle here) |
Split this sequence into two consecutive sequences. | |
SequenceData * | create_data_subset (EntityHandle start, EntityHandle end) const |
Create a new SequenceData that is a copy of a subset of the one referenced by this sequence. | |
ErrorCode | push_front (EntityID count) |
ErrorCode | push_back (EntityID count) |
void | get_const_memory_use (unsigned long &bytes_per_entity, unsigned long &size_of_sequence) const |
Get memory characteristcs that are the same for all entities. | |
Private Types | |
enum | Coord { X = 0, Y = 1, Z = 2 } |
Private Member Functions | |
double * | array (Coord coord) |
const double * | array (Coord coord) const |
double * | x_array () |
double * | y_array () |
double * | z_array () |
const double * | x_array () const |
const double * | y_array () const |
const double * | z_array () const |
VertexSequence (VertexSequence &split_from, EntityHandle here) |
Definition at line 9 of file VertexSequence.hpp.
enum moab::VertexSequence::Coord [private] |
moab::VertexSequence::VertexSequence | ( | EntityHandle | start, |
EntityID | count, | ||
SequenceData * | dat | ||
) | [inline] |
Definition at line 13 of file VertexSequence.hpp.
: EntitySequence( start, count, dat ) {}
moab::VertexSequence::VertexSequence | ( | EntityHandle | start, |
EntityID | count, | ||
EntityID | data_size | ||
) | [inline] |
Definition at line 19 of file VertexSequence.hpp.
: EntitySequence( start, count, new SequenceData( 3, start, start+data_size-1 ) ) { data()->create_sequence_data( X, sizeof(double) ); data()->create_sequence_data( Y, sizeof(double) ); data()->create_sequence_data( Z, sizeof(double) ); }
moab::VertexSequence::~VertexSequence | ( | ) | [virtual] |
Definition at line 5 of file VertexSequence.cpp.
{}
moab::VertexSequence::VertexSequence | ( | VertexSequence & | split_from, |
EntityHandle | here | ||
) | [inline, private] |
Definition at line 92 of file VertexSequence.hpp.
: EntitySequence( split_from, here ) {}
double* moab::VertexSequence::array | ( | Coord | coord | ) | [inline, private] |
Definition at line 74 of file VertexSequence.hpp.
{ return reinterpret_cast<double*>(data()->get_sequence_data( coord )); }
const double* moab::VertexSequence::array | ( | Coord | coord | ) | const [inline, private] |
Definition at line 79 of file VertexSequence.hpp.
{ return reinterpret_cast<const double*>(data()->get_sequence_data( coord )); }
SequenceData * moab::VertexSequence::create_data_subset | ( | EntityHandle | start_handle, |
EntityHandle | end_handle | ||
) | const [virtual] |
Create a new SequenceData that is a copy of a subset of the one referenced by this sequence.
Create a new SequenceData that is a copy of a subset of the SequenceData referenced by this EntitySequence. Do not make any changes to this EntitySequence or the current SequenceData.
Implements moab::EntitySequence.
Definition at line 10 of file VertexSequence.cpp.
void moab::VertexSequence::get_const_memory_use | ( | unsigned long & | bytes_per_entity, |
unsigned long & | size_of_sequence | ||
) | const [virtual] |
Get memory characteristcs that are the same for all entities.
Get charactersitic constant memory use for all entities in sequence.
bytes_per_entity | The total bytes consumed for each entity in the underlying SequenceData. It is assumed that the same amount of memory is consumed for unused portions of the SequenceData. |
size_of_sequence | The size of the leaf subclass of this class |
Implements moab::EntitySequence.
Definition at line 23 of file VertexSequence.cpp.
{ per_ent = 3 * sizeof(double); seq = sizeof(*this); }
ErrorCode moab::VertexSequence::get_coordinate_arrays | ( | double *& | x, |
double *& | y, | ||
double *& | z | ||
) | [inline] |
Definition at line 155 of file VertexSequence.hpp.
{ EntityID offset = start_handle() - data()->start_handle(); x = x_array()+offset; y = y_array()+offset; z = z_array()+offset; return MB_SUCCESS; }
ErrorCode moab::VertexSequence::get_coordinate_arrays | ( | const double *& | x, |
const double *& | y, | ||
const double *& | z | ||
) | const [inline] |
Definition at line 166 of file VertexSequence.hpp.
{ return get_coordinates_ref( start_handle(), x, y, z ); }
ErrorCode moab::VertexSequence::get_coordinates | ( | EntityHandle | handle, |
double & | x, | ||
double & | y, | ||
double & | z | ||
) | const [inline] |
Definition at line 98 of file VertexSequence.hpp.
{ EntityID offset = handle - data()->start_handle(); x = x_array()[offset]; y = y_array()[offset]; z = z_array()[offset]; return MB_SUCCESS; }
ErrorCode moab::VertexSequence::get_coordinates | ( | EntityHandle | handle, |
double | coords[3] | ||
) | const [inline] |
Definition at line 110 of file VertexSequence.hpp.
{ EntityID offset = handle - data()->start_handle(); coords[X] = x_array()[offset]; coords[Y] = y_array()[offset]; coords[Z] = z_array()[offset]; return MB_SUCCESS; }
ErrorCode moab::VertexSequence::get_coordinates_ref | ( | EntityHandle | handle, |
const double *& | x, | ||
const double *& | y, | ||
const double *& | z | ||
) | const [inline] |
Definition at line 121 of file VertexSequence.hpp.
{ EntityID offset = handle - data()->start_handle(); x = x_array()+offset; y = y_array()+offset; z = z_array()+offset; return MB_SUCCESS; }
Definition at line 17 of file VertexSequence.cpp.
{ return EntitySequence::append_entities(count); }
Definition at line 20 of file VertexSequence.cpp.
{ return EntitySequence::prepend_entities(count); }
ErrorCode moab::VertexSequence::set_coordinates | ( | EntityHandle | entity, |
double | x, | ||
double | y, | ||
double | z | ||
) | [inline] |
Definition at line 133 of file VertexSequence.hpp.
{ EntityID offset = entity - data()->start_handle(); x_array()[offset] = x; y_array()[offset] = y; z_array()[offset] = z; return MB_SUCCESS; }
ErrorCode moab::VertexSequence::set_coordinates | ( | EntityHandle | entity, |
const double | xyz[3] | ||
) | [inline] |
EntitySequence * moab::VertexSequence::split | ( | EntityHandle | here | ) | [virtual] |
Split this sequence into two consecutive sequences.
Split this sequence into two sequences.
here | New sequences should be [start_handle(),here) & [here,end_handle()] |
Implements moab::EntitySequence.
Definition at line 7 of file VertexSequence.cpp.
{ return new VertexSequence( *this, here ); }
double* moab::VertexSequence::x_array | ( | ) | [inline, private] |
Definition at line 84 of file VertexSequence.hpp.
const double* moab::VertexSequence::x_array | ( | ) | const [inline, private] |
Definition at line 88 of file VertexSequence.hpp.
double* moab::VertexSequence::y_array | ( | ) | [inline, private] |
Definition at line 85 of file VertexSequence.hpp.
const double* moab::VertexSequence::y_array | ( | ) | const [inline, private] |
Definition at line 89 of file VertexSequence.hpp.
double* moab::VertexSequence::z_array | ( | ) | [inline, private] |
Definition at line 86 of file VertexSequence.hpp.
const double* moab::VertexSequence::z_array | ( | ) | const [inline, private] |
Definition at line 90 of file VertexSequence.hpp.