Skip to content
OE_document.cpp 3.24 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())
	{
		
		std::list<OE_curve*>::iterator curve = curves.begin();
		(*curve)->getBound(xMin, yMin, xMax, yMax);
		curve++;
		
		while (curve != curves.end())
		{
		//for (unsigned i=0; i<curves.size(); i++)
		//{
			 (*curve)->getBound(&tmpXMin, &tmpYMin, &tmpXMax, &tmpYMax);
			 *xMin = minf(*xMin,tmpXMin);
			 *yMin = minf(*yMin,tmpYMin);
			 *xMax = maxf(*xMax,tmpXMax);
			 *yMax = maxf(*yMax,tmpYMax);
			 curve++;
		}
		
		std::list<OE_stitchs*>::iterator stitch = stitchs.begin();
		
		while (stitch != stitchs.end())
		{
		//for (unsigned i=0; i<stitchs.size(); i++)
		//{
			 (*stitch)->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

vector_2d OE_document::getHoopSize()
{
	return hoopSize;
}

unsigned int OE_document::getPulseByMm()
{
	return pulseByMm;
}

vector_2d OE_document::getZeroPoint()
{
	return zeroPoint;
}

void OE_document::setHoopSize(vector_2d hoopSize)
{
	this->hoopSize = hoopSize;
}

void OE_document::setPulseByMm(unsigned int pbm)
{
	pulseByMm = pbm;
}

void OE_document::setZeroPoint(vector_2d zeroPoint)
{
	this->zeroPoint = zeroPoint;
}


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::removeCurve(OE_curve * curve)
{
    curves.remove(curve);
}

bool OE_document::removeStitch(OE_stitchs * stitch)
{
    stitchs.remove(stitch);
}

bool OE_document::removeThread(OE_thread * thread)
{
    threads.remove(thread);
}


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