﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ProtoBuf;

[ProtoContract]
public class SynQuaterion
{
    [ProtoMember(1)]
    public float x { get; set;}
    [ProtoMember(2)]
    public float y { get; set; }
    [ProtoMember(3)]
    public float z { get; set; }
    [ProtoMember(4)]
    public float w { get; set; }
    public SynQuaterion() { }
    public SynQuaterion(Quaternion q)
    {
        x = q.x;
        y = q.y;
        z = q.z;
        w = q.w;
    }
    public Quaternion Quat()
    {
        return new Quaternion(x,y,z,w);
    }
}

[ProtoContract]
public class SynVector3
{
    [ProtoMember(1)]
    public float x { get; set; }
    [ProtoMember(2)]
    public float y { get; set; }
    [ProtoMember(3)]
    public float z { get; set; }

    public SynVector3() { }
    public SynVector3(Vector3 v)
    {
        x = v.x;
        y = v.y;
        z = v.z;
    }
    public Vector3 Vector()
    {
        return new Vector3(x, y, z);
    }
}
[ProtoContract]
public class SynTransform
{
    [ProtoMember(1)]
    public SynQuaterion rotation;
    [ProtoMember(2)]
    public SynVector3 position;
    [ProtoMember(3)]
    public SynVector3 scale;

    public SynTransform(){}
    public SynTransform(Transform t)
    {
        rotation = new SynQuaterion(t.rotation);
        position = new SynVector3(t.position);
        scale = new SynVector3(t.localScale);
    }

}
[ProtoContract]
public class SynVehicle
{
    [ProtoMember(1)]
    string name;
    [ProtoMember(2)]
    SynTransform transform;
    [ProtoMember(3)]
    float mass;
    [ProtoMember(4)]
    SynVector3 masspointOffset;
}
