//绾挎帓搴?void CurveOperate::SortLines(vector<lineData>& sortLine, vector<lineData>& allLine)
{
double endPt[3] = { 0 };
endPt[0] = sortLine.back().endPt[0];
endPt[1] = sortLine.back().endPt[1];
endPt[2] = sortLine.back().endPt[2];
double startPt[3] = { 0 };
startPt[0] = sortLine.back().startPt[0];
startPt[1] = sortLine.back().startPt[1];
startPt[2] = sortLine.back().startPt[2];
for (int i = 0; i < sortLine.size(); i++)
{
for (int j = 0; j < allLine.size(); j++)
{
if (PointOperate::pointDistance(endPt, allLine[j].startPt) < 0.001)
{
endPt[0] = allLine[j].endPt[0];
endPt[1] = allLine[j].endPt[1];
endPt[2] = allLine[j].endPt[2];
sortLine.push_back(allLine[j]);
allLine.erase(allLine.begin() + j);
break;
}
else if (PointOperate::pointDistance(endPt, allLine[j].endPt) < 0.001)
{
endPt[0] = allLine[j].startPt[0];
endPt[1] = allLine[j].startPt[1];
endPt[2] = allLine[j].startPt[2];
//CurveOperate::SwapLineEndPoint(allLine[j].lineTag);
double temp[3];
for (int k = 0; k < 3; k++)
{
temp[k] = allLine[j].startPt[k];
allLine[j].startPt[k] = allLine[j].endPt[k];
allLine[j].endPt[k] = temp[k];
}
sortLine.push_back(allLine[j]);
allLine.erase(allLine.begin() + j);
break;
}
if (PointOperate::pointDistance(startPt, allLine[j].endPt) < 0.001)
{
startPt[0] = allLine[j].startPt[0];
startPt[1] = allLine[j].startPt[1];
startPt[2] = allLine[j].startPt[2];
sortLine.insert(sortLine.begin(), allLine[j]);
//sortLine.push_back(allLine[j]);
allLine.erase(allLine.begin() + j);
break;
}
else if (PointOperate::pointDistance(startPt, allLine[j].startPt) < 0.001)
{
startPt[0] = allLine[j].endPt[0];
startPt[1] = allLine[j].endPt[1];
startPt[2] = allLine[j].endPt[2];
//CurveOperate::SwapLineEndPoint(allLine[j].lineTag);
double temp[3];
for (int k = 0; k < 3; k++)
{
temp[k] = allLine[j].startPt[k];
allLine[j].startPt[k] = allLine[j].endPt[k];
allLine[j].endPt[k] = temp[k];
}
sortLine.insert(sortLine.begin(), allLine[j]);
//sortLine.push_back(allLine[j]);
allLine.erase(allLine.begin() + j);
break;
}
}
}
//鍘婚噸
//for (int i = 0; i < sortLine.size(); i++)
//{
// for (int j = i + 1; j < sortLine.size(); j++)
// {
// if (sortLine[i].lineTag == sortLine[j].lineTag)
// {
// sortLine.erase(sortLine.begin() + j);//娓呴櫎鏌愪竴涓厓绱? // j--;
// }
// }
//}
}
【无标题】
最新推荐文章于 2024-10-09 22:27:58 发布