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

#ifndef PROTOBUF_C_meta_2eproto__INCLUDED
#define PROTOBUF_C_meta_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"
#include "spatial.pb-c.h"

typedef struct Messages__GraphicsControl Messages__GraphicsControl;
typedef struct Messages__Representation Messages__Representation;
typedef struct Messages__Visual Messages__Visual;
typedef struct Messages__Meta Messages__Meta;
typedef struct Messages__SliceControl Messages__SliceControl;
typedef struct Messages__CameraControl Messages__CameraControl;


/* --- enums --- */


/* --- messages --- */

struct  Messages__GraphicsControl
{
  ProtobufCMessage base;
  /*
   * render program enumeration: 0-explicit raster, 1-implicit raster, 2-explicit ray, 3-implicit ray
   */
  uint32_t mode;
  /*
   * bitfield flags, see common/style.h
   */
  uint32_t style;
  /*
   *reserved
   */
  size_t n_color;
  float *color;
  float alpha;
  float point_width;
  float line_width;
  /*
   *reserved
   */
  /*
   *reserved
   */
  protobuf_c_boolean visible;
};
#define MESSAGES__GRAPHICS_CONTROL__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__graphics_control__descriptor) \
    , 0, 0, 0,NULL, 0, 0, 0, 0 }


struct  Messages__Representation
{
  ProtobufCMessage base;
  char *property_key;
  uint32_t color_map;
  uint32_t component;
  protobuf_c_boolean auto_range;
  protobuf_c_boolean use_default_key;
  protobuf_c_boolean color_out_of_range;
  protobuf_c_boolean use_magnitude;
  /*
   */
  float displacement_multiplier;
  /*
   *reserved
   */
  size_t n_range;
  float *range;
};
#define MESSAGES__REPRESENTATION__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__representation__descriptor) \
    , (char *)protobuf_c_empty_string, 0, 0, 0, 0, 0, 0, 0, 0,NULL }


struct  Messages__Visual
{
  ProtobufCMessage base;
  Messages__Zone *region;
  Messages__GraphicsControl *control;
  Messages__Representation *representation;
  /*
   *reserved
   */
  size_t n_points;
  uint32_t *points;
  size_t n_lines;
  uint32_t *lines;
  size_t n_triangles;
  uint32_t *triangles;
  /*
   * only used on composite elements (e.g. QUAD4 represented using triangles)
   */
  size_t n_indices_per_element;
  uint32_t *indices_per_element;
  /*
   * only used on composite elements (e.g. QUAD4 represented using triangles)
   */
  size_t n_elements_to_indices;
  uint32_t *elements_to_indices;
  /*
   * only used on composite elements (e.g. QUAD4 represented using triangles)
   */
  size_t n_indices_to_elements;
  uint32_t *indices_to_elements;
  /*
   * optional data such as displacement vectors and positions (if not nodal positions)
   */
  size_t n_extras;
  Messages__Vector32 **extras;
};
#define MESSAGES__VISUAL__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__visual__descriptor) \
    , NULL, NULL, NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL }


