Esempio n. 1
0
        public void RingTest()
        {
            int     subdivY = 6;
            Vector3 point   = new Vector3(0, 0, 0);

            ring = new TreeRing(subdivY, point, Vector3.Cross(point + new Vector3(0, 1, 0), new Vector3(1, 0, 0)));;

            //these points were determined by instantiating cubes at these points (from this TreeRing calculation
            //cubes were seen in engine as forming a circle around the origin point
            Assert.AreEqual(ring.verts[0].x, 0f);
            Assert.AreEqual(ring.verts[0].y, 0f);
            Assert.AreEqual(ring.verts[0].z, -1.0f);

            Assert.LessOrEqual(Mathf.Abs(ring.verts[1].x - (-.9f)), epsilon);
            Assert.AreEqual(ring.verts[1].y, 0f);
            Assert.AreEqual(ring.verts[1].z, -.5f);

            /*
             * Assert.AreEqual(ring.verts[1], new Vector3(-.9f, 0f, -.5f));
             * Assert.AreEqual(ring.verts[2], new Vector3(-.9f, 0f, .5f));
             * Assert.AreEqual(ring.verts[0], new Vector3(0f, 0f, 1f));
             * Assert.AreEqual(ring.verts[2], new Vector3(.9f, 0f, .5f));
             * Assert.AreEqual(ring.verts[1], new Vector3(.9f, 0f, -.5f));
             */
            // A UnityTest behaves like a coroutine in Play Mode. In Edit Mode you can use
            // `yield return null;` to skip a frame.
            //[UnityTest]
            //public IEnumerator subDivTest()
            //{
            //    //gen.subDivVertGen()
            //    // Use the Assert class to test conditions.
            //    // Use yield to skip a frame.
            //    //yield return null;
            //}
        }
Esempio n. 2
0
    /// <summary>
    /// Treeseg params
    /// </summary>
    /// <param name="subDivX"> divisions of curve</param>
    /// <param name="subDivY"> number of points on rings</param>
    /// <param name="bezPath"></param>
    public TreeSeg(int subDivX, int subDivY, Bezier bezPath)
    {
        TreeRing[] segment = new TreeRing[subDivX];
        float Xincrement = 1f / (float)subDivX; // increments along Segment curve
        for (int i = 0; i <= subDivX - 1; i++) // POSSIBLE PROBLEM WITH TWISTED FIRST
        {
            Vector3 curvePoint = bezPath.Curve(i * Xincrement);
            Vector3 curvePerpendicularTangent = Vector3.Cross(bezPath.CurveTangentVectorN(i * Xincrement), new Vector3(1, 0, 0));
            //Vector3 curvePerpendicularTangent = Quaternion.Euler(90, 0, 0) * bezPath.CurveTanNVec();
            //Debug.Log(curvePoint);//find out what value this give me
            segment[i] = new TreeRing(subDivY, curvePoint, curvePerpendicularTangent);
        }

        bezierPath = bezPath;

        ringVerts = segment;

        ringsNum = ringVerts.Length;
        vertsInRing = ringVerts[0].verts.Length;
        vertsInSeg = ringsNum * vertsInRing;
    }
Esempio n. 3
0
 private void Awake()
 {
     ring = new TreeRing(subdivY, point, Vector3.Cross(point + new Vector3(0, 1, 0), new Vector3(1, 0, 0)));
 }