Esempio n. 1
0
 public void FixedUpdate()
 {
     if (penindex != nodesSorted.Count - 1 && nodesSorted.Count > 0 && penindex >= 0)
     {
         Time.timeScale = 0.5f;
         pen.position   = nodesSorted[penindex].nodeLoc;
         penindex++;
     }
     else if (penindex == nodesSorted.Count - 1)
     {
         pen.position = nodesSorted[penindex].nodeLoc;
         penindex     = -2;
     }
     else if (penindex == -2 && nodesSorted.Count > 0 && CHRotating == false && GeneratingNetSense == false && AddingInterior == false)
     {
         pen.position = nodesSorted[0].nodeLoc;
     }
     else if (initialShrink == true && SphericSensor.transform.localScale.x > 0.1f)
     {
         Time.timeScale = 1.0f;
         SphericSensor.transform.localScale = Vector3.Lerp(SphericSensor.transform.localScale, new Vector3(0.05f, 0.05f, 0.05f), initialShrinkSpeed);
     }
     else if (CHRotating == true)
     {
         Time.timeScale = 1.0f;
         GWPointer2D.transform.Rotate(CHrotSpeed, 0.0f, 0.0f, Space.Self);
     }
     else if (GeneratingNetSense == true)
     {
         Time.timeScale = 1.0f;
         int ix = 0;
         foreach (Node Sortednode in nodesSorted)
         {
             Node nodeNext;
             if (ix != nodesSorted.Count - 1)
             {
                 nodeNext = nodesSorted[ix + 1];
             }
             else
             {
                 nodeNext = nodesSorted[0];
             }
             Vector3    goloc   = new Vector3(Sortednode.nodeLoc.x + nodeNext.nodeLoc.x, Sortednode.nodeLoc.y + nodeNext.nodeLoc.y, Sortednode.nodeLoc.z + nodeNext.nodeLoc.z) / 2f;
             Vector3    goscale = new Vector3(.05f, .05f, Vector3.Distance(Sortednode.nodeLoc, nodeNext.nodeLoc));
             GameObject go      = GameObject.Instantiate(microSensor, goloc, Quaternion.identity);
             go.transform.localScale = goscale;
             go.transform.LookAt(Sortednode.node.transform);
             SphereDetect sd = go.GetComponent <SphereDetect>();
             sd.visman           = this;
             sd.nodeStart        = Sortednode;
             sd.nodeEnd          = nodeNext;
             go.transform.parent = realcentroid.transform;
             ix++;
         }
         GeneratingNetSense = false;
         AddingInterior     = true;
     }
     else if (AddingInterior == true && centroidgo.transform.localScale.x >= 0.0003f && nodesSorted.Count != nodes.Count)
     {
         Time.timeScale = 1.0f;
         realcentroid.transform.localScale = Vector3.Lerp(realcentroid.transform.localScale, new Vector3(0.0001f, 0.0001f, 0.0001f), initialShrinkSpeed2D);
     }
     else
     {
         Time.timeScale = 1.0f;
         initialShrink  = false;
         AddingInterior = false;
         if (nodesSorted.Count == nodes.Count && nodesSorted.Count > 0)
         {
             foreach (Node finalnode in nodesSorted)
             {
                 finalnode.activation = ACTIVATION.sorted;
                 finalnode.node.GetComponent <MeshRenderer>().material = sortedmat;
             }
             realcentroid.SetActive(false);
         }
     }
 }
