Example #1
0
void afterProcess(Userdata *userdata) {
	static int started = 0;
	if (processClick(userdata->click) == -1) { // Released button
		started = 0;
	} else { // Valid button
		//printClick(userdata->click); printf("\n");
		//printDrag(userdata->drag); printf("\n");
		if (started == 0) {
			started = 1;
			userdata->drag.start = userdata->click.origin;
		}
		userdata->drag.end = userdata->click.origin;
		userdata->circle = makeCircleFromDrag(userdata->drag, CV_RGB(255, 255, 255), 2);
	}
	//printCircle(userdata->circle); printf("\n");
	//drawCircle(userdata->input[0], userdata->circle);
	drawSquare(userdata->input[0], userdata->square);
	//printf("\n");

	int width = userdata->size.width;
	int height = userdata->size.height;
	//userdata->square = makeSquare(cvPoint(width * 3 / 4 - 40, height/2 - 40), cvSize(80, 80), CV_RGB(255, 255, 255), 2);
	drawSquare(userdata->input[0], makeSquare(cvPoint(width * 3 / 4 - 40, height-80), cvSize(80, 80), CV_RGB(255, 255, 255), 2));
	
}
Example #2
0
// Square の左右だけ変換
inline Square inverseFile(const Square sq) {
	return makeSquare(inverse(makeFile(sq)), makeRank(sq));
}
Example #3
0
Square makeSquareFromDrag(Drag drag, CvScalar color, int thickness) {
	int X = drag.end.x - drag.start.x;
	int Y = drag.end.y - drag.start.y;
	return makeSquare(drag.start, cvSize(X, Y), color, thickness);
}