using System; using System.Collections.Generic; using System.IO; using UnityEngine; public class AMBinaryRotation : AMBinaryDataBaseObject { public static bool CheckType(AMTrack track) { return !(track == null) && track.getTrackType() == AMBinaryRotation.kTypeName; } public override void Update(int frame) { this.trans_.rotation = this.quaternion_array[frame]; } public override void Write(BinaryWriter binary) { List> list; Quaternion[] array = base.Compression(ref this.quaternion_array, out list); base.Write(binary); for (int i = 0; i < this.quaternion_array.Length; i++) { binary.Write(this.quaternion_array[i].x); binary.Write(this.quaternion_array[i].y); binary.Write(this.quaternion_array[i].z); binary.Write(this.quaternion_array[i].w); } } public override void Read(BinaryReader binary) { base.Read(binary); this.quaternion_array = new Quaternion[this.total_frame]; for (int i = 0; i < this.quaternion_array.Length; i++) { Quaternion quaternion = default(Quaternion); quaternion.x = binary.ReadSingle(); quaternion.y = binary.ReadSingle(); quaternion.z = binary.ReadSingle(); quaternion.w = binary.ReadSingle(); this.quaternion_array[i] = quaternion; } this.trans_ = base.obj.transform; } public override void SetGameObject(GameObject new_obj) { base.obj = new_obj; this.trans_ = base.obj.transform; } public override string type_name { get { return AMBinaryRotation.kTypeName; } } public static string kTypeName = "Rotation"; public Transform trans_; public Quaternion[] quaternion_array; }