moab
|
00001 00017 #ifndef MOAB_EXOII_INTERFACE_HPP 00018 #define MOAB_EXOII_INTERFACE_HPP 00019 00020 #include "moab/Types.hpp" 00021 #include "moab/Compiler.hpp" 00022 00023 namespace moab { 00024 00025 enum ExoIIElementType 00026 { 00027 EXOII_SPHERE = 0, 00028 EXOII_SPRING, 00029 EXOII_BAR, EXOII_BAR2, EXOII_BAR3, 00030 EXOII_BEAM, EXOII_BEAM2, EXOII_BEAM3, 00031 EXOII_TRUSS, EXOII_TRUSS2, EXOII_TRUSS3, 00032 EXOII_TRI, EXOII_TRI3, EXOII_TRI6, EXOII_TRI7, 00033 EXOII_QUAD, EXOII_QUAD4, EXOII_QUAD5, EXOII_QUAD8, EXOII_QUAD9, 00034 EXOII_SHELL, EXOII_SHELL4, EXOII_SHELL5, EXOII_SHELL8, EXOII_SHELL9, 00035 EXOII_TETRA, EXOII_TETRA4, EXOII_TET4, EXOII_TETRA8, EXOII_TETRA10, EXOII_TETRA14, 00036 EXOII_PYRAMID, EXOII_PYRAMID5, EXOII_PYRAMID10, EXOII_PYRAMID13, EXOII_PYRAMID18, 00037 EXOII_WEDGE, 00038 EXOII_KNIFE, 00039 EXOII_HEX, EXOII_HEX8, EXOII_HEX9, EXOII_HEX20, EXOII_HEX27, 00040 EXOII_HEXSHELL, 00041 EXOII_MAX_ELEM_TYPE 00042 }; 00043 00044 00045 class MB_DLL_EXPORT ExoIIInterface 00046 { 00047 public: 00048 enum { 00049 MAX_STR_LENGTH = 33, 00050 MAX_LINE_LENGTH = 80 00051 }; 00052 00053 00054 ExoIIInterface(){} 00055 virtual ~ExoIIInterface(){} 00056 00058 virtual ExoIIElementType element_name_to_type(const char* name) = 0; 00059 00063 virtual ExoIIElementType get_element_type(EntityHandle entity, 00064 Tag mid_nodes_tag, Tag geom_dimension_tag, EntityType indiv_entity_type = MBMAXTYPE) = 0; 00065 00066 virtual int has_mid_nodes(ExoIIElementType elem_type, int dimension) = 0; 00067 virtual void has_mid_nodes(ExoIIElementType elem_type, int* array) = 0; 00068 00069 virtual const char* element_type_name(ExoIIElementType type) = 0; 00070 00072 virtual int geometric_dimension(const ExoIIElementType elem_type) = 0; 00073 00074 }; 00075 00076 } // namespace moab 00077 00078 #endif 00079