// automatically generated by the FlatBuffers compiler, do not modify

#ifndef FLATBUFFERS_GENERATED_CSPARSEBINARY_FLATBUFFERS_H_
#define FLATBUFFERS_GENERATED_CSPARSEBINARY_FLATBUFFERS_H_

#include "flatbuffers/flatbuffers.h"


namespace flatbuffers {

struct CSParseBinary;
struct NodeTree;
struct Options;
struct WidgetOptions;
struct LayoutComponentTable;
struct SingleNodeOptions;
struct SpriteOptions;
struct ParticleSystemOptions;
struct GameMapOptions;
struct ButtonOptions;
struct CheckBoxOptions;
struct ImageViewOptions;
struct TextAtlasOptions;
struct TextBMFontOptions;
struct TextOptions;
struct TextFieldOptions;
struct LoadingBarOptions;
struct SliderOptions;
struct PanelOptions;
struct ScrollViewOptions;
struct PageViewOptions;
struct ListViewOptions;
struct ProjectNodeOptions;
struct ComponentOptions;
struct ComAudioOptions;
struct AnimationInfo;
struct NodeAction;
struct TimeLine;
struct Frame;
struct PointFrame;
struct ScaleFrame;
struct ColorFrame;
struct TextureFrame;
struct EventFrame;
struct IntFrame;
struct BoolFrame;
struct InnerActionFrame;
struct EasingData;
struct RotationSkew;
struct Position;
struct Scale;
struct AnchorPoint;
struct Color;
struct ColorVector;
struct FlatSize;
struct CapInsets;
struct BlendFunc;
struct ResourceData;

MANUALLY_ALIGNED_STRUCT(4) RotationSkew {
 private:
  float rotationSkewX_;
  float rotationSkewY_;

 public:
  RotationSkew(float rotationSkewX, float rotationSkewY)
    : rotationSkewX_(flatbuffers::EndianScalar(rotationSkewX)), rotationSkewY_(flatbuffers::EndianScalar(rotationSkewY)) { }

  float rotationSkewX() const { return flatbuffers::EndianScalar(rotationSkewX_); }
  float rotationSkewY() const { return flatbuffers::EndianScalar(rotationSkewY_); }
};
STRUCT_END(RotationSkew, 8);

MANUALLY_ALIGNED_STRUCT(4) Position {
 private:
  float x_;
  float y_;

 public:
  Position(float x, float y)
    : x_(flatbuffers::EndianScalar(x)), y_(flatbuffers::EndianScalar(y)) { }

  float x() const { return flatbuffers::EndianScalar(x_); }
  float y() const { return flatbuffers::EndianScalar(y_); }
};
STRUCT_END(Position, 8);

MANUALLY_ALIGNED_STRUCT(4) Scale {
 private:
  float scaleX_;
  float scaleY_;

 public:
  Scale(float scaleX, float scaleY)
    : scaleX_(flatbuffers::EndianScalar(scaleX)), scaleY_(flatbuffers::EndianScalar(scaleY)) { }

  float scaleX() const { return flatbuffers::EndianScalar(scaleX_); }
  float scaleY() const { return flatbuffers::EndianScalar(scaleY_); }
};
STRUCT_END(Scale, 8);

MANUALLY_ALIGNED_STRUCT(4) AnchorPoint {
 private:
  float scaleX_;
  float scaleY_;

 public:
  AnchorPoint(float scaleX, float scaleY)
    : scaleX_(flatbuffers::EndianScalar(scaleX)), scaleY_(flatbuffers::EndianScalar(scaleY)) { }

  float scaleX() const { return flatbuffers::EndianScalar(scaleX_); }
  float scaleY() const { return flatbuffers::EndianScalar(scaleY_); }
};
STRUCT_END(AnchorPoint, 8);

MANUALLY_ALIGNED_STRUCT(1) Color {
 private:
  uint8_t a_;
  uint8_t r_;
  uint8_t g_;
  uint8_t b_;

 public:
  Color(uint8_t a, uint8_t r, uint8_t g, uint8_t b)
    : a_(flatbuffers::EndianScalar(a)), r_(flatbuffers::EndianScalar(r)), g_(flatbuffers::EndianScalar(g)), b_(flatbuffers::EndianScalar(b)) { }

  uint8_t a() const { return flatbuffers::EndianScalar(a_); }
  uint8_t r() const { return flatbuffers::EndianScalar(r_); }
  uint8_t g() const { return flatbuffers::EndianScalar(g_); }
  uint8_t b() const { return flatbuffers::EndianScalar(b_); }
};
STRUCT_END(Color, 4);

MANUALLY_ALIGNED_STRUCT(4) ColorVector {
 private:
  float vectorX_;
  float vectorY_;

 public:
  ColorVector(float vectorX, float vectorY)
    : vectorX_(flatbuffers::EndianScalar(vectorX)), vectorY_(flatbuffers::EndianScalar(vectorY)) { }

  float vectorX() const { return flatbuffers::EndianScalar(vectorX_); }
  float vectorY() const { return flatbuffers::EndianScalar(vectorY_); }
};
STRUCT_END(ColorVector, 8);

MANUALLY_ALIGNED_STRUCT(4) FlatSize {
 private:
  float width_;
  float height_;

 public:
  FlatSize(float width, float height)
    : width_(flatbuffers::EndianScalar(width)), height_(flatbuffers::EndianScalar(height)) { }

  float width() const { return flatbuffers::EndianScalar(width_); }
  float height() const { return flatbuffers::EndianScalar(height_); }
};
STRUCT_END(FlatSize, 8);

MANUALLY_ALIGNED_STRUCT(4) CapInsets {
 private:
  float x_;
  float y_;
  float width_;
  float height_;

 public:
  CapInsets(float x, float y, float width, float height)
    : x_(flatbuffers::EndianScalar(x)), y_(flatbuffers::EndianScalar(y)), width_(flatbuffers::EndianScalar(width)), height_(flatbuffers::EndianScalar(height)) { }

  float x() const { return flatbuffers::EndianScalar(x_); }
  float y() const { return flatbuffers::EndianScalar(y_); }
  float width() const { return flatbuffers::EndianScalar(width_); }
  float height() const { return flatbuffers::EndianScalar(height_); }
};
STRUCT_END(CapInsets, 16);

MANUALLY_ALIGNED_STRUCT(4) BlendFunc {
 private:
  int32_t src_;
  int32_t dst_;

 public:
  BlendFunc(int32_t src, int32_t dst)
    : src_(flatbuffers::EndianScalar(src)), dst_(flatbuffers::EndianScalar(dst)) { }

  int32_t src() const { return flatbuffers::EndianScalar(src_); }
  int32_t dst() const { return flatbuffers::EndianScalar(dst_); }
};
STRUCT_END(BlendFunc, 8);

struct CSParseBinary : private flatbuffers::Table {
  const flatbuffers::String *version() const { return GetPointer<const flatbuffers::String *>(4); }
  const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *textures() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(6); }
  const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *texturePngs() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(8); }
  const NodeTree *nodeTree() const { return GetPointer<const NodeTree *>(10); }
  const NodeAction *action() const { return GetPointer<const NodeAction *>(12); }
  const flatbuffers::Vector<flatbuffers::Offset<AnimationInfo>> *animationList() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<AnimationInfo>> *>(14); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* version */) &&
           verifier.Verify(version()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* textures */) &&
           verifier.Verify(textures()) &&
           verifier.VerifyVectorOfStrings(textures()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* texturePngs */) &&
           verifier.Verify(texturePngs()) &&
           verifier.VerifyVectorOfStrings(texturePngs()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* nodeTree */) &&
           verifier.VerifyTable(nodeTree()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 12 /* action */) &&
           verifier.VerifyTable(action()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 14 /* animationList */) &&
           verifier.Verify(animationList()) &&
           verifier.VerifyVectorOfTables(animationList()) &&
           verifier.EndTable();
  }
};

struct CSParseBinaryBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_version(flatbuffers::Offset<flatbuffers::String> version) { fbb_.AddOffset(4, version); }
  void add_textures(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> textures) { fbb_.AddOffset(6, textures); }
  void add_texturePngs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> texturePngs) { fbb_.AddOffset(8, texturePngs); }
  void add_nodeTree(flatbuffers::Offset<NodeTree> nodeTree) { fbb_.AddOffset(10, nodeTree); }
  void add_action(flatbuffers::Offset<NodeAction> action) { fbb_.AddOffset(12, action); }
  void add_animationList(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<AnimationInfo>>> animationList) { fbb_.AddOffset(14, animationList); }
  CSParseBinaryBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  CSParseBinaryBuilder &operator=(const CSParseBinaryBuilder &);
  flatbuffers::Offset<CSParseBinary> Finish() {
    auto o = flatbuffers::Offset<CSParseBinary>(fbb_.EndTable(start_, 6));
    return o;
  }
};

inline flatbuffers::Offset<CSParseBinary> CreateCSParseBinary(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<flatbuffers::String> version = 0,
   flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> textures = 0,
   flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> texturePngs = 0,
   flatbuffers::Offset<NodeTree> nodeTree = 0,
   flatbuffers::Offset<NodeAction> action = 0,
   flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<AnimationInfo>>> animationList = 0) {
  CSParseBinaryBuilder builder_(_fbb);
  builder_.add_animationList(animationList);
  builder_.add_action(action);
  builder_.add_nodeTree(nodeTree);
  builder_.add_texturePngs(texturePngs);
  builder_.add_textures(textures);
  builder_.add_version(version);
  return builder_.Finish();
}

struct NodeTree : private flatbuffers::Table {
  const flatbuffers::String *classname() const { return GetPointer<const flatbuffers::String *>(4); }
  const flatbuffers::Vector<flatbuffers::Offset<NodeTree>> *children() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<NodeTree>> *>(6); }
  const Options *options() const { return GetPointer<const Options *>(8); }
  const flatbuffers::String *customClassName() const { return GetPointer<const flatbuffers::String *>(10); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* classname */) &&
           verifier.Verify(classname()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* children */) &&
           verifier.Verify(children()) &&
           verifier.VerifyVectorOfTables(children()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* options */) &&
           verifier.VerifyTable(options()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* customClassName */) &&
           verifier.Verify(customClassName()) &&
           verifier.EndTable();
  }
};

struct NodeTreeBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_classname(flatbuffers::Offset<flatbuffers::String> classname) { fbb_.AddOffset(4, classname); }
  void add_children(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<NodeTree>>> children) { fbb_.AddOffset(6, children); }
  void add_options(flatbuffers::Offset<Options> options) { fbb_.AddOffset(8, options); }
  void add_customClassName(flatbuffers::Offset<flatbuffers::String> customClassName) { fbb_.AddOffset(10, customClassName); }
  NodeTreeBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  NodeTreeBuilder &operator=(const NodeTreeBuilder &);
  flatbuffers::Offset<NodeTree> Finish() {
    auto o = flatbuffers::Offset<NodeTree>(fbb_.EndTable(start_, 4));
    return o;
  }
};

inline flatbuffers::Offset<NodeTree> CreateNodeTree(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<flatbuffers::String> classname = 0,
   flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<NodeTree>>> children = 0,
   flatbuffers::Offset<Options> options = 0,
   flatbuffers::Offset<flatbuffers::String> customClassName = 0) {
  NodeTreeBuilder builder_(_fbb);
  builder_.add_customClassName(customClassName);
  builder_.add_options(options);
  builder_.add_children(children);
  builder_.add_classname(classname);
  return builder_.Finish();
}

struct Options : private flatbuffers::Table {
  const Table *data() const { return GetPointer<const Table *>(4); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* data */) &&
//           verifier.VerifyTable(data()) &&
           verifier.EndTable();
  }
};

struct OptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_data(flatbuffers::Offset<Table> data) { fbb_.AddOffset(4, data); }
  OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  OptionsBuilder &operator=(const OptionsBuilder &);
  flatbuffers::Offset<Options> Finish() {
    auto o = flatbuffers::Offset<Options>(fbb_.EndTable(start_, 1));
    return o;
  }
};

inline flatbuffers::Offset<Options> CreateOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<Table> data = 0) {
  OptionsBuilder builder_(_fbb);
  builder_.add_data(data);
  return builder_.Finish();
}

struct WidgetOptions : private flatbuffers::Table {
  const flatbuffers::String *name() const { return GetPointer<const flatbuffers::String *>(4); }
  int32_t actionTag() const { return GetField<int32_t>(6, 0); }
  const RotationSkew *rotationSkew() const { return GetStruct<const RotationSkew *>(8); }
  int32_t zOrder() const { return GetField<int32_t>(10, 0); }
  uint8_t visible() const { return GetField<uint8_t>(12, 1); }
  uint8_t alpha() const { return GetField<uint8_t>(14, 255); }
  int32_t tag() const { return GetField<int32_t>(16, 0); }
  const Position *position() const { return GetStruct<const Position *>(18); }
  const Scale *scale() const { return GetStruct<const Scale *>(20); }
  const AnchorPoint *anchorPoint() const { return GetStruct<const AnchorPoint *>(22); }
  const Color *color() const { return GetStruct<const Color *>(24); }
  const FlatSize *size() const { return GetStruct<const FlatSize *>(26); }
  uint8_t flipX() const { return GetField<uint8_t>(28, 0); }
  uint8_t flipY() const { return GetField<uint8_t>(30, 0); }
  uint8_t ignoreSize() const { return GetField<uint8_t>(32, 0); }
  uint8_t touchEnabled() const { return GetField<uint8_t>(34, 0); }
  const flatbuffers::String *frameEvent() const { return GetPointer<const flatbuffers::String *>(36); }
  const flatbuffers::String *customProperty() const { return GetPointer<const flatbuffers::String *>(38); }
  const flatbuffers::String *callBackType() const { return GetPointer<const flatbuffers::String *>(40); }
  const flatbuffers::String *callBackName() const { return GetPointer<const flatbuffers::String *>(42); }
  const LayoutComponentTable *layoutComponent() const { return GetPointer<const LayoutComponentTable *>(44); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* name */) &&
           verifier.Verify(name()) &&
           VerifyField<int32_t>(verifier, 6 /* actionTag */) &&
           VerifyField<RotationSkew>(verifier, 8 /* rotationSkew */) &&
           VerifyField<int32_t>(verifier, 10 /* zOrder */) &&
           VerifyField<uint8_t>(verifier, 12 /* visible */) &&
           VerifyField<uint8_t>(verifier, 14 /* alpha */) &&
           VerifyField<int32_t>(verifier, 16 /* tag */) &&
           VerifyField<Position>(verifier, 18 /* position */) &&
           VerifyField<Scale>(verifier, 20 /* scale */) &&
           VerifyField<AnchorPoint>(verifier, 22 /* anchorPoint */) &&
           VerifyField<Color>(verifier, 24 /* color */) &&
           VerifyField<FlatSize>(verifier, 26 /* size */) &&
           VerifyField<uint8_t>(verifier, 28 /* flipX */) &&
           VerifyField<uint8_t>(verifier, 30 /* flipY */) &&
           VerifyField<uint8_t>(verifier, 32 /* ignoreSize */) &&
           VerifyField<uint8_t>(verifier, 34 /* touchEnabled */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 36 /* frameEvent */) &&
           verifier.Verify(frameEvent()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 38 /* customProperty */) &&
           verifier.Verify(customProperty()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 40 /* callBackType */) &&
           verifier.Verify(callBackType()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 42 /* callBackName */) &&
           verifier.Verify(callBackName()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 44 /* layoutComponent */) &&
           verifier.VerifyTable(layoutComponent()) &&
           verifier.EndTable();
  }
};

