Exemplo n.º 1
0
        public void ShouldCreateQuad()
        {
            Vector3[] linePoints = { new Vector3(0, 0, 0), new Vector3(0, 0, 1) };

            var result = LineMeshMaker.Build(linePoints, Width, Sections);

            Assert.IsTrue(IsQuad(result.vertices));
        }
Exemplo n.º 2
0
Arquivo: Line.cs Projeto: Sibz/Lines
        /*
         * /*
         * public void CompleteCreation()
         * {
         *  NodeCollidersEnabled = true;
         *  ResizeCentreNodeActivatorCollider();
         * }
         #1#
         *
         * public void MoveEndNode(Vector3 newNodePosition, GameObject nodeToMove = null)
         * {
         *  nodeToMove = nodeToMove == null ? lineBehaviour.EndNode : nodeToMove;
         *
         *  GameObject otherNode =
         *      nodeToMove != lineBehaviour.EndNode ? lineBehaviour.EndNode : lineBehaviour.OriginNode;
         *  Quaternion otherNodeWorldRotation = otherNode.transform.rotation;
         *  Vector3 otherNodeWorldPosition = otherNode.transform.position;
         *  Vector3 midWayPoint = Vector3.Lerp(newNodePosition, otherNodeWorldPosition, 0.5f);
         *  LineObject.transform.position = midWayPoint;
         *  LineObject.transform.LookAt(newNodePosition);
         *
         *  otherNode.transform.position = otherNodeWorldPosition;
         *  otherNode.transform.rotation = otherNodeWorldRotation;
         *  Debug.DrawLine(otherNodeWorldPosition, otherNodeWorldPosition + otherNode.transform.forward, Color.magenta);
         *  nodeToMove.transform.position = newNodePosition;
         *  nodeToMove.transform.rotation = LineObject.transform.rotation;
         *
         *  centreNodeIsNoneCentre = true;
         *
         *  //UpdateKnots();
         * }*/

        /*
         * public void UpdateKnots(float3x4 curve, float knotSpacing)
         * {
         *  int numberOfKnots = (int)math.ceil(Length / knotSpacing) + 2;
         *  SplineKnots = new float3 [numberOfKnots];
         *
         *  float3 knotStart = lineBehaviour.OriginNode.transform.localPosition;
         *  float3 knotEnd = lineBehaviour.EndNode.transform.localPosition;
         *
         *  Debug.DrawLine(lineBehaviour.transform.TransformPoint(knotStart),
         *      lineBehaviour.transform.TransformPoint(knotStart) + Vector3.up, Color.cyan, 0.25f);
         *  Debug.DrawLine(lineBehaviour.transform.TransformPoint(knotEnd),
         *      lineBehaviour.transform.TransformPoint(knotEnd) + Vector3.up, Color.cyan, 0.25f);
         *
         *  for (int i = 0; i < numberOfKnots; i++)
         *  {
         *
         *      /*float3x4 curve = new float3x4
         *      {
         *          c0 = knotStart,
         *          c1 = math.lerp(knotStart, knotEnd, 0.33f) + (float3)Vector3.left,
         *          c2 = math.lerp(knotStart, knotEnd, 0.66f) + (float3)Vector3.left,
         *          c3 = knotEnd
         *      };#1#
         *      float3 knot = Bezier.GetVectorOnCurve(curve, (float)i/(numberOfKnots - 1));
         *      SplineKnots[i] = knot;
         *      Debug.DrawLine(lineBehaviour.transform.TransformPoint(knot),
         *          lineBehaviour.transform.TransformPoint(knot) + Vector3.up, Color.yellow, 0.25f);
         *  }
         *
         * }
         */


        public void RebuildMesh()
        {
            /*meshFilter.sharedMesh = LineMeshMaker.Build(
             *  new[] { lineBehaviour.OriginNode.transform.localPosition, lineBehaviour.EndNode.transform.localPosition },
             *  lineBehaviour.Width,
             *  1);*/
            meshFilter.sharedMesh = LineMeshMaker.Build(
                lineBehaviour.transform.InverseTransformDirection(lineBehaviour
                                                                  .OriginNode
                                                                  .transform
                                                                  .forward),
                lineBehaviour.transform.InverseTransformDirection(lineBehaviour
                                                                  .EndNode
                                                                  .transform
                                                                  .forward),
                // lineBehaviour.OriginNode.transform.forward,
                // lineBehaviour.EndNode.transform.forward,
                SplineKnots,
                lineBehaviour.Width
                );
        }
Exemplo n.º 3
0
 public void WhenLessThan2Vectors_ShouldThrow()
 {
     Assert.Catch <ArgumentException>(() => LineMeshMaker.Build(new Vector3[] { }, Width, Sections));
 }