////////////////////////////////////////////////////////////////////////////////
//Generic delphi runtime v3.6 for Spine animation tool //
//Runtime port by cjk (hzi1980@163.com) //
////////////////////////////////////////////////////////////////////////////////
unit spine.data;
interface
uses
System.Classes, System.SysUtils, System.Generics.Collections,
spine.types, spine.classes,
spine.core.skin, spine.core.animation;
type
TSkeletonData = class;
TBoneData = class;
TSlotData = class;
TEventData = class;
TAnimationStateData = class;
TIkConstraintData = class;
TTransformConstraintData = class;
TPathConstraintData = class;
TSkeletonData = class(TObject)
private
FPathConstraintDatas: TObjectList<TPathConstraintData>;
FIkConstraintDatas: TObjectList<TIkConstraintData>;
FTransformConstraintDatas: TObjectList<TTransformConstraintData>;
FEventDatas: TObjectList<TEventData>;
FBoneDatas: TObjectList<TBoneData>;
FSkins: TObjectList<TSpineSkin>;
FSlotDatas: TObjectList<TSlotData>;
FAnimations: TObjectList<TSpineAnimation>;
public
Name: string;
DefaultSkin: TSpineSkin;
Width, Height: Single;
Version: string;
Hash: string;
ImagesPath: string;
FPS: Single;
property BoneDatas: TObjectList<TBoneData> read FBoneDatas;
property SlotDatas: TObjectList<TSlotData> read FSlotDatas;
property Skins: TObjectList<TSpineSkin> read FSkins;
property EventDatas: TObjectList<TEventData> read FEventDatas;
property Animations: TObjectList<TSpineAnimation> read FAnimations;
property IkConstraintDatas: TObjectList<TIkConstraintData> read FIkConstraintDatas;
property TransformConstraintDatas: TObjectList<TTransformConstraintData> read FTransformConstraintDatas;
property PathConstraintDatas: TObjectList<TPathConstraintData> read FPathConstraintDatas;
public
constructor Create;
destructor Destroy; override;
function FindBone(const ABoneDataName: string): TBoneData;
function FindBoneIndex(const ABoneDataName: string): Integer;
function FindSlot(const ASlotDataName: string): TSlotData;
function FindSlotIndex(const ASlotDataName: string): Integer;
function FindSkin(const ASkinName: string): TSpineSkin;
function FintEvent(const AEventDataName: string): TEventData;
function FindAnimation(const AAnimationName: string): TSpineAnimation;
function FindIkConstraint(const AConstraintDataName: string): TIkConstraintData;
function FindTransformConstraint(const AConstraintDataName: string): TTransformConstraintData;
function FindPathConstraint(const AConstraintDataName: string): TPathConstraintData;
function FindPathConstraintIndex(const AConstraintDataName: string): Integer;
end;
TBoneData = class(TObject)
private
FIndex: Integer;
FName: string;
FParent: TBoneData;
public
Length: Single;
X, Y, Rotation, ScaleX, ScaleY, ShearX, ShearY: Single;
TransformMode: TTransformMode;
property Index: Integer read FIndex;
property Name: string read FName;
property Parent: TBoneData read FParent;
public
constructor Create(const AIndex: Integer; const AName: string; const AParent: TBoneData);
end;
TSlotData = class(TObject)
private
FIndex: Integer;
FName: string;
FBoneData: