import { Transform, Point } from "./transform.js"; import { Field } from "./field.js"; import * as Message from "./message.js"; import { ClientData } from "./clientData.js"; import { EventTarget } from "./event.js"; import { Member } from "./member.js"; import { RobotModel } from "./robotModel.js"; import { Canvas2DComponent, Canvas2DComponentOption } from "./canvas2d.js"; import { FieldBase } from "./fieldBase.js"; export declare const geometryType: { readonly none: 0; readonly line: 1; readonly plane: 2; readonly box: 3; readonly circle: 4; readonly cylinder: 5; readonly sphere: 6; readonly polygon: 7; }; export declare class Geometry { type: number; properties: number[]; constructor(type: number, properties: number[]); get asLine(): Geometry & { begin: Point; end: Point; }; get asPlane(): Geometry & { origin: Transform; width: number; height: number; }; get asRect(): Geometry & { origin: Transform; width: number; height: number; }; get asBox(): Geometry & { vertex1: Point; vertex2: Point; }; get asCircle(): Geometry & { origin: Transform; radius: number; }; get asCylinder(): Geometry & { origin: Transform; radius: number; length: number; }; get asSphere(): Geometry & { origin: Point; radius: number; }; get asPolygon(): Geometry & { points: Point[]; }; } export declare const geometries: { line: (begin: Point, end: Point, options?: Canvas2DComponentOption & Canvas3DComponentOption) => TemporalGeometry; plane: (origin: Transform, width: number, height: number, options?: Canvas2DComponentOption & Canvas3DComponentOption) => TemporalGeometry; box: (vertex1: Point, vertex2: Point, options?: Canvas2DComponentOption & Canvas3DComponentOption) => TemporalGeometry; circle: (origin: Transform, radius: number, options?: Canvas2DComponentOption & Canvas3DComponentOption) => TemporalGeometry; cylinder: (origin: Transform, radius: number, length: number, options?: Canvas2DComponentOption & Canvas3DComponentOption) => TemporalGeometry; sphere: (origin: Point, radius: number, options?: Canvas2DComponentOption & Canvas3DComponentOption) => TemporalGeometry; }; export declare class TemporalGeometry extends Geometry { private _options; constructor(type: number, properties: number[], options?: Canvas2DComponentOption & Canvas3DComponentOption); to2(): Canvas2DComponent; to3(): Canvas3DComponent; } interface Canvas3DComponentOption { origin?: Transform; color?: number; angles?: Map | object; } export declare class Canvas3DComponent { private _type; private _origin; private _color; private _geometry; private _fieldBase; private _angles; private data; constructor(data: ClientData | null, type: number, geometry: Geometry | null, fieldBase: FieldBase | null, options?: Canvas3DComponentOption); get type(): number; get origin(): Transform; get color(): number; get geometry(): Geometry; get robotModel(): RobotModel; get angles(): Map; to3(): this; static fromMessage(data: ClientData | null, msg: Message.Canvas3DComponent): Canvas3DComponent; toMessage(): Message.Canvas3DComponent; } export type Canvas3DComponentProps = [Geometry, Transform, number] | [RobotModel, Transform, { [key in string]: number; }]; export declare const canvas3DComponentType: { readonly geometry: 0; readonly robotModel: 1; }; /** * Canvas3Dを指すクラス * * 詳細は {@link https://na-trium-144.github.io/webcface/md_17__canvas3d.html Canvas3Dのドキュメント} * を参照 */ export declare class Canvas3D extends EventTarget { base_: Field; /** * このコンストラクタは直接使わず、 * Member.canvas3D(), Member.canvas3DEntries(), Member.onCanvas3DEntry などを使うこと */ constructor(base: Field, field?: string); /** * Memberを返す */ get member(): Member; /** * field名を返す */ get name(): string; /** * 「(thisのフィールド名).(追加の名前)」をフィールド名とするCanvas3D */ child(field: string): Canvas3D; /** * 値をリクエストする。 */ request(): void; /** * canvasのデータを返す */ tryGet(): Canvas3DComponent[] | null; /** * canvasのデータを返す */ get(): Canvas3DComponent[]; /** * このフィールドにデータが存在すればtrueを返す * @since ver1.8 * * tryGet() とは違って、実際のデータを受信しない。 * (リクエストも送信しない) */ exists(): boolean; /** * Memberのsyncの時刻を返す * * @deprecated ver1.6〜 Member.syncTime() に移行 */ time(): Date; /** * Canvas3DComponentのリストをセットする */ set(data: (Canvas3DComponent | TemporalGeometry)[]): void; } export {};