Esempio n. 2
0
    // void OnTriggerEnter()
    // {
    //  Debug.Log("dsf");
    // }
    // void OnTriggerStay()
    // {
    //  Debug.Log("ddasf");
    // }

    void OnTriggerEnter(Collider nodee)
    {
        if (DetectType == 0)
        {
        }
        else if (DetectType == DETECTTYPE.gw2D)
        {
            if (nodee.gameObject == visman.nodesSorted[0].node && visman.pointNode.node != nodee.gameObject)
            {
                visman.CHRotating = false;
                visman.GWPointer2D.SetActive(false);
                //print(visman.convexpointLocs.Count);
                visman.realcentroid       = GameObject.Instantiate(visman.centroidgo, visman.CentroidCalc(visman.convexpointLocs), Quaternion.identity);
                visman.GeneratingNetSense = true;
            }
            else if (nodee.gameObject != visman.pointNode.node)
            {
                visman.pointNode        = visman.nodes[int.Parse(nodee.gameObject.name)];
                visman.pointNode.node   = nodee.gameObject;
                visman.pointNode.SortID = visman.nodesSorted.Count;
                visman.GWPointer2D.transform.position = nodee.transform.position;
                visman.nodesSorted.Add(visman.nodes[int.Parse(nodee.gameObject.name)]);
                visman.pointNode.activation = VisualizationManager.ACTIVATION.sorted;
                visman.pointNode.node.GetComponent <MeshRenderer>().material = visman.stage1mat;
                visman.convexpointLocs.Add(visman.pointNode.nodeLoc);
            }
        }
        else if (DetectType == DETECTTYPE.micro2D)
        {
            VisualizationManager.Node nodereal = visman.nodes[int.Parse(nodee.gameObject.name)];
            if (nodereal.activation == VisualizationManager.ACTIVATION.norm)
            {
                nodereal.activation = VisualizationManager.ACTIVATION.sorted;
                nodereal.node.GetComponent <MeshRenderer>().material = visman.stage1mat;

                //   ||||||||||
                //   ||||||||||
                //   ||||||||||
                //   ||||||||||
                //   \\\\\/////
                //    \\\\////
                //     \\\///
                //      \\//
                //       \/
                nodereal.SortID = nodeEnd.SortID;
                visman.nodesSorted.Insert(nodeStart.SortID + 1, nodereal);
                if (nodereal.SortID != visman.nodesSorted.Count - 1)
                {
                    for (int i = nodereal.SortID + 1; i < visman.nodesSorted.Count; i++)
                    {
                        visman.nodesSorted[i].SortID++;
                    }
                }
                //     /\
                //\\
                ///\\\
                ////\\\\
                /////\\\\\
                //////\\\\\\
                ///////\\\\\\\
                ////////\\\\\\\\
                //|||||||||||||\
                //|||||||||||||\
                //|||||||||||||\
                //|||||||||||||\
                //|||||||||||||\
                //|||||||||||||\
                //|||||||||||||\
                //|||||||||||||\
                //|||||||||||||\
                //|||||||||||||\

                //visman.printSortedIDS = true;
                //Debug.Break();
                //redistribute microsensor

                Vector3    goloc   = new Vector3(physfront.position.x + nodereal.nodeLoc.x, physfront.position.y + nodereal.nodeLoc.y, physfront.position.z + nodereal.nodeLoc.z) / 2.0000000f;
                Vector3    goscale = new Vector3(.05f, .05f, Vector3.Distance(physfront.position, nodereal.nodeLoc));
                GameObject go      = GameObject.Instantiate(visman.microSensor, goloc, Quaternion.identity);
                go.transform.localScale = goscale;
                go.transform.LookAt(physfront.transform);
                SphereDetect sd = go.GetComponent <SphereDetect>();
                sd.visman           = visman;
                sd.nodeStart        = nodeStart;
                sd.nodeEnd          = nodereal;
                go.transform.parent = visman.realcentroid.transform;
                //
                goloc   = new Vector3(physend.position.x + nodereal.nodeLoc.x, physend.position.y + nodereal.nodeLoc.y, physend.position.z + nodereal.nodeLoc.z) / 2.0000000f;
                goscale = new Vector3(.05f, .05f, Vector3.Distance(physend.position, nodereal.nodeLoc));
                go      = GameObject.Instantiate(visman.microSensor, goloc, Quaternion.identity);
                go.transform.localScale = goscale;
                go.transform.LookAt(physfront.transform);
                sd                  = go.GetComponent <SphereDetect>();
                sd.visman           = visman;
                sd.nodeStart        = nodereal;
                sd.nodeEnd          = nodeEnd;
                go.transform.parent = visman.realcentroid.transform;
                //
                gameObject.SetActive(false);
                visman.ClearPath();
                visman.DrawPath();
            }
        }
    }