struct WidgetOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_name(flatbuffers::Offset<flatbuffers::String> name) { fbb_.AddOffset(4, name); }
  void add_actionTag(int32_t actionTag) { fbb_.AddElement<int32_t>(6, actionTag, 0); }
  void add_rotationSkew(const RotationSkew *rotationSkew) { fbb_.AddStruct(8, rotationSkew); }
  void add_zOrder(int32_t zOrder) { fbb_.AddElement<int32_t>(10, zOrder, 0); }
  void add_visible(uint8_t visible) { fbb_.AddElement<uint8_t>(12, visible, 1); }
  void add_alpha(uint8_t alpha) { fbb_.AddElement<uint8_t>(14, alpha, 255); }
  void add_tag(int32_t tag) { fbb_.AddElement<int32_t>(16, tag, 0); }
  void add_position(const Position *position) { fbb_.AddStruct(18, position); }
  void add_scale(const Scale *scale) { fbb_.AddStruct(20, scale); }
  void add_anchorPoint(const AnchorPoint *anchorPoint) { fbb_.AddStruct(22, anchorPoint); }
  void add_color(const Color *color) { fbb_.AddStruct(24, color); }
  void add_size(const FlatSize *size) { fbb_.AddStruct(26, size); }
  void add_flipX(uint8_t flipX) { fbb_.AddElement<uint8_t>(28, flipX, 0); }
  void add_flipY(uint8_t flipY) { fbb_.AddElement<uint8_t>(30, flipY, 0); }
  void add_ignoreSize(uint8_t ignoreSize) { fbb_.AddElement<uint8_t>(32, ignoreSize, 0); }
  void add_touchEnabled(uint8_t touchEnabled) { fbb_.AddElement<uint8_t>(34, touchEnabled, 0); }
  void add_frameEvent(flatbuffers::Offset<flatbuffers::String> frameEvent) { fbb_.AddOffset(36, frameEvent); }
  void add_customProperty(flatbuffers::Offset<flatbuffers::String> customProperty) { fbb_.AddOffset(38, customProperty); }
  void add_callBackType(flatbuffers::Offset<flatbuffers::String> callBackType) { fbb_.AddOffset(40, callBackType); }
  void add_callBackName(flatbuffers::Offset<flatbuffers::String> callBackName) { fbb_.AddOffset(42, callBackName); }
  void add_layoutComponent(flatbuffers::Offset<LayoutComponentTable> layoutComponent) { fbb_.AddOffset(44, layoutComponent); }
  WidgetOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  WidgetOptionsBuilder &operator=(const WidgetOptionsBuilder &);
  flatbuffers::Offset<WidgetOptions> Finish() {
    auto o = flatbuffers::Offset<WidgetOptions>(fbb_.EndTable(start_, 21));
    return o;
  }
};

inline flatbuffers::Offset<WidgetOptions> CreateWidgetOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<flatbuffers::String> name = 0,
   int32_t actionTag = 0,
   const RotationSkew *rotationSkew = 0,
   int32_t zOrder = 0,
   uint8_t visible = 1,
   uint8_t alpha = 255,
   int32_t tag = 0,
   const Position *position = 0,
   const Scale *scale = 0,
   const AnchorPoint *anchorPoint = 0,
   const Color *color = 0,
   const FlatSize *size = 0,
   uint8_t flipX = 0,
   uint8_t flipY = 0,
   uint8_t ignoreSize = 0,
   uint8_t touchEnabled = 0,
   flatbuffers::Offset<flatbuffers::String> frameEvent = 0,
   flatbuffers::Offset<flatbuffers::String> customProperty = 0,
   flatbuffers::Offset<flatbuffers::String> callBackType = 0,
   flatbuffers::Offset<flatbuffers::String> callBackName = 0,
   flatbuffers::Offset<LayoutComponentTable> layoutComponent = 0) {
  WidgetOptionsBuilder builder_(_fbb);
  builder_.add_layoutComponent(layoutComponent);
  builder_.add_callBackName(callBackName);
  builder_.add_callBackType(callBackType);
  builder_.add_customProperty(customProperty);
  builder_.add_frameEvent(frameEvent);
  builder_.add_size(size);
  builder_.add_color(color);
  builder_.add_anchorPoint(anchorPoint);
  builder_.add_scale(scale);
  builder_.add_position(position);
  builder_.add_tag(tag);
  builder_.add_zOrder(zOrder);
  builder_.add_rotationSkew(rotationSkew);
  builder_.add_actionTag(actionTag);
  builder_.add_name(name);
  builder_.add_touchEnabled(touchEnabled);
  builder_.add_ignoreSize(ignoreSize);
  builder_.add_flipY(flipY);
  builder_.add_flipX(flipX);
  builder_.add_alpha(alpha);
  builder_.add_visible(visible);
  return builder_.Finish();
}

struct LayoutComponentTable : private flatbuffers::Table {
  uint8_t positionXPercentEnabled() const { return GetField<uint8_t>(4, 0); }
  uint8_t positionYPercentEnabled() const { return GetField<uint8_t>(6, 0); }
  float positionXPercent() const { return GetField<float>(8, 0); }
  float positionYPercent() const { return GetField<float>(10, 0); }
  uint8_t sizeXPercentEnable() const { return GetField<uint8_t>(12, 0); }
  uint8_t sizeYPercentEnable() const { return GetField<uint8_t>(14, 0); }
  float sizeXPercent() const { return GetField<float>(16, 0); }
  float sizeYPercent() const { return GetField<float>(18, 0); }
  uint8_t stretchHorizontalEnabled() const { return GetField<uint8_t>(20, 0); }
  uint8_t stretchVerticalEnabled() const { return GetField<uint8_t>(22, 0); }
  const flatbuffers::String *horizontalEdge() const { return GetPointer<const flatbuffers::String *>(24); }
  const flatbuffers::String *verticalEdge() const { return GetPointer<const flatbuffers::String *>(26); }
  float leftMargin() const { return GetField<float>(28, 0); }
  float rightMargin() const { return GetField<float>(30, 0); }
  float topMargin() const { return GetField<float>(32, 0); }
  float bottomMargin() const { return GetField<float>(34, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<uint8_t>(verifier, 4 /* positionXPercentEnabled */) &&
           VerifyField<uint8_t>(verifier, 6 /* positionYPercentEnabled */) &&
           VerifyField<float>(verifier, 8 /* positionXPercent */) &&
           VerifyField<float>(verifier, 10 /* positionYPercent */) &&
           VerifyField<uint8_t>(verifier, 12 /* sizeXPercentEnable */) &&
           VerifyField<uint8_t>(verifier, 14 /* sizeYPercentEnable */) &&
           VerifyField<float>(verifier, 16 /* sizeXPercent */) &&
           VerifyField<float>(verifier, 18 /* sizeYPercent */) &&
           VerifyField<uint8_t>(verifier, 20 /* stretchHorizontalEnabled */) &&
           VerifyField<uint8_t>(verifier, 22 /* stretchVerticalEnabled */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 24 /* horizontalEdge */) &&
           verifier.Verify(horizontalEdge()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 26 /* verticalEdge */) &&
           verifier.Verify(verticalEdge()) &&
           VerifyField<float>(verifier, 28 /* leftMargin */) &&
           VerifyField<float>(verifier, 30 /* rightMargin */) &&
           VerifyField<float>(verifier, 32 /* topMargin */) &&
           VerifyField<float>(verifier, 34 /* bottomMargin */) &&
           verifier.EndTable();
  }
};

struct LayoutComponentTableBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_positionXPercentEnabled(uint8_t positionXPercentEnabled) { fbb_.AddElement<uint8_t>(4, positionXPercentEnabled, 0); }
  void add_positionYPercentEnabled(uint8_t positionYPercentEnabled) { fbb_.AddElement<uint8_t>(6, positionYPercentEnabled, 0); }
  void add_positionXPercent(float positionXPercent) { fbb_.AddElement<float>(8, positionXPercent, 0); }
  void add_positionYPercent(float positionYPercent) { fbb_.AddElement<float>(10, positionYPercent, 0); }
  void add_sizeXPercentEnable(uint8_t sizeXPercentEnable) { fbb_.AddElement<uint8_t>(12, sizeXPercentEnable, 0); }
  void add_sizeYPercentEnable(uint8_t sizeYPercentEnable) { fbb_.AddElement<uint8_t>(14, sizeYPercentEnable, 0); }
  void add_sizeXPercent(float sizeXPercent) { fbb_.AddElement<float>(16, sizeXPercent, 0); }
  void add_sizeYPercent(float sizeYPercent) { fbb_.AddElement<float>(18, sizeYPercent, 0); }
  void add_stretchHorizontalEnabled(uint8_t stretchHorizontalEnabled) { fbb_.AddElement<uint8_t>(20, stretchHorizontalEnabled, 0); }
  void add_stretchVerticalEnabled(uint8_t stretchVerticalEnabled) { fbb_.AddElement<uint8_t>(22, stretchVerticalEnabled, 0); }
  void add_horizontalEdge(flatbuffers::Offset<flatbuffers::String> horizontalEdge) { fbb_.AddOffset(24, horizontalEdge); }
  void add_verticalEdge(flatbuffers::Offset<flatbuffers::String> verticalEdge) { fbb_.AddOffset(26, verticalEdge); }
  void add_leftMargin(float leftMargin) { fbb_.AddElement<float>(28, leftMargin, 0); }
  void add_rightMargin(float rightMargin) { fbb_.AddElement<float>(30, rightMargin, 0); }
  void add_topMargin(float topMargin) { fbb_.AddElement<float>(32, topMargin, 0); }
  void add_bottomMargin(float bottomMargin) { fbb_.AddElement<float>(34, bottomMargin, 0); }
  LayoutComponentTableBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  LayoutComponentTableBuilder &operator=(const LayoutComponentTableBuilder &);
  flatbuffers::Offset<LayoutComponentTable> Finish() {
    auto o = flatbuffers::Offset<LayoutComponentTable>(fbb_.EndTable(start_, 16));
    return o;
  }
};

inline flatbuffers::Offset<LayoutComponentTable> CreateLayoutComponentTable(flatbuffers::FlatBufferBuilder &_fbb,
   uint8_t positionXPercentEnabled = 0,
   uint8_t positionYPercentEnabled = 0,
   float positionXPercent = 0,
   float positionYPercent = 0,
   uint8_t sizeXPercentEnable = 0,
   uint8_t sizeYPercentEnable = 0,
   float sizeXPercent = 0,
   float sizeYPercent = 0,
   uint8_t stretchHorizontalEnabled = 0,
   uint8_t stretchVerticalEnabled = 0,
   flatbuffers::Offset<flatbuffers::String> horizontalEdge = 0,
   flatbuffers::Offset<flatbuffers::String> verticalEdge = 0,
   float leftMargin = 0,
   float rightMargin = 0,
   float topMargin = 0,
   float bottomMargin = 0) {
  LayoutComponentTableBuilder builder_(_fbb);
  builder_.add_bottomMargin(bottomMargin);
  builder_.add_topMargin(topMargin);
  builder_.add_rightMargin(rightMargin);
  builder_.add_leftMargin(leftMargin);
  builder_.add_verticalEdge(verticalEdge);
  builder_.add_horizontalEdge(horizontalEdge);
  builder_.add_sizeYPercent(sizeYPercent);
  builder_.add_sizeXPercent(sizeXPercent);
  builder_.add_positionYPercent(positionYPercent);
  builder_.add_positionXPercent(positionXPercent);
  builder_.add_stretchVerticalEnabled(stretchVerticalEnabled);
  builder_.add_stretchHorizontalEnabled(stretchHorizontalEnabled);
  builder_.add_sizeYPercentEnable(sizeYPercentEnable);
  builder_.add_sizeXPercentEnable(sizeXPercentEnable);
  builder_.add_positionYPercentEnabled(positionYPercentEnabled);
  builder_.add_positionXPercentEnabled(positionXPercentEnabled);
  return builder_.Finish();
}

struct SingleNodeOptions : private flatbuffers::Table {
  const WidgetOptions *nodeOptions() const { return GetPointer<const WidgetOptions *>(4); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* nodeOptions */) &&
           verifier.VerifyTable(nodeOptions()) &&
           verifier.EndTable();
  }
};

struct SingleNodeOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_nodeOptions(flatbuffers::Offset<WidgetOptions> nodeOptions) { fbb_.AddOffset(4, nodeOptions); }
  SingleNodeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  SingleNodeOptionsBuilder &operator=(const SingleNodeOptionsBuilder &);
  flatbuffers::Offset<SingleNodeOptions> Finish() {
    auto o = flatbuffers::Offset<SingleNodeOptions>(fbb_.EndTable(start_, 1));
    return o;
  }
};

inline flatbuffers::Offset<SingleNodeOptions> CreateSingleNodeOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> nodeOptions = 0) {
  SingleNodeOptionsBuilder builder_(_fbb);
  builder_.add_nodeOptions(nodeOptions);
  return builder_.Finish();
}

struct SpriteOptions : private flatbuffers::Table {
  const WidgetOptions *nodeOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *fileNameData() const { return GetPointer<const ResourceData *>(6); }
  const BlendFunc *blendFunc() const { return GetStruct<const BlendFunc *>(8); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* nodeOptions */) &&
           verifier.VerifyTable(nodeOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* fileNameData */) &&
           verifier.VerifyTable(fileNameData()) &&
           VerifyField<BlendFunc>(verifier, 8 /* blendFunc */) &&
           verifier.EndTable();
  }
};

struct SpriteOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_nodeOptions(flatbuffers::Offset<WidgetOptions> nodeOptions) { fbb_.AddOffset(4, nodeOptions); }
  void add_fileNameData(flatbuffers::Offset<ResourceData> fileNameData) { fbb_.AddOffset(6, fileNameData); }
  void add_blendFunc(const BlendFunc *blendFunc) { fbb_.AddStruct(8, blendFunc); }
  SpriteOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  SpriteOptionsBuilder &operator=(const SpriteOptionsBuilder &);
  flatbuffers::Offset<SpriteOptions> Finish() {
    auto o = flatbuffers::Offset<SpriteOptions>(fbb_.EndTable(start_, 3));
    return o;
  }
};

inline flatbuffers::Offset<SpriteOptions> CreateSpriteOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> nodeOptions = 0,
   flatbuffers::Offset<ResourceData> fileNameData = 0,
   const BlendFunc *blendFunc = 0) {
  SpriteOptionsBuilder builder_(_fbb);
  builder_.add_blendFunc(blendFunc);
  builder_.add_fileNameData(fileNameData);
  builder_.add_nodeOptions(nodeOptions);
  return builder_.Finish();
}

struct ParticleSystemOptions : private flatbuffers::Table {
  const WidgetOptions *nodeOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *fileNameData() const { return GetPointer<const ResourceData *>(6); }
  const BlendFunc *blendFunc() const { return GetStruct<const BlendFunc *>(8); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* nodeOptions */) &&
           verifier.VerifyTable(nodeOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* fileNameData */) &&
           verifier.VerifyTable(fileNameData()) &&
           VerifyField<BlendFunc>(verifier, 8 /* blendFunc */) &&
           verifier.EndTable();
  }
};

struct ParticleSystemOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_nodeOptions(flatbuffers::Offset<WidgetOptions> nodeOptions) { fbb_.AddOffset(4, nodeOptions); }
  void add_fileNameData(flatbuffers::Offset<ResourceData> fileNameData) { fbb_.AddOffset(6, fileNameData); }
  void add_blendFunc(const BlendFunc *blendFunc) { fbb_.AddStruct(8, blendFunc); }
  ParticleSystemOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ParticleSystemOptionsBuilder &operator=(const ParticleSystemOptionsBuilder &);
  flatbuffers::Offset<ParticleSystemOptions> Finish() {
    auto o = flatbuffers::Offset<ParticleSystemOptions>(fbb_.EndTable(start_, 3));
    return o;
  }
};

inline flatbuffers::Offset<ParticleSystemOptions> CreateParticleSystemOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> nodeOptions = 0,
   flatbuffers::Offset<ResourceData> fileNameData = 0,
   const BlendFunc *blendFunc = 0) {
  ParticleSystemOptionsBuilder builder_(_fbb);
  builder_.add_blendFunc(blendFunc);
  builder_.add_fileNameData(fileNameData);
  builder_.add_nodeOptions(nodeOptions);
  return builder_.Finish();
}

