mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-05 02:39:46 +02:00
118 lines
3 KiB
TypeScript
118 lines
3 KiB
TypeScript
import {
|
|
Bone,
|
|
Euler,
|
|
Matrix4,
|
|
Object3D,
|
|
Quaternion,
|
|
SkinnedMesh,
|
|
Vector3
|
|
} from '../../../src/Three';
|
|
|
|
export interface MMDPhysicsParameter {
|
|
unitStep?: number;
|
|
maxStepNum?: number;
|
|
gravity?: Vector3;
|
|
}
|
|
|
|
export class MMDPhysics {
|
|
|
|
constructor( mesh: SkinnedMesh, rigidBodyParams: object[], constraintParams?: object[], params?: MMDPhysicsParameter );
|
|
manager: ResourceManager;
|
|
mesh: SkinnedMesh;
|
|
unitStep: number;
|
|
maxStepNum: number;
|
|
gravity: Vector3;
|
|
world: null;
|
|
bodies: RigidBody[];
|
|
constraints: Constraint[];
|
|
|
|
update( delta: number ): this;
|
|
reset(): this;
|
|
warmup( cycles: number ): this;
|
|
setGravity( gravity: Vector3 ): this;
|
|
createHelper(): MMDPhysicsHelper;
|
|
|
|
}
|
|
|
|
export class ResourceManager {
|
|
|
|
constructor();
|
|
threeVector3s: Vector3[];
|
|
threeMatrix4s: Matrix4[];
|
|
threeQuaternions: Quaternion[];
|
|
threeEulers: Euler[];
|
|
transforms: object[];
|
|
quaternions: object[];
|
|
vector3s: object[];
|
|
|
|
allocThreeVector3(): void;
|
|
freeThreeVector3( v: Vector3 ): void;
|
|
allocThreeMatrix4(): void;
|
|
freeThreeMatrix4( m: Matrix4 ): void;
|
|
allocThreeQuaternion(): void;
|
|
freeThreeQuaternion( q: Quaternion ): void;
|
|
allocThreeEuler(): void;
|
|
freeThreeEuler( e: Euler ): void;
|
|
allocTransform(): void;
|
|
freeTransform( t: object ): void;
|
|
allocQuaternion(): void;
|
|
freeQuaternion( q: object ): void;
|
|
allocVector3(): void;
|
|
freeVector3( v: object ): void;
|
|
setIdentity(): void;
|
|
getBasis( t: object ): object;
|
|
getBasisAsMatrix3( t: object ): object;
|
|
getOrigin( t: object ): object;
|
|
setOrigin( t: object, v: object ): void;
|
|
copyOrigin( t1: object, t2: object ): void;
|
|
setBasis( t: object, q: object ): void;
|
|
setBasisFromMatrix3( t: object, m: object ): void;
|
|
setOriginFromArray3( t: object, a: number[] ): void;
|
|
setOriginFromThreeVector3( t: object, v: Vector3 ): void;
|
|
setBasisFromArray3( t: object, a: number[] ): void;
|
|
setBasisFromThreeQuaternion( t: object, a: Quaternion ): void;
|
|
multiplyTransforms( t1: object, t2: object ): object;
|
|
inverseTransform( t: object ): object;
|
|
multiplyMatrices3( m1: object, m2: object ): object;
|
|
addVector3( v1: object, v2: object ): object;
|
|
dotVectors3( v1: object, v2: object ): number;
|
|
rowOfMatrix3( m: object, i: number ): object;
|
|
columnOfMatrix3( m: object, i: number ): object;
|
|
negativeVector3( v: object ): object;
|
|
multiplyMatrix3ByVector3( m: object, v: object ): object;
|
|
transposeMatrix3( m: object ): object;
|
|
quaternionToMatrix3( q: object ): object;
|
|
matrix3ToQuaternion( m: object ): object;
|
|
|
|
}
|
|
|
|
export class RigidBody {
|
|
|
|
constructor( mesh: SkinnedMesh, world: object, params: object, manager: ResourceManager );
|
|
mesh: SkinnedMesh;
|
|
world: object;
|
|
params: object;
|
|
manager: ResourceManager;
|
|
|
|
body: object;
|
|
bone: Bone;
|
|
boneOffsetForm: object;
|
|
boneOffsetFormInverse: object;
|
|
|
|
reset(): this;
|
|
updateFromBone(): this;
|
|
updateBone(): this;
|
|
|
|
}
|
|
|
|
export class Constraint {
|
|
|
|
constructor( mesh: SkinnedMesh, world: object, bodyA: RigidBody, bodyB: RigidBody, params: object, manager: ResourceManager );
|
|
|
|
}
|
|
|
|
export class MMDPhysicsHelper extends Object3D {
|
|
|
|
constructor();
|
|
|
|
}
|