示例#1
0
        public void GenerateTextOrientation()
        {
            var bone = new An8Bone();

            bone.Orientation = new An8Quaternion
            {
                X = 2.0f,
                Y = 3.0f,
                Z = 4.0f,
                W = 5.0f
            };

            var text = bone.GenerateText();

            string expected =
                @"bone { """"
  length { 0.000000 }
  orientation { ( 2.000000 3.000000 4.000000 5.000000 ) }
}
";

            Assert.Equal(
                expected.Replace("\r\n", "\n"),
                text.Replace("\r\n", "\n"));
        }
示例#2
0
        public void ParseEmpty()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
");
        }
示例#3
0
        public void ParseOther()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
other { }
");
        }
示例#4
0
        public void ParseLocked()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
locked { }
");

            Assert.True(bone.IsLocked);
        }
示例#5
0
        public void ParseName()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
""abc""
");

            Assert.Equal("abc", bone.Name);
        }
示例#6
0
        public void ParseLength()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
length { 2.0 }
");

            Assert.Equal(2.0f, bone.Length);
        }
示例#7
0
        public void ParseComponent()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
group { }
");

            Assert.Equal(1, bone.Components.Count);
        }
示例#8
0
        public void ParseBone()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
bone { }
");

            Assert.Equal(1, bone.Bones.Count);
        }
示例#9
0
        public void ParseInfluence()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
influence { }
");

            Assert.NotNull(bone.Influence);
        }
示例#10
0
        public void ParseDegreeOfFreedom()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
dof { }
");

            Assert.Equal(1, bone.DegreesOfFreedom.Count);
        }
示例#11
0
        public void NewBone()
        {
            var bone = new An8Bone();

            Assert.Null(bone.Diameter);
            Assert.Null(bone.Orientation);
            Assert.False(bone.IsLocked);
            Assert.Null(bone.Influence);
            Assert.NotNull(bone.DegreesOfFreedom);
            Assert.NotNull(bone.Components);
            Assert.NotNull(bone.Bones);
        }
示例#12
0
        public void ParseDiameter()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
diameter { 2.0 }
");

            Assert.True(bone.Diameter.HasValue);
            Assert.Equal(2.0f, bone.Diameter.Value);
        }
示例#13
0
        public void ParseOrientation()
        {
            var bone = new An8Bone();

            bone.Parse(
                @"
orientation { ( 2.0 3.0 4.0 5.0 ) }
");

            Assert.NotNull(bone.Orientation);
            Assert.Equal(2.0f, bone.Orientation.X);
            Assert.Equal(3.0f, bone.Orientation.Y);
            Assert.Equal(4.0f, bone.Orientation.Z);
            Assert.Equal(5.0f, bone.Orientation.W);
        }
示例#14
0
        public void GenerateTextEmpty()
        {
            var bone = new An8Bone();

            var text = bone.GenerateText();

            string expected =
                @"bone { """"
  length { 0.000000 }
}
";

            Assert.Equal(
                expected.Replace("\r\n", "\n"),
                text.Replace("\r\n", "\n"));
        }
示例#15
0
        public void GenerateTextDiameter()
        {
            var bone = new An8Bone();

            bone.Diameter = 2.0f;

            var text = bone.GenerateText();

            string expected =
                @"bone { """"
  length { 0.000000 }
  diameter { 2.000000 }
}
";

            Assert.Equal(
                expected.Replace("\r\n", "\n"),
                text.Replace("\r\n", "\n"));
        }
示例#16
0
        public void GenerateTextLocked()
        {
            var bone = new An8Bone();

            bone.IsLocked = true;

            var text = bone.GenerateText();

            string expected =
                @"bone { """"
  length { 0.000000 }
  locked { }
}
";

            Assert.Equal(
                expected.Replace("\r\n", "\n"),
                text.Replace("\r\n", "\n"));
        }
示例#17
0
        public void GenerateTextDegreeOfFreedom()
        {
            var bone = new An8Bone();

            bone.DegreesOfFreedom.Add(new An8DegreeOfFreedom());

            var text = bone.GenerateText();

            string expected =
                @"bone { """"
  length { 0.000000 }
  dof { """" 0.000000 0.000000 0.000000 }
}
";

            Assert.Equal(
                expected.Replace("\r\n", "\n"),
                text.Replace("\r\n", "\n"));
        }
示例#18
0
        public void GenerateTextComponent()
        {
            var bone = new An8Bone();

            bone.Components.Add(new An8Group());

            var text = bone.GenerateText();

            string expected =
                @"bone { """"
  length { 0.000000 }
  group {
    name { """" }
  }
}
";

            Assert.Equal(
                expected.Replace("\r\n", "\n"),
                text.Replace("\r\n", "\n"));
        }