|
|
|
@ -1,7 +1,8 @@ |
|
|
|
import * as THREE from 'three' |
|
|
|
import BaseRenderer from '@/core/base/BaseRenderer.ts' |
|
|
|
import Constract from '@/core/Constract.ts' |
|
|
|
import Clx3dObject from "./Clx3dObject"; |
|
|
|
import Clx3dObject from './Clx3dObject' |
|
|
|
import type { Object3DLike } from '@/types/ModelTypes.ts' |
|
|
|
|
|
|
|
/** |
|
|
|
* clx渲染器 |
|
|
|
@ -15,7 +16,7 @@ export default class ClxRenderer extends BaseRenderer { |
|
|
|
* 默认点的高度, 防止和地面重合 |
|
|
|
*/ |
|
|
|
readonly defulePositionY: number = Constract.HEIGHT_WAY |
|
|
|
readonly defaultScale: THREE.Vector3 = new THREE.Vector3(1, 1, 1) |
|
|
|
readonly defaultScale: THREE.Vector3 = new THREE.Vector3(1.65, 3.393, 1.65) |
|
|
|
readonly defaultRotation: THREE.Vector3 = new THREE.Vector3(0, 0, 0) |
|
|
|
readonly defaultLineWidth: number = 0.15 |
|
|
|
|
|
|
|
@ -59,6 +60,24 @@ export default class ClxRenderer extends BaseRenderer { |
|
|
|
return group |
|
|
|
} |
|
|
|
|
|
|
|
updatePoint(item: ItemJson, object: Object3DLike, option?: RendererCudOption): Object3DLike { |
|
|
|
const group: THREE.Group = object as THREE.Group |
|
|
|
|
|
|
|
group.position.set(item.tf[0][0], item.tf[0][1], item.tf[0][2]) |
|
|
|
group.rotation.set( |
|
|
|
THREE.MathUtils.degToRad(item.tf[1][0]), |
|
|
|
THREE.MathUtils.degToRad(item.tf[1][1]), |
|
|
|
THREE.MathUtils.degToRad(item.tf[1][2]) |
|
|
|
) |
|
|
|
|
|
|
|
// 禁止缩放,
|
|
|
|
item.tf[2][0] = this.defaultScale.x |
|
|
|
item.tf[2][1] = this.defaultScale.y |
|
|
|
item.tf[2][2] = this.defaultScale.z |
|
|
|
|
|
|
|
return group |
|
|
|
} |
|
|
|
|
|
|
|
dispose() { |
|
|
|
super.dispose() |
|
|
|
this.pointMaterial?.dispose() |
|
|
|
|