struct  Messages__Meta
{
  ProtobufCMessage base;
  /*
   * unique identifier that persists between sessions
   */
  char *name;
  /*
   * unique id for each system assigned, valid only within a given session
   */
  int64_t uid;
  char *directory;
  char *symbol;
  char *owner;
  char *comments;
  char *series;
  char *sys_info;
  char *geom_info;
  int64_t parent;
  /*
   * unix time
   */
  int64_t created;
  int64_t saved;
  int64_t modified;
  uint64_t iteration;
  uint64_t save_interval;
  protobuf_c_boolean enabled;
  protobuf_c_boolean locked;
  protobuf_c_boolean auto_save;
  protobuf_c_boolean lightweight;
  Messages__Revision *revision;
  Messages__Revision *version;
  Messages__Extrema *bounds;
  char *url;
  Messages__GraphicsControl *appearance;
  /*
   * uid's (only good within a given session. see concept.proto for persistent relationships)
   */
  size_t n_children;
  int64_t *children;
  /*
   * region id's
   */
  size_t n_groups;
  int32_t *groups;
  /*
   * region id's
   */
  size_t n_loops;
  int32_t *loops;
  /*
   * region id's
   */
  size_t n_surfaces;
  int32_t *surfaces;
  /*
   * region id's
   */
  size_t n_volumes;
  int32_t *volumes;
  /*
   * double16 (glm::dmat4) global transformation matrix
   */
  size_t n_global_transform;
  double *global_transform;
  /*
   * double16 (glm::dmat4) global transformation matrix
   */
  size_t n_global_rate;
  double *global_rate;
  /*
   * double16 (glm::dmat4) global transformation matrix
   */
  size_t n_global_accel;
  double *global_accel;
  /*
   * serialized property-keys, used to request Vector32 or Vector64 data
   */
  size_t n_properties;
  char **properties;
  /*
   * optional visual media populated by server
   */
  size_t n_media;
  Messages__Visual **media;
  size_t n_symbol_transform;
  float *symbol_transform;
  /*
   *reserved
   */
  /*
   * 0-7: mm, cm, m, km, in, ft, yd, mi (defined in common/space.h)                                                                     // as defined in common/space.hpp: mm=0, cm=1, m=2, km=3, in=4, ft=5, yd=6, mi=7
   */
  uint32_t length_units;
};
#define MESSAGES__META__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__meta__descriptor) \
    , (char *)protobuf_c_empty_string, 0, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, (char *)protobuf_c_empty_string, NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0 }


struct  Messages__SliceControl
{
  ProtobufCMessage base;
  char *name;
  size_t n_center;
  double *center;
  size_t n_normal;
  double *normal;
  protobuf_c_boolean intersect;
  protobuf_c_boolean negative;
  protobuf_c_boolean positive;
};
#define MESSAGES__SLICE_CONTROL__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__slice_control__descriptor) \
    , (char *)protobuf_c_empty_string, 0,NULL, 0,NULL, 0, 0, 0 }


struct  Messages__CameraControl
{
  ProtobufCMessage base;
  /*
   *global position of interest that is being tracked, xyz of length 3
   */
  size_t n_subject;
  float *subject;
  /*
   *global offset that camera might be centered on, dydxdz of length 3
   */
  size_t n_offset;
  float *offset;
  /*
   *viewer/camera angle, of length 3 (6 for future stereoscopic)
   */
  size_t n_angle;
  float *angle;
  float scene_time;
  float magnification;
  float time_constant;
  float pan_sensitivity;
  float rotation_sensitivity;
  float zoom_sensitivity;
  float znear;
  float zfar;
  /*
   * angle of view of focal lens (perspective mode)
   */
  float aov;
  size_t n_resolution;
  uint32_t *resolution;
  /*
   *reserved
   */
  protobuf_c_boolean perspective;
  protobuf_c_boolean smooth;
  protobuf_c_boolean orbit;
  protobuf_c_boolean follow;
};
#define MESSAGES__CAMERA_CONTROL__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__camera_control__descriptor) \
    , 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NULL, 0, 0, 0, 0 }


/* Messages__GraphicsControl methods */
void   messages__graphics_control__init
                     (Messages__GraphicsControl         *message);
size_t messages__graphics_control__get_packed_size
                     (const Messages__GraphicsControl   *message);
size_t messages__graphics_control__pack
                     (const Messages__GraphicsControl   *message,
                      uint8_t             *out);
size_t messages__graphics_control__pack_to_buffer
                     (const Messages__GraphicsControl   *message,
                      ProtobufCBuffer     *buffer);
Messages__GraphicsControl *
       messages__graphics_control__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__graphics_control__free_unpacked
                     (Messages__GraphicsControl *message,
                      ProtobufCAllocator *allocator);
/* Messages__Representation methods */
void   messages__representation__init
                     (Messages__Representation         *message);
