ReturnFaceCentroid

From scripting
Jump to: navigation, search
global proc vector ReturnFaceCentroid(string $ObjName, int $FaceNum) {
//Author Nick Pisca 0001d 2008
	//string $ObjName = "pTorus1";
	//string $FaceNum = 30;
	string $CurFacepts[] = `polyInfo -fv ($ObjName+".f["+$FaceNum+"]")`;
	string $CurtD[];
	tokenizeList($CurFacepts[0], $CurtD);
	float $CurCornerPt[2] = `pointPosition ($ObjName+".vtx["+$CurtD[2]+"]")`;
	vector $CurCornerVec = <<$CurCornerPt[0],$CurCornerPt[1],$CurCornerPt[2]>>;
	float $CurCorner2Pt[2] = `pointPosition ($ObjName+".vtx["+$CurtD[3]+"]")`;
	vector $CurCorner2Vec = <<$CurCorner2Pt[0],$CurCorner2Pt[1],$CurCorner2Pt[2]>>;
	float $CurCorner3Pt[2] = `pointPosition ($ObjName+".vtx["+$CurtD[4]+"]")`;
	vector $CurCorner3Vec = <<$CurCorner3Pt[0],$CurCorner3Pt[1],$CurCorner3Pt[2]>>;
	float $CurCorner4Pt[2] = `pointPosition ($ObjName+".vtx["+$CurtD[5]+"]")`;
	vector $CurCorner4Vec = <<$CurCorner4Pt[0],$CurCorner4Pt[1],$CurCorner4Pt[2]>>;
	vector $Sum = $CurCornerVec + $CurCorner2Vec + $CurCorner3Vec + $CurCorner4Vec ;
	vector $AveVec = $Sum / 4;
	//spaceLocator -p ($AveVec.x) ($AveVec.y) ($AveVec.z) ;
	return ($AveVec);
}


More information on vectors and polygon faces, read pages 14-16, 113-116 in YSYT.