feat(web): complete portable Blender feature gaps
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-09-06 19:33:50 +08:00
parent ed347098b4
commit 66d3f4e0f4
48 changed files with 58048 additions and 61 deletions

View File

@@ -28,6 +28,72 @@ export type PhysicsFamily = typeof PHYSICS_FAMILIES[number];
export type PhysicsExecutionRequest = "METADATA" | "CACHE_MANIFEST" | "CACHE_PLAYBACK" | "LOCAL_SOLVER" | "SERVER_JOB";
export type PhysicsSettingValue = boolean | number | string | null;
/** Typed Main-authoring payloads for the physics families exposed by WebEngine. */
export interface PhysicsRigidBodySettings {
type?: number;
mass?: number;
friction?: number;
restitution?: number;
collisionShape?: number;
kinematic?: boolean;
enabled?: boolean;
linearDamping?: number;
angularDamping?: number;
stepsPerSecond?: number;
solverIterations?: number;
}
export interface PhysicsClothSettings {
mass?: number;
airDamping?: number;
tensionStiffness?: number;
compressionStiffness?: number;
shearStiffness?: number;
bendingStiffness?: number;
springDamping?: number;
pinStiffness?: number;
quality?: number;
usePin?: boolean;
}
export interface PhysicsFluidSettings {
fluidType?: number;
domainType?: number;
resolution?: number;
timeScale?: number;
viscosity?: number;
gravity?: number;
cacheFrameStart?: number;
cacheFrameEnd?: number;
cacheType?: number;
}
export interface PhysicsSoftBodySettings {
nodeMass?: number;
gravity?: number;
mediaFriction?: number;
physicsSpeed?: number;
goalSpring?: number;
goalFriction?: number;
solverFlags?: number;
}
export interface PhysicsParticleCacheSettings {
frameStart?: number;
frameEnd?: number;
cacheType?: number;
compression?: number;
useDiskCache?: boolean;
pointCacheId?: string;
}
export interface PhysicsSimulationPlaybackSettings {
frame?: number;
playing?: boolean;
direction?: -1 | 1;
reset?: boolean;
}
export interface PhysicsCacheFrameIR {
frame: number;
byteOffset: number;