新增相机限制
This commit is contained in:
@ -29,8 +29,7 @@ export class AppCamera extends Monobehiver {
|
||||
this.object.panningSensibility = 0;
|
||||
|
||||
// 限制垂直角范围,实现上帝视角
|
||||
// this.object.upperBetaLimit = Tools.ToRadians(60); // 最大垂直角(接近90度,避免万向锁)
|
||||
// this.object.lowerBetaLimit = Tools.ToRadians(60); // 最小垂直角
|
||||
this.object.upperBetaLimit = Tools.ToRadians(90); // 最大垂直角(接近90度,避免万向锁)
|
||||
|
||||
this.object.position = new Vector3(-0, 10, 0);
|
||||
this.setTarget(0, 2, 0);
|
||||
|
||||
@ -12,7 +12,7 @@ export const AppConfig = {
|
||||
envPath: '/hdr/sanGiuseppeBridge.env',
|
||||
intensity: 1.5,
|
||||
rotationY: 0,
|
||||
background: true,
|
||||
background: false,
|
||||
},
|
||||
gizmo: {
|
||||
position: true,
|
||||
|
||||
@ -554,6 +554,24 @@ export class AppModel extends Monobehiver {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有模型的元数据
|
||||
* @returns 所有模型的元数据数组
|
||||
*/
|
||||
getAllModelMetadata(): ModelMetadata[] {
|
||||
const keys = this.modelDic.Keys();
|
||||
const metadataList: ModelMetadata[] = [];
|
||||
|
||||
for (const key of keys) {
|
||||
const metadata = this.modelMetadataDic.Get(key);
|
||||
if (metadata) {
|
||||
metadataList.push(metadata);
|
||||
}
|
||||
}
|
||||
|
||||
return metadataList;
|
||||
}
|
||||
|
||||
private getModelTransformTargets(meshes: AbstractMesh[]): AbstractMesh[] {
|
||||
const meshSet = new Set<AbstractMesh>(meshes);
|
||||
const rootMeshes = meshes.filter(mesh => !mesh.parent || !meshSet.has(mesh.parent as AbstractMesh));
|
||||
|
||||
@ -82,6 +82,18 @@ export class KernelAdapter {
|
||||
*/
|
||||
exists: (modelId: string): boolean => {
|
||||
return this.mainApp.appModel.exists(modelId);
|
||||
},
|
||||
/**
|
||||
* 获取所有模型的元数据
|
||||
* @returns 所有模型的元数据数组,包含 modelName, modelId, modelControlType 等信息
|
||||
* @example
|
||||
* // 获取所有模型
|
||||
* const allModels = kernel.model.getAllMetadata();
|
||||
* // 查找特定类型的模型
|
||||
* const pergola = allModels.find(m => m.modelControlType === 'pergola');
|
||||
*/
|
||||
getAllMetadata: (): any[] => {
|
||||
return this.mainApp.appModel.getAllModelMetadata();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user