123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- public class SkinThickness
- {
- public void Serialize(BinaryWriter bw)
- {
- bw.Write("SkinThickness");
- bw.Write(SkinThickness.VER);
- bw.Write(this.use);
- bw.Write(this.groups.Count);
- foreach (KeyValuePair<string, SkinThickness.Group> keyValuePair in this.groups)
- {
- bw.Write(keyValuePair.Key);
- keyValuePair.Value.Serialize(bw);
- }
- }
- public void Deserialize(BinaryReader br)
- {
- this.groups = new Dictionary<string, SkinThickness.Group>();
- string a = br.ReadString();
- NDebug.Assert(a == "SkinThickness", "表皮までの距離ファイル破損。");
- int num = br.ReadInt32();
- this.use = br.ReadBoolean();
- int num2 = br.ReadInt32();
- for (int i = 0; i < num2; i++)
- {
- string key = br.ReadString();
- SkinThickness.Group group = new SkinThickness.Group();
- group.Deserialize(br);
- this.groups.Add(key, group);
- }
- }
- public bool use;
- public Dictionary<string, SkinThickness.Group> groups;
- private static readonly int VER = 100;
- public class Group
- {
- public void Serialize(BinaryWriter bw)
- {
- bw.Write(this.groupName);
- bw.Write(this.startBoneName);
- bw.Write(this.endBoneName);
- bw.Write(this.stepAngleDgree);
- bw.Write(this.points.Count);
- for (int i = 0; i < this.points.Count; i++)
- {
- this.points[i].Serialize(bw);
- }
- }
- public void Deserialize(BinaryReader br)
- {
- this.points = new List<SkinThickness.Group.Point>();
- this.groupName = br.ReadString();
- this.startBoneName = br.ReadString();
- this.endBoneName = br.ReadString();
- this.stepAngleDgree = br.ReadInt32();
- int num = br.ReadInt32();
- for (int i = 0; i < num; i++)
- {
- SkinThickness.Group.Point point = new SkinThickness.Group.Point();
- point.Deserialize(br);
- this.points.Add(point);
- }
- }
- public string groupName;
- public string startBoneName;
- public string endBoneName;
- public int stepAngleDgree;
- public List<SkinThickness.Group.Point> points;
- public class Point
- {
- public void Serialize(BinaryWriter bw)
- {
- bw.Write(this.targetBoneName);
- bw.Write(this.ratioSegmentStartToEnd);
- bw.Write(this.distanceParAngle.Count);
- for (int i = 0; i < this.distanceParAngle.Count; i++)
- {
- this.distanceParAngle[i].Serialize(bw);
- }
- }
- public void Deserialize(BinaryReader br)
- {
- this.distanceParAngle = new List<SkinThickness.Group.Point.DefPerAngle>();
- this.targetBoneName = br.ReadString();
- this.ratioSegmentStartToEnd = br.ReadSingle();
- int num = br.ReadInt32();
- for (int i = 0; i < num; i++)
- {
- SkinThickness.Group.Point.DefPerAngle defPerAngle = new SkinThickness.Group.Point.DefPerAngle();
- defPerAngle.Deserialize(br);
- this.distanceParAngle.Add(defPerAngle);
- }
- }
- public string targetBoneName;
- public float ratioSegmentStartToEnd;
- public List<SkinThickness.Group.Point.DefPerAngle> distanceParAngle;
- public class DefPerAngle
- {
- public void Serialize(BinaryWriter bw)
- {
- bw.Write(this.angleDgree);
- bw.Write(this.vidx);
- bw.Write(this.defaultDistance);
- }
- public void Deserialize(BinaryReader br)
- {
- this.angleDgree = br.ReadInt32();
- this.vidx = br.ReadInt32();
- this.defaultDistance = br.ReadSingle();
- }
- public int angleDgree;
- public int vidx;
- public float defaultDistance;
- }
- }
- }
- }
|