示例#1
0
    // Start is called before the first frame update
    void Start()
    {
        controller = transform.GetComponent <CharacterController>();
        anime      = transform.GetChild(0).GetComponent <Animator>();
        sTC        = GameObject.FindGameObjectWithTag("StairCreator").GetComponent <StairCreator>();
        speed      = speedArray[speedIdx];
        timer      = 0f;

        anime.SetBool("run", true);
    }
示例#2
0
        public void CreateCenterLineTest()
        {
            // Prepair test case
            Point3d origin             = new Point3d(0, 0, 0);
            Point3d top                = new Point3d(0, 0, 70);
            Line    centerLineExpected = new Line(origin, top);

            // create center line
            Line centerLine = StairCreator.CreateCenterLine(70);

            double distFrom = (centerLineExpected.From - centerLine.From).Length;
            double distTo   = (centerLineExpected.To - centerLine.To).Length;

            Assert.AreEqual(0.0, distFrom);
            Assert.AreEqual(0.0, distTo);
        }
示例#3
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object can be used to retrieve data from input parameters and
        /// to store data in output parameters.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            double h        = 0.0;
            double l        = 0.0;
            double tangle   = 0.0;
            int    numStair = 10;

            DA.GetData(0, ref h);
            DA.GetData(1, ref l);
            DA.GetData(2, ref tangle);
            DA.GetData(3, ref numStair);

            var result = StairCreator.CreateStair(h, l, tangle, numStair);

            DA.SetData(0, result.Item1);
            DA.SetDataList(1, new List <Line>(result.Item2));
        }
示例#4
0
        public void DivideCenterLineTest()
        {
            // Prepair test case
            Point3d[] dividedPtsExpected = new Point3d[11];
            for (int i = 0; i < 11; i++)
            {
                dividedPtsExpected[i] = new Point3d(0, 0, i * 70.0 / 10.0);
            }

            Line centerLine = StairCreator.CreateCenterLine(70);

            Point3d[] dividedPts = StairCreator.DivideCenterLine(centerLine, 10);

            for (int i = 0; i < 11; i++)
            {
                double dist = (dividedPtsExpected[i] - dividedPts[i]).Length;
                Assert.AreEqual(0.0, dist);
            }
        }
示例#5
0
        public void CreateSpiralLinesTest()
        {
            // Prepair test case
            Point3d[] expectedSpiralPts = new Point3d[10];
            for (int i = 0; i < 10; i++)
            {
                Point3d pts   = new Point3d(70.0, 0, 70.0 * (double)(i + 1) / 10.0);
                double  angle = 2.0 * Math.PI * (double)i / 10.0;
                expectedSpiralPts[i] = Transform.Rotation(angle, Vector3d.ZAxis, Point3d.Origin) * pts;
            }
            Line centerLine = StairCreator.CreateCenterLine(70);

            Point3d[] dividedPts  = StairCreator.DivideCenterLine(centerLine, 10);
            Line[]    spiralLines = StairCreator.CreateSpiralLines(dividedPts, 70, 2.0 * Math.PI);
            for (int i = 0; i < 10; i++)
            {
                double dist = (expectedSpiralPts[i] - spiralLines[i].To).Length;
                Assert.AreEqual(0.0, dist);
            }
        }