Go to the documentation of this file. 1
15
16 #include "StructuredElementSeq.hpp"
17 #include "ScdVertexData.hpp"
18 #include "ScdElementData.hpp"
19 #include "moab/Interface.hpp"
20 #include "moab/ReadUtilIface.hpp"
21 #include "moab/CN.hpp"
22 #include "Internals.hpp"
23
24 namespace moab
25 {
26
27 StructuredElementSeq::StructuredElementSeq( EntityHandle shandle,
28 const int imin,
29 const int jmin,
30 const int kmin,
31 const int imax,
32 const int jmax,
33 const int kmax,
34 int* is_per )
35 : ElementSequence( shandle,
36 ScdElementData::calc_num_entities( shandle, imax - imin, jmax - jmin, kmax - kmin, is_per ),
37 CN::VerticesPerEntity( TYPE_FROM_HANDLE( shandle ) ),
38 new ScdElementData( shandle, imin, jmin, kmin, imax, jmax, kmax, is_per ) )
39 {
40 }
41
42 StructuredElementSeq::~StructuredElementSeq() {}
43
44 ErrorCode StructuredElementSeq::get_connectivity( EntityHandle handle,
45 std::vector< EntityHandle >& connect,
46 bool ) const
47 {
48 int i, j, k;
49 ErrorCode rval = get_params( handle, i, j, k );
50 if( MB_SUCCESS == rval ) rval = get_params_connectivity( i, j, k, connect );
51 return rval;
52 }
53
54 ErrorCode StructuredElementSeq::get_connectivity( EntityHandle handle,
55 EntityHandle const*& connect,
56 int& connect_length,
57 bool topo,
58 std::vector< EntityHandle >* storage ) const
59 {
60 if( !storage )
61 {
62 connect = 0;
63 connect_length = 0;
64 return MB_STRUCTURED_MESH;
65 }
66
67 storage->clear();
68 ErrorCode rval = get_connectivity( handle, *storage, topo );
69 connect = &( *storage )[0];
70 connect_length = storage->size();
71 return rval;
72 }
73
74 ErrorCode StructuredElementSeq::set_connectivity( EntityHandle, EntityHandle const*, int )
75 {
76 return MB_STRUCTURED_MESH;
77 }
78
79 EntityHandle* StructuredElementSeq::get_connectivity_array()
80 {
81 return 0;
82 }
83
84 int StructuredElementSeq::values_per_entity() const
85 {
86 return -1;
87 }
88
89 EntitySequence* StructuredElementSeq::split( EntityHandle here )
90 {
91 return new StructuredElementSeq( *this, here );
92 }
93
94 SequenceData* StructuredElementSeq::create_data_subset( EntityHandle, EntityHandle ) const
95 {
96 return 0;
97 }
98
99 void StructuredElementSeq::get_const_memory_use( unsigned long& bytes_per_entity, unsigned long& sequence_size ) const
100 {
101 sequence_size = sizeof( *this );
102 bytes_per_entity = sdata()->get_memory_use() / sdata()->size();
103 }
104
105 }