Blame c++/perspective/src/perspectivesandboxview.h

Ivan Mahonin 0662a2
#ifndef PERSPECTIVESANDBOXVIEW_H
Ivan Mahonin 0662a2
#define PERSPECTIVESANDBOXVIEW_H
Ivan Mahonin 0662a2
Ivan Mahonin 0662a2
#include "view.h"
Ivan Mahonin 0662a2
Ivan Mahonin 0662a2
Ivan Mahonin 0662a2
class PerspectiveSandBoxView: public View {
Ivan Mahonin 0662a2
public:
Ivan Mahonin 0662a2
	View::PointPtr
Ivan Mahonin 0662a2
		persp_p0,
Ivan Mahonin 0662a2
		persp_px,
Ivan Mahonin 0662a2
		persp_py,
Ivan Mahonin 0662a2
		persp_p1,
Ivan Mahonin 0662a2
		bounds_p0,
Ivan Mahonin 0662a2
		bounds_p1;
Ivan Mahonin b4eaab
	
Ivan Mahonin b4eaab
	Cairo::RefPtr<Cairo::ImageSurface> background;
Ivan Mahonin 0662a2
Ivan Mahonin 0662a2
	PerspectiveSandBoxView();
Ivan Mahonin b4eaab
	
Ivan Mahonin b4eaab
	void update_background(
Ivan Mahonin b4eaab
		const Matrix3 &matrix,
Ivan Mahonin b4eaab
		int width,
Ivan Mahonin b4eaab
		int height );
Ivan Mahonin 0662a2
Ivan Mahonin 43cb04
	void update_background_best_perimeter(
Ivan Mahonin 43cb04
		const Matrix3 &matrix,
Ivan Mahonin 43cb04
		int width,
Ivan Mahonin 43cb04
		int height );
Ivan Mahonin 43cb04
	
Ivan Mahonin 0662a2
	void draw_grid(
Ivan Mahonin 0662a2
		const Cairo::RefPtr<Cairo::Context> &context,
Ivan Mahonin 0662a2
		const Matrix &matrix,
Ivan Mahonin 0662a2
		const Color &color );
Ivan Mahonin 0662a2
Ivan Mahonin 0662a2
	void draw_line(
Ivan Mahonin 0662a2
		const Cairo::RefPtr<Cairo::Context> &context,
Ivan Mahonin 0662a2
		const Pair2 &bounds,
Ivan Mahonin 0662a2
		Real a,
Ivan Mahonin 0662a2
		Real b,
Ivan Mahonin 0662a2
		Real c,
Ivan Mahonin 0662a2
		const Color &color );
Ivan Mahonin 0662a2
Ivan Mahonin 4dc49c
	void draw_subdivisions(
Ivan Mahonin 4dc49c
		const Cairo::RefPtr<Cairo::Context> &context,
Ivan Mahonin 4dc49c
		const Matrix &matrix,
Ivan Mahonin 4dc49c
		const Pair2 &bounds,
Ivan Mahonin 4dc49c
		const Color &color );
Ivan Mahonin 4dc49c
Ivan Mahonin 0662a2
	void on_draw_view(const Cairo::RefPtr<Cairo::Context> &context);
Ivan Mahonin 0662a2
};
Ivan Mahonin 0662a2
Ivan Mahonin 0662a2
Ivan Mahonin 0662a2
#endif