Exemple #1
0
//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]);
}
Exemple #2
0
bool SR865::getRThetaFext(double &R, double &Theta, double &F) const
{
    return getABC(2, R, 3, Theta, 16, F);
}