Update object interfaces
This commit is contained in:
parent
546efcd2d0
commit
4965f1715a
2 changed files with 74 additions and 7 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { IPoint } from "@gxc-solutions/math";
|
||||||
import { IRgbColor } from "./color";
|
import { IRgbColor } from "./color";
|
||||||
import { IBaseFill } from "./fill";
|
import { IBaseFill } from "./fill";
|
||||||
|
|
||||||
|
|
@ -6,7 +7,25 @@ export interface IRectangle {
|
||||||
y: number;
|
y: number;
|
||||||
width: number;
|
width: number;
|
||||||
height: number;
|
height: number;
|
||||||
angle: number;
|
}
|
||||||
|
|
||||||
|
export interface IEllipse {
|
||||||
|
center: IPoint;
|
||||||
|
radiusX: number;
|
||||||
|
radiusY: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ITransform {
|
||||||
|
scaleX: number;
|
||||||
|
scaleY: number;
|
||||||
|
|
||||||
|
translateY: number;
|
||||||
|
translateX: number;
|
||||||
|
|
||||||
|
skewY: number;
|
||||||
|
skewX: number;
|
||||||
|
|
||||||
|
rotate: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IStroke {
|
export interface IStroke {
|
||||||
|
|
@ -15,7 +34,7 @@ export interface IStroke {
|
||||||
dash: number[];
|
dash: number[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export type DrawObjectType = "rectangle-object" | "image-object" | "ellipse-object" | "text-object";
|
export type DrawObjectType = "rectangle" | "ellipse" | "image" | "text" | "path" | "line" | "group";
|
||||||
|
|
||||||
export interface IBaseDrawObject {
|
export interface IBaseDrawObject {
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
|
|
@ -23,11 +42,59 @@ export interface IBaseDrawObject {
|
||||||
name: string;
|
name: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IDrawObject extends IBaseDrawObject {
|
export interface IRectangleDrawObject extends IBaseDrawObject {
|
||||||
stroke: IStroke;
|
readonly type: "rectangle";
|
||||||
fill: IBaseFill;
|
fill: IBaseFill;
|
||||||
|
stroke: IStroke;
|
||||||
|
blendMode: string;
|
||||||
|
opacity: number;
|
||||||
|
rectangle: IRectangle;
|
||||||
|
transform: ITransform;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IDrawNode extends IBaseDrawObject {
|
export interface IEllipseDrawObject {
|
||||||
children: IDrawObject[];
|
readonly type: "ellipse";
|
||||||
|
fill: IBaseFill;
|
||||||
|
stroke: IStroke;
|
||||||
|
ellipse: IEllipse;
|
||||||
|
blendMode: string;
|
||||||
|
opacity: number;
|
||||||
|
transform: ITransform;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IImageDrawObject {
|
||||||
|
readonly type: "image";
|
||||||
|
source: HTMLImageElement;
|
||||||
|
stroke: IStroke;
|
||||||
|
fill: IBaseFill;
|
||||||
|
blendMode: string;
|
||||||
|
opacity: number;
|
||||||
|
transform: ITransform;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IFont {
|
||||||
|
font: string;
|
||||||
|
size: number;
|
||||||
|
color: IRgbColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ITextDrawObject {
|
||||||
|
readonly type: "text";
|
||||||
|
stroke: IStroke;
|
||||||
|
fill: IBaseFill;
|
||||||
|
blendMode: string;
|
||||||
|
rectangle?: IRectangle;
|
||||||
|
text: string;
|
||||||
|
font: IFont;
|
||||||
|
textStroke: IStroke;
|
||||||
|
opacity: number;
|
||||||
|
transform: ITransform;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type DrawLeafs = IRectangleDrawObject | IEllipseDrawObject | IImageDrawObject | ITextDrawObject;
|
||||||
|
|
||||||
|
export interface IDrawNode extends IBaseDrawObject {
|
||||||
|
readonly type: "group";
|
||||||
|
children: Array<IDrawNode | DrawLeafs>;
|
||||||
|
transform: ITransform;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@gxc-solutions/renderer-base",
|
"name": "@gxc-solutions/renderer-base",
|
||||||
"version": "0.0.4",
|
"version": "0.0.5",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"author": "GXC Solutions",
|
"author": "GXC Solutions",
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue