kopia lustrzana https://github.com/njcrawford/EmbroideryReader
83 wiersze
2.4 KiB
C#
83 wiersze
2.4 KiB
C#
/*
|
|
Embroidery Reader - an application to view .pes embroidery designs
|
|
|
|
Copyright (C) 2016 Nathan Crawford
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
02111-1307, USA.
|
|
|
|
A copy of the full GPL 2 license can be found in the docs directory.
|
|
You can contact me at http://www.njcrawford.com/contact/.
|
|
*/
|
|
|
|
using System;
|
|
using System.Drawing;
|
|
|
|
namespace PesFile
|
|
{
|
|
public class Stitch
|
|
{
|
|
public enum MoveBitSize
|
|
{
|
|
Unknown,
|
|
SevenBits,
|
|
TwelveBits
|
|
};
|
|
|
|
public enum StitchType
|
|
{
|
|
Unknown,
|
|
NormalStitch,
|
|
MovementBeginAnchor,
|
|
MovementEndAnchor,
|
|
MovementOnly
|
|
}
|
|
|
|
public Point a;
|
|
public Point b;
|
|
// Extra bits to output with debug info
|
|
public int extraBits1;
|
|
public int extraBits2;
|
|
// Was this stitch represented as 7 bit move or 12 bit move in the file
|
|
public MoveBitSize XMoveBits;
|
|
public MoveBitSize YMoveBits;
|
|
public StitchType stitchType;
|
|
|
|
public Stitch(Point pointA, Point pointB)
|
|
{
|
|
this.a = pointA;
|
|
this.b = pointB;
|
|
}
|
|
|
|
public Stitch(Point pointA, Point pointB, int extraBits1, int extraBits2, MoveBitSize XMoveBits, MoveBitSize YMoveBits, StitchType stitchType)
|
|
{
|
|
this.a = pointA;
|
|
this.b = pointB;
|
|
this.extraBits1 = extraBits1;
|
|
this.extraBits2 = extraBits2;
|
|
this.XMoveBits = XMoveBits;
|
|
this.YMoveBits = YMoveBits;
|
|
this.stitchType = stitchType;
|
|
}
|
|
|
|
public double calcLength()
|
|
{
|
|
double diffx = Math.Abs(a.X - b.X);
|
|
double diffy = Math.Abs(a.Y - b.Y);
|
|
return Math.Sqrt(Math.Pow(diffx, 2.0) + Math.Pow(diffy, 2.0));
|
|
}
|
|
}
|
|
}
|