/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: spatial.proto */

#ifndef PROTOBUF_C_spatial_2eproto__INCLUDED
#define PROTOBUF_C_spatial_2eproto__INCLUDED

#include <protobuf-c/protobuf-c.h>

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1003000
# error This file was generated by a newer version of protobuf-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1005002 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protobuf-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protobuf-c.
#endif

#include "vector.pb-c.h"

typedef struct Messages__Zone Messages__Zone;
typedef struct Messages__GridControl Messages__GridControl;
typedef struct Messages__MeshControl Messages__MeshControl;
typedef struct Messages__TreeControl Messages__TreeControl;
typedef struct Messages__Topology Messages__Topology;


/* --- enums --- */


/* --- messages --- */

struct  Messages__Zone
{
  ProtobufCMessage base;
  char *name;
  int32_t id;
  /*
   *0:node-group, 1:edge-loop, 2:face-surface, 3:cell-volume
   */
  uint32_t dimensionality;
  Messages__Revision *revision;
  /*
   *optional set of element indices (else, all by this id)
   */
  size_t n_elements;
  uint32_t *elements;
  uint32_t element_count;
  char *comments;
  char *info;
  char *resource_name;
  Messages__Extrema *bounds;
  /*
   *in symbol icon's coordinates [0,1]
   */
  size_t n_terminal_coord;
  float *terminal_coord;
};
#define MESSAGES__ZONE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__zone__descriptor) \
    , (char *)protobuf_c_empty_string, 0, 0, NULL, 0,NULL, 0, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, NULL, 0,NULL }


struct  Messages__GridControl
{
  ProtobufCMessage base;
  uint32_t basis;
  size_t n_size;
  uint32_t *size;
  size_t n_spacing;
  double *spacing;
  size_t n_grading;
  double *grading;
  /*
   * 0-7: mm, cm, m, km, in, ft, yd, mi (defined in common/space.h)       
   */
  uint32_t length_units;
  uint64_t target_n;
  Messages__Extrema *bounds;
  size_t n_symmetries;
  protobuf_c_boolean *symmetries;
  protobuf_c_boolean interior;
  protobuf_c_boolean exterior;
  protobuf_c_boolean shell;
};
#define MESSAGES__GRID_CONTROL__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__grid_control__descriptor) \
    , 0, 0,NULL, 0,NULL, 0,NULL, 0, 0, NULL, 0,NULL, 0, 0, 0 }


struct  Messages__MeshControl
{
  ProtobufCMessage base;
  uint64_t target_n;
  uint32_t max_iterations;
  double size_ratio;
  double size_decay;
  double size_exponent;
  double curv_ratio;
  double curv_decay;
  double curv_exponent;
  double node_radius;
  Messages__Extrema *bounds;
  /*
   * 0-7: mm, cm, m, km, in, ft, yd, mi (defined in common/space.h)       
   */
  uint32_t length_units;
  protobuf_c_boolean interior;
  protobuf_c_boolean exterior;
  protobuf_c_boolean shell;
  protobuf_c_boolean equalize;
  protobuf_c_boolean smooth;
  /*
   *reserved
   */
  protobuf_c_boolean include_background;
  protobuf_c_boolean keep_existing_points;
  protobuf_c_boolean auto_fit_domain;
  /*
   *reserved
   */
  double boundary_layer_thickness;
  size_t n_symmetries;
  protobuf_c_boolean *symmetries;
  /*
   *reserved
   */
  uint64_t background_n;
};
#define MESSAGES__MESH_CONTROL__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__mesh_control__descriptor) \
    , 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NULL, 0 }


struct  Messages__TreeControl
{
  ProtobufCMessage base;
  uint32_t min_depth;
  uint32_t max_depth;
  uint64_t max_size;
  /*
   *reserved
   */
  /*
   *reference mesh element dimensionality: build from nodes(0), edges(1), faces(2), or cells(3)
   */
  uint32_t ref_dimensionality;
  /*
   * 0-7: mm, cm, m, km, in, ft, yd, mi (defined in common/space.h)       
   */
  uint32_t length_units;
  /*
   *reserved
   */
  Messages__Extrema *bounds;
};
#define MESSAGES__TREE_CONTROL__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__tree_control__descriptor) \
    , 0, 0, 0, 0, 0, NULL }


