Feel++ 0.91.0
Classes | Namespaces | Defines | Typedefs | Functions
/home/prudhomm/sources/feel/feel/feelfilters/geotool.hpp File Reference
#include <iostream>
#include <string>
#include <sstream>
#include <list>
#include <map>
#include <feel/feelalg/glas.hpp>
#include <feel/feelcore/parameter.hpp>
#include <feel/feelfilters/gmsh.hpp>
#include <boost/preprocessor/tuple/elem.hpp>

Classes

class  Feel::GeoTool::Node
class  Feel::GeoTool::Loop
class  Feel::GeoTool::GeoGMSHTool

Namespaces

namespace  Feel

Defines

#define GEOTOOL_SHAPE
#define GEOTOOL_MARKER_POINT_LINE
#define GEOTOOL_MARKER_LINE_LINE
#define GEOTOOL_MARKER_POINT_TRIANGLE
#define GEOTOOL_MARKER_LINE_TRIANGLE
#define GEOTOOL_MARKER_SURFACE_TRIANGLE
#define GEOTOOL_MARKER_POINT_RECTANGLE
#define GEOTOOL_MARKER_LINE_RECTANGLE
#define GEOTOOL_MARKER_SURFACE_RECTANGLE
#define GEOTOOL_MARKER_POINT_QUADRANGLE
#define GEOTOOL_MARKER_LINE_QUADRANGLE
#define GEOTOOL_MARKER_SURFACE_QUADRANGLE
#define GEOTOOL_MARKER_POINT_PENTAGON
#define GEOTOOL_MARKER_LINE_PENTAGON
#define GEOTOOL_MARKER_SURFACE_PENTAGON
#define GEOTOOL_MARKER_POINT_HEXAGON
#define GEOTOOL_MARKER_LINE_HEXAGON
#define GEOTOOL_MARKER_SURFACE_HEXAGON
#define GEOTOOL_MARKER_POINT_CIRCLE
#define GEOTOOL_MARKER_LINE_CIRCLE
#define GEOTOOL_MARKER_SURFACE_CIRCLE
#define GEOTOOL_MARKER_POINT_PARTIALDISQUE
#define GEOTOOL_MARKER_LINE_PARTIALDISQUE
#define GEOTOOL_MARKER_SURFACE_PARTIALDISQUE
#define GEOTOOL_MARKER_POINT_SPECIAL_1A
#define GEOTOOL_MARKER_LINE_SPECIAL_1A
#define GEOTOOL_MARKER_SURFACE_SPECIAL_1A
#define GEOTOOL_MARKER_POINT_SPECIAL_1B
#define GEOTOOL_MARKER_LINE_SPECIAL_1B
#define GEOTOOL_MARKER_SURFACE_SPECIAL_1B
#define GEOTOOL_MARKER_POINT_CYLINDRE
#define GEOTOOL_MARKER_LINE_CYLINDRE
#define GEOTOOL_MARKER_SURFACE_CYLINDRE
#define GEOTOOL_MARKER_VOLUME_CYLINDRE
#define GEOTOOL_MARKER_POINT_TUBE
#define GEOTOOL_MARKER_LINE_TUBE
#define GEOTOOL_MARKER_SURFACE_TUBE
#define GEOTOOL_MARKER_VOLUME_TUBE
#define GEOTOOL_MARKER_POINT_SPHERE   ( 1, ( ( 1, 7, ( 1,2,3,4,5,6,7 ) ) ) ) \
#define GEOTOOL_MARKER_LINE_SPHERE
#define GEOTOOL_MARKER_SURFACE_SPHERE
#define GEOTOOL_MARKER_VOLUME_SPHERE
#define GEOTOOL_MARKER_POINT_HEXAEDRE   ( 1, ( ( 1, 8, ( 1,2,3,4,5,6,7,8 ) ) ) ) \
#define GEOTOOL_MARKER_LINE_HEXAEDRE
#define GEOTOOL_MARKER_SURFACE_HEXAEDRE
#define GEOTOOL_MARKER_VOLUME_HEXAEDRE
#define GEOTOOL_SHAPE_NAME_CLASS(i)   BOOST_PP_TUPLE_ELEM(7, 0, BOOST_PP_ARRAY_ELEM(i,GEOTOOL_SHAPE))
#define GEOTOOL_SHAPE_DIM(i)   BOOST_PP_TUPLE_ELEM(7, 1, BOOST_PP_ARRAY_ELEM(i,GEOTOOL_SHAPE))
#define GEOTOOL_SHAPE_NBSURFACE(i)   BOOST_PP_TUPLE_ELEM(7, 2, BOOST_PP_ARRAY_ELEM(i,GEOTOOL_SHAPE))
#define GEOTOOL_SHAPE_NBVOLUME(i)   BOOST_PP_TUPLE_ELEM(7, 3, BOOST_PP_ARRAY_ELEM(i,GEOTOOL_SHAPE))
#define GEOTOOL_SHAPE_NAME_STR(i)   BOOST_PP_TUPLE_ELEM(7, 4, BOOST_PP_ARRAY_ELEM(i,GEOTOOL_SHAPE))
#define GEOTOOL_SHAPE_NBPARAM(i)   BOOST_PP_TUPLE_ELEM(7, 5, BOOST_PP_ARRAY_ELEM(i,GEOTOOL_SHAPE))
#define GEOTOOL_SHAPE_NAME_MACRO(i)   BOOST_PP_TUPLE_ELEM(7, 6, BOOST_PP_ARRAY_ELEM(i,GEOTOOL_SHAPE))
#define GEOTOOL_MARKER_POINT_INDICE(O)   BOOST_PP_TUPLE_ELEM(3, 0, O)
#define GEOTOOL_MARKER_POINT_NBMARK(F, i)   BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_ARRAY_ELEM(i,F))
#define GEOTOOL_MARKER_POINT_ARRAYMARK(O)   BOOST_PP_TUPLE_ELEM(3, 2, O)
#define GEOTOOL_MARKER_POINT_MARKVALUE(F, i, j)   BOOST_PP_TUPLE_ELEM( GEOTOOL_MARKER_POINT_NBMARK(F,i),j,GEOTOOL_MARKER_POINT_ARRAYMARK(BOOST_PP_ARRAY_ELEM(i, F)))
#define GEOTOOL_MARKER_LINE_INDICE(O)   BOOST_PP_TUPLE_ELEM(3, 0, O)
#define GEOTOOL_MARKER_LINE_NBMARK(F, i)   BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_ARRAY_ELEM(i,F))
#define GEOTOOL_MARKER_LINE_ARRAYMARK(O)   BOOST_PP_TUPLE_ELEM(3, 2, O)
#define GEOTOOL_MARKER_LINE_MARKVALUE(F, i, j)   BOOST_PP_TUPLE_ELEM( GEOTOOL_MARKER_LINE_NBMARK(F,i),j,GEOTOOL_MARKER_LINE_ARRAYMARK(BOOST_PP_ARRAY_ELEM(i, F)))
#define GEOTOOL_MARKER_SURFACE_INDICE(O)   BOOST_PP_TUPLE_ELEM(3, 0, O)
#define GEOTOOL_MARKER_SURFACE_NBMARK(F, i)   BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_ARRAY_ELEM(i,F))
#define GEOTOOL_MARKER_SURFACE_ARRAYMARK(O)   BOOST_PP_TUPLE_ELEM(3, 2, O)
#define GEOTOOL_MARKER_SURFACE_MARKVALUE(F, i, j)   BOOST_PP_TUPLE_ELEM( GEOTOOL_MARKER_SURFACE_NBMARK(F,i),j,GEOTOOL_MARKER_SURFACE_ARRAYMARK(BOOST_PP_ARRAY_ELEM(i, F)))
#define GEOTOOL_MARKER_VOLUME_INDICE(O)   BOOST_PP_TUPLE_ELEM(3, 0, O)
#define GEOTOOL_MARKER_VOLUME_NBMARK(F, i)   BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_ARRAY_ELEM(i,F))
#define GEOTOOL_MARKER_VOLUME_ARRAYMARK(O)   BOOST_PP_TUPLE_ELEM(3, 2, O)
#define GEOTOOL_MARKER_VOLUME_MARKVALUE(F, i, j)   BOOST_PP_TUPLE_ELEM( GEOTOOL_MARKER_VOLUME_NBMARK(F,i),j,GEOTOOL_MARKER_VOLUME_ARRAYMARK(BOOST_PP_ARRAY_ELEM(i, F)))
#define GEOTOOL_INSTANTIATES_FOR_COMP(r, state)
#define GEOTOOL_INSTANTIATES_FOR_INCR(r, state)
#define GEOTOOL_INSTANTIATES_FOR(r, state)   void BOOST_PP_CAT(run,GEOTOOL_SHAPE_NAME_CLASS(BOOST_PP_TUPLE_ELEM(2,0,state))) (data_geo_ptrtype dg); \
#define GEOTOOL_FOR_COMP2(r, state)
#define GEOTOOL_FOR_INCR2(r, state)
#define GEOTOOL_FOR_MARKER_POINT_MACRO2(r, state)
#define GEOTOOL_FOR_MARKER_LINE_MACRO2(r, state)
#define GEOTOOL_FOR_MARKER_SURFACE_MACRO2(r, state)
#define GEOTOOL_FOR_MARKER_VOLUME_MACRO2(r, state)
#define GEOTOOL_FOR_MARKER_POINT_MACRO(r, state)
#define GEOTOOL_FOR_MARKER_LINE_MACRO(r, state)
#define GEOTOOL_FOR_MARKER_SURFACE_MACRO(r, state)
#define GEOTOOL_FOR_MARKER_VOLUME_MACRO(r, state)
#define GEOTOOL_FOR_COMP1(r, state)
#define GEOTOOL_FOR_INCR1(r, state)
#define GEOTOOL_FOR_COMP(r, state)
#define GEOTOOL_FOR_INCR(r, state)
#define GEOTOOL_SHAPE_PARAM(r, state)
#define GEOTOOL_SHAPE_FOR_PARAM_SIGNATURE(r, state)   Node BOOST_PP_CAT( __param, BOOST_PP_TUPLE_ELEM(2,0,state) ) BOOST_PP_COMMA() \
#define GEOTOOL_SHAPE_PARAM_SIGNATURE(state)
#define GEOTOOL_SHAPE_CLASS(r, state)

