@threepipe/plugin-svg-renderer
Version:
Plugins for SVG Rendering of 3d objects for Threepipe
100 lines • 3.36 kB
TypeScript
import { AViewerPluginSync, IObject3D, IViewerEvent, ThreeViewer, Vector2 } from 'threepipe';
import { FillPass, SVGMesh, SVGRenderer } from './three-svg-renderer';
/**
* SVG Rendering from 3d scenes helper plugin using [three-svg-renderer](https://www.npmjs.com/package/three-svg-renderer) (GPLV3 Licenced)
*/
export declare class ThreeSVGRendererPlugin extends AViewerPluginSync {
readonly autoAddToContainer: boolean;
static readonly PluginType = "ThreeSVGRendererPlugin";
enabled: boolean;
/**
* Automatically render when camera or any object changes.
*/
autoRender: boolean;
/**
* Use the fill pass to draw polygons.(both fills and strokes)
*/
drawPolygons: boolean;
/**
* Draw polygon fills. (fill color from material.color)
*/
drawPolygonFills: boolean;
/**
* Draw polygon strokes. (stroke color from material.color)
*/
drawPolygonStrokes: boolean;
/**
* Draw image fills. (fill image from rendered canvas image).
* Make sure canvas is rendered(and render pipeline has a render pass) before calling this.
*/
drawImageFills: boolean;
/**
* Draw visible contours of meshes.
*/
drawVisibleContours: boolean;
/**
* Draw hidden contours of meshes.
*/
drawHiddenContours: boolean;
/**
* Update meshes on every render. If this is false, meshes will only be updated when they change. (tracked using objectUpdate event)
*/
alwaysUpdateMeshes: boolean;
/**
* Min and Max Crease angle for mesh edges.
*/
creaseAngle: Vector2;
/**
* Automatically create SVG objects for all meshes in the scene.
* If this is false, you will have to manually create SVG objects for meshes using `makeSVGObject` method.
*/
autoMakeSvgObjects: boolean;
readonly renderer: SVGRenderer;
readonly svgNodeContainer: HTMLDivElement;
protected readonly _fillPass: FillPass;
setDirty(...args: any[]): any;
/**
* @param enabled
* @param autoAddToContainer - automatically add the svg to the viewer container and style it same as the viewer is position is absolute
*/
constructor(enabled?: boolean, autoAddToContainer?: boolean);
protected _lastStyles?: string;
onAdded(viewer: ThreeViewer): void;
private _meshesNeedsUpdate;
updateMeshes(): void;
onRemove(viewer: ThreeViewer): void;
protected _onMeshDispose(ev: any): void;
protected _onMeshUpdate(ev: any): void;
protected _meshes: Map<string, SVGMesh>;
protected _refreshMeshes(root?: IObject3D): never[] | undefined;
makeSVGObject(o: IObject3D): void;
private _rendering;
static SVG_RENDER_TIMEOUT: number;
protected _toggleMaterialRendering(meshes: SVGMesh[], enable: boolean): void;
render(): Promise<string | undefined>;
download(): void;
protected _viewerListeners: {
postRender: (_: IViewerEvent) => void;
};
get svgNode(): Element | undefined;
protected _refreshParams(): void;
protected _onResize(): void;
}
/**
* @license
* three-svg-renderer
*
* GNU GENERAL PUBLIC LICENSE
* Version 3, 29 June 2007
*
* Copyright (c) 2022 Axel Antoine
*/
/**
* @license
* three-mesh-halfedge
*
* MIT License
*
* Copyright (c) 2022 Axel Antoine
*/
//# sourceMappingURL=ThreeSVGRendererPlugin.d.ts.map