pixi-reactive
Version:
A library to help integrate PIXI into a React project
154 lines (153 loc) • 3.98 kB
TypeScript
import * as PIXI from 'pixi.js';
export declare type ShapeTextureType = {
texture?: PIXI.Texture;
matrix?: PIXI.Matrix;
setTexture: (texture?: PIXI.Texture) => void;
setMatrix: (matrix?: PIXI.Matrix) => void;
};
export declare type FillDefinition = FillStyleType & TextureStyleType;
export declare type LineDefinition = LineStyleType & TextureStyleType;
export declare type ShapeStyleType = {
fill?: FillDefinition;
line?: LineDefinition;
holes?: ShapeType[];
setFillStyle: (fill?: FillDefinition) => void;
setLineStyle: (line?: LineDefinition) => void;
setHoles: (holes?: ShapeType[]) => void;
};
export declare enum LineJoin {
Miter = "miter",
Round = "round",
Bevel = "bevel"
}
export declare enum LineCap {
Butt = "butt",
Round = "round",
Square = "square"
}
export declare enum ShapeAction {
UpdateShape = 0,
RemoveShape = 1
}
export declare type GraphicsState = {
shapes: string[];
shapeMap: Map<string, DrawShapeDefinition>;
};
export declare type ShapeActionType = {
type: ShapeAction;
id: string;
definition?: DrawShapeDefinition;
};
export declare enum Shapes {
Path = 0,
Circle = 1,
Ellipse = 2,
Polygon = 3,
Rect = 4,
RoundedRect = 5,
Star = 6,
Arc = 7,
ArcCurve = 8,
BezierCurve = 9,
QuadraticCurve = 10
}
export declare type ShapeGenericType = {
name?: string;
};
export declare type ShapeType = ShapeGenericType & {
type: Shapes;
params: number[];
points?: PIXI.Point[];
};
declare type TextureStyleType = {
texture?: PIXI.Texture;
matrix?: PIXI.Matrix;
};
export declare type FillStyleType = {
alpha?: number;
color?: number;
};
export declare type LineStyleType = FillStyleType & {
alignment?: number;
cap?: LineCap;
join?: LineJoin;
miterLimit?: number;
native?: boolean;
width?: number;
};
export declare type DrawShapeDefinition = ShapeType & {
id: string;
fill?: FillDefinition;
line?: LineDefinition;
holes?: ShapeType[];
};
export declare type GraphicsContextType = {
drawShape: (definition: DrawShapeDefinition) => void;
removeShape: (id: string) => void;
};
export declare type Coords = {
x: number;
y: number;
};
export declare type Area = Coords & {
width: number;
height: number;
};
export declare type RectangleType = ShapeGenericType & Area & {
borderRadius?: number;
};
export declare type CircleType = ShapeGenericType & Coords & {
radius: number;
};
export declare type QuadraticCurveType = ShapeGenericType & {
xFrom?: number;
yFrom?: number;
xTo: number;
yTo: number;
controlX: number;
controlY: number;
};
export declare type ArcCurveType = QuadraticCurveType & {
radius: number;
};
export declare type BezierCurveType = QuadraticCurveType & {
controlX2: number;
controlY2: number;
};
export declare type ArcType = ShapeGenericType & CircleType & Coords & {
startAngle: number;
endAngle: number;
anticlockwise?: boolean;
};
export declare type EllipseType = ShapeGenericType & Area;
export declare type RegularPolygonType = CircleType & {
sides?: number;
rotation?: number;
};
export declare type StarType = CircleType & {
points?: number;
innerRadius?: number;
rotation?: number;
};
export declare type PointProps = Coords & {
id?: string;
};
export declare type PointsContextType = {
points: PIXI.Point[];
addPoint: (id: string, point: Coords) => void;
removePoint: (id: string) => void;
};
export declare type PointsState = {
points: string[];
pointMap: Map<string, Coords>;
};
export declare enum PointAction {
Add = 0,
Remove = 1
}
export declare type PointActionType = {
type: PointAction;
id: string;
point?: Coords;
};
export {};