lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
70 lines (69 loc) • 2.93 kB
TypeScript
import { Object3D, Quaternion, Vector3 } from "three";
import IMeshAppendable from "../../interface/IMeshAppendable";
import Appendable from "./Appendable";
import SpawnPoint from "../SpawnPoint";
import Nullable from "../../interface/utils/Nullable";
import PhysicsObjectManager from "./PhysicsObjectManager";
import Point3d from "../../math/Point3d";
import { Point3dType } from "../../utils/isPoint";
export default class MeshAppendable<T extends Object3D = Object3D> extends Appendable implements IMeshAppendable {
outerObject3d: T;
object3d: T;
position: Vector3;
quaternion: Quaternion;
userData: Record<string, any>;
constructor(outerObject3d?: T);
parent?: MeshAppendable;
children?: Set<Appendable | MeshAppendable>;
traverse: (cb: (appendable: Appendable | MeshAppendable) => void) => void;
traverseSome: (cb: (appendable: Appendable | MeshAppendable) => unknown) => boolean;
append(child: Appendable | MeshAppendable): void;
attach(child: Appendable | MeshAppendable): void;
protected disposeNode(): void;
get name(): string | undefined;
set name(val: string | undefined);
get x(): number;
set x(val: number);
get y(): number;
set y(val: number);
get z(): number;
set z(val: number);
getWorldPosition(): Point3d;
getCenter(): Point3d;
getWorldDirection(): Vector3;
getProjectedPosition(): import("three").Vector2;
private _onMove?;
get onMove(): (() => void) | undefined;
set onMove(cb: (() => void) | undefined);
translateX(val: number): void;
translateY(val: number): void;
translateZ(val: number): void;
rotateX(val: number): void;
rotateY(val: number): void;
rotateZ(val: number): void;
setRotationFromDirection(direction: Point3dType): void;
placeAt(target: MeshAppendable | Point3dType | SpawnPoint | string): void;
moveForward(distance: number): void;
moveRight(distance: number): void;
onMoveToEnd: Nullable<() => void>;
lerpTo(x: number, y: number, z: number, alpha?: number): void;
moveTo(x: number, y: number | undefined, z: number, speed?: number): void;
protected getRay(): import("three").Ray;
pointAt(distance: number): Point3d;
get rotationX(): number;
set rotationX(val: number);
get rotationY(): number;
set rotationY(val: number);
get rotationZ(): number;
set rotationZ(val: number);
get rotation(): number;
set rotation(val: number);
lookAt(target: MeshAppendable | Point3dType): void;
lookAt(x: number, y: number | undefined, z: number): void;
onLookToEnd: (() => void) | undefined;
lookTo(target: MeshAppendable | Point3dType, alpha?: number): void;
lookTo(x: number, y: number | undefined, z: number, alpha?: number): void;
private queryRadius?;
private querySphere?;
queryNearby(radius: number): PhysicsObjectManager<Object3D<import("three").Event>>[];
}