//sort verts into top, mid, bot aim: get the sequence of the triedge. void getTri(vert* vert1, vert* vert2, vert* vert3, edge* triEdge) { float top, mid, bot; vert* topVert; vert* midVert; vert* botVert; if((vert1->coord[1] != vert2->coord[1])&&(vert1->coord[1] != vert3->coord[1])&&(vert3->coord[1] != vert2->coord[1])){ //case 1 top = vert1->coord[1]; mid = vert2->coord[1]; bot = vert3->coord[1]; sort(&top, &mid, &bot); //TRACE("\n\n\nEdge_top: %f, Edge_mid: %f, Edge_bot: %f\n", top, mid, bot); topVert = findPosition(top, 1, vert1, vert2, vert3); midVert = findPosition(mid, 2, vert1, vert2, vert3); botVert = findPosition(bot, 3, vert1, vert2, vert3); //get left and right attribute getEdge(triEdge, topVert, midVert, botVert); }else if((vert1->coord[1] == vert2->coord[1])||(vert1->coord[1] == vert3->coord[1])||(vert3->coord[1] == vert2->coord[1])){ vert diff, sameY1, sameY2; int position = 0; //HORIZANTAL LINE ; TOP = 1 OR BOTTOM = 0 /*position = */findDiff(&diff, &sameY1, &sameY2, *vert1, *vert2, *vert3); // let Y1 be the left vert and Y2 be the right vert. getEdgeHor(triEdge,diff, sameY1, sameY2); } //get A, B, C for each edge getABC(&triEdge[0]); getABC(&triEdge[1]); getABC(&triEdge[2]); }
bool SR865::getRThetaFext(double &R, double &Theta, double &F) const { return getABC(2, R, 3, Theta, 16, F); }