MOAB: Mesh Oriented datABase
(version 5.2.1)
|
Public Member Functions | |
FakeMesh (size_t num_verts) | |
~FakeMesh () | |
void | should_fail (bool yesno) |
void | get_all_elements (vector< ElementHandle > &elems, MsqError &err) |
void | get_all_vertices (vector< VertexHandle > &verts, MsqError &err) |
void | vertices_get_fixed_flag (const VertexHandle *verts, std::vector< bool > &fixed, size_t n, MsqError &err) |
void | vertices_get_slaved_flag (const VertexHandle *verts, std::vector< bool > &fixed, size_t n, MsqError &err) |
void | vertices_get_attached_elements (const VertexHandle *array, size_t len, vector< ElementHandle > &elems, vector< size_t > &offsets, MsqError &err) |
int | get_geometric_dimension (MsqError &err) |
Returns whether this mesh lies in a 2D or 3D coordinate system. | |
VertexIterator * | vertex_iterator (MsqError &err) |
ElementIterator * | element_iterator (MsqError &err) |
void | vertices_get_coordinates (const VertexHandle *, MsqVertex *, size_t, MsqError &err) |
void | vertex_set_coordinates (VertexHandle, const Vector3D &, MsqError &err) |
void | vertex_set_byte (VertexHandle h, unsigned char b, MsqError &err) |
void | vertices_set_byte (const VertexHandle *, const unsigned char *, size_t, MsqError &err) |
void | vertex_get_byte (const VertexHandle h, unsigned char *b, MsqError &err) |
void | vertices_get_byte (const VertexHandle *, unsigned char *, size_t, MsqError &err) |
void | elements_get_attached_vertices (const ElementHandle *, size_t, vector< VertexHandle > &, vector< size_t > &, MsqError &err) |
void | elements_get_topologies (const ElementHandle *, EntityTopology *, size_t, MsqError &err) |
TagHandle | tag_create (const string &, TagType, unsigned, const void *, MsqError &err) |
void | tag_delete (TagHandle, MsqError &err) |
Remove a tag and all corresponding data. | |
TagHandle | tag_get (const string &, MsqError &err) |
void | tag_properties (TagHandle, string &, TagType &, unsigned &, MsqError &err) |
void | tag_set_element_data (TagHandle, size_t, const ElementHandle *, const void *, MsqError &err) |
Set tag values on elements. | |
void | tag_set_vertex_data (TagHandle, size_t, const VertexHandle *, const void *, MsqError &err) |
Set tag values on vertices. | |
void | tag_get_element_data (TagHandle, size_t, const ElementHandle *, void *, MsqError &err) |
Get tag values on elements. | |
void | tag_get_vertex_data (TagHandle, size_t, const VertexHandle *, void *, MsqError &err) |
Get tag values on vertices. | |
void | release_entity_handles (const EntityHandle *, size_t, MsqError &err) |
void | release () |
Private Attributes | |
std::vector< VertexHandle > | vertHandles |
std::vector< ElementHandle > | elemHandles |
std::vector< size_t > | vertOffsets |
std::vector< bool > | fixedFlags |
std::vector< unsigned char > | vertexBytes |
bool | doError |
Definition at line 52 of file PatchSetTest.cpp.
FakeMesh::FakeMesh | ( | size_t | num_verts | ) |
Definition at line 167 of file PatchSetTest.cpp.
References elemHandles, fixedFlags, vertexBytes, vertHandles, and vertOffsets.
: doError( false ) { vertHandles.resize( num_vtx ); vertOffsets.resize( num_vtx + 1 ); fixedFlags.resize( num_vtx ); elemHandles.clear(); for( size_t i = 0; i < num_vtx; ++i ) { vertHandles[i] = (Mesh::VertexHandle)i; vertOffsets[i] = elemHandles.size(); for( size_t j = 0; j < ( num_vtx % 5 ); ++j ) elemHandles.push_back( ( Mesh::ElementHandle )( i * num_vtx + j ) ); fixedFlags[i] = !( i % 2 ); } vertOffsets[vertOffsets.size() - 1] = elemHandles.size(); vertexBytes.resize( num_vtx, 0 ); }
Definition at line 185 of file PatchSetTest.cpp.
{}
ElementIterator* FakeMesh::element_iterator | ( | MsqError & | err | ) | [inline] |
void FakeMesh::elements_get_attached_vertices | ( | const ElementHandle * | , |
size_t | , | ||
vector< VertexHandle > & | , | ||
vector< size_t > & | , | ||
MsqError & | err | ||
) | [inline] |
void FakeMesh::elements_get_topologies | ( | const ElementHandle * | element_handle_array, |
EntityTopology * | element_topologies, | ||
size_t | num_elements, | ||
MsqError & | err | ||
) | [inline, virtual] |
Returns the topologies of the given entities. The "entity_topologies" array must be at least "num_elements" in size.
Implements MBMesquite::Mesh.
Definition at line 114 of file PatchSetTest.cpp.
References NI.
{ NI( err ); }
void FakeMesh::get_all_elements | ( | vector< ElementHandle > & | elems, |
MsqError & | err | ||
) |
Definition at line 187 of file PatchSetTest.cpp.
References doError, elemHandles, and MSQ_SETERR.
Referenced by PatchSetTest::test_global_patch().
{ if( doError ) { MSQ_SETERR( err )( MsqError::UNKNOWN_ERROR, "Expected error" ); return; } elems = elemHandles; }
void FakeMesh::get_all_vertices | ( | vector< VertexHandle > & | verts, |
MsqError & | err | ||
) |
Definition at line 198 of file PatchSetTest.cpp.
References doError, MSQ_SETERR, and vertHandles.
Referenced by PatchSetTest::test_global_patch(), and PatchSetTest::test_vertex_patches().
{ if( doError ) { MSQ_SETERR( err )( MsqError::UNKNOWN_ERROR, "Expected error" ); return; } verts = vertHandles; }
int FakeMesh::get_geometric_dimension | ( | MsqError & | err | ) | [inline, virtual] |
Returns whether this mesh lies in a 2D or 3D coordinate system.
Implements MBMesquite::Mesh.
Definition at line 75 of file PatchSetTest.cpp.
References NI.
{ NI( err ); return 3; }
void FakeMesh::release | ( | ) | [inline, virtual] |
Instead of deleting a Mesh when you think you are done, call release(). In simple cases, the implementation could just call the destructor. More sophisticated implementations may want to keep the Mesh object to live longer than Mesquite is using it.
Implements MBMesquite::Mesh.
Definition at line 156 of file PatchSetTest.cpp.
{}
void FakeMesh::release_entity_handles | ( | const EntityHandle * | handle_array, |
size_t | num_handles, | ||
MsqError & | err | ||
) | [inline, virtual] |
Tells the mesh that the client is finished with a given entity handle.
Implements MBMesquite::Mesh.
Definition at line 152 of file PatchSetTest.cpp.
References NI.
{ NI( err ); }
void FakeMesh::should_fail | ( | bool | yesno | ) | [inline] |
Definition at line 59 of file PatchSetTest.cpp.
Referenced by PatchSetTest::setUp(), PatchSetTest::test_fail_entities(), and PatchSetTest::test_fail_handles().
{ doError = yesno; }
TagHandle FakeMesh::tag_create | ( | const string & | , |
TagType | , | ||
unsigned | , | ||
const void * | , | ||
MsqError & | err | ||
) | [inline] |
void FakeMesh::tag_delete | ( | TagHandle | handle, |
MsqError & | err | ||
) | [inline, virtual] |
Remove a tag and all corresponding data.
Delete a tag.
Implements MBMesquite::Mesh.
Definition at line 123 of file PatchSetTest.cpp.
References NI.
{ NI( err ); }
TagHandle FakeMesh::tag_get | ( | const string & | , |
MsqError & | err | ||
) | [inline] |
void FakeMesh::tag_get_element_data | ( | TagHandle | handle, |
size_t | num_elems, | ||
const ElementHandle * | elem_array, | ||
void * | tag_data, | ||
MsqError & | err | ||
) | [inline, virtual] |
Get tag values on elements.
Get the value of a tag for a list of mesh elements.
handle | The tag |
num_elems | Length of elem_array |
elem_array | Array of elements for which to get the tag value. |
tag_data | Return buffer in which to copy tag data, contiguous in memory. This data is expected to be num_elems*tag_length*sizeof(tag_type) bytes. |
Implements MBMesquite::Mesh.
Definition at line 144 of file PatchSetTest.cpp.
References NI.
{ NI( err ); }
void FakeMesh::tag_get_vertex_data | ( | TagHandle | handle, |
size_t | num_elems, | ||
const VertexHandle * | node_array, | ||
void * | tag_data, | ||
MsqError & | err | ||
) | [inline, virtual] |
Get tag values on vertices.
Get the value of a tag for a list of mesh vertices.
handle | The tag |
num_elems | Length of elem_array |
elem_array | Array of vertices for which to get the tag value. |
tag_data | Return buffer in which to copy tag data, contiguous in memory. This data is expected to be num_elems*tag_length*sizeof(tag_type) bytes. |
Implements MBMesquite::Mesh.
Definition at line 148 of file PatchSetTest.cpp.
References NI.
{ NI( err ); }
void FakeMesh::tag_properties | ( | TagHandle | , |
string & | , | ||
TagType & | , | ||
unsigned & | , | ||
MsqError & | err | ||
) | [inline] |
void FakeMesh::tag_set_element_data | ( | TagHandle | handle, |
size_t | num_elems, | ||
const ElementHandle * | elem_array, | ||
const void * | tag_data, | ||
MsqError & | err | ||
) | [inline, virtual] |
Set tag values on elements.
Set the value of a tag for a list of mesh elements.
handle | The tag |
num_elems | Length of elem_array |
elem_array | Array of elements for which to set the tag value. |
tag_data | Tag data for each element, contiguous in memory. This data is expected to be num_elems*tag_length*sizeof(tag_type) bytes. |
Implements MBMesquite::Mesh.
Definition at line 136 of file PatchSetTest.cpp.
References NI.
{ NI( err ); }
void FakeMesh::tag_set_vertex_data | ( | TagHandle | handle, |
size_t | num_elems, | ||
const VertexHandle * | node_array, | ||
const void * | tag_data, | ||
MsqError & | err | ||
) | [inline, virtual] |
Set tag values on vertices.
Set the value of a tag for a list of mesh vertices.
handle | The tag |
num_elems | Length of node_array |
node_array | Array of vertices for which to set the tag value. |
tag_data | Tag data for each element, contiguous in memory. This data is expected to be num_elems*tag_length*sizeof(tag_type) bytes. |
Implements MBMesquite::Mesh.
Definition at line 140 of file PatchSetTest.cpp.
References NI.
{ NI( err ); }
void FakeMesh::vertex_get_byte | ( | const VertexHandle | vertex, |
unsigned char * | byte, | ||
MsqError & | err | ||
) | [inline, virtual] |
Retrieve the byte value for the specified vertex or vertices. The byte value is 0 if it has not yet been set via one of the _set_byte() functions.
Implements MBMesquite::Mesh.
Definition at line 103 of file PatchSetTest.cpp.
{ vertices_get_byte( &h, b, 1, err ); }
VertexIterator* FakeMesh::vertex_iterator | ( | MsqError & | err | ) | [inline] |
void FakeMesh::vertex_set_byte | ( | VertexHandle | vertex, |
unsigned char | byte, | ||
MsqError & | err | ||
) | [inline, virtual] |
Each vertex has a byte-sized flag that can be used to store flags. This byte's value is neither set nor used by the mesh implementation. It is intended to be used by Mesquite algorithms. Until a vertex's byte has been explicitly set, its value is 0.
Implements MBMesquite::Mesh.
Definition at line 98 of file PatchSetTest.cpp.
{ vertices_get_byte( &h, &b, 1, err ); }
void FakeMesh::vertex_set_coordinates | ( | VertexHandle | , |
const Vector3D & | , | ||
MsqError & | err | ||
) | [inline, virtual] |
Implements MBMesquite::Mesh.
Definition at line 94 of file PatchSetTest.cpp.
References NI.
{ NI( err ); }
void FakeMesh::vertices_get_attached_elements | ( | const VertexHandle * | array, |
size_t | len, | ||
vector< ElementHandle > & | elems, | ||
vector< size_t > & | offsets, | ||
MsqError & | err | ||
) |
Definition at line 241 of file PatchSetTest.cpp.
References doError, elemHandles, MSQ_SETERR, n, vertHandles, and vertOffsets.
Referenced by PatchSetTest::test_vertex_patches().
{ if( doError ) { MSQ_SETERR( err )( MsqError::UNKNOWN_ERROR, "Expected error" ); return; } if( !verts ) { MSQ_SETERR( err )( MsqError::INVALID_STATE, "NULL array pointer" ); return; } elems.clear(); offsets.clear(); for( size_t i = 0; i < n; ++i ) { size_t vert = (size_t)verts[i]; if( vert >= vertHandles.size() ) { MSQ_SETERR( err )( MsqError::INVALID_STATE, "Vertex handle out of range" ); return; } offsets.push_back( elems.size() ); size_t s = vertOffsets[vert]; size_t e = vertOffsets[vert + 1]; for( size_t j = s; j < e; ++j ) elems.push_back( elemHandles[j] ); } offsets.push_back( elems.size() ); }
void FakeMesh::vertices_get_byte | ( | const VertexHandle * | handles, |
unsigned char * | bytes, | ||
size_t | count, | ||
MsqError & | err | ||
) | [virtual] |
Implements MBMesquite::Mesh.
Definition at line 275 of file PatchSetTest.cpp.
References MSQ_SETERR, vertexBytes, and vertHandles.
{ for( size_t i = 0; i < count; ++i ) { size_t vert = (size_t)handles[i]; if( vert >= vertHandles.size() ) { MSQ_SETERR( err )( MsqError::INVALID_STATE, "Vertex handle out of range" ); return; } bytes[i] = vertexBytes[vert]; } }
void FakeMesh::vertices_get_coordinates | ( | const VertexHandle * | , |
MsqVertex * | , | ||
size_t | , | ||
MsqError & | err | ||
) | [inline] |
void FakeMesh::vertices_get_fixed_flag | ( | const VertexHandle * | verts, |
std::vector< bool > & | fixed, | ||
size_t | n, | ||
MsqError & | err | ||
) |
Definition at line 209 of file PatchSetTest.cpp.
References doError, fixedFlags, MSQ_SETERR, n, and vertHandles.
Referenced by PatchSetTest::test_vertex_patches().
{ if( doError ) { MSQ_SETERR( err )( MsqError::UNKNOWN_ERROR, "Expected error" ); return; } if( !verts ) { MSQ_SETERR( err )( MsqError::INVALID_STATE, "NULL array pointer" ); return; } fixed.resize( n ); for( size_t i = 0; i < n; ++i ) { size_t vert = (size_t)verts[i]; if( vert >= vertHandles.size() ) { MSQ_SETERR( err )( MsqError::INVALID_STATE, "Vertex handle out of range" ); return; } fixed[i] = fixedFlags[vert]; } }
void FakeMesh::vertices_get_slaved_flag | ( | const VertexHandle * | verts, |
std::vector< bool > & | fixed, | ||
size_t | n, | ||
MsqError & | err | ||
) |
Definition at line 236 of file PatchSetTest.cpp.
References CPPUNIT_ASSERT.
{ CPPUNIT_ASSERT( false ); }
void FakeMesh::vertices_set_byte | ( | const VertexHandle * | handles, |
const unsigned char * | bytes, | ||
size_t | count, | ||
MsqError & | err | ||
) | [virtual] |
Implements MBMesquite::Mesh.
Definition at line 289 of file PatchSetTest.cpp.
References MSQ_SETERR, vertexBytes, and vertHandles.
{ for( size_t i = 0; i < count; ++i ) { size_t vert = (size_t)handles[i]; if( vert >= vertHandles.size() ) { MSQ_SETERR( err )( MsqError::INVALID_STATE, "Vertex handle out of range" ); return; } vertexBytes[vert] = bytes[i]; } }
bool FakeMesh::doError [private] |
Definition at line 164 of file PatchSetTest.cpp.
Referenced by get_all_elements(), get_all_vertices(), vertices_get_attached_elements(), and vertices_get_fixed_flag().
std::vector< ElementHandle > FakeMesh::elemHandles [private] |
Definition at line 160 of file PatchSetTest.cpp.
Referenced by FakeMesh(), get_all_elements(), and vertices_get_attached_elements().
std::vector< bool > FakeMesh::fixedFlags [private] |
Definition at line 162 of file PatchSetTest.cpp.
Referenced by FakeMesh(), and vertices_get_fixed_flag().
std::vector< unsigned char > FakeMesh::vertexBytes [private] |
Definition at line 163 of file PatchSetTest.cpp.
Referenced by FakeMesh(), vertices_get_byte(), and vertices_set_byte().
std::vector< VertexHandle > FakeMesh::vertHandles [private] |
Definition at line 159 of file PatchSetTest.cpp.
Referenced by FakeMesh(), get_all_vertices(), vertices_get_attached_elements(), vertices_get_byte(), vertices_get_fixed_flag(), and vertices_set_byte().
std::vector< size_t > FakeMesh::vertOffsets [private] |
Definition at line 161 of file PatchSetTest.cpp.
Referenced by FakeMesh(), and vertices_get_attached_elements().