import { Member } from "./member.js"; import { EventTarget } from "./event.js"; import { Field } from "./field.js"; import * as Message from "./message.js"; import { Transform } from "./transform.js"; import { Geometry } from "./canvas3d.js"; export declare const robotJointType: { readonly fixedAbsolute: 0; readonly fixed: 1; readonly rotational: 2; readonly prismatic: 3; }; export interface RobotJoint { name: string; /** * 親linkの名前 */ parentName: string; type: number; /** * 親linkの座標系でこのjointの位置(=このlinkの座標系の原点) */ origin: Transform; angle: number; } export declare class RobotLink { name: string; joint: RobotJoint; geometry: Geometry; color: number; private model?; constructor(name: string, joint: RobotJoint, geometry: Geometry, color: number, model?: RobotLink[]); get isBase(): boolean; /** * ベースリンク座標系でのこのlinkの位置 */ get originFromBase(): Transform; /** * ベースリンク座標系でのこのlinkの位置を計算する * * @param angles それぞれのjointの角度を指定 (省略した場合それぞれ0) * */ getOriginFromBase(angles?: Map): Transform; static fromMessage(msg: Message.RobotLink, model: RobotLink[]): RobotLink; toMessage(linkNames: string[]): Message.RobotLink; } /** * RobotModelを指すクラス * * 詳細は {@link https://na-trium-144.github.io/webcface/md_16__robot_model.html RobotModelのドキュメント} * を参照 */ export declare class RobotModel extends EventTarget { base_: Field; /** * このコンストラクタは直接使わず、 * Member.robotModel(), Member.robotModels(), Member.onRobotModelEntry などを使うこと */ constructor(base: Field, field?: string); /** * Memberを返す */ get member(): Member; /** * field名を返す */ get name(): string; /** * 値をリクエストする。 */ request(): void; /** * modelを返す */ tryGet(): RobotLink[] | null; /** * modelを返す */ get(): RobotLink[]; /** * このフィールドにデータが存在すればtrueを返す * @since ver1.8 * * tryGet() とは違って、実際のデータを受信しない。 * (リクエストも送信しない) */ exists(): boolean; /** * Memberのsyncの時刻を返す * * @deprecated ver1.6〜 Member.syncTime() に移行 */ time(): Date; }