public void FindPointsProto(List <GameObject> circleList, List <Vector3> circlePositionsList)
        {
            currcloud = CloudUpdater.instance.LoadCurrentStatus();

            List <Vector3> CircleLocalPositionsList = new List <Vector3>();

            foreach (var v in circlePositionsList)
            {
                CircleLocalPositionsList.Add(currcloud.transform.worldToLocalMatrix.MultiplyPoint3x4(v));
            }

            HistogramPointSelectionThreadHandler ThreadHandle = new HistogramPointSelectionThreadHandler();

            ThreadHandle.circlePositionsList      = circlePositionsList;
            ThreadHandle.circleLocalPositionsList = CircleLocalPositionsList;
            ThreadHandle.radius    = radius;
            ThreadHandle.colorList = colorList;
            ThreadHandle.currcloud = currcloud;
            ThreadHandle.StartThread();
            SelectionThreadQueue.Enqueue(ThreadHandle);
            pointSelectionJobON = true;

            this.circleList          = circleList;
            this.circlePositionsList = circlePositionsList;

            /**
             * Mesh newmesh = currcloud.gameObject.GetComponent<MeshFilter>().mesh;
             * newmesh.colors = colors;
             * currcloud.gameObject.GetComponent<MeshFilter>().mesh = newmesh;
             * CreateCanvas(pointCountsbySections);
             * yValues = pointCountsbySections;
             **/
        }
 private void Update()
 {
     if (pointSelectionJobON)
     {
         if (SelectionThreadQueue.Count != 0)
         {
             HistogramPointSelectionThreadHandler ThreadHandle = SelectionThreadQueue.Peek();
             if (ThreadHandle.isRunning == false)
             {
                 ThreadHandle = SelectionThreadQueue.Dequeue();
                 Mesh newmesh = currcloud.gameObject.GetComponent <MeshFilter>().mesh;
                 newmesh.colors = ThreadHandle.colors;
                 currcloud.gameObject.GetComponent <MeshFilter>().mesh = newmesh;
                 pointCountsbySections = ThreadHandle.pointCountsbySections;
                 xValues              = ThreadHandle.xValues;
                 yValues              = pointCountsbySections;
                 selectedPoints       = ThreadHandle.SelectedPointsList;
                 selectedPointsColors = ThreadHandle.SelectedPointsColorList;
                 ThreadHandle.StopThread();
                 CreateCanvas(pointCountsbySections);
             }
         }
         else
         {
             pointSelectionJobON = false;
         }
     }
 }