@thi.ng/scenegraph
Version:
Extensible 2D/3D scene graph with @thi.ng/hiccup-canvas support
30 lines • 1.2 kB
TypeScript
import type { ICopy, IToHiccup } from "@thi.ng/api";
import type { ReadonlyVec, Vec } from "@thi.ng/vectors";
import { ANode } from "./anode.js";
import type { CommonNodeOpts, ISceneNode } from "./api.js";
export interface Node2DOpts extends CommonNodeOpts<Node2D> {
translate?: Vec;
rotate?: number;
scale?: Vec | number;
}
export declare class Node2D extends ANode<Node2D> implements ICopy<Node2D>, ISceneNode<Node2D>, IToHiccup {
translate: Vec;
rotate: number;
scale: Vec | number;
constructor(opts: Node2DOpts);
copy(): Node2D;
update(): void;
mapGlobalPoint(p: ReadonlyVec): Vec<number>;
mapLocalPointToGlobal(p: ReadonlyVec): Vec<number>;
mapLocalPointToNode(dest: Node2D, p: ReadonlyVec): Vec<number>;
scaleWithReferencePoint(ref: ReadonlyVec, scale: ReadonlyVec | number): this;
/**
* By implementing this method (`IToHiccup` interface), scene graph nodes
* can be directly used by hdom-canvas, hiccup-canvas, rdom-canvas or
* hiccup-svg (for the latter one needs to call `convertTree()` first).
*
* @param ctx - arbitrary user data
*/
toHiccup(ctx?: any): any;
}
//# sourceMappingURL=node2.d.ts.map