AcGePoint2dArray CCalculation::SortByLexi(AcGePoint2dArray Points) { // sort by x // lexicographically sorting // sort by y int i = 0; int j = 0; AcGePoint2d MinPt; AcGePoint2dArray LexiPoints; for (i = 0; i < Points.length(); i++) { for (j = i+1; j < Points.length(); j++) { if (CCalculation::CompareTwoPt(Points.at(i), Points.at(j))) { MinPt = Points.at(j); } } LexiPoints.append(MinPt); } return LexiPoints; }
int CArxHelper::CreateHatch(AcDbHatch*& pHatch, const AcGePoint3dArray& arrPt,double dScale) { AcGePoint2dArray vertices; AcGeDoubleArray bulges; for (int i = 0; i < arrPt.length(); ++ i) { vertices.append(arrPt.at(i).convert2d(AcGePlane::kXYPlane)); bulges.append(0.0); } if (vertices.length() > 0) { pHatch = new AcDbHatch(); AcGeVector3d normal(0.0, 0.0, 1.0); pHatch->setNormal(normal); pHatch->setElevation(0.0); pHatch->setAssociative(Adesk::kFalse); pHatch->setPattern(AcDbHatch::kPreDefined, _T("SOLID")); pHatch->appendLoop(AcDbHatch::kExternal,vertices,bulges); pHatch->evaluateHatch(); pHatch->setPatternScale(dScale); } return 0; }