Typedefs

typedef node< double >::type Feel::GeoTool::node_type
typedef boost::shared_ptr
< GeoGMSHTool > 
Feel::GeoTool::GeoGMSHTool_ptrtype
typedef std::map< uint, uint > Feel::GeoTool::map_data_type
typedef std::vector
< map_data_type > 
Feel::GeoTool::vec_map_data_type
typedef boost::shared_ptr
< vec_map_data_type > 
Feel::GeoTool::vec_map_data_ptrtype
typedef std::vector< std::map
< uint, bool > > 
Feel::GeoTool::vec_map_data_surf1_type
typedef boost::shared_ptr
< vec_map_data_surf1_type > 
Feel::GeoTool::vec_map_data_surf1_ptrtype
typedef std::vector< std::map
< uint, std::string > > 
Feel::GeoTool::vec_map_data_surf2_type
typedef boost::shared_ptr
< vec_map_data_surf2_type > 
Feel::GeoTool::vec_map_data_surf2_ptrtype
typedef boost::tuple
< GeoGMSHTool_ptrtype,
vec_map_data_ptrtype,
std::string, std::string,
vec_map_data_surf1_ptrtype,
vec_map_data_surf2_ptrtype,
vec_map_data_surf1_ptrtype > 
Feel::GeoTool::data_geo_type
typedef boost::shared_ptr
< data_geo_type > 
Feel::GeoTool::data_geo_ptrtype

