// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: proto/topicData/topicDataRecord/dataStructure/matrix4x4.proto

package ubii.dataStructure;

public final class Matrix4X4 {
  private Matrix4X4() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface Matrix4x4OrBuilder extends
      // @@protoc_insertion_point(interface_extends:ubii.dataStructure.Matrix4x4)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>double m00 = 1;</code>
     */
    double getM00();

    /**
     * <code>double m01 = 2;</code>
     */
    double getM01();

    /**
     * <code>double m02 = 3;</code>
     */
    double getM02();

    /**
     * <code>double m03 = 4;</code>
     */
    double getM03();

    /**
     * <code>double m10 = 5;</code>
     */
    double getM10();

    /**
     * <code>double m11 = 6;</code>
     */
    double getM11();

    /**
     * <code>double m12 = 7;</code>
     */
    double getM12();

    /**
     * <code>double m13 = 8;</code>
     */
    double getM13();

    /**
     * <code>double m20 = 9;</code>
     */
    double getM20();

    /**
     * <code>double m21 = 10;</code>
     */
    double getM21();

    /**
     * <code>double m22 = 11;</code>
     */
    double getM22();

    /**
     * <code>double m23 = 12;</code>
     */
    double getM23();

    /**
     * <code>double m30 = 13;</code>
     */
    double getM30();

    /**
     * <code>double m31 = 14;</code>
     */
    double getM31();

    /**
     * <code>double m32 = 15;</code>
     */
    double getM32();