struct GameMapOptions : private flatbuffers::Table {
  const WidgetOptions *nodeOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *fileNameData() const { return GetPointer<const ResourceData *>(6); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* nodeOptions */) &&
           verifier.VerifyTable(nodeOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* fileNameData */) &&
           verifier.VerifyTable(fileNameData()) &&
           verifier.EndTable();
  }
};

struct GameMapOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_nodeOptions(flatbuffers::Offset<WidgetOptions> nodeOptions) { fbb_.AddOffset(4, nodeOptions); }
  void add_fileNameData(flatbuffers::Offset<ResourceData> fileNameData) { fbb_.AddOffset(6, fileNameData); }
  GameMapOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  GameMapOptionsBuilder &operator=(const GameMapOptionsBuilder &);
  flatbuffers::Offset<GameMapOptions> Finish() {
    auto o = flatbuffers::Offset<GameMapOptions>(fbb_.EndTable(start_, 2));
    return o;
  }
};

inline flatbuffers::Offset<GameMapOptions> CreateGameMapOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> nodeOptions = 0,
   flatbuffers::Offset<ResourceData> fileNameData = 0) {
  GameMapOptionsBuilder builder_(_fbb);
  builder_.add_fileNameData(fileNameData);
  builder_.add_nodeOptions(nodeOptions);
  return builder_.Finish();
}

struct ButtonOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *normalData() const { return GetPointer<const ResourceData *>(6); }
  const ResourceData *pressedData() const { return GetPointer<const ResourceData *>(8); }
  const ResourceData *disabledData() const { return GetPointer<const ResourceData *>(10); }
  const ResourceData *fontResource() const { return GetPointer<const ResourceData *>(12); }
  const flatbuffers::String *text() const { return GetPointer<const flatbuffers::String *>(14); }
  const flatbuffers::String *fontName() const { return GetPointer<const flatbuffers::String *>(16); }
  int32_t fontSize() const { return GetField<int32_t>(18, 0); }
  const Color *textColor() const { return GetStruct<const Color *>(20); }
  const CapInsets *capInsets() const { return GetStruct<const CapInsets *>(22); }
  const FlatSize *scale9Size() const { return GetStruct<const FlatSize *>(24); }
  uint8_t scale9Enabled() const { return GetField<uint8_t>(26, 0); }
  uint8_t displaystate() const { return GetField<uint8_t>(28, 1); }
  uint8_t outlineEnabled() const { return GetField<uint8_t>(30, 0); }
  const Color *outlineColor() const { return GetStruct<const Color *>(32); }
  int32_t outlineSize() const { return GetField<int32_t>(34, 1); }
  uint8_t shadowEnabled() const { return GetField<uint8_t>(36, 0); }
  const Color *shadowColor() const { return GetStruct<const Color *>(38); }
  float shadowOffsetX() const { return GetField<float>(40, 2); }
  float shadowOffsetY() const { return GetField<float>(42, -2); }
  int32_t shadowBlurRadius() const { return GetField<int32_t>(44, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* normalData */) &&
           verifier.VerifyTable(normalData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* pressedData */) &&
           verifier.VerifyTable(pressedData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* disabledData */) &&
           verifier.VerifyTable(disabledData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 12 /* fontResource */) &&
           verifier.VerifyTable(fontResource()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 14 /* text */) &&
           verifier.Verify(text()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 16 /* fontName */) &&
           verifier.Verify(fontName()) &&
           VerifyField<int32_t>(verifier, 18 /* fontSize */) &&
           VerifyField<Color>(verifier, 20 /* textColor */) &&
           VerifyField<CapInsets>(verifier, 22 /* capInsets */) &&
           VerifyField<FlatSize>(verifier, 24 /* scale9Size */) &&
           VerifyField<uint8_t>(verifier, 26 /* scale9Enabled */) &&
           VerifyField<uint8_t>(verifier, 28 /* displaystate */) &&
           VerifyField<uint8_t>(verifier, 30 /* outlineEnabled */) &&
           VerifyField<Color>(verifier, 32 /* outlineColor */) &&
           VerifyField<int32_t>(verifier, 34 /* outlineSize */) &&
           VerifyField<uint8_t>(verifier, 36 /* shadowEnabled */) &&
           VerifyField<Color>(verifier, 38 /* shadowColor */) &&
           VerifyField<float>(verifier, 40 /* shadowOffsetX */) &&
           VerifyField<float>(verifier, 42 /* shadowOffsetY */) &&
           VerifyField<int32_t>(verifier, 44 /* shadowBlurRadius */) &&
           verifier.EndTable();
  }
};

struct ButtonOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_normalData(flatbuffers::Offset<ResourceData> normalData) { fbb_.AddOffset(6, normalData); }
  void add_pressedData(flatbuffers::Offset<ResourceData> pressedData) { fbb_.AddOffset(8, pressedData); }
  void add_disabledData(flatbuffers::Offset<ResourceData> disabledData) { fbb_.AddOffset(10, disabledData); }
  void add_fontResource(flatbuffers::Offset<ResourceData> fontResource) { fbb_.AddOffset(12, fontResource); }
  void add_text(flatbuffers::Offset<flatbuffers::String> text) { fbb_.AddOffset(14, text); }
  void add_fontName(flatbuffers::Offset<flatbuffers::String> fontName) { fbb_.AddOffset(16, fontName); }
  void add_fontSize(int32_t fontSize) { fbb_.AddElement<int32_t>(18, fontSize, 0); }
  void add_textColor(const Color *textColor) { fbb_.AddStruct(20, textColor); }
  void add_capInsets(const CapInsets *capInsets) { fbb_.AddStruct(22, capInsets); }
  void add_scale9Size(const FlatSize *scale9Size) { fbb_.AddStruct(24, scale9Size); }
  void add_scale9Enabled(uint8_t scale9Enabled) { fbb_.AddElement<uint8_t>(26, scale9Enabled, 0); }
  void add_displaystate(uint8_t displaystate) { fbb_.AddElement<uint8_t>(28, displaystate, 1); }
  void add_outlineEnabled(uint8_t outlineEnabled) { fbb_.AddElement<uint8_t>(30, outlineEnabled, 0); }
  void add_outlineColor(const Color *outlineColor) { fbb_.AddStruct(32, outlineColor); }
  void add_outlineSize(int32_t outlineSize) { fbb_.AddElement<int32_t>(34, outlineSize, 1); }
  void add_shadowEnabled(uint8_t shadowEnabled) { fbb_.AddElement<uint8_t>(36, shadowEnabled, 0); }
  void add_shadowColor(const Color *shadowColor) { fbb_.AddStruct(38, shadowColor); }
  void add_shadowOffsetX(float shadowOffsetX) { fbb_.AddElement<float>(40, shadowOffsetX, 2); }
  void add_shadowOffsetY(float shadowOffsetY) { fbb_.AddElement<float>(42, shadowOffsetY, -2); }
  void add_shadowBlurRadius(int32_t shadowBlurRadius) { fbb_.AddElement<int32_t>(44, shadowBlurRadius, 0); }
  ButtonOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ButtonOptionsBuilder &operator=(const ButtonOptionsBuilder &);
  flatbuffers::Offset<ButtonOptions> Finish() {
    auto o = flatbuffers::Offset<ButtonOptions>(fbb_.EndTable(start_, 21));
    return o;
  }
};

inline flatbuffers::Offset<ButtonOptions> CreateButtonOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> normalData = 0,
   flatbuffers::Offset<ResourceData> pressedData = 0,
   flatbuffers::Offset<ResourceData> disabledData = 0,
   flatbuffers::Offset<ResourceData> fontResource = 0,
   flatbuffers::Offset<flatbuffers::String> text = 0,
   flatbuffers::Offset<flatbuffers::String> fontName = 0,
   int32_t fontSize = 0,
   const Color *textColor = 0,
   const CapInsets *capInsets = 0,
   const FlatSize *scale9Size = 0,
   uint8_t scale9Enabled = 0,
   uint8_t displaystate = 1,
   uint8_t outlineEnabled = 0,
   const Color *outlineColor = 0,
   int32_t outlineSize = 1,
   uint8_t shadowEnabled = 0,
   const Color *shadowColor = 0,
   float shadowOffsetX = 2,
   float shadowOffsetY = -2,
   int32_t shadowBlurRadius = 0) {
  ButtonOptionsBuilder builder_(_fbb);
  builder_.add_shadowBlurRadius(shadowBlurRadius);
  builder_.add_shadowOffsetY(shadowOffsetY);
  builder_.add_shadowOffsetX(shadowOffsetX);
  builder_.add_shadowColor(shadowColor);
  builder_.add_outlineSize(outlineSize);
  builder_.add_outlineColor(outlineColor);
  builder_.add_scale9Size(scale9Size);
  builder_.add_capInsets(capInsets);
  builder_.add_textColor(textColor);
  builder_.add_fontSize(fontSize);
  builder_.add_fontName(fontName);
  builder_.add_text(text);
  builder_.add_fontResource(fontResource);
  builder_.add_disabledData(disabledData);
  builder_.add_pressedData(pressedData);
  builder_.add_normalData(normalData);
  builder_.add_widgetOptions(widgetOptions);
  builder_.add_shadowEnabled(shadowEnabled);
  builder_.add_outlineEnabled(outlineEnabled);
  builder_.add_displaystate(displaystate);
  builder_.add_scale9Enabled(scale9Enabled);
  return builder_.Finish();
}

struct CheckBoxOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *backGroundBoxData() const { return GetPointer<const ResourceData *>(6); }
  const ResourceData *backGroundBoxSelectedData() const { return GetPointer<const ResourceData *>(8); }
  const ResourceData *frontCrossData() const { return GetPointer<const ResourceData *>(10); }
  const ResourceData *backGroundBoxDisabledData() const { return GetPointer<const ResourceData *>(12); }
  const ResourceData *frontCrossDisabledData() const { return GetPointer<const ResourceData *>(14); }
  uint8_t selectedState() const { return GetField<uint8_t>(16, 1); }
  uint8_t displaystate() const { return GetField<uint8_t>(18, 1); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* backGroundBoxData */) &&
           verifier.VerifyTable(backGroundBoxData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* backGroundBoxSelectedData */) &&
           verifier.VerifyTable(backGroundBoxSelectedData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* frontCrossData */) &&
           verifier.VerifyTable(frontCrossData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 12 /* backGroundBoxDisabledData */) &&
           verifier.VerifyTable(backGroundBoxDisabledData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 14 /* frontCrossDisabledData */) &&
           verifier.VerifyTable(frontCrossDisabledData()) &&
           VerifyField<uint8_t>(verifier, 16 /* selectedState */) &&
           VerifyField<uint8_t>(verifier, 18 /* displaystate */) &&
           verifier.EndTable();
  }
};

struct CheckBoxOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_backGroundBoxData(flatbuffers::Offset<ResourceData> backGroundBoxData) { fbb_.AddOffset(6, backGroundBoxData); }
  void add_backGroundBoxSelectedData(flatbuffers::Offset<ResourceData> backGroundBoxSelectedData) { fbb_.AddOffset(8, backGroundBoxSelectedData); }
  void add_frontCrossData(flatbuffers::Offset<ResourceData> frontCrossData) { fbb_.AddOffset(10, frontCrossData); }
  void add_backGroundBoxDisabledData(flatbuffers::Offset<ResourceData> backGroundBoxDisabledData) { fbb_.AddOffset(12, backGroundBoxDisabledData); }
  void add_frontCrossDisabledData(flatbuffers::Offset<ResourceData> frontCrossDisabledData) { fbb_.AddOffset(14, frontCrossDisabledData); }
  void add_selectedState(uint8_t selectedState) { fbb_.AddElement<uint8_t>(16, selectedState, 1); }
  void add_displaystate(uint8_t displaystate) { fbb_.AddElement<uint8_t>(18, displaystate, 1); }
  CheckBoxOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  CheckBoxOptionsBuilder &operator=(const CheckBoxOptionsBuilder &);
  flatbuffers::Offset<CheckBoxOptions> Finish() {
    auto o = flatbuffers::Offset<CheckBoxOptions>(fbb_.EndTable(start_, 8));
    return o;
  }
};

inline flatbuffers::Offset<CheckBoxOptions> CreateCheckBoxOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> backGroundBoxData = 0,
   flatbuffers::Offset<ResourceData> backGroundBoxSelectedData = 0,
   flatbuffers::Offset<ResourceData> frontCrossData = 0,
   flatbuffers::Offset<ResourceData> backGroundBoxDisabledData = 0,
   flatbuffers::Offset<ResourceData> frontCrossDisabledData = 0,
   uint8_t selectedState = 1,
   uint8_t displaystate = 1) {
  CheckBoxOptionsBuilder builder_(_fbb);
  builder_.add_frontCrossDisabledData(frontCrossDisabledData);
  builder_.add_backGroundBoxDisabledData(backGroundBoxDisabledData);
  builder_.add_frontCrossData(frontCrossData);
  builder_.add_backGroundBoxSelectedData(backGroundBoxSelectedData);
  builder_.add_backGroundBoxData(backGroundBoxData);
  builder_.add_widgetOptions(widgetOptions);
  builder_.add_displaystate(displaystate);
  builder_.add_selectedState(selectedState);
  return builder_.Finish();
}

struct ImageViewOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *fileNameData() const { return GetPointer<const ResourceData *>(6); }
  const CapInsets *capInsets() const { return GetStruct<const CapInsets *>(8); }
  const FlatSize *scale9Size() const { return GetStruct<const FlatSize *>(10); }
  uint8_t scale9Enabled() const { return GetField<uint8_t>(12, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* fileNameData */) &&
           verifier.VerifyTable(fileNameData()) &&
           VerifyField<CapInsets>(verifier, 8 /* capInsets */) &&
           VerifyField<FlatSize>(verifier, 10 /* scale9Size */) &&
           VerifyField<uint8_t>(verifier, 12 /* scale9Enabled */) &&
           verifier.EndTable();
  }
};

struct ImageViewOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_fileNameData(flatbuffers::Offset<ResourceData> fileNameData) { fbb_.AddOffset(6, fileNameData); }
  void add_capInsets(const CapInsets *capInsets) { fbb_.AddStruct(8, capInsets); }
  void add_scale9Size(const FlatSize *scale9Size) { fbb_.AddStruct(10, scale9Size); }
  void add_scale9Enabled(uint8_t scale9Enabled) { fbb_.AddElement<uint8_t>(12, scale9Enabled, 0); }
  ImageViewOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ImageViewOptionsBuilder &operator=(const ImageViewOptionsBuilder &);
  flatbuffers::Offset<ImageViewOptions> Finish() {
    auto o = flatbuffers::Offset<ImageViewOptions>(fbb_.EndTable(start_, 5));
    return o;
  }
};

inline flatbuffers::Offset<ImageViewOptions> CreateImageViewOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> fileNameData = 0,
   const CapInsets *capInsets = 0,
   const FlatSize *scale9Size = 0,
   uint8_t scale9Enabled = 0) {
  ImageViewOptionsBuilder builder_(_fbb);
  builder_.add_scale9Size(scale9Size);
  builder_.add_capInsets(capInsets);
  builder_.add_fileNameData(fileNameData);
  builder_.add_widgetOptions(widgetOptions);
  builder_.add_scale9Enabled(scale9Enabled);
  return builder_.Finish();
}

struct TextAtlasOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *charMapFileData() const { return GetPointer<const ResourceData *>(6); }
  const flatbuffers::String *stringValue() const { return GetPointer<const flatbuffers::String *>(8); }
  const flatbuffers::String *startCharMap() const { return GetPointer<const flatbuffers::String *>(10); }
  int32_t itemWidth() const { return GetField<int32_t>(12, 0); }
  int32_t itemHeight() const { return GetField<int32_t>(14, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* charMapFileData */) &&
           verifier.VerifyTable(charMapFileData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* stringValue */) &&
           verifier.Verify(stringValue()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* startCharMap */) &&
           verifier.Verify(startCharMap()) &&
           VerifyField<int32_t>(verifier, 12 /* itemWidth */) &&
           VerifyField<int32_t>(verifier, 14 /* itemHeight */) &&
           verifier.EndTable();
  }
};