struct  Messages__Topology
{
  ProtobufCMessage base;
  char *name;
  uint32_t type;
  uint32_t ndim;
  uint32_t basis;
  char *filename;
  Messages__Revision *revision;
  /*
   * as defined in common/space.hpp: mm=0, cm=1, m=2, km=3, in=4, ft=5, yd=6, mi=7
   */
  char *info;
  /*
   *reserved
   */
  Messages__Elements *nodes;
  Messages__Elements *edges;
  Messages__Elements *faces;
  Messages__Elements *cells;
  Messages__Record64 *data;
  size_t n_sparse_data;
  Messages__SparseMatrix **sparse_data;
  /*
   *reserved
   */
  Messages__GridControl *grid_control;
  Messages__MeshControl *mesh_control;
  Messages__TreeControl *tree_control;
};
#define MESSAGES__TOPOLOGY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__topology__descriptor) \
    , (char *)protobuf_c_empty_string, 0, 0, 0, (char *)protobuf_c_empty_string, NULL, (char *)protobuf_c_empty_string, NULL, NULL, NULL, NULL, NULL, 0,NULL, NULL, NULL, NULL }


/* Messages__Zone methods */
void   messages__zone__init
                     (Messages__Zone         *message);
size_t messages__zone__get_packed_size
                     (const Messages__Zone   *message);
size_t messages__zone__pack
                     (const Messages__Zone   *message,
                      uint8_t             *out);
size_t messages__zone__pack_to_buffer
                     (const Messages__Zone   *message,
                      ProtobufCBuffer     *buffer);
Messages__Zone *
       messages__zone__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__zone__free_unpacked
                     (Messages__Zone *message,
                      ProtobufCAllocator *allocator);
/* Messages__GridControl methods */
void   messages__grid_control__init
                     (Messages__GridControl         *message);
size_t messages__grid_control__get_packed_size
                     (const Messages__GridControl   *message);
size_t messages__grid_control__pack
                     (const Messages__GridControl   *message,
                      uint8_t             *out);
size_t messages__grid_control__pack_to_buffer
                     (const Messages__GridControl   *message,
                      ProtobufCBuffer     *buffer);
Messages__GridControl *
       messages__grid_control__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__grid_control__free_unpacked
                     (Messages__GridControl *message,
                      ProtobufCAllocator *allocator);
/* Messages__MeshControl methods */
void   messages__mesh_control__init
                     (Messages__MeshControl         *message);
size_t messages__mesh_control__get_packed_size
                     (const Messages__MeshControl   *message);
size_t messages__mesh_control__pack
                     (const Messages__MeshControl   *message,
                      uint8_t             *out);
size_t messages__mesh_control__pack_to_buffer
                     (const Messages__MeshControl   *message,
                      ProtobufCBuffer     *buffer);
Messages__MeshControl *
       messages__mesh_control__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__mesh_control__free_unpacked
                     (Messages__MeshControl *message,
                      ProtobufCAllocator *allocator);
/* Messages__TreeControl methods */
void   messages__tree_control__init
                     (Messages__TreeControl         *message);
size_t messages__tree_control__get_packed_size
                     (const Messages__TreeControl   *message);
size_t messages__tree_control__pack
                     (const Messages__TreeControl   *message,
                      uint8_t             *out);
size_t messages__tree_control__pack_to_buffer
                     (const Messages__TreeControl   *message,
                      ProtobufCBuffer     *buffer);
Messages__TreeControl *
       messages__tree_control__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__tree_control__free_unpacked
                     (Messages__TreeControl *message,
                      ProtobufCAllocator *allocator);
/* Messages__Topology methods */
void   messages__topology__init
                     (Messages__Topology         *message);
size_t messages__topology__get_packed_size
                     (const Messages__Topology   *message);
size_t messages__topology__pack
                     (const Messages__Topology   *message,
                      uint8_t             *out);
size_t messages__topology__pack_to_buffer
                     (const Messages__Topology   *message,
                      ProtobufCBuffer     *buffer);
Messages__Topology *
       messages__topology__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__topology__free_unpacked
                     (Messages__Topology *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Messages__Zone_Closure)
                 (const Messages__Zone *message,
                  void *closure_data);
typedef void (*Messages__GridControl_Closure)
                 (const Messages__GridControl *message,
                  void *closure_data);
typedef void (*Messages__MeshControl_Closure)
                 (const Messages__MeshControl *message,
                  void *closure_data);
typedef void (*Messages__TreeControl_Closure)
                 (const Messages__TreeControl *message,
                  void *closure_data);
typedef void (*Messages__Topology_Closure)
                 (const Messages__Topology *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor messages__zone__descriptor;
extern const ProtobufCMessageDescriptor messages__grid_control__descriptor;
extern const ProtobufCMessageDescriptor messages__mesh_control__descriptor;
extern const ProtobufCMessageDescriptor messages__tree_control__descriptor;
extern const ProtobufCMessageDescriptor messages__topology__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_spatial_2eproto__INCLUDED */