Functions

void Feel::GeoTool::run (data_geo_ptrtype __dg)
 Feel::GeoTool::BOOST_PP_FOR ((0, BOOST_PP_SUB(BOOST_PP_ARRAY_SIZE(GEOTOOL_SHAPE), 1)), GEOTOOL_INSTANTIATES_FOR_COMP, GEOTOOL_INSTANTIATES_FOR_INCR, GEOTOOL_INSTANTIATES_FOR)
template<uint Numero>
node_type Feel::GeoTool::param (data_geo_ptrtype __dg)
void Feel::GeoTool::writePoint (uint __numLoc, data_geo_ptrtype __dg, double __x1, double __x2, double __x3)
void Feel::GeoTool::writeLine (uint __numLoc, data_geo_ptrtype __dg, uint __n1, uint __n2)
void Feel::GeoTool::writeCircle (uint __numLoc, data_geo_ptrtype __dg, uint __n1, uint __n2, uint __n3)
void Feel::GeoTool::writeSpline (uint __numLoc, data_geo_ptrtype __dg, Loop __loop)
void Feel::GeoTool::writeLineLoop (uint __numLoc, data_geo_ptrtype __dg, Loop__loop)
void Feel::GeoTool::writePlaneSurface (uint __numLoc, data_geo_ptrtype __dg, uint __ind)
void Feel::GeoTool::writeRuledSurface (uint __numLoc, data_geo_ptrtype __dg, uint __ind)
void Feel::GeoTool::writeExtrudeSurface (uint __numLoc, data_geo_ptrtype __dg, uint __ind, Loop__loop)
void Feel::GeoTool::writeSurfaceLoop (uint __numLoc, data_geo_ptrtype __dg, Loop__loop)
void Feel::GeoTool::writeVolume (uint __numLoc, data_geo_ptrtype __dg, uint __ind)
boost::tuple< Node, Node, Node > Feel::GeoTool::computeBasisOrthogonal (node_type dir, node_type centre)
 Feel::GeoTool::BOOST_PP_FOR ((0, BOOST_PP_SUB(BOOST_PP_ARRAY_SIZE(GEOTOOL_SHAPE), 1)), GEOTOOL_FOR_COMP, GEOTOOL_FOR_INCR, GEOTOOL_SHAPE_CLASS)
