00001
00015 #ifndef TENSORMANIFOLD_TYPE_DEF_H
00016 #define TENSORMANIFOLD_TYPE_DEF_H
00017
00018 #define ForEachIofDims for(int i = 0; i < dims;i++)
00019
00020 #define def_type_name_for_tensor_manifold(dims, sp_dims) \
00021 public:\
00022 typedef Point<double, sp_dims> point_t;\
00023 typedef TensorArray<point_t, dims> mesh_t;\
00024 typedef TensorArray<dPoint3D, dims> Nmesh_t;\
00025 typedef KnotVector<dims> knot_t;\
00026 private:\
00027 typedef typename TensorArrayIndexOperatorTraits<point_t,dims>::ReturnType idx_op_ret_t;\
00028 \
00029 public:\
00030 typedef typename mesh_t::slc_iterator slc_iterator;\
00031 typedef typename mesh_t::row_iterator row_iterator;\
00032 typedef typename mesh_t::row_riterator row_riterator;\
00033 typedef typename mesh_t::element_iterator element_iterator;\
00034 typedef typename mesh_t::element_riterator element_riterator;\
00035 typedef typename mesh_t::linear_iterator linear_iterator;\
00036 typedef typename mesh_t::linear_riterator linear_riterator;\
00037 \
00038 typedef typename Nmesh_t::row_iterator row_Niterator;\
00039 typedef typename Nmesh_t::row_riterator row_rNiterator;\
00040 typedef typename Nmesh_t::element_iterator element_Niterator;\
00041 typedef typename Nmesh_t::element_riterator element_rNiterator;\
00042 typedef typename Nmesh_t::linear_iterator linear_Niterator;\
00043 typedef typename Nmesh_t::linear_riterator linear_rNiterator;
00044
00045
00046 #endif