Skip to content
OE_document.cpp 2.35 KiB
Newer Older
3dsman's avatar
3dsman committed
/*
 * Copyright (c) 2015 Tricoire Sebastien 3dsman@free.fr
 *
 * This software is provided 'as-is', without any express or implied
 * warranty.  In no event will the authors be held liable for any damages
 * arising from the use of this software.
 *
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 *
 * 1. The origin of this software must not be misrepresented; you must not
 * claim that you wrote the original software. If you use this software
 * in a product, an acknowledgment in the product documentation would be
 * appreciated but is not required.
 * 2. Altered source versions must be plainly marked as such, and must not be
 * misrepresented as being the original software.
 * 3. This notice may not be removed or altered from any source distribution.
 *
 */

#include "OE_document.h"
#include "stitchs/OE_linestitch.h"
3dsman's avatar
3dsman committed

#include <string>
#include <iostream>

OE_document::OE_document()
{
	
	OE_linestitch::initMotifs();
3dsman's avatar
3dsman committed
    //ctor
}

OE_document::~OE_document()
{

}

void OE_document::getBound(float* xMin, float* yMin, float* xMax, float* yMax)
{
	float tmpXMin, tmpYMin, tmpXMax, tmpYMax;
	if (curves.size())
	{
		curves.at(0)->getBound(xMin, yMin, xMax, yMax);
		for (unsigned i=0; i<curves.size(); i++)
		 {
			 curves.at(i)->getBound(&tmpXMin, &tmpYMin, &tmpXMax, &tmpYMax);
			 *xMin = minf(*xMin,tmpXMin);
			 *yMin = minf(*yMin,tmpYMin);
			 *xMax = maxf(*xMax,tmpXMax);
			 *yMax = maxf(*yMax,tmpYMax);
		 }
		 for (unsigned i=0; i<stitchs.size(); i++)
		 {
			 stitchs.at(i)->getBound(&tmpXMin, &tmpYMin, &tmpXMax, &tmpYMax);
			 *xMin = minf(*xMin,tmpXMin);
			 *yMin = minf(*yMin,tmpYMin);
			 *xMax = maxf(*xMax,tmpXMax);
			 *yMax = maxf(*yMax,tmpYMax);
		 }
	}
}
3dsman's avatar
3dsman committed

bool OE_document::addCurve(OE_curve * curve)
3dsman's avatar
3dsman committed
{
	curves.push_back(curve);
	return true;
}
3dsman's avatar
3dsman committed

bool OE_document::addStitch(OE_stitchs * stitch)
3dsman's avatar
3dsman committed
{
	stitchs.push_back(stitch);
	return true;
}

bool OE_document::addThread(OE_thread * thread)
{
	threads.push_back(thread);
	return true;
}

bool OE_document::refresh()
{
3dsman's avatar
3dsman committed

	
	return true;
3dsman's avatar
3dsman committed
}
3dsman's avatar
3dsman committed
bool OE_document::draw(float dpi)
{
			for (unsigned i=0; i<curves.size(); i++)
			 {
				 curves.at(i).draw(dpi);
			 }
3dsman's avatar
3dsman committed
			 for (unsigned i=0; i<stitchs.size(); i++)
			 {
				 stitchs.at(i)->draw();
			 }
			 return true;
3dsman's avatar
3dsman committed

3dsman's avatar
3dsman committed