struct TextAtlasOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_charMapFileData(flatbuffers::Offset<ResourceData> charMapFileData) { fbb_.AddOffset(6, charMapFileData); }
  void add_stringValue(flatbuffers::Offset<flatbuffers::String> stringValue) { fbb_.AddOffset(8, stringValue); }
  void add_startCharMap(flatbuffers::Offset<flatbuffers::String> startCharMap) { fbb_.AddOffset(10, startCharMap); }
  void add_itemWidth(int32_t itemWidth) { fbb_.AddElement<int32_t>(12, itemWidth, 0); }
  void add_itemHeight(int32_t itemHeight) { fbb_.AddElement<int32_t>(14, itemHeight, 0); }
  TextAtlasOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  TextAtlasOptionsBuilder &operator=(const TextAtlasOptionsBuilder &);
  flatbuffers::Offset<TextAtlasOptions> Finish() {
    auto o = flatbuffers::Offset<TextAtlasOptions>(fbb_.EndTable(start_, 6));
    return o;
  }
};

inline flatbuffers::Offset<TextAtlasOptions> CreateTextAtlasOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> charMapFileData = 0,
   flatbuffers::Offset<flatbuffers::String> stringValue = 0,
   flatbuffers::Offset<flatbuffers::String> startCharMap = 0,
   int32_t itemWidth = 0,
   int32_t itemHeight = 0) {
  TextAtlasOptionsBuilder builder_(_fbb);
  builder_.add_itemHeight(itemHeight);
  builder_.add_itemWidth(itemWidth);
  builder_.add_startCharMap(startCharMap);
  builder_.add_stringValue(stringValue);
  builder_.add_charMapFileData(charMapFileData);
  builder_.add_widgetOptions(widgetOptions);
  return builder_.Finish();
}

struct TextBMFontOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *fileNameData() const { return GetPointer<const ResourceData *>(6); }
  const flatbuffers::String *text() const { return GetPointer<const flatbuffers::String *>(8); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* fileNameData */) &&
           verifier.VerifyTable(fileNameData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* text */) &&
           verifier.Verify(text()) &&
           verifier.EndTable();
  }
};

struct TextBMFontOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_fileNameData(flatbuffers::Offset<ResourceData> fileNameData) { fbb_.AddOffset(6, fileNameData); }
  void add_text(flatbuffers::Offset<flatbuffers::String> text) { fbb_.AddOffset(8, text); }
  TextBMFontOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  TextBMFontOptionsBuilder &operator=(const TextBMFontOptionsBuilder &);
  flatbuffers::Offset<TextBMFontOptions> Finish() {
    auto o = flatbuffers::Offset<TextBMFontOptions>(fbb_.EndTable(start_, 3));
    return o;
  }
};

inline flatbuffers::Offset<TextBMFontOptions> CreateTextBMFontOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> fileNameData = 0,
   flatbuffers::Offset<flatbuffers::String> text = 0) {
  TextBMFontOptionsBuilder builder_(_fbb);
  builder_.add_text(text);
  builder_.add_fileNameData(fileNameData);
  builder_.add_widgetOptions(widgetOptions);
  return builder_.Finish();
}

struct TextOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *fontResource() const { return GetPointer<const ResourceData *>(6); }
  const flatbuffers::String *fontName() const { return GetPointer<const flatbuffers::String *>(8); }
  int32_t fontSize() const { return GetField<int32_t>(10, 0); }
  const flatbuffers::String *text() const { return GetPointer<const flatbuffers::String *>(12); }
  int32_t areaWidth() const { return GetField<int32_t>(14, 0); }
  int32_t areaHeight() const { return GetField<int32_t>(16, 0); }
  int32_t hAlignment() const { return GetField<int32_t>(18, 0); }
  int32_t vAlignment() const { return GetField<int32_t>(20, 0); }
  uint8_t touchScaleEnable() const { return GetField<uint8_t>(22, 0); }
  uint8_t isCustomSize() const { return GetField<uint8_t>(24, 0); }
  uint8_t outlineEnabled() const { return GetField<uint8_t>(26, 0); }
  const Color *outlineColor() const { return GetStruct<const Color *>(28); }
  int32_t outlineSize() const { return GetField<int32_t>(30, 1); }
  uint8_t shadowEnabled() const { return GetField<uint8_t>(32, 0); }
  const Color *shadowColor() const { return GetStruct<const Color *>(34); }
  float shadowOffsetX() const { return GetField<float>(36, 2); }
  float shadowOffsetY() const { return GetField<float>(38, -2); }
  int32_t shadowBlurRadius() const { return GetField<int32_t>(40, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* fontResource */) &&
           verifier.VerifyTable(fontResource()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* fontName */) &&
           verifier.Verify(fontName()) &&
           VerifyField<int32_t>(verifier, 10 /* fontSize */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 12 /* text */) &&
           verifier.Verify(text()) &&
           VerifyField<int32_t>(verifier, 14 /* areaWidth */) &&
           VerifyField<int32_t>(verifier, 16 /* areaHeight */) &&
           VerifyField<int32_t>(verifier, 18 /* hAlignment */) &&
           VerifyField<int32_t>(verifier, 20 /* vAlignment */) &&
           VerifyField<uint8_t>(verifier, 22 /* touchScaleEnable */) &&
           VerifyField<uint8_t>(verifier, 24 /* isCustomSize */) &&
           VerifyField<uint8_t>(verifier, 26 /* outlineEnabled */) &&
           VerifyField<Color>(verifier, 28 /* outlineColor */) &&
           VerifyField<int32_t>(verifier, 30 /* outlineSize */) &&
           VerifyField<uint8_t>(verifier, 32 /* shadowEnabled */) &&
           VerifyField<Color>(verifier, 34 /* shadowColor */) &&
           VerifyField<float>(verifier, 36 /* shadowOffsetX */) &&
           VerifyField<float>(verifier, 38 /* shadowOffsetY */) &&
           VerifyField<int32_t>(verifier, 40 /* shadowBlurRadius */) &&
           verifier.EndTable();
  }
};

struct TextOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_fontResource(flatbuffers::Offset<ResourceData> fontResource) { fbb_.AddOffset(6, fontResource); }
  void add_fontName(flatbuffers::Offset<flatbuffers::String> fontName) { fbb_.AddOffset(8, fontName); }
  void add_fontSize(int32_t fontSize) { fbb_.AddElement<int32_t>(10, fontSize, 0); }
  void add_text(flatbuffers::Offset<flatbuffers::String> text) { fbb_.AddOffset(12, text); }
  void add_areaWidth(int32_t areaWidth) { fbb_.AddElement<int32_t>(14, areaWidth, 0); }
  void add_areaHeight(int32_t areaHeight) { fbb_.AddElement<int32_t>(16, areaHeight, 0); }
  void add_hAlignment(int32_t hAlignment) { fbb_.AddElement<int32_t>(18, hAlignment, 0); }
  void add_vAlignment(int32_t vAlignment) { fbb_.AddElement<int32_t>(20, vAlignment, 0); }
  void add_touchScaleEnable(uint8_t touchScaleEnable) { fbb_.AddElement<uint8_t>(22, touchScaleEnable, 0); }
  void add_isCustomSize(uint8_t isCustomSize) { fbb_.AddElement<uint8_t>(24, isCustomSize, 0); }
  void add_outlineEnabled(uint8_t outlineEnabled) { fbb_.AddElement<uint8_t>(26, outlineEnabled, 0); }
  void add_outlineColor(const Color *outlineColor) { fbb_.AddStruct(28, outlineColor); }
  void add_outlineSize(int32_t outlineSize) { fbb_.AddElement<int32_t>(30, outlineSize, 1); }
  void add_shadowEnabled(uint8_t shadowEnabled) { fbb_.AddElement<uint8_t>(32, shadowEnabled, 0); }
  void add_shadowColor(const Color *shadowColor) { fbb_.AddStruct(34, shadowColor); }
  void add_shadowOffsetX(float shadowOffsetX) { fbb_.AddElement<float>(36, shadowOffsetX, 2); }
  void add_shadowOffsetY(float shadowOffsetY) { fbb_.AddElement<float>(38, shadowOffsetY, -2); }
  void add_shadowBlurRadius(int32_t shadowBlurRadius) { fbb_.AddElement<int32_t>(40, shadowBlurRadius, 0); }
  TextOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  TextOptionsBuilder &operator=(const TextOptionsBuilder &);
  flatbuffers::Offset<TextOptions> Finish() {
    auto o = flatbuffers::Offset<TextOptions>(fbb_.EndTable(start_, 19));
    return o;
  }
};

inline flatbuffers::Offset<TextOptions> CreateTextOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> fontResource = 0,
   flatbuffers::Offset<flatbuffers::String> fontName = 0,
   int32_t fontSize = 0,
   flatbuffers::Offset<flatbuffers::String> text = 0,
   int32_t areaWidth = 0,
   int32_t areaHeight = 0,
   int32_t hAlignment = 0,
   int32_t vAlignment = 0,
   uint8_t touchScaleEnable = 0,
   uint8_t isCustomSize = 0,
   uint8_t outlineEnabled = 0,
   const Color *outlineColor = 0,
   int32_t outlineSize = 1,
   uint8_t shadowEnabled = 0,
   const Color *shadowColor = 0,
   float shadowOffsetX = 2,
   float shadowOffsetY = -2,
   int32_t shadowBlurRadius = 0) {
  TextOptionsBuilder builder_(_fbb);
  builder_.add_shadowBlurRadius(shadowBlurRadius);
  builder_.add_shadowOffsetY(shadowOffsetY);
  builder_.add_shadowOffsetX(shadowOffsetX);
  builder_.add_shadowColor(shadowColor);
  builder_.add_outlineSize(outlineSize);
  builder_.add_outlineColor(outlineColor);
  builder_.add_vAlignment(vAlignment);
  builder_.add_hAlignment(hAlignment);
  builder_.add_areaHeight(areaHeight);
  builder_.add_areaWidth(areaWidth);
  builder_.add_text(text);
  builder_.add_fontSize(fontSize);
  builder_.add_fontName(fontName);
  builder_.add_fontResource(fontResource);
  builder_.add_widgetOptions(widgetOptions);
  builder_.add_shadowEnabled(shadowEnabled);
  builder_.add_outlineEnabled(outlineEnabled);
  builder_.add_isCustomSize(isCustomSize);
  builder_.add_touchScaleEnable(touchScaleEnable);
  return builder_.Finish();
}

struct TextFieldOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *fontResource() const { return GetPointer<const ResourceData *>(6); }
  const flatbuffers::String *fontName() const { return GetPointer<const flatbuffers::String *>(8); }
  int32_t fontSize() const { return GetField<int32_t>(10, 0); }
  const flatbuffers::String *text() const { return GetPointer<const flatbuffers::String *>(12); }
  const flatbuffers::String *placeHolder() const { return GetPointer<const flatbuffers::String *>(14); }
  uint8_t passwordEnabled() const { return GetField<uint8_t>(16, 0); }
  const flatbuffers::String *passwordStyleText() const { return GetPointer<const flatbuffers::String *>(18); }
  uint8_t maxLengthEnabled() const { return GetField<uint8_t>(20, 0); }
  int32_t maxLength() const { return GetField<int32_t>(22, 0); }
  int32_t areaWidth() const { return GetField<int32_t>(24, 0); }
  int32_t areaHeight() const { return GetField<int32_t>(26, 0); }
  uint8_t isCustomSize() const { return GetField<uint8_t>(28, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* fontResource */) &&
           verifier.VerifyTable(fontResource()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* fontName */) &&
           verifier.Verify(fontName()) &&
           VerifyField<int32_t>(verifier, 10 /* fontSize */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 12 /* text */) &&
           verifier.Verify(text()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 14 /* placeHolder */) &&
           verifier.Verify(placeHolder()) &&
           VerifyField<uint8_t>(verifier, 16 /* passwordEnabled */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 18 /* passwordStyleText */) &&
           verifier.Verify(passwordStyleText()) &&
           VerifyField<uint8_t>(verifier, 20 /* maxLengthEnabled */) &&
           VerifyField<int32_t>(verifier, 22 /* maxLength */) &&
           VerifyField<int32_t>(verifier, 24 /* areaWidth */) &&
           VerifyField<int32_t>(verifier, 26 /* areaHeight */) &&
           VerifyField<uint8_t>(verifier, 28 /* isCustomSize */) &&
           verifier.EndTable();
  }
};

struct TextFieldOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_fontResource(flatbuffers::Offset<ResourceData> fontResource) { fbb_.AddOffset(6, fontResource); }
  void add_fontName(flatbuffers::Offset<flatbuffers::String> fontName) { fbb_.AddOffset(8, fontName); }
  void add_fontSize(int32_t fontSize) { fbb_.AddElement<int32_t>(10, fontSize, 0); }
  void add_text(flatbuffers::Offset<flatbuffers::String> text) { fbb_.AddOffset(12, text); }
  void add_placeHolder(flatbuffers::Offset<flatbuffers::String> placeHolder) { fbb_.AddOffset(14, placeHolder); }
  void add_passwordEnabled(uint8_t passwordEnabled) { fbb_.AddElement<uint8_t>(16, passwordEnabled, 0); }
  void add_passwordStyleText(flatbuffers::Offset<flatbuffers::String> passwordStyleText) { fbb_.AddOffset(18, passwordStyleText); }
  void add_maxLengthEnabled(uint8_t maxLengthEnabled) { fbb_.AddElement<uint8_t>(20, maxLengthEnabled, 0); }
  void add_maxLength(int32_t maxLength) { fbb_.AddElement<int32_t>(22, maxLength, 0); }
  void add_areaWidth(int32_t areaWidth) { fbb_.AddElement<int32_t>(24, areaWidth, 0); }
  void add_areaHeight(int32_t areaHeight) { fbb_.AddElement<int32_t>(26, areaHeight, 0); }
  void add_isCustomSize(uint8_t isCustomSize) { fbb_.AddElement<uint8_t>(28, isCustomSize, 0); }
  TextFieldOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  TextFieldOptionsBuilder &operator=(const TextFieldOptionsBuilder &);
  flatbuffers::Offset<TextFieldOptions> Finish() {
    auto o = flatbuffers::Offset<TextFieldOptions>(fbb_.EndTable(start_, 13));
    return o;
  }
};

inline flatbuffers::Offset<TextFieldOptions> CreateTextFieldOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> fontResource = 0,
   flatbuffers::Offset<flatbuffers::String> fontName = 0,
   int32_t fontSize = 0,
   flatbuffers::Offset<flatbuffers::String> text = 0,
   flatbuffers::Offset<flatbuffers::String> placeHolder = 0,
   uint8_t passwordEnabled = 0,
   flatbuffers::Offset<flatbuffers::String> passwordStyleText = 0,
   uint8_t maxLengthEnabled = 0,
   int32_t maxLength = 0,
   int32_t areaWidth = 0,
   int32_t areaHeight = 0,
   uint8_t isCustomSize = 0) {
  TextFieldOptionsBuilder builder_(_fbb);
  builder_.add_areaHeight(areaHeight);
  builder_.add_areaWidth(areaWidth);
  builder_.add_maxLength(maxLength);
  builder_.add_passwordStyleText(passwordStyleText);
  builder_.add_placeHolder(placeHolder);
  builder_.add_text(text);
  builder_.add_fontSize(fontSize);
  builder_.add_fontName(fontName);
  builder_.add_fontResource(fontResource);
  builder_.add_widgetOptions(widgetOptions);
  builder_.add_isCustomSize(isCustomSize);
  builder_.add_maxLengthEnabled(maxLengthEnabled);
  builder_.add_passwordEnabled(passwordEnabled);
  return builder_.Finish();
}

