Rev 1414 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.ComponentModel;
using BauzoidNET.graphics.sprite;
namespace ShapeEditor.file.shapes
{
public abstract class BaseShapeElement
{
[Browsable(false)]
public string ShapeName { get; set; }
private int mStartFrame = -1;
public int StartFrame
{
get
{
return mStartFrame;
}
set
{
mStartFrame = value;
UpdateName();
}
}
private int mEndFrame = -1;
public int EndFrame
{
get
{
return mEndFrame;
}
set
{
mEndFrame = value;
UpdateName();
}
}
protected Document mDocument = null;
public BaseShapeElement(Document doc, string name)
{
mDocument = doc;
ShapeName = name;
}
public string GetFrameRangeStr()
{
return "[" + StartFrame + ".." + EndFrame + "] ";
}
public bool IsInFrameRange(int frame)
{
if ((StartFrame == -1) || (EndFrame == -1))
return true;
return ((frame >= StartFrame) && (frame <= EndFrame));
}
public void WriteFrameRange(System.IO.TextWriter tw)
{
tw.WriteLine("frameRange " + StartFrame + ", " + EndFrame + ";");
}
public abstract string GetName();
public abstract void UpdateName();
public abstract void Render(SpriteTransform transform);
public abstract void RenderSelected(SpriteTransform transform, bool drawHandles = true);
public abstract int GetNumHandles();
public abstract int FindHandleAt(float x, float y);
public abstract bool IsInside(float x, float y);
public abstract void DragHandle(int handle, float dx, float dy);
public abstract void DragMove(float dx, float dy);
public abstract void FixCoordinates();
public abstract Cursor GetCursor(int handle);
public abstract void WriteFile(System.IO.TextWriter tw);
}
}