    /**
     * <code>double m33 = 16;</code>
     */
    double getM33();
  }
  /**
   * Protobuf type {@code ubii.dataStructure.Matrix4x4}
   */
  public  static final class Matrix4x4 extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ubii.dataStructure.Matrix4x4)
      Matrix4x4OrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Matrix4x4.newBuilder() to construct.
    private Matrix4x4(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Matrix4x4() {
      m00_ = 0D;
      m01_ = 0D;
      m02_ = 0D;
      m03_ = 0D;
      m10_ = 0D;
      m11_ = 0D;
      m12_ = 0D;
      m13_ = 0D;
      m20_ = 0D;
      m21_ = 0D;
      m22_ = 0D;
      m23_ = 0D;
      m30_ = 0D;
      m31_ = 0D;
      m32_ = 0D;
      m33_ = 0D;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Matrix4x4(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 9: {

              m00_ = input.readDouble();
              break;
            }
            case 17: {

              m01_ = input.readDouble();
              break;
            }
            case 25: {

              m02_ = input.readDouble();
              break;
            }
            case 33: {

              m03_ = input.readDouble();
              break;
            }
            case 41: {

              m10_ = input.readDouble();
              break;
            }
            case 49: {

              m11_ = input.readDouble();
              break;
            }
            case 57: {

              m12_ = input.readDouble();
              break;
            }
            case 65: {

              m13_ = input.readDouble();
              break;
            }
            case 73: {

              m20_ = input.readDouble();
              break;
            }
            case 81: {

              m21_ = input.readDouble();
              break;
            }
            case 89: {

              m22_ = input.readDouble();
              break;
            }
            case 97: {

              m23_ = input.readDouble();
              break;
            }
            case 105: {

              m30_ = input.readDouble();
              break;
            }
            case 113: {

              m31_ = input.readDouble();
              break;
            }
            case 121: {

              m32_ = input.readDouble();
              break;
            }
            case 129: {

              m33_ = input.readDouble();
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ubii.dataStructure.Matrix4X4.internal_static_ubii_dataStructure_Matrix4x4_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ubii.dataStructure.Matrix4X4.internal_static_ubii_dataStructure_Matrix4x4_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ubii.dataStructure.Matrix4X4.Matrix4x4.class, ubii.dataStructure.Matrix4X4.Matrix4x4.Builder.class);
    }

    public static final int M00_FIELD_NUMBER = 1;
    private double m00_;
    /**
     * <code>double m00 = 1;</code>
     */
    public double getM00() {
      return m00_;
    }

    public static final int M01_FIELD_NUMBER = 2;
    private double m01_;
    /**
     * <code>double m01 = 2;</code>
     */
    public double getM01() {
      return m01_;
    }

    public static final int M02_FIELD_NUMBER = 3;
    private double m02_;
    /**
     * <code>double m02 = 3;</code>
     */
    public double getM02() {
      return m02_;
    }

    public static final int M03_FIELD_NUMBER = 4;
    private double m03_;
    /**
     * <code>double m03 = 4;</code>
     */
    public double getM03() {
      return m03_;
    }

    public static final int M10_FIELD_NUMBER = 5;
    private double m10_;
    /**
     * <code>double m10 = 5;</code>
     */
    public double getM10() {
      return m10_;
    }

    public static final int M11_FIELD_NUMBER = 6;
    private double m11_;
    /**
     * <code>double m11 = 6;</code>
     */
    public double getM11() {
      return m11_;
    }

    public static final int M12_FIELD_NUMBER = 7;
    private double m12_;
    /**
     * <code>double m12 = 7;</code>
     */
    public double getM12() {
      return m12_;
    }

    public static final int M13_FIELD_NUMBER = 8;
    private double m13_;
    /**
     * <code>double m13 = 8;</code>
     */
    public double getM13() {
      return m13_;
    }

    public static final int M20_FIELD_NUMBER = 9;
    private double m20_;
    /**
     * <code>double m20 = 9;</code>
     */
    public double getM20() {
      return m20_;
    }

    public static final int M21_FIELD_NUMBER = 10;
    private double m21_;
    /**
     * <code>double m21 = 10;</code>
     */
    public double getM21() {
      return m21_;
    }

    public static final int M22_FIELD_NUMBER = 11;
    private double m22_;
    /**
     * <code>double m22 = 11;</code>
     */
    public double getM22() {
      return m22_;
    }

    public static final int M23_FIELD_NUMBER = 12;
    private double m23_;
    /**
     * <code>double m23 = 12;</code>
     */
    public double getM23() {
      return m23_;
    }

    public static final int M30_FIELD_NUMBER = 13;
    private double m30_;
    /**
     * <code>double m30 = 13;</code>
     */
    public double getM30() {
      return m30_;
    }

    public static final int M31_FIELD_NUMBER = 14;
    private double m31_;
    /**
     * <code>double m31 = 14;</code>
     */
    public double getM31() {
      return m31_;
    }

    public static final int M32_FIELD_NUMBER = 15;
    private double m32_;
    /**
     * <code>double m32 = 15;</code>
     */
    public double getM32() {
      return m32_;
    }

    public static final int M33_FIELD_NUMBER = 16;
    private double m33_;
    /**
     * <code>double m33 = 16;</code>
     */
    public double getM33() {
      return m33_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (m00_ != 0D) {
        output.writeDouble(1, m00_);
      }
      if (m01_ != 0D) {
        output.writeDouble(2, m01_);
      }
      if (m02_ != 0D) {
        output.writeDouble(3, m02_);
      }
      if (m03_ != 0D) {
        output.writeDouble(4, m03_);
      }
      if (m10_ != 0D) {
        output.writeDouble(5, m10_);
      }
      if (m11_ != 0D) {
        output.writeDouble(6, m11_);
      }
      if (m12_ != 0D) {
        output.writeDouble(7, m12_);
      }
      if (m13_ != 0D) {
        output.writeDouble(8, m13_);
      }
      if (m20_ != 0D) {
        output.writeDouble(9, m20_);
      }
      if (m21_ != 0D) {
        output.writeDouble(10, m21_);
      }
      if (m22_ != 0D) {
        output.writeDouble(11, m22_);
      }
      if (m23_ != 0D) {
        output.writeDouble(12, m23_);
      }
      if (m30_ != 0D) {
        output.writeDouble(13, m30_);
      }
      if (m31_ != 0D) {
        output.writeDouble(14, m31_);
      }
      if (m32_ != 0D) {
        output.writeDouble(15, m32_);
      }
      if (m33_ != 0D) {
        output.writeDouble(16, m33_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (m00_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, m00_);
      }
      if (m01_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, m01_);
      }
      if (m02_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(3, m02_);
      }
      if (m03_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, m03_);
      }
      if (m10_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(5, m10_);
      }
      if (m11_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(6, m11_);
      }
      if (m12_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(7, m12_);
      }
      if (m13_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(8, m13_);
      }
      if (m20_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(9, m20_);
      }
      if (m21_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(10, m21_);
      }
      if (m22_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(11, m22_);
      }
      if (m23_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(12, m23_);
      }
      if (m30_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(13, m30_);
      }
      if (m31_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(14, m31_);
      }
      if (m32_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(15, m32_);
      }
      if (m33_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(16, m33_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ubii.dataStructure.Matrix4X4.Matrix4x4)) {
        return super.equals(obj);
      }
      ubii.dataStructure.Matrix4X4.Matrix4x4 other = (ubii.dataStructure.Matrix4X4.Matrix4x4) obj;

      boolean result = true;
      result = result && (
          java.lang.Double.doubleToLongBits(getM00())
          == java.lang.Double.doubleToLongBits(
              other.getM00()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM01())
          == java.lang.Double.doubleToLongBits(
              other.getM01()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM02())
          == java.lang.Double.doubleToLongBits(
              other.getM02()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM03())
          == java.lang.Double.doubleToLongBits(
              other.getM03()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM10())
          == java.lang.Double.doubleToLongBits(
              other.getM10()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM11())
          == java.lang.Double.doubleToLongBits(
              other.getM11()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM12())
          == java.lang.Double.doubleToLongBits(
              other.getM12()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM13())
          == java.lang.Double.doubleToLongBits(
              other.getM13()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM20())
          == java.lang.Double.doubleToLongBits(
              other.getM20()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM21())
          == java.lang.Double.doubleToLongBits(
              other.getM21()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM22())
          == java.lang.Double.doubleToLongBits(
              other.getM22()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM23())
          == java.lang.Double.doubleToLongBits(
              other.getM23()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM30())
          == java.lang.Double.doubleToLongBits(
              other.getM30()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM31())
          == java.lang.Double.doubleToLongBits(
              other.getM31()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM32())
          == java.lang.Double.doubleToLongBits(
              other.getM32()));
      result = result && (
          java.lang.Double.doubleToLongBits(getM33())
          == java.lang.Double.doubleToLongBits(
              other.getM33()));
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + M00_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM00()));
      hash = (37 * hash) + M01_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM01()));
      hash = (37 * hash) + M02_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM02()));
      hash = (37 * hash) + M03_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM03()));
      hash = (37 * hash) + M10_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM10()));
      hash = (37 * hash) + M11_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM11()));
      hash = (37 * hash) + M12_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM12()));
      hash = (37 * hash) + M13_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM13()));
      hash = (37 * hash) + M20_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM20()));
      hash = (37 * hash) + M21_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM21()));
      hash = (37 * hash) + M22_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM22()));
      hash = (37 * hash) + M23_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM23()));
      hash = (37 * hash) + M30_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM30()));
      hash = (37 * hash) + M31_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM31()));
      hash = (37 * hash) + M32_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM32()));
      hash = (37 * hash) + M33_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM33()));
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ubii.dataStructure.Matrix4X4.Matrix4x4 parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ubii.dataStructure.Matrix4X4.Matrix4x4 prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ubii.dataStructure.Matrix4x4}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ubii.dataStructure.Matrix4x4)
        ubii.dataStructure.Matrix4X4.Matrix4x4OrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ubii.dataStructure.Matrix4X4.internal_static_ubii_dataStructure_Matrix4x4_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ubii.dataStructure.Matrix4X4.internal_static_ubii_dataStructure_Matrix4x4_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ubii.dataStructure.Matrix4X4.Matrix4x4.class, ubii.dataStructure.Matrix4X4.Matrix4x4.Builder.class);
      }

      // Construct using ubii.dataStructure.Matrix4X4.Matrix4x4.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        m00_ = 0D;

        m01_ = 0D;

        m02_ = 0D;

        m03_ = 0D;

        m10_ = 0D;

        m11_ = 0D;

        m12_ = 0D;

        m13_ = 0D;

        m20_ = 0D;

        m21_ = 0D;

        m22_ = 0D;

        m23_ = 0D;

        m30_ = 0D;

        m31_ = 0D;

        m32_ = 0D;

        m33_ = 0D;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ubii.dataStructure.Matrix4X4.internal_static_ubii_dataStructure_Matrix4x4_descriptor;
      }

      @java.lang.Override
      public ubii.dataStructure.Matrix4X4.Matrix4x4 getDefaultInstanceForType() {
        return ubii.dataStructure.Matrix4X4.Matrix4x4.getDefaultInstance();
      }

      @java.lang.Override
      public ubii.dataStructure.Matrix4X4.Matrix4x4 build() {
        ubii.dataStructure.Matrix4X4.Matrix4x4 result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ubii.dataStructure.Matrix4X4.Matrix4x4 buildPartial() {
        ubii.dataStructure.Matrix4X4.Matrix4x4 result = new ubii.dataStructure.Matrix4X4.Matrix4x4(this);
        result.m00_ = m00_;
        result.m01_ = m01_;
        result.m02_ = m02_;
        result.m03_ = m03_;
        result.m10_ = m10_;
        result.m11_ = m11_;
        result.m12_ = m12_;
        result.m13_ = m13_;
        result.m20_ = m20_;
        result.m21_ = m21_;
        result.m22_ = m22_;
        result.m23_ = m23_;
        result.m30_ = m30_;
        result.m31_ = m31_;
        result.m32_ = m32_;
        result.m33_ = m33_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ubii.dataStructure.Matrix4X4.Matrix4x4) {
          return mergeFrom((ubii.dataStructure.Matrix4X4.Matrix4x4)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ubii.dataStructure.Matrix4X4.Matrix4x4 other) {
        if (other == ubii.dataStructure.Matrix4X4.Matrix4x4.getDefaultInstance()) return this;
        if (other.getM00() != 0D) {
          setM00(other.getM00());
        }
        if (other.getM01() != 0D) {
          setM01(other.getM01());
        }
        if (other.getM02() != 0D) {
          setM02(other.getM02());
        }
        if (other.getM03() != 0D) {
          setM03(other.getM03());
        }
        if (other.getM10() != 0D) {
          setM10(other.getM10());
        }
        if (other.getM11() != 0D) {
          setM11(other.getM11());
        }
        if (other.getM12() != 0D) {
          setM12(other.getM12());
        }
        if (other.getM13() != 0D) {
          setM13(other.getM13());
        }
        if (other.getM20() != 0D) {
          setM20(other.getM20());
        }
        if (other.getM21() != 0D) {
          setM21(other.getM21());
        }
        if (other.getM22() != 0D) {
          setM22(other.getM22());
        }
        if (other.getM23() != 0D) {
          setM23(other.getM23());
        }
        if (other.getM30() != 0D) {
          setM30(other.getM30());
        }
        if (other.getM31() != 0D) {
          setM31(other.getM31());
        }
        if (other.getM32() != 0D) {
          setM32(other.getM32());
        }
        if (other.getM33() != 0D) {
          setM33(other.getM33());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        ubii.dataStructure.Matrix4X4.Matrix4x4 parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (ubii.dataStructure.Matrix4X4.Matrix4x4) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private double m00_ ;
      /**
       * <code>double m00 = 1;</code>
       */
      public double getM00() {
        return m00_;
      }
      /**
       * <code>double m00 = 1;</code>
       */
      public Builder setM00(double value) {
        
        m00_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m00 = 1;</code>
       */
      public Builder clearM00() {
        
        m00_ = 0D;
        onChanged();
        return this;
      }

      private double m01_ ;
      /**
       * <code>double m01 = 2;</code>
       */
      public double getM01() {
        return m01_;
      }
      /**
       * <code>double m01 = 2;</code>
       */
      public Builder setM01(double value) {
        
        m01_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m01 = 2;</code>
       */
      public Builder clearM01() {
        
        m01_ = 0D;
        onChanged();
        return this;
      }

      private double m02_ ;
      /**
       * <code>double m02 = 3;</code>
       */
      public double getM02() {
        return m02_;
      }
      /**
       * <code>double m02 = 3;</code>
       */
      public Builder setM02(double value) {
        
        m02_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m02 = 3;</code>
       */
      public Builder clearM02() {
        
        m02_ = 0D;
        onChanged();
        return this;
      }

      private double m03_ ;
      /**
       * <code>double m03 = 4;</code>
       */
      public double getM03() {
        return m03_;
      }
      /**
       * <code>double m03 = 4;</code>
       */
      public Builder setM03(double value) {
        
        m03_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m03 = 4;</code>
       */
      public Builder clearM03() {
        
        m03_ = 0D;
        onChanged();
        return this;
      }

      private double m10_ ;
      /**
       * <code>double m10 = 5;</code>
       */
      public double getM10() {
        return m10_;
      }
      /**
       * <code>double m10 = 5;</code>
       */
      public Builder setM10(double value) {
        
        m10_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m10 = 5;</code>
       */
      public Builder clearM10() {
        
        m10_ = 0D;
        onChanged();
        return this;
      }

      private double m11_ ;
      /**
       * <code>double m11 = 6;</code>
       */
      public double getM11() {
        return m11_;
      }
      /**
       * <code>double m11 = 6;</code>
       */
      public Builder setM11(double value) {
        
        m11_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m11 = 6;</code>
       */
      public Builder clearM11() {
        
        m11_ = 0D;
        onChanged();
        return this;
      }

      private double m12_ ;
      /**
       * <code>double m12 = 7;</code>
       */
      public double getM12() {
        return m12_;
      }
      /**
       * <code>double m12 = 7;</code>
       */
      public Builder setM12(double value) {
        
        m12_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m12 = 7;</code>
       */
      public Builder clearM12() {
        
        m12_ = 0D;
        onChanged();
        return this;
      }

      private double m13_ ;
      /**
       * <code>double m13 = 8;</code>
       */
      public double getM13() {
        return m13_;
      }
      /**
       * <code>double m13 = 8;</code>
       */
      public Builder setM13(double value) {
        
        m13_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m13 = 8;</code>
       */
      public Builder clearM13() {
        
        m13_ = 0D;
        onChanged();
        return this;
      }

      private double m20_ ;
      /**
       * <code>double m20 = 9;</code>
       */
      public double getM20() {
        return m20_;
      }
      /**
       * <code>double m20 = 9;</code>
       */
      public Builder setM20(double value) {
        
        m20_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m20 = 9;</code>
       */
      public Builder clearM20() {
        
        m20_ = 0D;
        onChanged();
        return this;
      }

      private double m21_ ;
      /**
       * <code>double m21 = 10;</code>
       */
      public double getM21() {
        return m21_;
      }
      /**
       * <code>double m21 = 10;</code>
       */
      public Builder setM21(double value) {
        
        m21_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m21 = 10;</code>
       */
      public Builder clearM21() {
        
        m21_ = 0D;
        onChanged();
        return this;
      }

      private double m22_ ;
      /**
       * <code>double m22 = 11;</code>
       */
      public double getM22() {
        return m22_;
      }
      /**
       * <code>double m22 = 11;</code>
       */
      public Builder setM22(double value) {
        
        m22_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m22 = 11;</code>
       */
      public Builder clearM22() {
        
        m22_ = 0D;
        onChanged();
        return this;
      }

      private double m23_ ;
      /**
       * <code>double m23 = 12;</code>
       */
      public double getM23() {
        return m23_;
      }
      /**
       * <code>double m23 = 12;</code>
       */
      public Builder setM23(double value) {
        
        m23_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m23 = 12;</code>
       */
      public Builder clearM23() {
        
        m23_ = 0D;
        onChanged();
        return this;
      }

      private double m30_ ;
      /**
       * <code>double m30 = 13;</code>
       */
      public double getM30() {
        return m30_;
      }
      /**
       * <code>double m30 = 13;</code>
       */
      public Builder setM30(double value) {
        
        m30_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m30 = 13;</code>
       */
      public Builder clearM30() {
        
        m30_ = 0D;
        onChanged();
        return this;
      }

      private double m31_ ;
      /**
       * <code>double m31 = 14;</code>
       */
      public double getM31() {
        return m31_;
      }
      /**
       * <code>double m31 = 14;</code>
       */
      public Builder setM31(double value) {
        
        m31_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m31 = 14;</code>
       */
      public Builder clearM31() {
        
        m31_ = 0D;
        onChanged();
        return this;
      }

      private double m32_ ;
      /**
       * <code>double m32 = 15;</code>
       */
      public double getM32() {
        return m32_;
      }
      /**
       * <code>double m32 = 15;</code>
       */
      public Builder setM32(double value) {
        
        m32_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m32 = 15;</code>
       */
      public Builder clearM32() {
        
        m32_ = 0D;
        onChanged();
        return this;
      }

      private double m33_ ;
      /**
       * <code>double m33 = 16;</code>
       */
      public double getM33() {
        return m33_;
      }
      /**
       * <code>double m33 = 16;</code>
       */
      public Builder setM33(double value) {
        
        m33_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m33 = 16;</code>
       */
      public Builder clearM33() {
        
        m33_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ubii.dataStructure.Matrix4x4)
    }

    // @@protoc_insertion_point(class_scope:ubii.dataStructure.Matrix4x4)
    private static final ubii.dataStructure.Matrix4X4.Matrix4x4 DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ubii.dataStructure.Matrix4X4.Matrix4x4();
    }

    public static ubii.dataStructure.Matrix4X4.Matrix4x4 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Matrix4x4>
        PARSER = new com.google.protobuf.AbstractParser<Matrix4x4>() {
      @java.lang.Override
      public Matrix4x4 parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Matrix4x4(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Matrix4x4> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Matrix4x4> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ubii.dataStructure.Matrix4X4.Matrix4x4 getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ubii_dataStructure_Matrix4x4_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ubii_dataStructure_Matrix4x4_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n=proto/topicData/topicDataRecord/dataSt" +
      "ructure/matrix4x4.proto\022\022ubii.dataStruct" +
      "ure\"\333\001\n\tMatrix4x4\022\013\n\003m00\030\001 \001(\001\022\013\n\003m01\030\002 " +
      "\001(\001\022\013\n\003m02\030\003 \001(\001\022\013\n\003m03\030\004 \001(\001\022\013\n\003m10\030\005 \001" +
      "(\001\022\013\n\003m11\030\006 \001(\001\022\013\n\003m12\030\007 \001(\001\022\013\n\003m13\030\010 \001(" +
      "\001\022\013\n\003m20\030\t \001(\001\022\013\n\003m21\030\n \001(\001\022\013\n\003m22\030\013 \001(\001" +
      "\022\013\n\003m23\030\014 \001(\001\022\013\n\003m30\030\r \001(\001\022\013\n\003m31\030\016 \001(\001\022" +
      "\013\n\003m32\030\017 \001(\001\022\013\n\003m33\030\020 \001(\001b\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_ubii_dataStructure_Matrix4x4_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_ubii_dataStructure_Matrix4x4_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ubii_dataStructure_Matrix4x4_descriptor,
        new java.lang.String[] { "M00", "M01", "M02", "M03", "M10", "M11", "M12", "M13", "M20", "M21", "M22", "M23", "M30", "M31", "M32", "M33", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