template<typename mesh_type >
boost::shared_ptr< mesh_type > Feel::GeoTool::createMeshFromGeoFile (std::string geofile, std::string name, double meshSize)

Detailed Description

Author:
Vincent Chabannes <vincent.chabannes@imag.fr>
Date:
2011-03-03

Define Documentation

#define GEOTOOL_FOR_COMP (   r,
  state 
)
Value:
BOOST_PP_LESS( BOOST_PP_TUPLE_ELEM(2, 0, state),           \
                            BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2, 1, state)) \
                            )                                           \
#define GEOTOOL_FOR_COMP1 (   r,
  state 
)
Value:
BOOST_PP_NOT_EQUAL( BOOST_PP_TUPLE_ELEM(3, 0, state),           \
                            BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3, 1, state)) \
                            )                                           \
#define GEOTOOL_FOR_COMP2 (   r,
  state 
)
Value:
BOOST_PP_NOT_EQUAL( BOOST_PP_TUPLE_ELEM(4, 0, state),           \
                            BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(4, 1, state)) \
                            )                                           \
#define GEOTOOL_FOR_INCR (   r,
  state 
)
Value:
(                                                   \
         BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2, 0, state)),        \
         BOOST_PP_TUPLE_ELEM(2, 1, state) )                 \
#define GEOTOOL_FOR_INCR1 (   r,
  state 
)
Value:
(                                                   \
         BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3, 0, state)),        \
         BOOST_PP_TUPLE_ELEM(3, 1, state),                  \
         BOOST_PP_TUPLE_ELEM(3, 2, state) )                 \
#define GEOTOOL_FOR_INCR2 (   r,
  state 
)
Value:
(                                                   \
         BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(4, 0, state)),    \
         BOOST_PP_TUPLE_ELEM(4, 1, state),                  \
         BOOST_PP_TUPLE_ELEM(4, 2, state),                  \
         BOOST_PP_TUPLE_ELEM(4, 3, state) )                 \
#define GEOTOOL_FOR_MARKER_LINE_MACRO (   r,
  state 
)
Value:
if (BOOST_PP_CAT(marker,                                        \
                         BOOST_PP_ADD(BOOST_PP_TUPLE_ELEM(3, 0, state), \
                                      1 ) ) )                           \
            {                                                           \
                BOOST_PP_FOR( (0,                                       \
                               BOOST_PP_SUB(GEOTOOL_MARKER_LINE_NBMARK(BOOST_PP_CAT(GEOTOOL_MARKER_LINE_, \
                                                                                    GEOTOOL_SHAPE_NAME_MACRO(BOOST_PP_TUPLE_ELEM(3,2,state))), \
                                                                       BOOST_PP_TUPLE_ELEM(3, 0, state) ),1), \
                               BOOST_PP_TUPLE_ELEM(3, 0, state),                \
                               BOOST_PP_TUPLE_ELEM(3, 2, state)                 \
                               ),                                       \
                              GEOTOOL_FOR_COMP2, GEOTOOL_FOR_INCR2, GEOTOOL_FOR_MARKER_LINE_MACRO2) \
                    }                                                   \