struct LoadingBarOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *textureData() const { return GetPointer<const ResourceData *>(6); }
  int32_t percent() const { return GetField<int32_t>(8, 80); }
  int32_t direction() const { return GetField<int32_t>(10, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* textureData */) &&
           verifier.VerifyTable(textureData()) &&
           VerifyField<int32_t>(verifier, 8 /* percent */) &&
           VerifyField<int32_t>(verifier, 10 /* direction */) &&
           verifier.EndTable();
  }
};

struct LoadingBarOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_textureData(flatbuffers::Offset<ResourceData> textureData) { fbb_.AddOffset(6, textureData); }
  void add_percent(int32_t percent) { fbb_.AddElement<int32_t>(8, percent, 80); }
  void add_direction(int32_t direction) { fbb_.AddElement<int32_t>(10, direction, 0); }
  LoadingBarOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  LoadingBarOptionsBuilder &operator=(const LoadingBarOptionsBuilder &);
  flatbuffers::Offset<LoadingBarOptions> Finish() {
    auto o = flatbuffers::Offset<LoadingBarOptions>(fbb_.EndTable(start_, 4));
    return o;
  }
};

inline flatbuffers::Offset<LoadingBarOptions> CreateLoadingBarOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> textureData = 0,
   int32_t percent = 80,
   int32_t direction = 0) {
  LoadingBarOptionsBuilder builder_(_fbb);
  builder_.add_direction(direction);
  builder_.add_percent(percent);
  builder_.add_textureData(textureData);
  builder_.add_widgetOptions(widgetOptions);
  return builder_.Finish();
}

struct SliderOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *barFileNameData() const { return GetPointer<const ResourceData *>(6); }
  const ResourceData *ballNormalData() const { return GetPointer<const ResourceData *>(8); }
  const ResourceData *ballPressedData() const { return GetPointer<const ResourceData *>(10); }
  const ResourceData *ballDisabledData() const { return GetPointer<const ResourceData *>(12); }
  const ResourceData *progressBarData() const { return GetPointer<const ResourceData *>(14); }
  int32_t percent() const { return GetField<int32_t>(16, 50); }
  uint8_t displaystate() const { return GetField<uint8_t>(18, 1); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* barFileNameData */) &&
           verifier.VerifyTable(barFileNameData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* ballNormalData */) &&
           verifier.VerifyTable(ballNormalData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* ballPressedData */) &&
           verifier.VerifyTable(ballPressedData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 12 /* ballDisabledData */) &&
           verifier.VerifyTable(ballDisabledData()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 14 /* progressBarData */) &&
           verifier.VerifyTable(progressBarData()) &&
           VerifyField<int32_t>(verifier, 16 /* percent */) &&
           VerifyField<uint8_t>(verifier, 18 /* displaystate */) &&
           verifier.EndTable();
  }
};

struct SliderOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_barFileNameData(flatbuffers::Offset<ResourceData> barFileNameData) { fbb_.AddOffset(6, barFileNameData); }
  void add_ballNormalData(flatbuffers::Offset<ResourceData> ballNormalData) { fbb_.AddOffset(8, ballNormalData); }
  void add_ballPressedData(flatbuffers::Offset<ResourceData> ballPressedData) { fbb_.AddOffset(10, ballPressedData); }
  void add_ballDisabledData(flatbuffers::Offset<ResourceData> ballDisabledData) { fbb_.AddOffset(12, ballDisabledData); }
  void add_progressBarData(flatbuffers::Offset<ResourceData> progressBarData) { fbb_.AddOffset(14, progressBarData); }
  void add_percent(int32_t percent) { fbb_.AddElement<int32_t>(16, percent, 50); }
  void add_displaystate(uint8_t displaystate) { fbb_.AddElement<uint8_t>(18, displaystate, 1); }
  SliderOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  SliderOptionsBuilder &operator=(const SliderOptionsBuilder &);
  flatbuffers::Offset<SliderOptions> Finish() {
    auto o = flatbuffers::Offset<SliderOptions>(fbb_.EndTable(start_, 8));
    return o;
  }
};

inline flatbuffers::Offset<SliderOptions> CreateSliderOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> barFileNameData = 0,
   flatbuffers::Offset<ResourceData> ballNormalData = 0,
   flatbuffers::Offset<ResourceData> ballPressedData = 0,
   flatbuffers::Offset<ResourceData> ballDisabledData = 0,
   flatbuffers::Offset<ResourceData> progressBarData = 0,
   int32_t percent = 50,
   uint8_t displaystate = 1) {
  SliderOptionsBuilder builder_(_fbb);
  builder_.add_percent(percent);
  builder_.add_progressBarData(progressBarData);
  builder_.add_ballDisabledData(ballDisabledData);
  builder_.add_ballPressedData(ballPressedData);
  builder_.add_ballNormalData(ballNormalData);
  builder_.add_barFileNameData(barFileNameData);
  builder_.add_widgetOptions(widgetOptions);
  builder_.add_displaystate(displaystate);
  return builder_.Finish();
}

struct PanelOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *backGroundImageData() const { return GetPointer<const ResourceData *>(6); }
  uint8_t clipEnabled() const { return GetField<uint8_t>(8, 0); }
  const Color *bgColor() const { return GetStruct<const Color *>(10); }
  const Color *bgStartColor() const { return GetStruct<const Color *>(12); }
  const Color *bgEndColor() const { return GetStruct<const Color *>(14); }
  int32_t colorType() const { return GetField<int32_t>(16, 0); }
  uint8_t bgColorOpacity() const { return GetField<uint8_t>(18, 255); }
  const ColorVector *colorVector() const { return GetStruct<const ColorVector *>(20); }
  const CapInsets *capInsets() const { return GetStruct<const CapInsets *>(22); }
  const FlatSize *scale9Size() const { return GetStruct<const FlatSize *>(24); }
  uint8_t backGroundScale9Enabled() const { return GetField<uint8_t>(26, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* backGroundImageData */) &&
           verifier.VerifyTable(backGroundImageData()) &&
           VerifyField<uint8_t>(verifier, 8 /* clipEnabled */) &&
           VerifyField<Color>(verifier, 10 /* bgColor */) &&
           VerifyField<Color>(verifier, 12 /* bgStartColor */) &&
           VerifyField<Color>(verifier, 14 /* bgEndColor */) &&
           VerifyField<int32_t>(verifier, 16 /* colorType */) &&
           VerifyField<uint8_t>(verifier, 18 /* bgColorOpacity */) &&
           VerifyField<ColorVector>(verifier, 20 /* colorVector */) &&
           VerifyField<CapInsets>(verifier, 22 /* capInsets */) &&
           VerifyField<FlatSize>(verifier, 24 /* scale9Size */) &&
           VerifyField<uint8_t>(verifier, 26 /* backGroundScale9Enabled */) &&
           verifier.EndTable();
  }
};

struct PanelOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_backGroundImageData(flatbuffers::Offset<ResourceData> backGroundImageData) { fbb_.AddOffset(6, backGroundImageData); }
  void add_clipEnabled(uint8_t clipEnabled) { fbb_.AddElement<uint8_t>(8, clipEnabled, 0); }
  void add_bgColor(const Color *bgColor) { fbb_.AddStruct(10, bgColor); }
  void add_bgStartColor(const Color *bgStartColor) { fbb_.AddStruct(12, bgStartColor); }
  void add_bgEndColor(const Color *bgEndColor) { fbb_.AddStruct(14, bgEndColor); }
  void add_colorType(int32_t colorType) { fbb_.AddElement<int32_t>(16, colorType, 0); }
  void add_bgColorOpacity(uint8_t bgColorOpacity) { fbb_.AddElement<uint8_t>(18, bgColorOpacity, 255); }
  void add_colorVector(const ColorVector *colorVector) { fbb_.AddStruct(20, colorVector); }
  void add_capInsets(const CapInsets *capInsets) { fbb_.AddStruct(22, capInsets); }
  void add_scale9Size(const FlatSize *scale9Size) { fbb_.AddStruct(24, scale9Size); }
  void add_backGroundScale9Enabled(uint8_t backGroundScale9Enabled) { fbb_.AddElement<uint8_t>(26, backGroundScale9Enabled, 0); }
  PanelOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  PanelOptionsBuilder &operator=(const PanelOptionsBuilder &);
  flatbuffers::Offset<PanelOptions> Finish() {
    auto o = flatbuffers::Offset<PanelOptions>(fbb_.EndTable(start_, 12));
    return o;
  }
};

inline flatbuffers::Offset<PanelOptions> CreatePanelOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> backGroundImageData = 0,
   uint8_t clipEnabled = 0,
   const Color *bgColor = 0,
   const Color *bgStartColor = 0,
   const Color *bgEndColor = 0,
   int32_t colorType = 0,
   uint8_t bgColorOpacity = 255,
   const ColorVector *colorVector = 0,
   const CapInsets *capInsets = 0,
   const FlatSize *scale9Size = 0,
   uint8_t backGroundScale9Enabled = 0) {
  PanelOptionsBuilder builder_(_fbb);
  builder_.add_scale9Size(scale9Size);
  builder_.add_capInsets(capInsets);
  builder_.add_colorVector(colorVector);
  builder_.add_colorType(colorType);
  builder_.add_bgEndColor(bgEndColor);
  builder_.add_bgStartColor(bgStartColor);
  builder_.add_bgColor(bgColor);
  builder_.add_backGroundImageData(backGroundImageData);
  builder_.add_widgetOptions(widgetOptions);
  builder_.add_backGroundScale9Enabled(backGroundScale9Enabled);
  builder_.add_bgColorOpacity(bgColorOpacity);
  builder_.add_clipEnabled(clipEnabled);
  return builder_.Finish();
}

struct ScrollViewOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *backGroundImageData() const { return GetPointer<const ResourceData *>(6); }
  uint8_t clipEnabled() const { return GetField<uint8_t>(8, 0); }
  const Color *bgColor() const { return GetStruct<const Color *>(10); }
  const Color *bgStartColor() const { return GetStruct<const Color *>(12); }
  const Color *bgEndColor() const { return GetStruct<const Color *>(14); }
  int32_t colorType() const { return GetField<int32_t>(16, 0); }
  uint8_t bgColorOpacity() const { return GetField<uint8_t>(18, 255); }
  const ColorVector *colorVector() const { return GetStruct<const ColorVector *>(20); }
  const CapInsets *capInsets() const { return GetStruct<const CapInsets *>(22); }
  const FlatSize *scale9Size() const { return GetStruct<const FlatSize *>(24); }
  uint8_t backGroundScale9Enabled() const { return GetField<uint8_t>(26, 0); }
  const FlatSize *innerSize() const { return GetStruct<const FlatSize *>(28); }
  int32_t direction() const { return GetField<int32_t>(30, 0); }
  uint8_t bounceEnabled() const { return GetField<uint8_t>(32, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* backGroundImageData */) &&
           verifier.VerifyTable(backGroundImageData()) &&
           VerifyField<uint8_t>(verifier, 8 /* clipEnabled */) &&
           VerifyField<Color>(verifier, 10 /* bgColor */) &&
           VerifyField<Color>(verifier, 12 /* bgStartColor */) &&
           VerifyField<Color>(verifier, 14 /* bgEndColor */) &&
           VerifyField<int32_t>(verifier, 16 /* colorType */) &&
           VerifyField<uint8_t>(verifier, 18 /* bgColorOpacity */) &&
           VerifyField<ColorVector>(verifier, 20 /* colorVector */) &&
           VerifyField<CapInsets>(verifier, 22 /* capInsets */) &&
           VerifyField<FlatSize>(verifier, 24 /* scale9Size */) &&
           VerifyField<uint8_t>(verifier, 26 /* backGroundScale9Enabled */) &&
           VerifyField<FlatSize>(verifier, 28 /* innerSize */) &&
           VerifyField<int32_t>(verifier, 30 /* direction */) &&
           VerifyField<uint8_t>(verifier, 32 /* bounceEnabled */) &&
           verifier.EndTable();
  }
};

struct ScrollViewOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_backGroundImageData(flatbuffers::Offset<ResourceData> backGroundImageData) { fbb_.AddOffset(6, backGroundImageData); }
  void add_clipEnabled(uint8_t clipEnabled) { fbb_.AddElement<uint8_t>(8, clipEnabled, 0); }
  void add_bgColor(const Color *bgColor) { fbb_.AddStruct(10, bgColor); }
  void add_bgStartColor(const Color *bgStartColor) { fbb_.AddStruct(12, bgStartColor); }
  void add_bgEndColor(const Color *bgEndColor) { fbb_.AddStruct(14, bgEndColor); }
  void add_colorType(int32_t colorType) { fbb_.AddElement<int32_t>(16, colorType, 0); }
  void add_bgColorOpacity(uint8_t bgColorOpacity) { fbb_.AddElement<uint8_t>(18, bgColorOpacity, 255); }
  void add_colorVector(const ColorVector *colorVector) { fbb_.AddStruct(20, colorVector); }
  void add_capInsets(const CapInsets *capInsets) { fbb_.AddStruct(22, capInsets); }
  void add_scale9Size(const FlatSize *scale9Size) { fbb_.AddStruct(24, scale9Size); }
  void add_backGroundScale9Enabled(uint8_t backGroundScale9Enabled) { fbb_.AddElement<uint8_t>(26, backGroundScale9Enabled, 0); }
  void add_innerSize(const FlatSize *innerSize) { fbb_.AddStruct(28, innerSize); }
  void add_direction(int32_t direction) { fbb_.AddElement<int32_t>(30, direction, 0); }
  void add_bounceEnabled(uint8_t bounceEnabled) { fbb_.AddElement<uint8_t>(32, bounceEnabled, 0); }
  ScrollViewOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ScrollViewOptionsBuilder &operator=(const ScrollViewOptionsBuilder &);
  flatbuffers::Offset<ScrollViewOptions> Finish() {
    auto o = flatbuffers::Offset<ScrollViewOptions>(fbb_.EndTable(start_, 15));
    return o;
  }
};

inline flatbuffers::Offset<ScrollViewOptions> CreateScrollViewOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> backGroundImageData = 0,
   uint8_t clipEnabled = 0,
   const Color *bgColor = 0,
   const Color *bgStartColor = 0,
   const Color *bgEndColor = 0,
   int32_t colorType = 0,
   uint8_t bgColorOpacity = 255,
   const ColorVector *colorVector = 0,
   const CapInsets *capInsets = 0,
   const FlatSize *scale9Size = 0,
   uint8_t backGroundScale9Enabled = 0,
   const FlatSize *innerSize = 0,
   int32_t direction = 0,
   uint8_t bounceEnabled = 0) {
  ScrollViewOptionsBuilder builder_(_fbb);
  builder_.add_direction(direction);
  builder_.add_innerSize(innerSize);
  builder_.add_scale9Size(scale9Size);
  builder_.add_capInsets(capInsets);
  builder_.add_colorVector(colorVector);
  builder_.add_colorType(colorType);
  builder_.add_bgEndColor(bgEndColor);
  builder_.add_bgStartColor(bgStartColor);
  builder_.add_bgColor(bgColor);
  builder_.add_backGroundImageData(backGroundImageData);
  builder_.add_widgetOptions(widgetOptions);
  builder_.add_bounceEnabled(bounceEnabled);
  builder_.add_backGroundScale9Enabled(backGroundScale9Enabled);
  builder_.add_bgColorOpacity(bgColorOpacity);
  builder_.add_clipEnabled(clipEnabled);
  return builder_.Finish();
}

