Update interface of scene
This commit is contained in:
parent
e055142988
commit
f8805f404f
6 changed files with 33 additions and 27 deletions
|
|
@ -3,3 +3,5 @@ export * from "./scene";
|
||||||
export * from "./objects";
|
export * from "./objects";
|
||||||
export * from "./fill";
|
export * from "./fill";
|
||||||
export * from "./color";
|
export * from "./color";
|
||||||
|
export * from "./stroke";
|
||||||
|
export * from "./transform";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
import { IPoint } from "@gxc-solutions/math";
|
import { IPoint } from "@gxc-solutions/math";
|
||||||
import { IRgbColor } from "./color";
|
import { IRgbColor } from "./color";
|
||||||
import { Fill } from "./fill";
|
import { Fill } from "./fill";
|
||||||
|
import { ITransform } from "./transform";
|
||||||
|
import { IStroke } from "./stroke";
|
||||||
|
|
||||||
export interface IRectangle {
|
export interface IRectangle {
|
||||||
x: number;
|
x: number;
|
||||||
|
|
@ -15,25 +17,6 @@ export interface IEllipse {
|
||||||
radiusY: number;
|
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 type DrawObjectType = "rectangle" | "ellipse" | "image" | "text" | "path" | "line" | "node";
|
||||||
|
|
||||||
export interface IBaseDrawObject {
|
export interface IBaseDrawObject {
|
||||||
|
|
@ -46,7 +29,7 @@ export interface IRectangleDrawObject extends IBaseDrawObject {
|
||||||
readonly type: "rectangle";
|
readonly type: "rectangle";
|
||||||
fill: Fill;
|
fill: Fill;
|
||||||
stroke: IStroke;
|
stroke: IStroke;
|
||||||
blendMode: string;
|
blendMode: GlobalCompositeOperation;
|
||||||
opacity: number;
|
opacity: number;
|
||||||
rectangle: IRectangle;
|
rectangle: IRectangle;
|
||||||
transform: ITransform;
|
transform: ITransform;
|
||||||
|
|
@ -57,7 +40,7 @@ export interface IEllipseDrawObject extends IBaseDrawObject {
|
||||||
fill: Fill;
|
fill: Fill;
|
||||||
stroke: IStroke;
|
stroke: IStroke;
|
||||||
ellipse: IEllipse;
|
ellipse: IEllipse;
|
||||||
blendMode: string;
|
blendMode: GlobalCompositeOperation;
|
||||||
opacity: number;
|
opacity: number;
|
||||||
transform: ITransform;
|
transform: ITransform;
|
||||||
}
|
}
|
||||||
|
|
@ -66,8 +49,9 @@ export interface IImageDrawObject extends IBaseDrawObject {
|
||||||
readonly type: "image";
|
readonly type: "image";
|
||||||
source: HTMLImageElement;
|
source: HTMLImageElement;
|
||||||
stroke: IStroke;
|
stroke: IStroke;
|
||||||
|
rectangle: IRectangle;
|
||||||
fill: Fill;
|
fill: Fill;
|
||||||
blendMode: string;
|
blendMode: GlobalCompositeOperation;
|
||||||
opacity: number;
|
opacity: number;
|
||||||
transform: ITransform;
|
transform: ITransform;
|
||||||
}
|
}
|
||||||
|
|
@ -82,8 +66,8 @@ export interface ITextDrawObject extends IBaseDrawObject {
|
||||||
readonly type: "text";
|
readonly type: "text";
|
||||||
stroke: IStroke;
|
stroke: IStroke;
|
||||||
fill: Fill;
|
fill: Fill;
|
||||||
blendMode: string;
|
blendMode: GlobalCompositeOperation;
|
||||||
rectangle?: IRectangle;
|
rectangle: IRectangle;
|
||||||
text: string;
|
text: string;
|
||||||
font: IFont;
|
font: IFont;
|
||||||
textStroke: IStroke;
|
textStroke: IStroke;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
|
import { Fill } from "./fill";
|
||||||
import { IBaseDrawObject, IDrawNode, IRectangle } from "./objects";
|
import { IBaseDrawObject, IDrawNode, IRectangle } from "./objects";
|
||||||
|
|
||||||
export interface IScene {
|
export interface IScene {
|
||||||
nodes: IDrawNode[];
|
node: IDrawNode;
|
||||||
selection?: IRectangle;
|
selection?: IRectangle;
|
||||||
spotlight: IRectangle[];
|
spotlight: IRectangle[];
|
||||||
background: string;
|
background: Fill;
|
||||||
static: IBaseDrawObject[];
|
static: IBaseDrawObject[];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
7
lib/src/interfaces/stroke.ts
Normal file
7
lib/src/interfaces/stroke.ts
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
import { IRgbColor } from "./color";
|
||||||
|
|
||||||
|
export interface IStroke {
|
||||||
|
width: number;
|
||||||
|
color: IRgbColor;
|
||||||
|
dash: number[];
|
||||||
|
}
|
||||||
12
lib/src/interfaces/transform.ts
Normal file
12
lib/src/interfaces/transform.ts
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
export interface ITransform {
|
||||||
|
scaleX: number;
|
||||||
|
scaleY: number;
|
||||||
|
|
||||||
|
translateY: number;
|
||||||
|
translateX: number;
|
||||||
|
|
||||||
|
skewY: number;
|
||||||
|
skewX: number;
|
||||||
|
|
||||||
|
rotate: number;
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@gxc-solutions/renderer-base",
|
"name": "@gxc-solutions/renderer-base",
|
||||||
"version": "0.0.6",
|
"version": "0.0.7",
|
||||||
"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