internal void addToQueueInOrder(PoppedFaceInfo poppedFaceInfo)//think about tidying this up. { Boolean addedSomewhere = false; if (priorityQueue.Count == 0)//if empty add straight in - no sorting required { priorityQueue.Add(poppedFaceInfo); addedSomewhere = true; } else { if (poppedFaceInfo.error > priorityQueue[priorityQueue.Count - 1].error)//send straight to the back should save some time! { priorityQueue.Add(poppedFaceInfo); addedSomewhere = true; } else { for (int i = 0; i < priorityQueue.Count; i++) { if (poppedFaceInfo.error <= priorityQueue[i].error) { //it has a smaller error so should take its position and move it down and then skip out of the loop priorityQueue.Insert(i, poppedFaceInfo); addedSomewhere = true; break; } } } } if (addedSomewhere == false) { controller.errorContainer.Add("face was neveer added anywhere! this should never happen!"); } }
internal void popOutTop() { PoppedFaceInfo faceToPop = priorityQueue[0]; if (isFaceAssigned[faceToPop.faceIndex] == false)//checkface hasn't already been assigned somewhere { if (faceToPop.error < 0.001) { controller.errorContainer.Add("error close to zero - should only happen number of times as planes"); } proxies[faceToPop.proxyIndex].assignedFaces.Add(faceToPop.faceIndex); isFaceAssigned[faceToPop.faceIndex] = true; proxies[faceToPop.proxyIndex].popFace(faceToPop.faceIndex); } priorityQueue.Remove(faceToPop); }
internal void addToQueueInOrder(PoppedFaceInfo poppedFaceInfo)//think about tidying this up. { Boolean addedSomewhere = false; if (priorityQueue.Count == 0)//if empty add straight in - no sorting required { priorityQueue.Add(poppedFaceInfo); addedSomewhere = true; } else { if (poppedFaceInfo.error > priorityQueue[priorityQueue.Count-1].error)//send straight to the back should save some time! { priorityQueue.Add(poppedFaceInfo); addedSomewhere = true; } else { for (int i = 0; i < priorityQueue.Count; i++) { if (poppedFaceInfo.error <= priorityQueue[i].error) { //it has a smaller error so should take its position and move it down and then skip out of the loop priorityQueue.Insert(i, poppedFaceInfo); addedSomewhere = true; break; } } } } if (addedSomewhere == false) { controller.errorContainer.Add("face was neveer added anywhere! this should never happen!"); } }