1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef UNSTRUCTURED_ELEM_SEQ_HPP
#define UNSTRUCTURED_ELEM_SEQ_HPP

#include "ElementSequence.hpp"
#include "SequenceData.hpp"

namespace moab
{

class UnstructuredElemSeq : public ElementSequence
{
  public:
    UnstructuredElemSeq( EntityHandle start_handle,
                         EntityID entity_count,
                         unsigned nodes_per_entity,
                         SequenceData* data );

    UnstructuredElemSeq( EntityHandle start_handle,
                         EntityID entity_count,
                         unsigned nodes_per_entity,
                         EntityID sequence_data_size );

    virtual ~UnstructuredElemSeq();

    int values_per_entity() const;<--- Function in derived class<--- Function in derived class<--- Function in derived class<--- Function in derived class

    virtual EntitySequence* split( EntityHandle here );<--- Function in derived class<--- Function in derived class<--- Function in derived class<--- Function in derived class

    SequenceData* create_data_subset( EntityHandle start, EntityHandle end ) const;<--- Function in derived class<--- Function in derived class<--- Function in derived class<--- Function in derived class

    virtual ErrorCode get_connectivity( EntityHandle handle,<--- Function in derived class<--- Function in derived class<--- Function in derived class<--- Function in derived class
                                        std::vector< EntityHandle >& connect,
                                        bool topological = false ) const;

    virtual ErrorCode get_connectivity( EntityHandle handle,<--- Function in derived class<--- Function in derived class<--- Function in derived class<--- Function in derived class
                                        EntityHandle const*& connect,
                                        int& connect_length,
                                        bool topological                     = false,
                                        std::vector< EntityHandle >* storage = 0 ) const;

    ErrorCode set_connectivity( EntityHandle handle, EntityHandle const* connect, int connect_length );<--- Function in derived class<--- Function in derived class<--- Function in derived class<--- Function in derived class

    EntityHandle* get_connectivity_array();<--- Function in derived class<--- Function in derived class<--- Function in derived class<--- Function in derived class

    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;<--- Function in derived class<--- Function in derived class<--- Function in derived class<--- Function in derived class

  protected:
    inline EntityHandle const* get_array() const
    {
        return reinterpret_cast< EntityHandle const* >( data()->get_sequence_data( 0 ) ) +
               nodes_per_element() * ( start_handle() - data()->start_handle() );
    }

    inline EntityHandle* get_array()
    {
        return reinterpret_cast< EntityHandle* >( data()->get_sequence_data( 0 ) ) +
               nodes_per_element() * ( start_handle() - data()->start_handle() );
    }

    UnstructuredElemSeq( UnstructuredElemSeq& split_from, EntityHandle here ) : ElementSequence( split_from, here ) {}
};

}  // namespace moab

#endif