diff --git a/lib/src/interfaces/index.ts b/lib/src/interfaces/index.ts index 5f54c0d..ecc3b8f 100644 --- a/lib/src/interfaces/index.ts +++ b/lib/src/interfaces/index.ts @@ -3,3 +3,5 @@ export * from "./scene"; export * from "./objects"; export * from "./fill"; export * from "./color"; +export * from "./stroke"; +export * from "./transform"; diff --git a/lib/src/interfaces/objects.ts b/lib/src/interfaces/objects.ts index fe96f53..8f20737 100644 --- a/lib/src/interfaces/objects.ts +++ b/lib/src/interfaces/objects.ts @@ -1,6 +1,8 @@ import { IPoint } from "@gxc-solutions/math"; import { IRgbColor } from "./color"; import { Fill } from "./fill"; +import { ITransform } from "./transform"; +import { IStroke } from "./stroke"; export interface IRectangle { x: number; @@ -15,25 +17,6 @@ export interface IEllipse { radiusY: number; } -export interface ITransform { - scaleX: number; - scaleY: number; - - translateY: number; - translateX: number; - - skewY: number; - skewX: number; - - rotate: number; -} - -export interface IStroke { - width: number; - color: IRgbColor; - dash: number[]; -} - export type DrawObjectType = "rectangle" | "ellipse" | "image" | "text" | "path" | "line" | "node"; export interface IBaseDrawObject { @@ -46,7 +29,7 @@ export interface IRectangleDrawObject extends IBaseDrawObject { readonly type: "rectangle"; fill: Fill; stroke: IStroke; - blendMode: string; + blendMode: GlobalCompositeOperation; opacity: number; rectangle: IRectangle; transform: ITransform; @@ -57,7 +40,7 @@ export interface IEllipseDrawObject extends IBaseDrawObject { fill: Fill; stroke: IStroke; ellipse: IEllipse; - blendMode: string; + blendMode: GlobalCompositeOperation; opacity: number; transform: ITransform; } @@ -66,8 +49,9 @@ export interface IImageDrawObject extends IBaseDrawObject { readonly type: "image"; source: HTMLImageElement; stroke: IStroke; + rectangle: IRectangle; fill: Fill; - blendMode: string; + blendMode: GlobalCompositeOperation; opacity: number; transform: ITransform; } @@ -82,8 +66,8 @@ export interface ITextDrawObject extends IBaseDrawObject { readonly type: "text"; stroke: IStroke; fill: Fill; - blendMode: string; - rectangle?: IRectangle; + blendMode: GlobalCompositeOperation; + rectangle: IRectangle; text: string; font: IFont; textStroke: IStroke; diff --git a/lib/src/interfaces/scene.ts b/lib/src/interfaces/scene.ts index 83a5d36..7049146 100644 --- a/lib/src/interfaces/scene.ts +++ b/lib/src/interfaces/scene.ts @@ -1,9 +1,10 @@ +import { Fill } from "./fill"; import { IBaseDrawObject, IDrawNode, IRectangle } from "./objects"; export interface IScene { - nodes: IDrawNode[]; + node: IDrawNode; selection?: IRectangle; spotlight: IRectangle[]; - background: string; + background: Fill; static: IBaseDrawObject[]; } diff --git a/lib/src/interfaces/stroke.ts b/lib/src/interfaces/stroke.ts new file mode 100644 index 0000000..7b4d818 --- /dev/null +++ b/lib/src/interfaces/stroke.ts @@ -0,0 +1,7 @@ +import { IRgbColor } from "./color"; + +export interface IStroke { + width: number; + color: IRgbColor; + dash: number[]; +} diff --git a/lib/src/interfaces/transform.ts b/lib/src/interfaces/transform.ts new file mode 100644 index 0000000..8e307b9 --- /dev/null +++ b/lib/src/interfaces/transform.ts @@ -0,0 +1,12 @@ +export interface ITransform { + scaleX: number; + scaleY: number; + + translateY: number; + translateX: number; + + skewY: number; + skewX: number; + + rotate: number; +} diff --git a/lib/src/package.json b/lib/src/package.json index e8b562e..679d2ed 100644 --- a/lib/src/package.json +++ b/lib/src/package.json @@ -1,6 +1,6 @@ { "name": "@gxc-solutions/renderer-base", - "version": "0.0.6", + "version": "0.0.7", "main": "index.js", "author": "GXC Solutions", "publishConfig": {