Example #1
0
        public void GetData_Rotation()
        {
            this.RibbonSketchObject.transform.rotation = Quaternion.Euler(20, 40, 60);
            RibbonSketchObjectData data = (this.RibbonSketchObject as ISerializableComponent).GetData() as RibbonSketchObjectData;

            Assert.That(data.Rotation, Is.EqualTo(Quaternion.Euler(20, 40, 60)).Using(QuaternionEqualityComparer.Instance));
        }
Example #2
0
        public void ApplyData_Scale()
        {
            RibbonSketchObjectData data = (this.RibbonSketchObject as ISerializableComponent).GetData() as RibbonSketchObjectData;

            data.Scale = new Vector3(1, 2, 3);
            (this.RibbonSketchObject as ISerializableComponent).ApplyData(data);
            Assert.AreEqual(new Vector3(1, 2, 3), this.RibbonSketchObject.transform.localScale);
        }
Example #3
0
        public void ApplyData_Position()
        {
            RibbonSketchObjectData data = (this.RibbonSketchObject as ISerializableComponent).GetData() as RibbonSketchObjectData;

            data.Position = new Vector3(1, 2, 3);
            (this.RibbonSketchObject as ISerializableComponent).ApplyData(data);
            Assert.AreEqual(new Vector3(1, 2, 3), this.RibbonSketchObject.transform.position);
        }
        SerializableComponentData ISerializableComponent.GetData()
        {
            RibbonSketchObjectData ribbonData = new RibbonSketchObjectData();

            ribbonData.ControlPoints            = GetPoints();
            ribbonData.ControlPointOrientations = GetRotations();
            ribbonData.CrossSectionScale        = RibbonMesh.Scale;
            ribbonData.CrossSectionVertices     = RibbonMesh.GetCrossSection();
            ribbonData.SetDataFromTransform(this.transform);
            ribbonData.SketchMaterial = new SketchMaterialData(meshRenderer.sharedMaterial);
            return(ribbonData);
        }
Example #5
0
        public void GetData_ControlPoints()
        {
            this.RibbonSketchObject.transform.rotation = Quaternion.identity;
            this.RibbonSketchObject.SetControlPoints(
                new List <Vector3> {
                new Vector3(1, 2, 3), new Vector3(3, 2, 1), new Vector3(1, 1, 1), new Vector3(2, 2, 2)
            },
                new List <Quaternion> {
                Quaternion.Euler(0, 0, 0), Quaternion.Euler(0, 45, 0), Quaternion.Euler(25, 10, 5), Quaternion.Euler(0, 0, 35)
            }
                );
            RibbonSketchObjectData data = (this.RibbonSketchObject as ISerializableComponent).GetData() as RibbonSketchObjectData;

            Assert.AreEqual(new Vector3(1, 1, 1), data.ControlPoints[2]);
            Assert.AreEqual(Quaternion.Euler(25, 10, 5), data.ControlPointOrientations[2]);
        }
Example #6
0
        public void ApplyData_ControlPoints()
        {
            this.RibbonSketchObject.transform.rotation = Quaternion.identity;
            RibbonSketchObjectData data = (this.RibbonSketchObject as ISerializableComponent).GetData() as RibbonSketchObjectData;

            data.ControlPoints = new List <Vector3> {
                new Vector3(1, 2, 3), new Vector3(3, 2, 1), new Vector3(1, 1, 1), new Vector3(2, 2, 2)
            };
            data.ControlPointOrientations = new List <Quaternion> {
                Quaternion.Euler(0, 0, 0), Quaternion.Euler(0, 45, 0), Quaternion.Euler(25, 10, 5), Quaternion.Euler(0, 0, 35)
            };
            (this.RibbonSketchObject as ISerializableComponent).ApplyData(data);
            Assert.AreEqual(new Vector3(1, 1, 1), this.RibbonSketchObject.GetPoints()[2]);
            Assert.That(this.RibbonSketchObject.GetRotations()[2], Is.EqualTo(Quaternion.Euler(25, 10, 5)).Using(QuaternionEqualityComparer.Instance));
            Assert.AreEqual(4 * 3, this.RibbonSketchObject.GetComponent <MeshFilter>().sharedMesh.vertexCount);
        }
Example #7
0
        public void GetData_CrossSection()
        {
            this.RibbonSketchObject.SetControlPoints(
                new List <Vector3> {
                new Vector3(1, 2, 3), new Vector3(3, 2, 1), new Vector3(1, 1, 1), new Vector3(2, 2, 2)
            },
                new List <Quaternion> {
                Quaternion.Euler(0, 0, 0), Quaternion.Euler(0, 45, 0), Quaternion.Euler(25, 10, 5), Quaternion.Euler(0, 0, 35)
            }
                );
            this.RibbonSketchObject.SetCrossSection(new List <Vector3> {
                new Vector3(-.3f, 0, 0), new Vector3(.3f, 0, 0)
            }, Vector3.one);
            RibbonSketchObjectData data = (this.RibbonSketchObject as ISerializableComponent).GetData() as RibbonSketchObjectData;

            Assert.AreEqual(new Vector3(.3f, 0, 0), data.CrossSectionVertices[1]);
        }
Example #8
0
        public void ApplyData_CrossSection()
        {
            this.RibbonSketchObject.transform.rotation = Quaternion.identity;
            RibbonSketchObjectData data = (this.RibbonSketchObject as ISerializableComponent).GetData() as RibbonSketchObjectData;

            data.ControlPoints = new List <Vector3> {
                new Vector3(1, 2, 3), new Vector3(3, 2, 1), new Vector3(1, 1, 1), new Vector3(2, 2, 2)
            };
            data.ControlPointOrientations = new List <Quaternion> {
                Quaternion.Euler(0, 0, 0), Quaternion.Euler(0, 45, 0), Quaternion.Euler(25, 10, 5), Quaternion.Euler(0, 0, 35)
            };
            data.CrossSectionVertices = new List <Vector3> {
                new Vector3(-.3f, 0, 0), new Vector3(.3f, 0, 0)
            };
            (this.RibbonSketchObject as ISerializableComponent).ApplyData(data);
            Assert.AreEqual(4 * 2, this.RibbonSketchObject.GetComponent <MeshFilter>().sharedMesh.vertexCount);
            Assert.AreEqual(new Vector3(-.3f, 0, 0), this.RibbonSketchObject.GetCrossSection()[0]);
        }