//Do not edit! This file was generated by Unity-ROS MessageGeneration.
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using Unity.Robotics.ROSTCPConnector.MessageGeneration;

namespace RosMessageTypes.GenLocationsOnMesh
{
    [Serializable]
    public class LocationsOnMeshMsg : Message
    {
        public const string k_RosMessageName = "gen_locations_on_mesh_msgs/LocationsOnMesh";
        public override string RosMessageName => k_RosMessageName;

        public uint[] location_id;
        public double[] x;
        public double[] y;
        public double[] z;

        public LocationsOnMeshMsg()
        {
            this.location_id = new uint[0];
            this.x = new double[0];
            this.y = new double[0];
            this.z = new double[0];
        }

        public LocationsOnMeshMsg(uint[] location_id, double[] x, double[] y, double[] z)
        {
            this.location_id = location_id;
            this.x = x;
            this.y = y;
            this.z = z;
        }

        public static LocationsOnMeshMsg Deserialize(MessageDeserializer deserializer) => new LocationsOnMeshMsg(deserializer);

        private LocationsOnMeshMsg(MessageDeserializer deserializer)
        {
            deserializer.Read(out this.location_id, sizeof(uint), deserializer.ReadLength());
            deserializer.Read(out this.x, sizeof(double), deserializer.ReadLength());
            deserializer.Read(out this.y, sizeof(double), deserializer.ReadLength());
            deserializer.Read(out this.z, sizeof(double), deserializer.ReadLength());
        }

        public override void SerializeTo(MessageSerializer serializer)
        {
            serializer.WriteLength(this.location_id);
            serializer.Write(this.location_id);
            serializer.WriteLength(this.x);
            serializer.Write(this.x);
            serializer.WriteLength(this.y);
            serializer.Write(this.y);
            serializer.WriteLength(this.z);
            serializer.Write(this.z);
        }

        public override string ToString()
        {
            return "LocationsOnMeshMsg: " +
            "\nlocation_id: " + System.String.Join(", ", location_id.ToList()) +
            "\nx: " + System.String.Join(", ", x.ToList()) +
            "\ny: " + System.String.Join(", ", y.ToList()) +
            "\nz: " + System.String.Join(", ", z.ToList());
        }

#if UNITY_EDITOR
        [UnityEditor.InitializeOnLoadMethod]
#else
        [UnityEngine.RuntimeInitializeOnLoadMethod]
#endif
        public static void Register()
        {
            MessageRegistry.Register(k_RosMessageName, Deserialize);
        }
    }
}
