Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
01.05.2014
Размер:
714 б
Скачать
#include "line.h"

class Surface
{
public:
	Surface() : ready(false) {}
	Surface(const SpLine& bc1, const SpLine& bc2,
		const SpLine& bc3)
	{
		SetSurface(bc1, bc2, bc3);
	}
	void SetSurface(const SpLine bc1, const SpLine bc2,
		const SpLine& bc3)
	{
		ready = true;

		U = bc1;
		V = bc2;
		W = bc3;
	}
	Point GetPoint(double u, double v)
	{
		assert(ready);

		Point r1 = V.P[0] - V.P[1];
		Point r2 = V.P[3] - V.P[2];
		Point pt[4];
		pt[0] = U.GetPoint(u);
		pt[3] = W.GetPoint(u);
		pt[1] = pt[0] - r1;
		pt[2] = pt[3] - r2;

		SpLine bc(pt[0], pt[1], pt[2], pt[3]);
		Point result = bc.GetPoint(v);

		return result;
	}

private:
	bool ready;
	SpLine U, V, W;
};

Соседние файлы в папке Лабораторная работа4