Branch data Line data Source code
1 : : #ifndef UNSTRUCTURED_ELEM_SEQ_HPP
2 : : #define UNSTRUCTURED_ELEM_SEQ_HPP
3 : :
4 : : #include "ElementSequence.hpp"
5 : : #include "SequenceData.hpp"
6 : :
7 : : namespace moab
8 : : {
9 : :
10 : : class UnstructuredElemSeq : public ElementSequence
11 : : {
12 : : public:
13 : : UnstructuredElemSeq( EntityHandle start_handle, EntityID entity_count, unsigned nodes_per_entity,
14 : : SequenceData* data );
15 : :
16 : : UnstructuredElemSeq( EntityHandle start_handle, EntityID entity_count, unsigned nodes_per_entity,
17 : : EntityID sequence_data_size );
18 : :
19 : : virtual ~UnstructuredElemSeq();
20 : :
21 : : int values_per_entity() const;
22 : :
23 : : virtual EntitySequence* split( EntityHandle here );
24 : :
25 : : SequenceData* create_data_subset( EntityHandle start, EntityHandle end ) const;
26 : :
27 : : virtual ErrorCode get_connectivity( EntityHandle handle, std::vector< EntityHandle >& connect,
28 : : bool topological = false ) const;
29 : :
30 : : virtual ErrorCode get_connectivity( EntityHandle handle, EntityHandle const*& connect, int& connect_length,
31 : : bool topological = false, std::vector< EntityHandle >* storage = 0 ) const;
32 : :
33 : : ErrorCode set_connectivity( EntityHandle handle, EntityHandle const* connect, int connect_length );
34 : :
35 : : EntityHandle* get_connectivity_array();
36 : :
37 : : ErrorCode push_front( EntityID count );
38 : : ErrorCode push_back( EntityID count );
39 : :
40 : : void get_const_memory_use( unsigned long& bytes_per_entity, unsigned long& size_of_sequence ) const;
41 : :
42 : : protected:
43 : 23824315 : inline EntityHandle const* get_array() const
44 : : {
45 : 23824315 : return reinterpret_cast< EntityHandle const* >( data()->get_sequence_data( 0 ) ) +
46 : 23824315 : nodes_per_element() * ( start_handle() - data()->start_handle() );
47 : : }
48 : :
49 : 426535 : inline EntityHandle* get_array()
50 : : {
51 : 426535 : return reinterpret_cast< EntityHandle* >( data()->get_sequence_data( 0 ) ) +
52 : 426535 : nodes_per_element() * ( start_handle() - data()->start_handle() );
53 : : }
54 : :
55 : 24422 : UnstructuredElemSeq( UnstructuredElemSeq& split_from, EntityHandle here ) : ElementSequence( split_from, here ) {}
56 : : };
57 : :
58 : : } // namespace moab
59 : :
60 : : #endif
|