1 #ifndef STK_UTIL_GENERIC_MESH_TRAITS_HPP 2 #define STK_UTIL_GENERIC_MESH_TRAITS_HPP 7 template <
typename Mesh>
8 struct generic_mesh_traits {
13 typedef typename Mesh::entity_local_id entity_local_id;
15 typedef typename Mesh::entity_descriptor entity_descriptor;
17 typedef typename Mesh::entity_descriptor_iterator entity_descriptor_iterator;
18 typedef typename Mesh::entity_value entity_value;
19 typedef typename Mesh::entity_size_type entity_size_type;
22 typedef typename Mesh::part_descriptor part_descriptor;
24 typedef typename Mesh::part_descriptor_iterator part_descriptor_iterator;
25 typedef typename Mesh::part_value part_value;
26 typedef typename Mesh::part_size_type part_size_type;
28 typedef typename Mesh::bucket_descriptor bucket_descriptor;
30 typedef typename Mesh::bucket_descriptor_iterator bucket_descriptor_iterator;
31 typedef typename Mesh::bucket_value bucket_value;
32 typedef typename Mesh::bucket_size_type bucket_size_type;
34 typedef typename Mesh::selected_bucket_descriptor_iterator selected_bucket_descriptor_iterator;
37 typedef typename Mesh::part_bucket_descriptor_iterator part_bucket_descriptor_iterator;
38 typedef typename Mesh::part_bucket_size_type part_bucket_size_type;
41 typedef typename Mesh::bucket_part_descriptor_iterator bucket_part_descriptor_iterator;
42 typedef typename Mesh::bucket_part_size_type bucket_part_size_type;
45 typedef typename Mesh::bucket_entity_descriptor_iterator bucket_entity_descriptor_iterator;
46 typedef typename Mesh::bucket_entity_size_type bucket_entity_size_type;
48 inline part_descriptor universal_part();
50 static inline part_descriptor null_part();
51 static inline bucket_descriptor null_bucket();
52 static inline entity_local_id null_entity();
53 static inline relation_descriptor null_relation();
55 typedef typename Mesh::relation_descriptor relation_descriptor;
56 typedef typename Mesh::relation_descriptor_iterator relation_descriptor_iterator;
57 typedef typename Mesh::selected_relation_descriptor_iterator selected_relation_descriptor_iterator
58 typedef typename Mesh::relation_value relation_value;
59 typedef typename Mesh::relation_size_type relation_size_type;
66 template <
typename Mesh>
67 inline typename generic_mesh_traits<Mesh>::part_descriptor
68 generic_mesh_traits<Mesh>::universal_part()
69 {
return Mesh::universal_part(); }
71 template <
typename Mesh>
72 inline typename generic_mesh_traits<Mesh>::part_descriptor
73 generic_mesh_traits<Mesh>::null_part()
74 {
return Mesh::null_part(); }
76 template <
typename Mesh>
77 inline typename generic_mesh_traits<Mesh>::bucket_descriptor
78 generic_mesh_traits<Mesh>::null_bucket()
79 {
return Mesh::null_bucket(); }
81 template <
typename Mesh>
82 inline typename generic_mesh_traits<Mesh>::entity_local_id
83 generic_mesh_traits<Mesh>::null_entity()
84 {
return Mesh::null_entity(); }
86 template <
typename Mesh>
87 inline typename generic_mesh_traits<Mesh>::relation_descriptor
88 generic_mesh_traits<Mesh>::null_relation()
89 {
return Mesh::null_relation(); }
95 #endif // STK_UTIL_GENERIC_MESH_TRAITS_HPP