import { Transform as EffectsTransform, spec } from '@galacean/effects'; import { Quaternion, Euler, Vector3, Matrix4 } from './math'; import type { BaseTransform } from '../index'; /** * Model 插件中的对象类型 */ export declare enum PObjectType { none = 0, mesh = 1, texture = 2, material = 3, light = 4, camera = 5, skybox = 6, skin = 7, morph = 8, skeleton = 9, animation = 10, animationManager = 11, reference = 12 } /** * 灯光类型 */ export declare enum PLightType { directional = 0, point = 1, spot = 2, ambient = 3 } /** * 纹理类型 */ export declare enum PTextureType { none = 0, t2d = 1, t3d = 2, cube = 3 } /** * 材质类型 */ export declare enum PMaterialType { none = 0, unlit = 1, pbr = 2, normalVis = 3, simpleFilter = 4, shadowBase = 5, shadowFilter = 6, skyboxFilter = 7 } /** * 混合模式 */ export declare enum PBlendMode { opaque = 0, masked = 1, translucent = 2, additive = 3 } /** * 面片朝向模式 */ export declare enum PFaceSideMode { both = 0, front = 1, back = 2 } export declare enum PShadowType { none = 0, standard = 1, variance = 2, expVariance = 3 } export declare const PBRShaderGUID: string; export declare const UnlitShaderGUID: string; /** * 插件变换类 */ export declare class PTransform { private translation; private rotation; private scale; /** * 从矩阵设置数据 * @param matrix - 4阶矩阵 * @returns */ fromMatrix4(matrix: Matrix4): this; /** * 从 GE 变换设置数据 * @param trans - GE 变换对象或数据 * @returns */ fromEffectsTransform(trans: EffectsTransform | BaseTransform): this; /** * 转成 GE 变换对象 * @param transform - GE 变换对象 * @returns */ toEffectsTransform(transform: EffectsTransform): EffectsTransform; /** * 通过 GE 变换参数设置 * @param trans - GE 变换参数 * @returns */ fromBaseTransform(trans: BaseTransform): this; /** * 获取平移 * @returns */ getTranslation(): Vector3; /** * 设置平移 * @param val - 平移 */ setTranslation(val: Vector3 | spec.vec3): void; /** * 获取位置 * @returns */ getPosition(): Vector3; /** * 设置位置 * @param val - 位置 */ setPosition(val: Vector3 | spec.vec3): void; /** * 获取旋转 * @returns */ getRotation(): Quaternion; /** * 设置旋转 * @param val - 旋转,可能是四元数或欧拉角 */ setRotation(val: Quaternion | Euler | Vector3 | spec.vec4 | spec.vec3): void; /** * 获取缩放 * @returns */ getScale(): Vector3; /** * 设置缩放 * @param val - 缩放 */ setScale(val: Vector3 | spec.vec3): void; /** * 获取矩阵 * @returns */ getMatrix(): Matrix4; /** * 设置矩阵 * @param mat - 4阶矩阵 */ setMatrix(mat: Matrix4 | spec.mat4): void; } /** * 坐标系类 */ export declare class PCoordinate { /** * 原点 */ origin: Vector3; /** * X 轴 */ xAxis: Vector3; /** * Y 轴 */ yAxis: Vector3; /** * Z 轴 */ zAxis: Vector3; constructor(); /** * 从插件变换创建坐标系 * @param trans - 变换 * @param invert - 是否旋转取反 * @returns 坐标系对象 */ fromPTransform(trans: PTransform, invert?: boolean): this; /** * 从旋转矩阵创建坐标系 * @param matrix - 矩阵 */ fromRotationMatrix(matrix: Matrix4): void; } /** * 全局状态 */ export declare class PGlobalState { /** * 是否 WebGL2 */ isWebGL2: boolean; /** * 是否共享 Shader */ shaderShared: boolean; /** * 运行时环境,编辑器模式或设备模式 */ runtimeEnv: string; /** * 兼容模式,glTF 模式或 Tiny3d 模式 */ compatibleMode: string; /** * 是否显示包围盒 */ visBoundingBox: boolean; /** * 渲染输出结果模式,可以换中间渲染数据 */ renderMode3D: spec.RenderMode3D; /** * UV结果输出时,棋盘格的大小控制,范围(0, 1) */ renderMode3DUVGridSize: number; private static instance; /** * 获取单例 * @returns */ static getInstance(): PGlobalState; private constructor(); /** * 重置数据 */ reset(): void; /** * 是否可视化渲染中间结果 */ hasRenderMode3D(): boolean; /** * 是否编辑器模式 */ get isEditorEnv(): boolean; /** * 是否设备模式 */ get isDeviceEnv(): boolean; /** * 是否 Tiny3d 模式 */ get isTiny3dMode(): boolean; /** * 是否 glTF 模式 */ get isGLTFMode(): boolean; }