#define GEOTOOL_FOR_MARKER_LINE_MACRO2 (   r,
  state 
)
Value:
__listMarker.push_back(boost::make_tuple(this->shape(),this->name(), \
                                                 GEOTOOL_MARKER_LINE_MARKVALUE( BOOST_PP_CAT(GEOTOOL_MARKER_LINE_, \
                                                                                             GEOTOOL_SHAPE_NAME_MACRO(BOOST_PP_TUPLE_ELEM(4,3,state) )), \
                                                                                BOOST_PP_TUPLE_ELEM(4, 2, state), \
                                                                                BOOST_PP_TUPLE_ELEM(4, 0, state) ) \
                                                 )                      \
                               );                                       \
#define GEOTOOL_FOR_MARKER_POINT_MACRO (   r,
  state 
)
Value:
if (BOOST_PP_CAT(marker,                                        \
                         BOOST_PP_ADD(BOOST_PP_TUPLE_ELEM(3, 0, state), \
                                      1 ) ) )                           \
            {                                                           \
                BOOST_PP_FOR( (0,                                       \
                               BOOST_PP_SUB(GEOTOOL_MARKER_POINT_NBMARK(BOOST_PP_CAT(GEOTOOL_MARKER_POINT_, \
                                                                                    GEOTOOL_SHAPE_NAME_MACRO(BOOST_PP_TUPLE_ELEM(3,2,state))), \
                                                                       BOOST_PP_TUPLE_ELEM(3, 0, state) ),1), \
                               BOOST_PP_TUPLE_ELEM(3, 0, state),                \
                               BOOST_PP_TUPLE_ELEM(3, 2, state)                 \
                               ),                                       \
                              GEOTOOL_FOR_COMP2, GEOTOOL_FOR_INCR2, GEOTOOL_FOR_MARKER_POINT_MACRO2) \
                    }                                                   \
#define GEOTOOL_FOR_MARKER_POINT_MACRO2 (   r,
  state 
)
Value:
__listMarker.push_back(boost::make_tuple(this->shape(),this->name(), \
                                                 GEOTOOL_MARKER_POINT_MARKVALUE( BOOST_PP_CAT(GEOTOOL_MARKER_POINT_, \
                                                                                             GEOTOOL_SHAPE_NAME_MACRO(BOOST_PP_TUPLE_ELEM(4,3,state) )), \
                                                                                BOOST_PP_TUPLE_ELEM(4, 2, state), \
                                                                                BOOST_PP_TUPLE_ELEM(4, 0, state) ) \
                                                 )                      \
                               );                                       \
#define GEOTOOL_FOR_MARKER_SURFACE_MACRO (   r,
  state 
)
Value:
if (BOOST_PP_CAT(marker,                                        \
                         BOOST_PP_ADD(BOOST_PP_TUPLE_ELEM(3, 0, state), \
                                      1 ) ) )                           \
            {                                                           \
                BOOST_PP_FOR( (0,                                       \
                               BOOST_PP_SUB(GEOTOOL_MARKER_SURFACE_NBMARK(BOOST_PP_CAT(GEOTOOL_MARKER_SURFACE_, \
                                                                                       GEOTOOL_SHAPE_NAME_MACRO(BOOST_PP_TUPLE_ELEM(3,2,state)) ), \
                                                                          BOOST_PP_TUPLE_ELEM(3, 0, state) ),1), \
                               BOOST_PP_TUPLE_ELEM(3, 0, state),                \
                               BOOST_PP_TUPLE_ELEM(3, 2, state)                 \
                               ),                                       \
                              GEOTOOL_FOR_COMP2, GEOTOOL_FOR_INCR2, GEOTOOL_FOR_MARKER_SURFACE_MACRO2) \
                    }                                                   \
#define GEOTOOL_FOR_MARKER_SURFACE_MACRO2 (   r,
  state 
)
Value:
__listMarker.push_back(boost::make_tuple(this->shape(),this->name(), \
                                                 GEOTOOL_MARKER_SURFACE_MARKVALUE( BOOST_PP_CAT(GEOTOOL_MARKER_SURFACE_, \
                                                                                                GEOTOOL_SHAPE_NAME_MACRO(BOOST_PP_TUPLE_ELEM(4,3,state) )), \
                                                                                   BOOST_PP_TUPLE_ELEM(4, 2, state), \
                                                                                   BOOST_PP_TUPLE_ELEM(4, 0, state) ) \
                                                 )                      \
                               );                                       \