struct PageViewOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *backGroundImageData() const { return GetPointer<const ResourceData *>(6); }
  uint8_t clipEnabled() const { return GetField<uint8_t>(8, 0); }
  const Color *bgColor() const { return GetStruct<const Color *>(10); }
  const Color *bgStartColor() const { return GetStruct<const Color *>(12); }
  const Color *bgEndColor() const { return GetStruct<const Color *>(14); }
  int32_t colorType() const { return GetField<int32_t>(16, 0); }
  uint8_t bgColorOpacity() const { return GetField<uint8_t>(18, 255); }
  const ColorVector *colorVector() const { return GetStruct<const ColorVector *>(20); }
  const CapInsets *capInsets() const { return GetStruct<const CapInsets *>(22); }
  const FlatSize *scale9Size() const { return GetStruct<const FlatSize *>(24); }
  uint8_t backGroundScale9Enabled() const { return GetField<uint8_t>(26, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* backGroundImageData */) &&
           verifier.VerifyTable(backGroundImageData()) &&
           VerifyField<uint8_t>(verifier, 8 /* clipEnabled */) &&
           VerifyField<Color>(verifier, 10 /* bgColor */) &&
           VerifyField<Color>(verifier, 12 /* bgStartColor */) &&
           VerifyField<Color>(verifier, 14 /* bgEndColor */) &&
           VerifyField<int32_t>(verifier, 16 /* colorType */) &&
           VerifyField<uint8_t>(verifier, 18 /* bgColorOpacity */) &&
           VerifyField<ColorVector>(verifier, 20 /* colorVector */) &&
           VerifyField<CapInsets>(verifier, 22 /* capInsets */) &&
           VerifyField<FlatSize>(verifier, 24 /* scale9Size */) &&
           VerifyField<uint8_t>(verifier, 26 /* backGroundScale9Enabled */) &&
           verifier.EndTable();
  }
};

struct PageViewOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_backGroundImageData(flatbuffers::Offset<ResourceData> backGroundImageData) { fbb_.AddOffset(6, backGroundImageData); }
  void add_clipEnabled(uint8_t clipEnabled) { fbb_.AddElement<uint8_t>(8, clipEnabled, 0); }
  void add_bgColor(const Color *bgColor) { fbb_.AddStruct(10, bgColor); }
  void add_bgStartColor(const Color *bgStartColor) { fbb_.AddStruct(12, bgStartColor); }
  void add_bgEndColor(const Color *bgEndColor) { fbb_.AddStruct(14, bgEndColor); }
  void add_colorType(int32_t colorType) { fbb_.AddElement<int32_t>(16, colorType, 0); }
  void add_bgColorOpacity(uint8_t bgColorOpacity) { fbb_.AddElement<uint8_t>(18, bgColorOpacity, 255); }
  void add_colorVector(const ColorVector *colorVector) { fbb_.AddStruct(20, colorVector); }
  void add_capInsets(const CapInsets *capInsets) { fbb_.AddStruct(22, capInsets); }
  void add_scale9Size(const FlatSize *scale9Size) { fbb_.AddStruct(24, scale9Size); }
  void add_backGroundScale9Enabled(uint8_t backGroundScale9Enabled) { fbb_.AddElement<uint8_t>(26, backGroundScale9Enabled, 0); }
  PageViewOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  PageViewOptionsBuilder &operator=(const PageViewOptionsBuilder &);
  flatbuffers::Offset<PageViewOptions> Finish() {
    auto o = flatbuffers::Offset<PageViewOptions>(fbb_.EndTable(start_, 12));
    return o;
  }
};

inline flatbuffers::Offset<PageViewOptions> CreatePageViewOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> backGroundImageData = 0,
   uint8_t clipEnabled = 0,
   const Color *bgColor = 0,
   const Color *bgStartColor = 0,
   const Color *bgEndColor = 0,
   int32_t colorType = 0,
   uint8_t bgColorOpacity = 255,
   const ColorVector *colorVector = 0,
   const CapInsets *capInsets = 0,
   const FlatSize *scale9Size = 0,
   uint8_t backGroundScale9Enabled = 0) {
  PageViewOptionsBuilder builder_(_fbb);
  builder_.add_scale9Size(scale9Size);
  builder_.add_capInsets(capInsets);
  builder_.add_colorVector(colorVector);
  builder_.add_colorType(colorType);
  builder_.add_bgEndColor(bgEndColor);
  builder_.add_bgStartColor(bgStartColor);
  builder_.add_bgColor(bgColor);
  builder_.add_backGroundImageData(backGroundImageData);
  builder_.add_widgetOptions(widgetOptions);
  builder_.add_backGroundScale9Enabled(backGroundScale9Enabled);
  builder_.add_bgColorOpacity(bgColorOpacity);
  builder_.add_clipEnabled(clipEnabled);
  return builder_.Finish();
}

struct ListViewOptions : private flatbuffers::Table {
  const WidgetOptions *widgetOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const ResourceData *backGroundImageData() const { return GetPointer<const ResourceData *>(6); }
  uint8_t clipEnabled() const { return GetField<uint8_t>(8, 0); }
  const Color *bgColor() const { return GetStruct<const Color *>(10); }
  const Color *bgStartColor() const { return GetStruct<const Color *>(12); }
  const Color *bgEndColor() const { return GetStruct<const Color *>(14); }
  int32_t colorType() const { return GetField<int32_t>(16, 0); }
  uint8_t bgColorOpacity() const { return GetField<uint8_t>(18, 255); }
  const ColorVector *colorVector() const { return GetStruct<const ColorVector *>(20); }
  const CapInsets *capInsets() const { return GetStruct<const CapInsets *>(22); }
  const FlatSize *scale9Size() const { return GetStruct<const FlatSize *>(24); }
  uint8_t backGroundScale9Enabled() const { return GetField<uint8_t>(26, 0); }
  const FlatSize *innerSize() const { return GetStruct<const FlatSize *>(28); }
  int32_t direction() const { return GetField<int32_t>(30, 0); }
  uint8_t bounceEnabled() const { return GetField<uint8_t>(32, 0); }
  int32_t itemMargin() const { return GetField<int32_t>(34, 0); }
  const flatbuffers::String *directionType() const { return GetPointer<const flatbuffers::String *>(36); }
  const flatbuffers::String *horizontalType() const { return GetPointer<const flatbuffers::String *>(38); }
  const flatbuffers::String *verticalType() const { return GetPointer<const flatbuffers::String *>(40); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
           verifier.VerifyTable(widgetOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* backGroundImageData */) &&
           verifier.VerifyTable(backGroundImageData()) &&
           VerifyField<uint8_t>(verifier, 8 /* clipEnabled */) &&
           VerifyField<Color>(verifier, 10 /* bgColor */) &&
           VerifyField<Color>(verifier, 12 /* bgStartColor */) &&
           VerifyField<Color>(verifier, 14 /* bgEndColor */) &&
           VerifyField<int32_t>(verifier, 16 /* colorType */) &&
           VerifyField<uint8_t>(verifier, 18 /* bgColorOpacity */) &&
           VerifyField<ColorVector>(verifier, 20 /* colorVector */) &&
           VerifyField<CapInsets>(verifier, 22 /* capInsets */) &&
           VerifyField<FlatSize>(verifier, 24 /* scale9Size */) &&
           VerifyField<uint8_t>(verifier, 26 /* backGroundScale9Enabled */) &&
           VerifyField<FlatSize>(verifier, 28 /* innerSize */) &&
           VerifyField<int32_t>(verifier, 30 /* direction */) &&
           VerifyField<uint8_t>(verifier, 32 /* bounceEnabled */) &&
           VerifyField<int32_t>(verifier, 34 /* itemMargin */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 36 /* directionType */) &&
           verifier.Verify(directionType()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 38 /* horizontalType */) &&
           verifier.Verify(horizontalType()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 40 /* verticalType */) &&
           verifier.Verify(verticalType()) &&
           verifier.EndTable();
  }
};

struct ListViewOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_widgetOptions(flatbuffers::Offset<WidgetOptions> widgetOptions) { fbb_.AddOffset(4, widgetOptions); }
  void add_backGroundImageData(flatbuffers::Offset<ResourceData> backGroundImageData) { fbb_.AddOffset(6, backGroundImageData); }
  void add_clipEnabled(uint8_t clipEnabled) { fbb_.AddElement<uint8_t>(8, clipEnabled, 0); }
  void add_bgColor(const Color *bgColor) { fbb_.AddStruct(10, bgColor); }
  void add_bgStartColor(const Color *bgStartColor) { fbb_.AddStruct(12, bgStartColor); }
  void add_bgEndColor(const Color *bgEndColor) { fbb_.AddStruct(14, bgEndColor); }
  void add_colorType(int32_t colorType) { fbb_.AddElement<int32_t>(16, colorType, 0); }
  void add_bgColorOpacity(uint8_t bgColorOpacity) { fbb_.AddElement<uint8_t>(18, bgColorOpacity, 255); }
  void add_colorVector(const ColorVector *colorVector) { fbb_.AddStruct(20, colorVector); }
  void add_capInsets(const CapInsets *capInsets) { fbb_.AddStruct(22, capInsets); }
  void add_scale9Size(const FlatSize *scale9Size) { fbb_.AddStruct(24, scale9Size); }
  void add_backGroundScale9Enabled(uint8_t backGroundScale9Enabled) { fbb_.AddElement<uint8_t>(26, backGroundScale9Enabled, 0); }
  void add_innerSize(const FlatSize *innerSize) { fbb_.AddStruct(28, innerSize); }
  void add_direction(int32_t direction) { fbb_.AddElement<int32_t>(30, direction, 0); }
  void add_bounceEnabled(uint8_t bounceEnabled) { fbb_.AddElement<uint8_t>(32, bounceEnabled, 0); }
  void add_itemMargin(int32_t itemMargin) { fbb_.AddElement<int32_t>(34, itemMargin, 0); }
  void add_directionType(flatbuffers::Offset<flatbuffers::String> directionType) { fbb_.AddOffset(36, directionType); }
  void add_horizontalType(flatbuffers::Offset<flatbuffers::String> horizontalType) { fbb_.AddOffset(38, horizontalType); }
  void add_verticalType(flatbuffers::Offset<flatbuffers::String> verticalType) { fbb_.AddOffset(40, verticalType); }
  ListViewOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ListViewOptionsBuilder &operator=(const ListViewOptionsBuilder &);
  flatbuffers::Offset<ListViewOptions> Finish() {
    auto o = flatbuffers::Offset<ListViewOptions>(fbb_.EndTable(start_, 19));
    return o;
  }
};

inline flatbuffers::Offset<ListViewOptions> CreateListViewOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> widgetOptions = 0,
   flatbuffers::Offset<ResourceData> backGroundImageData = 0,
   uint8_t clipEnabled = 0,
   const Color *bgColor = 0,
   const Color *bgStartColor = 0,
   const Color *bgEndColor = 0,
   int32_t colorType = 0,
   uint8_t bgColorOpacity = 255,
   const ColorVector *colorVector = 0,
   const CapInsets *capInsets = 0,
   const FlatSize *scale9Size = 0,
   uint8_t backGroundScale9Enabled = 0,
   const FlatSize *innerSize = 0,
   int32_t direction = 0,
   uint8_t bounceEnabled = 0,
   int32_t itemMargin = 0,
   flatbuffers::Offset<flatbuffers::String> directionType = 0,
   flatbuffers::Offset<flatbuffers::String> horizontalType = 0,
   flatbuffers::Offset<flatbuffers::String> verticalType = 0) {
  ListViewOptionsBuilder builder_(_fbb);
  builder_.add_verticalType(verticalType);
  builder_.add_horizontalType(horizontalType);
  builder_.add_directionType(directionType);
  builder_.add_itemMargin(itemMargin);
  builder_.add_direction(direction);
  builder_.add_innerSize(innerSize);
  builder_.add_scale9Size(scale9Size);
  builder_.add_capInsets(capInsets);
  builder_.add_colorVector(colorVector);
  builder_.add_colorType(colorType);
  builder_.add_bgEndColor(bgEndColor);
  builder_.add_bgStartColor(bgStartColor);
  builder_.add_bgColor(bgColor);
  builder_.add_backGroundImageData(backGroundImageData);
  builder_.add_widgetOptions(widgetOptions);
  builder_.add_bounceEnabled(bounceEnabled);
  builder_.add_backGroundScale9Enabled(backGroundScale9Enabled);
  builder_.add_bgColorOpacity(bgColorOpacity);
  builder_.add_clipEnabled(clipEnabled);
  return builder_.Finish();
}

struct ProjectNodeOptions : private flatbuffers::Table {
  const WidgetOptions *nodeOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const flatbuffers::String *fileName() const { return GetPointer<const flatbuffers::String *>(6); }
  float innerActionSpeed() const { return GetField<float>(8, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* nodeOptions */) &&
           verifier.VerifyTable(nodeOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* fileName */) &&
           verifier.Verify(fileName()) &&
           VerifyField<float>(verifier, 8 /* innerActionSpeed */) &&
           verifier.EndTable();
  }
};

struct ProjectNodeOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_nodeOptions(flatbuffers::Offset<WidgetOptions> nodeOptions) { fbb_.AddOffset(4, nodeOptions); }
  void add_fileName(flatbuffers::Offset<flatbuffers::String> fileName) { fbb_.AddOffset(6, fileName); }
  void add_innerActionSpeed(float innerActionSpeed) { fbb_.AddElement<float>(8, innerActionSpeed, 0); }
  ProjectNodeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ProjectNodeOptionsBuilder &operator=(const ProjectNodeOptionsBuilder &);
  flatbuffers::Offset<ProjectNodeOptions> Finish() {
    auto o = flatbuffers::Offset<ProjectNodeOptions>(fbb_.EndTable(start_, 3));
    return o;
  }
};

inline flatbuffers::Offset<ProjectNodeOptions> CreateProjectNodeOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> nodeOptions = 0,
   flatbuffers::Offset<flatbuffers::String> fileName = 0,
   float innerActionSpeed = 0) {
  ProjectNodeOptionsBuilder builder_(_fbb);
  builder_.add_innerActionSpeed(innerActionSpeed);
  builder_.add_fileName(fileName);
  builder_.add_nodeOptions(nodeOptions);
  return builder_.Finish();
}

struct ComponentOptions : private flatbuffers::Table {
  const WidgetOptions *nodeOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const flatbuffers::String *type() const { return GetPointer<const flatbuffers::String *>(6); }
  const ComAudioOptions *comAudioOptions() const { return GetPointer<const ComAudioOptions *>(8); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* nodeOptions */) &&
           verifier.VerifyTable(nodeOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* type */) &&
           verifier.Verify(type()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* comAudioOptions */) &&
           verifier.VerifyTable(comAudioOptions()) &&
           verifier.EndTable();
  }
};

struct ComponentOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_nodeOptions(flatbuffers::Offset<WidgetOptions> nodeOptions) { fbb_.AddOffset(4, nodeOptions); }
  void add_type(flatbuffers::Offset<flatbuffers::String> type) { fbb_.AddOffset(6, type); }
  void add_comAudioOptions(flatbuffers::Offset<ComAudioOptions> comAudioOptions) { fbb_.AddOffset(8, comAudioOptions); }
  ComponentOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ComponentOptionsBuilder &operator=(const ComponentOptionsBuilder &);
  flatbuffers::Offset<ComponentOptions> Finish() {
    auto o = flatbuffers::Offset<ComponentOptions>(fbb_.EndTable(start_, 3));
    return o;
  }
};

inline flatbuffers::Offset<ComponentOptions> CreateComponentOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> nodeOptions = 0,
   flatbuffers::Offset<flatbuffers::String> type = 0,
   flatbuffers::Offset<ComAudioOptions> comAudioOptions = 0) {
  ComponentOptionsBuilder builder_(_fbb);
  builder_.add_comAudioOptions(comAudioOptions);
  builder_.add_type(type);
  builder_.add_nodeOptions(nodeOptions);
  return builder_.Finish();
}