size_t messages__representation__get_packed_size
                     (const Messages__Representation   *message);
size_t messages__representation__pack
                     (const Messages__Representation   *message,
                      uint8_t             *out);
size_t messages__representation__pack_to_buffer
                     (const Messages__Representation   *message,
                      ProtobufCBuffer     *buffer);
Messages__Representation *
       messages__representation__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__representation__free_unpacked
                     (Messages__Representation *message,
                      ProtobufCAllocator *allocator);
/* Messages__Visual methods */
void   messages__visual__init
                     (Messages__Visual         *message);
size_t messages__visual__get_packed_size
                     (const Messages__Visual   *message);
size_t messages__visual__pack
                     (const Messages__Visual   *message,
                      uint8_t             *out);
size_t messages__visual__pack_to_buffer
                     (const Messages__Visual   *message,
                      ProtobufCBuffer     *buffer);
Messages__Visual *
       messages__visual__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__visual__free_unpacked
                     (Messages__Visual *message,
                      ProtobufCAllocator *allocator);
/* Messages__Meta methods */
void   messages__meta__init
                     (Messages__Meta         *message);
size_t messages__meta__get_packed_size
                     (const Messages__Meta   *message);
size_t messages__meta__pack
                     (const Messages__Meta   *message,
                      uint8_t             *out);
size_t messages__meta__pack_to_buffer
                     (const Messages__Meta   *message,
                      ProtobufCBuffer     *buffer);
Messages__Meta *
       messages__meta__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__meta__free_unpacked
                     (Messages__Meta *message,
                      ProtobufCAllocator *allocator);
/* Messages__SliceControl methods */
void   messages__slice_control__init
                     (Messages__SliceControl         *message);
size_t messages__slice_control__get_packed_size
                     (const Messages__SliceControl   *message);
size_t messages__slice_control__pack
                     (const Messages__SliceControl   *message,
                      uint8_t             *out);
size_t messages__slice_control__pack_to_buffer
                     (const Messages__SliceControl   *message,
                      ProtobufCBuffer     *buffer);
Messages__SliceControl *
       messages__slice_control__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__slice_control__free_unpacked
                     (Messages__SliceControl *message,
                      ProtobufCAllocator *allocator);
/* Messages__CameraControl methods */
void   messages__camera_control__init
                     (Messages__CameraControl         *message);
size_t messages__camera_control__get_packed_size
                     (const Messages__CameraControl   *message);
size_t messages__camera_control__pack
                     (const Messages__CameraControl   *message,
                      uint8_t             *out);
size_t messages__camera_control__pack_to_buffer
                     (const Messages__CameraControl   *message,
                      ProtobufCBuffer     *buffer);
Messages__CameraControl *
       messages__camera_control__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__camera_control__free_unpacked
                     (Messages__CameraControl *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Messages__GraphicsControl_Closure)
                 (const Messages__GraphicsControl *message,
                  void *closure_data);
typedef void (*Messages__Representation_Closure)
                 (const Messages__Representation *message,
                  void *closure_data);
typedef void (*Messages__Visual_Closure)
                 (const Messages__Visual *message,
                  void *closure_data);
typedef void (*Messages__Meta_Closure)
                 (const Messages__Meta *message,
                  void *closure_data);
typedef void (*Messages__SliceControl_Closure)
                 (const Messages__SliceControl *message,
                  void *closure_data);
typedef void (*Messages__CameraControl_Closure)
                 (const Messages__CameraControl *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor messages__graphics_control__descriptor;
extern const ProtobufCMessageDescriptor messages__representation__descriptor;
extern const ProtobufCMessageDescriptor messages__visual__descriptor;
extern const ProtobufCMessageDescriptor messages__meta__descriptor;
extern const ProtobufCMessageDescriptor messages__slice_control__descriptor;
extern const ProtobufCMessageDescriptor messages__camera_control__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_meta_2eproto__INCLUDED */