#define GEOTOOL_FOR_MARKER_VOLUME_MACRO (   r,
  state 
)
Value:
if (BOOST_PP_CAT(marker,                                        \
                         BOOST_PP_ADD(BOOST_PP_TUPLE_ELEM(3, 0, state), \
                                      1 ) ) )                           \
            {                                                           \
                BOOST_PP_FOR( (0,                                       \
                               BOOST_PP_SUB(GEOTOOL_MARKER_VOLUME_NBMARK(BOOST_PP_CAT(GEOTOOL_MARKER_VOLUME_, \
                                                                                      GEOTOOL_SHAPE_NAME_MACRO(BOOST_PP_TUPLE_ELEM(3,2,state)) ), \
                                                                         BOOST_PP_TUPLE_ELEM(3, 0, state) ),1), \
                               BOOST_PP_TUPLE_ELEM(3, 0, state),                \
                               BOOST_PP_TUPLE_ELEM(3, 2, state)                 \
                               ),                                       \
                              GEOTOOL_FOR_COMP2, GEOTOOL_FOR_INCR2, GEOTOOL_FOR_MARKER_VOLUME_MACRO2) \
                    }                                                   \
#define GEOTOOL_FOR_MARKER_VOLUME_MACRO2 (   r,
  state 
)
Value:
__listMarker.push_back(boost::make_tuple(this->shape(),this->name(), \
                                                 GEOTOOL_MARKER_VOLUME_MARKVALUE( BOOST_PP_CAT(GEOTOOL_MARKER_VOLUME_, \
                                                                                               GEOTOOL_SHAPE_NAME_MACRO(BOOST_PP_TUPLE_ELEM(4,3,state) )), \
                                                                                  BOOST_PP_TUPLE_ELEM(4, 2, state), \
                                                                                  BOOST_PP_TUPLE_ELEM(4, 0, state) ) \
                                                 )                      \
                               );                                       \
#define GEOTOOL_INSTANTIATES_FOR_COMP (   r,
  state 
)
Value:
BOOST_PP_NOT_EQUAL( BOOST_PP_TUPLE_ELEM(2, 0, state),           \
                            BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2, 1, state)) \
                            )                                           \
#define GEOTOOL_INSTANTIATES_FOR_INCR (   r,
  state 
)
Value:
(                                                   \
         BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2, 0, state)),        \
         BOOST_PP_TUPLE_ELEM(2, 1, state) )                 \
#define GEOTOOL_MARKER_LINE_CIRCLE
Value:
( 1, ( ( 1, 2, ( 1,2 ) ) )                  \
      )                                         \
#define GEOTOOL_MARKER_LINE_CYLINDRE
Value:
( 12, ( (  1, 1, (  1 ) ),                  \
            (  2, 1, (  2 ) ),                  \
            (  3, 1, (  3 ) ),                  \
            (  4, 1, (  4 ) ),                  \
            (  5, 1, (  5 ) ),                  \
            (  6, 1, (  6 ) ),                  \
            (  7, 1, (  7 ) ),                  \
            (  8, 1, (  8 ) ),                  \
            (  9, 1, (  9 ) ),                  \
            ( 10, 1, ( 10 ) ),                  \
            ( 11, 1, ( 11 ) ),                  \
            ( 12, 1, ( 12 ) )                   \
            )                                   \
      )                                         \
#define GEOTOOL_MARKER_LINE_HEXAEDRE
Value:
( 12, ( (  1, 1, (  1 ) ),                  \
            (  2, 1, (  2 ) ),                  \
            (  3, 1, (  3 ) ),                  \
            (  4, 1, (  4 ) ),                  \
            (  5, 1, (  5 ) ),                  \
            (  6, 1, (  6 ) ),                  \
            (  7, 1, (  7 ) ),                  \
            (  8, 1, (  8 ) ),                  \
            (  9, 1, (  9 ) ),                  \
            ( 10, 1, ( 10 ) ),                  \
            ( 11, 1, ( 11 ) ),                  \
            ( 12, 1, ( 12 ) )                   \
            )                                   \
      )                                         \