struct ComAudioOptions : private flatbuffers::Table {
  const WidgetOptions *nodeOptions() const { return GetPointer<const WidgetOptions *>(4); }
  const flatbuffers::String *name() const { return GetPointer<const flatbuffers::String *>(6); }
  uint8_t enabled() const { return GetField<uint8_t>(8, 0); }
  uint8_t loop() const { return GetField<uint8_t>(10, 0); }
  int32_t volume() const { return GetField<int32_t>(12, 0); }
  const ResourceData *fileNameData() const { return GetPointer<const ResourceData *>(14); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* nodeOptions */) &&
           verifier.VerifyTable(nodeOptions()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* name */) &&
           verifier.Verify(name()) &&
           VerifyField<uint8_t>(verifier, 8 /* enabled */) &&
           VerifyField<uint8_t>(verifier, 10 /* loop */) &&
           VerifyField<int32_t>(verifier, 12 /* volume */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 14 /* fileNameData */) &&
           verifier.VerifyTable(fileNameData()) &&
           verifier.EndTable();
  }
};

struct ComAudioOptionsBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_nodeOptions(flatbuffers::Offset<WidgetOptions> nodeOptions) { fbb_.AddOffset(4, nodeOptions); }
  void add_name(flatbuffers::Offset<flatbuffers::String> name) { fbb_.AddOffset(6, name); }
  void add_enabled(uint8_t enabled) { fbb_.AddElement<uint8_t>(8, enabled, 0); }
  void add_loop(uint8_t loop) { fbb_.AddElement<uint8_t>(10, loop, 0); }
  void add_volume(int32_t volume) { fbb_.AddElement<int32_t>(12, volume, 0); }
  void add_fileNameData(flatbuffers::Offset<ResourceData> fileNameData) { fbb_.AddOffset(14, fileNameData); }
  ComAudioOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ComAudioOptionsBuilder &operator=(const ComAudioOptionsBuilder &);
  flatbuffers::Offset<ComAudioOptions> Finish() {
    auto o = flatbuffers::Offset<ComAudioOptions>(fbb_.EndTable(start_, 6));
    return o;
  }
};

inline flatbuffers::Offset<ComAudioOptions> CreateComAudioOptions(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<WidgetOptions> nodeOptions = 0,
   flatbuffers::Offset<flatbuffers::String> name = 0,
   uint8_t enabled = 0,
   uint8_t loop = 0,
   int32_t volume = 0,
   flatbuffers::Offset<ResourceData> fileNameData = 0) {
  ComAudioOptionsBuilder builder_(_fbb);
  builder_.add_fileNameData(fileNameData);
  builder_.add_volume(volume);
  builder_.add_name(name);
  builder_.add_nodeOptions(nodeOptions);
  builder_.add_loop(loop);
  builder_.add_enabled(enabled);
  return builder_.Finish();
}

struct AnimationInfo : private flatbuffers::Table {
  const flatbuffers::String *name() const { return GetPointer<const flatbuffers::String *>(4); }
  int32_t startIndex() const { return GetField<int32_t>(6, 0); }
  int32_t endIndex() const { return GetField<int32_t>(8, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* name */) &&
           verifier.Verify(name()) &&
           VerifyField<int32_t>(verifier, 6 /* startIndex */) &&
           VerifyField<int32_t>(verifier, 8 /* endIndex */) &&
           verifier.EndTable();
  }
};

struct AnimationInfoBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_name(flatbuffers::Offset<flatbuffers::String> name) { fbb_.AddOffset(4, name); }
  void add_startIndex(int32_t startIndex) { fbb_.AddElement<int32_t>(6, startIndex, 0); }
  void add_endIndex(int32_t endIndex) { fbb_.AddElement<int32_t>(8, endIndex, 0); }
  AnimationInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  AnimationInfoBuilder &operator=(const AnimationInfoBuilder &);
  flatbuffers::Offset<AnimationInfo> Finish() {
    auto o = flatbuffers::Offset<AnimationInfo>(fbb_.EndTable(start_, 3));
    return o;
  }
};

inline flatbuffers::Offset<AnimationInfo> CreateAnimationInfo(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<flatbuffers::String> name = 0,
   int32_t startIndex = 0,
   int32_t endIndex = 0) {
  AnimationInfoBuilder builder_(_fbb);
  builder_.add_endIndex(endIndex);
  builder_.add_startIndex(startIndex);
  builder_.add_name(name);
  return builder_.Finish();
}

struct NodeAction : private flatbuffers::Table {
  int32_t duration() const { return GetField<int32_t>(4, 0); }
  float speed() const { return GetField<float>(6, 0); }
  const flatbuffers::Vector<flatbuffers::Offset<TimeLine>> *timeLines() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<TimeLine>> *>(8); }
  const flatbuffers::String *currentAnimationName() const { return GetPointer<const flatbuffers::String *>(10); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int32_t>(verifier, 4 /* duration */) &&
           VerifyField<float>(verifier, 6 /* speed */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* timeLines */) &&
           verifier.Verify(timeLines()) &&
           verifier.VerifyVectorOfTables(timeLines()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* currentAnimationName */) &&
           verifier.Verify(currentAnimationName()) &&
           verifier.EndTable();
  }
};

struct NodeActionBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_duration(int32_t duration) { fbb_.AddElement<int32_t>(4, duration, 0); }
  void add_speed(float speed) { fbb_.AddElement<float>(6, speed, 0); }
  void add_timeLines(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TimeLine>>> timeLines) { fbb_.AddOffset(8, timeLines); }
  void add_currentAnimationName(flatbuffers::Offset<flatbuffers::String> currentAnimationName) { fbb_.AddOffset(10, currentAnimationName); }
  NodeActionBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  NodeActionBuilder &operator=(const NodeActionBuilder &);
  flatbuffers::Offset<NodeAction> Finish() {
    auto o = flatbuffers::Offset<NodeAction>(fbb_.EndTable(start_, 4));
    return o;
  }
};

inline flatbuffers::Offset<NodeAction> CreateNodeAction(flatbuffers::FlatBufferBuilder &_fbb,
   int32_t duration = 0,
   float speed = 0,
   flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TimeLine>>> timeLines = 0,
   flatbuffers::Offset<flatbuffers::String> currentAnimationName = 0) {
  NodeActionBuilder builder_(_fbb);
  builder_.add_currentAnimationName(currentAnimationName);
  builder_.add_timeLines(timeLines);
  builder_.add_speed(speed);
  builder_.add_duration(duration);
  return builder_.Finish();
}

struct TimeLine : private flatbuffers::Table {
  const flatbuffers::String *property() const { return GetPointer<const flatbuffers::String *>(4); }
  int32_t actionTag() const { return GetField<int32_t>(6, 0); }
  const flatbuffers::Vector<flatbuffers::Offset<Frame>> *frames() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Frame>> *>(8); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* property */) &&
           verifier.Verify(property()) &&
           VerifyField<int32_t>(verifier, 6 /* actionTag */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* frames */) &&
           verifier.Verify(frames()) &&
           verifier.VerifyVectorOfTables(frames()) &&
           verifier.EndTable();
  }
};

struct TimeLineBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_property(flatbuffers::Offset<flatbuffers::String> property) { fbb_.AddOffset(4, property); }
  void add_actionTag(int32_t actionTag) { fbb_.AddElement<int32_t>(6, actionTag, 0); }
  void add_frames(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Frame>>> frames) { fbb_.AddOffset(8, frames); }
  TimeLineBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  TimeLineBuilder &operator=(const TimeLineBuilder &);
  flatbuffers::Offset<TimeLine> Finish() {
    auto o = flatbuffers::Offset<TimeLine>(fbb_.EndTable(start_, 3));
    return o;
  }
};

inline flatbuffers::Offset<TimeLine> CreateTimeLine(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<flatbuffers::String> property = 0,
   int32_t actionTag = 0,
   flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Frame>>> frames = 0) {
  TimeLineBuilder builder_(_fbb);
  builder_.add_frames(frames);
  builder_.add_actionTag(actionTag);
  builder_.add_property(property);
  return builder_.Finish();
}

struct Frame : private flatbuffers::Table {
  const PointFrame *pointFrame() const { return GetPointer<const PointFrame *>(4); }
  const ScaleFrame *scaleFrame() const { return GetPointer<const ScaleFrame *>(6); }
  const ColorFrame *colorFrame() const { return GetPointer<const ColorFrame *>(8); }
  const TextureFrame *textureFrame() const { return GetPointer<const TextureFrame *>(10); }
  const EventFrame *eventFrame() const { return GetPointer<const EventFrame *>(12); }
  const IntFrame *intFrame() const { return GetPointer<const IntFrame *>(14); }
  const BoolFrame *boolFrame() const { return GetPointer<const BoolFrame *>(16); }
  const InnerActionFrame *innerActionFrame() const { return GetPointer<const InnerActionFrame *>(18); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* pointFrame */) &&
           verifier.VerifyTable(pointFrame()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* scaleFrame */) &&
           verifier.VerifyTable(scaleFrame()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* colorFrame */) &&
           verifier.VerifyTable(colorFrame()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* textureFrame */) &&
           verifier.VerifyTable(textureFrame()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 12 /* eventFrame */) &&
           verifier.VerifyTable(eventFrame()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 14 /* intFrame */) &&
           verifier.VerifyTable(intFrame()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 16 /* boolFrame */) &&
           verifier.VerifyTable(boolFrame()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 18 /* innerActionFrame */) &&
           verifier.VerifyTable(innerActionFrame()) &&
           verifier.EndTable();
  }
};

struct FrameBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_pointFrame(flatbuffers::Offset<PointFrame> pointFrame) { fbb_.AddOffset(4, pointFrame); }
  void add_scaleFrame(flatbuffers::Offset<ScaleFrame> scaleFrame) { fbb_.AddOffset(6, scaleFrame); }
  void add_colorFrame(flatbuffers::Offset<ColorFrame> colorFrame) { fbb_.AddOffset(8, colorFrame); }
  void add_textureFrame(flatbuffers::Offset<TextureFrame> textureFrame) { fbb_.AddOffset(10, textureFrame); }
  void add_eventFrame(flatbuffers::Offset<EventFrame> eventFrame) { fbb_.AddOffset(12, eventFrame); }
  void add_intFrame(flatbuffers::Offset<IntFrame> intFrame) { fbb_.AddOffset(14, intFrame); }
  void add_boolFrame(flatbuffers::Offset<BoolFrame> boolFrame) { fbb_.AddOffset(16, boolFrame); }
  void add_innerActionFrame(flatbuffers::Offset<InnerActionFrame> innerActionFrame) { fbb_.AddOffset(18, innerActionFrame); }
  FrameBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  FrameBuilder &operator=(const FrameBuilder &);
  flatbuffers::Offset<Frame> Finish() {
    auto o = flatbuffers::Offset<Frame>(fbb_.EndTable(start_, 8));
    return o;
  }
};

inline flatbuffers::Offset<Frame> CreateFrame(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<PointFrame> pointFrame = 0,
   flatbuffers::Offset<ScaleFrame> scaleFrame = 0,
   flatbuffers::Offset<ColorFrame> colorFrame = 0,
   flatbuffers::Offset<TextureFrame> textureFrame = 0,
   flatbuffers::Offset<EventFrame> eventFrame = 0,
   flatbuffers::Offset<IntFrame> intFrame = 0,
   flatbuffers::Offset<BoolFrame> boolFrame = 0,
   flatbuffers::Offset<InnerActionFrame> innerActionFrame = 0) {
  FrameBuilder builder_(_fbb);
  builder_.add_innerActionFrame(innerActionFrame);
  builder_.add_boolFrame(boolFrame);
  builder_.add_intFrame(intFrame);
  builder_.add_eventFrame(eventFrame);
  builder_.add_textureFrame(textureFrame);
  builder_.add_colorFrame(colorFrame);
  builder_.add_scaleFrame(scaleFrame);
  builder_.add_pointFrame(pointFrame);
  return builder_.Finish();
}

struct PointFrame : private flatbuffers::Table {
  int32_t frameIndex() const { return GetField<int32_t>(4, 0); }
  uint8_t tween() const { return GetField<uint8_t>(6, 1); }
  const Position *postion() const { return GetStruct<const Position *>(8); }
  const EasingData *easingData() const { return GetPointer<const EasingData *>(10); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int32_t>(verifier, 4 /* frameIndex */) &&
           VerifyField<uint8_t>(verifier, 6 /* tween */) &&
           VerifyField<Position>(verifier, 8 /* postion */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* easingData */) &&
           verifier.VerifyTable(easingData()) &&
           verifier.EndTable();
  }
};

struct PointFrameBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_frameIndex(int32_t frameIndex) { fbb_.AddElement<int32_t>(4, frameIndex, 0); }
  void add_tween(uint8_t tween) { fbb_.AddElement<uint8_t>(6, tween, 1); }
  void add_postion(const Position *postion) { fbb_.AddStruct(8, postion); }
  void add_easingData(flatbuffers::Offset<EasingData> easingData) { fbb_.AddOffset(10, easingData); }
  PointFrameBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  PointFrameBuilder &operator=(const PointFrameBuilder &);
  flatbuffers::Offset<PointFrame> Finish() {
    auto o = flatbuffers::Offset<PointFrame>(fbb_.EndTable(start_, 4));
    return o;
  }
};

inline flatbuffers::Offset<PointFrame> CreatePointFrame(flatbuffers::FlatBufferBuilder &_fbb,
   int32_t frameIndex = 0,
   uint8_t tween = 1,
   const Position *postion = 0,
   flatbuffers::Offset<EasingData> easingData = 0) {
  PointFrameBuilder builder_(_fbb);
  builder_.add_easingData(easingData);
  builder_.add_postion(postion);
  builder_.add_frameIndex(frameIndex);
  builder_.add_tween(tween);
  return builder_.Finish();
}

struct ScaleFrame : private flatbuffers::Table {
  int32_t frameIndex() const { return GetField<int32_t>(4, 0); }
  uint8_t tween() const { return GetField<uint8_t>(6, 1); }
  const Scale *scale() const { return GetStruct<const Scale *>(8); }
  const EasingData *easingData() const { return GetPointer<const EasingData *>(10); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int32_t>(verifier, 4 /* frameIndex */) &&
           VerifyField<uint8_t>(verifier, 6 /* tween */) &&
           VerifyField<Scale>(verifier, 8 /* scale */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* easingData */) &&
           verifier.VerifyTable(easingData()) &&
           verifier.EndTable();
  }
};

struct ScaleFrameBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_frameIndex(int32_t frameIndex) { fbb_.AddElement<int32_t>(4, frameIndex, 0); }
  void add_tween(uint8_t tween) { fbb_.AddElement<uint8_t>(6, tween, 1); }
  void add_scale(const Scale *scale) { fbb_.AddStruct(8, scale); }
  void add_easingData(flatbuffers::Offset<EasingData> easingData) { fbb_.AddOffset(10, easingData); }
  ScaleFrameBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ScaleFrameBuilder &operator=(const ScaleFrameBuilder &);
  flatbuffers::Offset<ScaleFrame> Finish() {
    auto o = flatbuffers::Offset<ScaleFrame>(fbb_.EndTable(start_, 4));
    return o;
  }
};

inline flatbuffers::Offset<ScaleFrame> CreateScaleFrame(flatbuffers::FlatBufferBuilder &_fbb,
   int32_t frameIndex = 0,
   uint8_t tween = 1,
   const Scale *scale = 0,
   flatbuffers::Offset<EasingData> easingData = 0) {
  ScaleFrameBuilder builder_(_fbb);
  builder_.add_easingData(easingData);
  builder_.add_scale(scale);
  builder_.add_frameIndex(frameIndex);
  builder_.add_tween(tween);
  return builder_.Finish();
}

struct ColorFrame : private flatbuffers::Table {
  int32_t frameIndex() const { return GetField<int32_t>(4, 0); }
  uint8_t tween() const { return GetField<uint8_t>(6, 1); }
  const Color *color() const { return GetStruct<const Color *>(8); }
  const EasingData *easingData() const { return GetPointer<const EasingData *>(10); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int32_t>(verifier, 4 /* frameIndex */) &&
           VerifyField<uint8_t>(verifier, 6 /* tween */) &&
           VerifyField<Color>(verifier, 8 /* color */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* easingData */) &&
           verifier.VerifyTable(easingData()) &&
           verifier.EndTable();
  }
};

