我需要知道如何使用Type脚本向Forge Viewer v6添加网格。
我遍历了所有主题和文章,并且可以在v4中使用。
现在,当我尝试以下代码时:
private wallGeometry: THREE.BoxBufferGeometry;
drawWalls() {
this.wallGeometry = new THREE.BoxBufferGeometry(4000, 4000, 100, 1, 1, 1);
console.log('creating wall geometry');
this.wallGeometry = new THREE.BoxBufferGeometry(4000, 4000, 100, 1, 1, 1);
console.log('creating wall material');
let wallMaterial = new THREE.MeshPhongMaterial({ color: 0xff0000 });
console.log('register wall material');
this.viewer.impl.matman().addMaterial(
'dasher-material-vertex',
wallMaterial,
true);
console.log('create Overlay Scene');
this.viewer.impl.createOverlayScene(this._overlayScene, wallMaterial);
console.log('wall mesh');
this.wall = new THREE.Mesh(this.wallGeometry, wallMaterial);
this.wall.position.set(0, -1000, -2000);
console.log('add overlay to scene');
this.addToScene(this.wall);
}
private addToScene(obj: THREE.Object3D) {
this.viewer.impl.addOverlay(this._overlayScene, obj);
this.viewer.impl.invalidate(false, false, true);
}
我收到以下错误消息:
THREE.Object3D.add:对象不是THREE.Object3D的实例。
yr {uuid:“ 6A27DA63-8F99-4E50-9A99-90BED6CE5B85”,名称:“”,类型:“ Mesh”,父项:null,子项:Array(0),…}
castShadow:假
孩子:[]
drawMode:0
frustumCulled:true
几何:II {uuid:“ 8C6C2DD2-B233-4E98-998C-2307A84D1E4B”,名称:“”,类型:“ BoxBufferGeometry”,索引:pi,属性:{…},…}
层:Pn {mask:1}
材质:hc {uuid:“ 9A6A3601-49F6-4D6E-98E1-21C35BF63D80”,名称:“”,类型:“ MeshPhongMaterial”,雾:真,灯光:真,…}
矩阵:dn {元素:Array(16)}
matrixAutoUpdate:true
matrixWorld:dn {elements:Array(16)}
matrixWorldNeedsUpdate:假
名称:“”
父级:null
位置:位于{x:0,y:-1000,z:-2000}
四元数:Et {_x:0,_y:0,_z:0,_w:1,onChangeCallback:ƒ}
receiveShadow:假
renderOrder:0
旋转:Cn {_x:0,_y:0,_z:0,_order:“ XYZ”,onChangeCallback:ƒ}
比例尺:在{x:1,y:1,z:1}
类型:“网格”
上:在{x:0,y:1,z:0}
userData:{}
uuid:“ 6A27DA63-8F99-4E50-9A99-90BED6CE5B85”
可见:true
eulerOrder:(...)
id:3
modelViewMatrix:dn {元素:Array(16)}
normalMatrix:Lt {elements:Array(9)}
useQuaternion:(...)
原始:$ n
任何想法?
答案 0 :(得分:0)
根据three.js v71 source,当插入的对象缺少名为isObject3D
的属性时,将引发此错误。我不确定是否缺少此属性是由Forge Viewer引起的。尝试在调用addToScene
之前放置一个断点,并确保其中有isObject3D
属性。
此外,由于您在运行时期间遇到此错误,因此它也不应该与TypeScript相关。
答案 1 :(得分:0)
答案 2 :(得分:0)