#define GEOTOOL_MARKER_LINE_HEXAGON
Value:
( 6, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ),                     \
           ( 4, 1, ( 4 ) ),                     \
           ( 5, 1, ( 5 ) ),                     \
           ( 6, 1, ( 6 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_LINE_LINE
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_LINE_PARTIALDISQUE
Value:
( 2, ( ( 1, 4, ( 1,2,3,4 ) ),               \
           ( 2, 1, (    5    ) ) )              \
      )                                         \
#define GEOTOOL_MARKER_LINE_PENTAGON
Value:
( 5, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ),                     \
           ( 4, 1, ( 4 ) ),                     \
           ( 5, 1, ( 5 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_LINE_QUADRANGLE
Value:
( 4, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ),                     \
           ( 4, 1, ( 4 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_LINE_RECTANGLE
Value:
( 4, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ),                     \
           ( 4, 1, ( 4 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_LINE_SPECIAL_1A
Value:
( 4, ( ( 1, 2, ( 1,5 ) ),                      \
           ( 2, 2, ( 2,6 ) ),                      \
           ( 3, 2, ( 3,7 ) ),                      \
           ( 4, 2, ( 4,8 ) ) )                     \
      )                                            \
#define GEOTOOL_MARKER_LINE_SPECIAL_1B
Value:
( 3, ( ( 1, 2, ( 1,2 ) ),                      \
           ( 2, 1, ( 3   ) ),                      \
           ( 3, 1, ( 4   ) )                       \
           )                                       \
      )                                            \
#define GEOTOOL_MARKER_LINE_SPHERE
Value:
( 12, ( (  1, 1, (  1 ) ),                  \
            (  2, 1, (  2 ) ),                  \
            (  3, 1, (  3 ) ),                  \
            (  4, 1, (  4 ) ),                  \
            (  5, 1, (  5 ) ),                  \
            (  6, 1, (  6 ) ),                  \
            (  7, 1, (  7 ) ),                  \
            (  8, 1, (  8 ) ),                  \
            (  9, 1, (  9 ) ),                  \
            ( 10, 1, ( 10 ) ),                  \
            ( 11, 1, ( 11 ) ),                  \
            ( 12, 1, ( 12 ) )                   \
            )                                   \
      )                                         \
#define GEOTOOL_MARKER_LINE_TRIANGLE
Value:
( 3, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_LINE_TUBE
Value:
( 12, ( (  1, 1, (  1 ) ),                  \
            (  2, 1, (  2 ) ),                  \
            (  3, 1, (  3 ) ),                  \
            (  4, 1, (  4 ) ),                  \
            (  5, 1, (  5 ) ),                  \
            (  6, 1, (  6 ) ),                  \
            (  7, 1, (  7 ) ),                  \
            (  8, 1, (  8 ) ),                  \
            (  9, 1, (  9 ) ),                  \
            ( 10, 1, ( 10 ) ),                  \
            ( 11, 1, ( 11 ) ),                  \
            ( 12, 1, ( 12 ) )                   \
            )                                   \
      )                                         \
#define GEOTOOL_MARKER_POINT_CIRCLE
Value:
( 2, ( ( 1, 2, ( 1,3 ) ),                   \
           ( 2, 1, ( 2 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_POINT_CYLINDRE
Value:
( 1, ( ( 1, 10, ( 1,2,3,4,5,6,                \
                      7,8,9,10 ) ) ) )            \
#define GEOTOOL_MARKER_POINT_HEXAGON
Value:
( 6, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ),                     \
           ( 4, 1, ( 4 ) ),                     \
           ( 5, 1, ( 5 ) ),                     \
           ( 6, 1, ( 6 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_POINT_LINE
Value:
( 2, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_POINT_PARTIALDISQUE
Value:
( 2, ( ( 1, 2, ( 1,3 ) ),                   \
           ( 2, 1, ( 2 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_POINT_PENTAGON
Value:
( 5, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ),                     \
           ( 4, 1, ( 4 ) ),                     \
           ( 5, 1, ( 5 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_POINT_QUADRANGLE
Value:
( 4, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ),                     \
           ( 4, 1, ( 4 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_POINT_RECTANGLE
Value:
( 4, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ),                     \
           ( 4, 1, ( 4 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_POINT_SPECIAL_1A
Value:
( 1, ( ( 1, 24, ( 1,2,3,4,5,6,                \
                      7,8,9,10,11,12,             \
                      13,14,15,16,17,18,          \
                      19,20,21,22,23,24 ) ) ) )   \
#define GEOTOOL_MARKER_POINT_SPECIAL_1B
Value:
( 1, ( ( 1, 12, ( 1,2,3,4,5,6,                \
                      7,8,9,10,11,12 ) ) ) )      \
#define GEOTOOL_MARKER_POINT_TRIANGLE
Value:
( 3, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_POINT_TUBE
Value:
( 1, ( ( 1, 18, ( 1,2,3,4,5,6,                \
                      7,8,9,10,11,12,             \
                      13,14,15,16,17,18 ) ) ) )   \
#define GEOTOOL_MARKER_SURFACE_CIRCLE
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_CYLINDRE
Value:
( 3, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 4, ( 3,4,5,6 ) )                \
           )                                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_HEXAEDRE
Value:
( 6, ( ( 1, 1, ( 1 ) ),                     \
           ( 2, 1, ( 2 ) ),                     \
           ( 3, 1, ( 3 ) ),                     \
           ( 4, 1, ( 4 ) ),                     \
           ( 5, 1, ( 5 ) ),                     \
           ( 6, 1, ( 6 ) )                      \
           )                                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_HEXAGON
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_PARTIALDISQUE
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_PENTAGON
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_QUADRANGLE
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_RECTANGLE
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_SPECIAL_1A
Value:
( 1, ( ( 1, 2, ( 1,2 ) ) )                  \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_SPECIAL_1B
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_SPHERE
Value:
( 1, ( ( 1, 8, ( 1,2,3,4,5,6,7,8 ) )        \
           )                                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_TRIANGLE
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_SURFACE_TUBE
Value:
( 4, ( ( 1, 4, ( 1,2,3,4 ) ),                \
           ( 2, 4, ( 5,6,7,8 ) ),                \
           ( 3, 4, ( 9,10,11,12 ) ),\
           ( 4, 4, ( 13,14,15,16 ) )             \
           )                                    \
      )                                         \
#define GEOTOOL_MARKER_VOLUME_CYLINDRE
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_VOLUME_HEXAEDRE
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_VOLUME_SPHERE
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_MARKER_VOLUME_TUBE
Value:
( 1, ( ( 1, 1, ( 1 ) ) )                    \
      )                                         \
#define GEOTOOL_SHAPE
Value:
( 14, ( ( Line          , 1, 0, 0, "line"         , 2, LINE ),      \
            ( Triangle      , 2, 1, 0, "triangle"     , 3, TRIANGLE ),  \
            ( Rectangle     , 2, 1, 0, "rectangle"    , 2, RECTANGLE ), \
            ( Quadrangle    , 2, 1, 0, "quadrangle"   , 4, QUADRANGLE ), \
            ( Pentagon      , 2, 1, 0, "pentagon"      , 5, PENTAGON ), \
            ( Hexagon       , 2, 1, 0, "hexagon"      , 6, HEXAGON ),   \
            ( Circle        , 2, 1, 0, "circle"       , 2, CIRCLE    ), \
            ( PartialDisque , 2, 1, 0, "partialdisque", 3, PARTIALDISQUE), \
            ( Special_1a    , 2, 2, 0, "special_1a"   , 1, SPECIAL_1A ), \
            ( Special_1b    , 2, 1, 0, "special_1b"   , 1, SPECIAL_1B ), \
            ( Hexaedre      , 3, 6, 1, "hexaedre"     , 8, HEXAEDRE  ), \
            ( Cylindre      , 3, 6, 1, "cylindre"     , 4, CYLINDRE  ), \
            ( Sphere        , 3, 8, 1, "sphere"       , 2, SPHERE  ),   \
            ( Tube          , 3, 16, 1, "tube"         , 5, TUBE  )    \
            )                                                           \
      )                                                                 \
#define GEOTOOL_SHAPE_PARAM (   r,
  state 
)
Value:
_M_param[BOOST_PP_TUPLE_ELEM(2,0,state)] = BOOST_PP_CAT( __param, \
                                                                 BOOST_PP_TUPLE_ELEM(2,0,state) ); \
#define GEOTOOL_SHAPE_PARAM_SIGNATURE (   state)
Value:
BOOST_PP_FOR( (0, BOOST_PP_SUB(GEOTOOL_SHAPE_NBPARAM(BOOST_PP_TUPLE_ELEM(2,0,state)),1) ), \
                      GEOTOOL_FOR_COMP,                                 \
                      GEOTOOL_FOR_INCR,                                 \
                      GEOTOOL_SHAPE_FOR_PARAM_SIGNATURE)                \