struct ColorFrameBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_frameIndex(int32_t frameIndex) { fbb_.AddElement<int32_t>(4, frameIndex, 0); }
  void add_tween(uint8_t tween) { fbb_.AddElement<uint8_t>(6, tween, 1); }
  void add_color(const Color *color) { fbb_.AddStruct(8, color); }
  void add_easingData(flatbuffers::Offset<EasingData> easingData) { fbb_.AddOffset(10, easingData); }
  ColorFrameBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ColorFrameBuilder &operator=(const ColorFrameBuilder &);
  flatbuffers::Offset<ColorFrame> Finish() {
    auto o = flatbuffers::Offset<ColorFrame>(fbb_.EndTable(start_, 4));
    return o;
  }
};

inline flatbuffers::Offset<ColorFrame> CreateColorFrame(flatbuffers::FlatBufferBuilder &_fbb,
   int32_t frameIndex = 0,
   uint8_t tween = 1,
   const Color *color = 0,
   flatbuffers::Offset<EasingData> easingData = 0) {
  ColorFrameBuilder builder_(_fbb);
  builder_.add_easingData(easingData);
  builder_.add_color(color);
  builder_.add_frameIndex(frameIndex);
  builder_.add_tween(tween);
  return builder_.Finish();
}

struct TextureFrame : private flatbuffers::Table {
  int32_t frameIndex() const { return GetField<int32_t>(4, 0); }
  uint8_t tween() const { return GetField<uint8_t>(6, 1); }
  const ResourceData *textureFile() const { return GetPointer<const ResourceData *>(8); }
  const EasingData *easingData() const { return GetPointer<const EasingData *>(10); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int32_t>(verifier, 4 /* frameIndex */) &&
           VerifyField<uint8_t>(verifier, 6 /* tween */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* textureFile */) &&
           verifier.VerifyTable(textureFile()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* easingData */) &&
           verifier.VerifyTable(easingData()) &&
           verifier.EndTable();
  }
};

struct TextureFrameBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_frameIndex(int32_t frameIndex) { fbb_.AddElement<int32_t>(4, frameIndex, 0); }
  void add_tween(uint8_t tween) { fbb_.AddElement<uint8_t>(6, tween, 1); }
  void add_textureFile(flatbuffers::Offset<ResourceData> textureFile) { fbb_.AddOffset(8, textureFile); }
  void add_easingData(flatbuffers::Offset<EasingData> easingData) { fbb_.AddOffset(10, easingData); }
  TextureFrameBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  TextureFrameBuilder &operator=(const TextureFrameBuilder &);
  flatbuffers::Offset<TextureFrame> Finish() {
    auto o = flatbuffers::Offset<TextureFrame>(fbb_.EndTable(start_, 4));
    return o;
  }
};

inline flatbuffers::Offset<TextureFrame> CreateTextureFrame(flatbuffers::FlatBufferBuilder &_fbb,
   int32_t frameIndex = 0,
   uint8_t tween = 1,
   flatbuffers::Offset<ResourceData> textureFile = 0,
   flatbuffers::Offset<EasingData> easingData = 0) {
  TextureFrameBuilder builder_(_fbb);
  builder_.add_easingData(easingData);
  builder_.add_textureFile(textureFile);
  builder_.add_frameIndex(frameIndex);
  builder_.add_tween(tween);
  return builder_.Finish();
}

struct EventFrame : private flatbuffers::Table {
  int32_t frameIndex() const { return GetField<int32_t>(4, 0); }
  uint8_t tween() const { return GetField<uint8_t>(6, 1); }
  const flatbuffers::String *value() const { return GetPointer<const flatbuffers::String *>(8); }
  const EasingData *easingData() const { return GetPointer<const EasingData *>(10); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int32_t>(verifier, 4 /* frameIndex */) &&
           VerifyField<uint8_t>(verifier, 6 /* tween */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* value */) &&
           verifier.Verify(value()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* easingData */) &&
           verifier.VerifyTable(easingData()) &&
           verifier.EndTable();
  }
};

struct EventFrameBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_frameIndex(int32_t frameIndex) { fbb_.AddElement<int32_t>(4, frameIndex, 0); }
  void add_tween(uint8_t tween) { fbb_.AddElement<uint8_t>(6, tween, 1); }
  void add_value(flatbuffers::Offset<flatbuffers::String> value) { fbb_.AddOffset(8, value); }
  void add_easingData(flatbuffers::Offset<EasingData> easingData) { fbb_.AddOffset(10, easingData); }
  EventFrameBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  EventFrameBuilder &operator=(const EventFrameBuilder &);
  flatbuffers::Offset<EventFrame> Finish() {
    auto o = flatbuffers::Offset<EventFrame>(fbb_.EndTable(start_, 4));
    return o;
  }
};

inline flatbuffers::Offset<EventFrame> CreateEventFrame(flatbuffers::FlatBufferBuilder &_fbb,
   int32_t frameIndex = 0,
   uint8_t tween = 1,
   flatbuffers::Offset<flatbuffers::String> value = 0,
   flatbuffers::Offset<EasingData> easingData = 0) {
  EventFrameBuilder builder_(_fbb);
  builder_.add_easingData(easingData);
  builder_.add_value(value);
  builder_.add_frameIndex(frameIndex);
  builder_.add_tween(tween);
  return builder_.Finish();
}

struct IntFrame : private flatbuffers::Table {
  int32_t frameIndex() const { return GetField<int32_t>(4, 0); }
  uint8_t tween() const { return GetField<uint8_t>(6, 1); }
  int32_t value() const { return GetField<int32_t>(8, 0); }
  const EasingData *easingData() const { return GetPointer<const EasingData *>(10); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int32_t>(verifier, 4 /* frameIndex */) &&
           VerifyField<uint8_t>(verifier, 6 /* tween */) &&
           VerifyField<int32_t>(verifier, 8 /* value */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* easingData */) &&
           verifier.VerifyTable(easingData()) &&
           verifier.EndTable();
  }
};

struct IntFrameBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_frameIndex(int32_t frameIndex) { fbb_.AddElement<int32_t>(4, frameIndex, 0); }
  void add_tween(uint8_t tween) { fbb_.AddElement<uint8_t>(6, tween, 1); }
  void add_value(int32_t value) { fbb_.AddElement<int32_t>(8, value, 0); }
  void add_easingData(flatbuffers::Offset<EasingData> easingData) { fbb_.AddOffset(10, easingData); }
  IntFrameBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  IntFrameBuilder &operator=(const IntFrameBuilder &);
  flatbuffers::Offset<IntFrame> Finish() {
    auto o = flatbuffers::Offset<IntFrame>(fbb_.EndTable(start_, 4));
    return o;
  }
};

inline flatbuffers::Offset<IntFrame> CreateIntFrame(flatbuffers::FlatBufferBuilder &_fbb,
   int32_t frameIndex = 0,
   uint8_t tween = 1,
   int32_t value = 0,
   flatbuffers::Offset<EasingData> easingData = 0) {
  IntFrameBuilder builder_(_fbb);
  builder_.add_easingData(easingData);
  builder_.add_value(value);
  builder_.add_frameIndex(frameIndex);
  builder_.add_tween(tween);
  return builder_.Finish();
}

struct BoolFrame : private flatbuffers::Table {
  int32_t frameIndex() const { return GetField<int32_t>(4, 0); }
  uint8_t tween() const { return GetField<uint8_t>(6, 1); }
  uint8_t value() const { return GetField<uint8_t>(8, 1); }
  const EasingData *easingData() const { return GetPointer<const EasingData *>(10); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int32_t>(verifier, 4 /* frameIndex */) &&
           VerifyField<uint8_t>(verifier, 6 /* tween */) &&
           VerifyField<uint8_t>(verifier, 8 /* value */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* easingData */) &&
           verifier.VerifyTable(easingData()) &&
           verifier.EndTable();
  }
};

struct BoolFrameBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_frameIndex(int32_t frameIndex) { fbb_.AddElement<int32_t>(4, frameIndex, 0); }
  void add_tween(uint8_t tween) { fbb_.AddElement<uint8_t>(6, tween, 1); }
  void add_value(uint8_t value) { fbb_.AddElement<uint8_t>(8, value, 1); }
  void add_easingData(flatbuffers::Offset<EasingData> easingData) { fbb_.AddOffset(10, easingData); }
  BoolFrameBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  BoolFrameBuilder &operator=(const BoolFrameBuilder &);
  flatbuffers::Offset<BoolFrame> Finish() {
    auto o = flatbuffers::Offset<BoolFrame>(fbb_.EndTable(start_, 4));
    return o;
  }
};

inline flatbuffers::Offset<BoolFrame> CreateBoolFrame(flatbuffers::FlatBufferBuilder &_fbb,
   int32_t frameIndex = 0,
   uint8_t tween = 1,
   uint8_t value = 1,
   flatbuffers::Offset<EasingData> easingData = 0) {
  BoolFrameBuilder builder_(_fbb);
  builder_.add_easingData(easingData);
  builder_.add_frameIndex(frameIndex);
  builder_.add_value(value);
  builder_.add_tween(tween);
  return builder_.Finish();
}

struct InnerActionFrame : private flatbuffers::Table {
  int32_t frameIndex() const { return GetField<int32_t>(4, 0); }
  uint8_t tween() const { return GetField<uint8_t>(6, 1); }
  int32_t innerActionType() const { return GetField<int32_t>(8, 0); }
  const flatbuffers::String *currentAniamtionName() const { return GetPointer<const flatbuffers::String *>(10); }
  int32_t singleFrameIndex() const { return GetField<int32_t>(12, 0); }
  const EasingData *easingData() const { return GetPointer<const EasingData *>(14); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int32_t>(verifier, 4 /* frameIndex */) &&
           VerifyField<uint8_t>(verifier, 6 /* tween */) &&
           VerifyField<int32_t>(verifier, 8 /* innerActionType */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 10 /* currentAniamtionName */) &&
           verifier.Verify(currentAniamtionName()) &&
           VerifyField<int32_t>(verifier, 12 /* singleFrameIndex */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 14 /* easingData */) &&
           verifier.VerifyTable(easingData()) &&
           verifier.EndTable();
  }
};

struct InnerActionFrameBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_frameIndex(int32_t frameIndex) { fbb_.AddElement<int32_t>(4, frameIndex, 0); }
  void add_tween(uint8_t tween) { fbb_.AddElement<uint8_t>(6, tween, 1); }
  void add_innerActionType(int32_t innerActionType) { fbb_.AddElement<int32_t>(8, innerActionType, 0); }
  void add_currentAniamtionName(flatbuffers::Offset<flatbuffers::String> currentAniamtionName) { fbb_.AddOffset(10, currentAniamtionName); }
  void add_singleFrameIndex(int32_t singleFrameIndex) { fbb_.AddElement<int32_t>(12, singleFrameIndex, 0); }
  void add_easingData(flatbuffers::Offset<EasingData> easingData) { fbb_.AddOffset(14, easingData); }
  InnerActionFrameBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  InnerActionFrameBuilder &operator=(const InnerActionFrameBuilder &);
  flatbuffers::Offset<InnerActionFrame> Finish() {
    auto o = flatbuffers::Offset<InnerActionFrame>(fbb_.EndTable(start_, 6));
    return o;
  }
};

inline flatbuffers::Offset<InnerActionFrame> CreateInnerActionFrame(flatbuffers::FlatBufferBuilder &_fbb,
   int32_t frameIndex = 0,
   uint8_t tween = 1,
   int32_t innerActionType = 0,
   flatbuffers::Offset<flatbuffers::String> currentAniamtionName = 0,
   int32_t singleFrameIndex = 0,
   flatbuffers::Offset<EasingData> easingData = 0) {
  InnerActionFrameBuilder builder_(_fbb);
  builder_.add_easingData(easingData);
  builder_.add_singleFrameIndex(singleFrameIndex);
  builder_.add_currentAniamtionName(currentAniamtionName);
  builder_.add_innerActionType(innerActionType);
  builder_.add_frameIndex(frameIndex);
  builder_.add_tween(tween);
  return builder_.Finish();
}

struct EasingData : private flatbuffers::Table {
  int32_t type() const { return GetField<int32_t>(4, -1); }
  const flatbuffers::Vector<const Position *> *points() const { return GetPointer<const flatbuffers::Vector<const Position *> *>(6); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int32_t>(verifier, 4 /* type */) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* points */) &&
           verifier.Verify(points()) &&
           verifier.EndTable();
  }
};

struct EasingDataBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_type(int32_t type) { fbb_.AddElement<int32_t>(4, type, -1); }
  void add_points(flatbuffers::Offset<flatbuffers::Vector<const Position *>> points) { fbb_.AddOffset(6, points); }
  EasingDataBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  EasingDataBuilder &operator=(const EasingDataBuilder &);
  flatbuffers::Offset<EasingData> Finish() {
    auto o = flatbuffers::Offset<EasingData>(fbb_.EndTable(start_, 2));
    return o;
  }
};

inline flatbuffers::Offset<EasingData> CreateEasingData(flatbuffers::FlatBufferBuilder &_fbb,
   int32_t type = -1,
   flatbuffers::Offset<flatbuffers::Vector<const Position *>> points = 0) {
  EasingDataBuilder builder_(_fbb);
  builder_.add_points(points);
  builder_.add_type(type);
  return builder_.Finish();
}

struct ResourceData : private flatbuffers::Table {
  const flatbuffers::String *path() const { return GetPointer<const flatbuffers::String *>(4); }
  const flatbuffers::String *plistFile() const { return GetPointer<const flatbuffers::String *>(6); }
  int32_t resourceType() const { return GetField<int32_t>(8, 0); }
  bool Verify(flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* path */) &&
           verifier.Verify(path()) &&
           VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* plistFile */) &&
           verifier.Verify(plistFile()) &&
           VerifyField<int32_t>(verifier, 8 /* resourceType */) &&
           verifier.EndTable();
  }
};

struct ResourceDataBuilder {
  flatbuffers::FlatBufferBuilder &fbb_;
  flatbuffers::uoffset_t start_;
  void add_path(flatbuffers::Offset<flatbuffers::String> path) { fbb_.AddOffset(4, path); }
  void add_plistFile(flatbuffers::Offset<flatbuffers::String> plistFile) { fbb_.AddOffset(6, plistFile); }
  void add_resourceType(int32_t resourceType) { fbb_.AddElement<int32_t>(8, resourceType, 0); }
  ResourceDataBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  ResourceDataBuilder &operator=(const ResourceDataBuilder &);
  flatbuffers::Offset<ResourceData> Finish() {
    auto o = flatbuffers::Offset<ResourceData>(fbb_.EndTable(start_, 3));
    return o;
  }
};

inline flatbuffers::Offset<ResourceData> CreateResourceData(flatbuffers::FlatBufferBuilder &_fbb,
   flatbuffers::Offset<flatbuffers::String> path = 0,
   flatbuffers::Offset<flatbuffers::String> plistFile = 0,
   int32_t resourceType = 0) {
  ResourceDataBuilder builder_(_fbb);
  builder_.add_resourceType(resourceType);
  builder_.add_plistFile(plistFile);
  builder_.add_path(path);
  return builder_.Finish();
}

inline const CSParseBinary *GetCSParseBinary(const void *buf) { return flatbuffers::GetRoot<CSParseBinary>(buf); }

inline bool VerifyCSParseBinaryBuffer(flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer<CSParseBinary>(); }

inline void FinishCSParseBinaryBuffer(flatbuffers::FlatBufferBuilder &fbb, flatbuffers::Offset<CSParseBinary> root) { fbb.Finish(root); }

}  // namespace flatbuffers

#endif  // FLATBUFFERS_GENERATED_CSPARSEBINARY_FLATBUFFERS_H_
