Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
// PatternMapParam.cpp: implementation of the CPatternMapParam class.
Toshihiro Shimizu 890ddd
//
Toshihiro Shimizu 890ddd
//////////////////////////////////////////////////////////////////////
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifdef WIN32
Toshihiro Shimizu 890ddd
#pragma warning(disable : 4996)
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
#include <math.h></math.h>
Toshihiro Shimizu 890ddd
#include <stdlib.h></stdlib.h>
Toshihiro Shimizu 890ddd
#include <string.h></string.h>
Toshihiro Shimizu 890ddd
#include "PatternMapParam.h"
Toshihiro Shimizu 890ddd
//#include "FNSequence.h"
Toshihiro Shimizu 890ddd
#include "SDef.h"
Toshihiro Shimizu 890ddd
#include "SError.h"
Toshihiro Shimizu 890ddd
#include "Pattern.h"
Toshihiro Shimizu 890ddd
//////////////////////////////////////////////////////////////////////
Toshihiro Shimizu 890ddd
// Construction/Destruction
Toshihiro Shimizu 890ddd
//////////////////////////////////////////////////////////////////////
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
CPatternMapParam::CPatternMapParam()
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	null();
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
CPatternMapParam::CPatternMapParam(const int argc, const char *argv[],
Toshihiro Shimizu 890ddd
								   const int shrink)
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	try {
Toshihiro Shimizu 890ddd
		null();
Toshihiro Shimizu 890ddd
		if (argc == 12) {
Toshihiro Shimizu 890ddd
			double scale = shrink > 0 ? 1.0 / (double)shrink : 1.0;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
			//strcpy(m_patternFn, argv[0]);
Toshihiro Shimizu 890ddd
			//CFNSequence fns(argv[0]);
Toshihiro Shimizu 890ddd
			//fns.getFn(m_patternFn,drawingFn);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
			m_ink.set(argv[0], 4095);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
			m_maxScale = MAX(atof(argv[1]) * scale, atof(argv[2]) * scale);
Toshihiro Shimizu 890ddd
			m_minScale = MIN(atof(argv[1]) * scale, atof(argv[2]) * scale);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
			m_maxDirAngle = MAX(atof(argv[3]), atof(argv[4]));
Toshihiro Shimizu 890ddd
			m_minDirAngle = MIN(atof(argv[3]), atof(argv[4]));
Toshihiro Shimizu 890ddd
			m_isRandomDir = atoi(argv[5]) > 0 ? true : false;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
			double dmax = MAX(atof(argv[6]) * scale, 1.0);
Toshihiro Shimizu 890ddd
			double dmin = MAX(atof(argv[7]) * scale, 1.0);
Toshihiro Shimizu 890ddd
			m_maxDist = MAX(dmax, dmin);
Toshihiro Shimizu 890ddd
			m_minDist = MIN(dmax, dmin);
Toshihiro Shimizu 890ddd
			m_density = shrink > 0 ? atof(argv[8]) * (double)shrink : atof(argv[8]);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
			m_isKeepContour = atoi(argv[9]) > 0 ? true : false;
Toshihiro Shimizu 890ddd
			m_isUseInkColor = atoi(argv[10]) > 0 ? true : false;
Toshihiro Shimizu 890ddd
			m_isIncludeAlpha = atoi(argv[11]) > 0 ? true : false;
Toshihiro Shimizu 890ddd
		}
Toshihiro Shimizu 890ddd
	} catch (SError) {
Toshihiro Shimizu 890ddd
		throw;
Toshihiro Shimizu 890ddd
	}
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
CPatternMapParam::~CPatternMapParam()
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
void CPatternMapParam::null()
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	m_patternFn[0] = '\0';
Toshihiro Shimizu 890ddd
	m_ink.m_nb = 0;
Toshihiro Shimizu 890ddd
	m_isKeepContour = false;
Toshihiro Shimizu 890ddd
	m_isRandomDir = false;
Toshihiro Shimizu 890ddd
	m_minDirAngle = 0.0;
Toshihiro Shimizu 890ddd
	m_maxDirAngle = 0.0;
Toshihiro Shimizu 890ddd
	m_minScale = 0.2;
Toshihiro Shimizu 890ddd
	m_maxScale = 0.2;
Toshihiro Shimizu 890ddd
	m_isUseInkColor = true;
Toshihiro Shimizu 890ddd
	m_isIncludeAlpha = true;
Toshihiro Shimizu 890ddd
	m_density = 0.2;
Toshihiro Shimizu 890ddd
	m_minDist = 3.0;
Toshihiro Shimizu 890ddd
	m_maxDist = 3.0;
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
void CPatternMapParam::testValue()
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	strcpy(m_patternFn, "d:\\toonz_fx\\test\\artcontour\\e.ttt");
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	m_ink.m_nb = 1;
Toshihiro Shimizu 890ddd
	m_ink.m_ci[0] = 0;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	m_isKeepContour = false;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	m_isRandomDir = false;
Toshihiro Shimizu 890ddd
	m_minDirAngle = 0.0;
Toshihiro Shimizu 890ddd
	m_maxDirAngle = 0.0;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	m_minScale = 0.3;
Toshihiro Shimizu 890ddd
	m_maxScale = 0.4;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	m_isUseInkColor = true;
Toshihiro Shimizu 890ddd
	m_isIncludeAlpha = true;
Toshihiro Shimizu 890ddd
	m_density = 0.0;
Toshihiro Shimizu 890ddd
	m_minDist = 3.0;
Toshihiro Shimizu 890ddd
	m_maxDist = 3.0;
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
bool CPatternMapParam::isOK()
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	return true;
Toshihiro Shimizu 890ddd
}