/* option参数含义 length:长 width:宽 positionX:x轴位置 positionY:y轴位置 color:创建的默认6个面的颜色值 */ function StoreArea(option) { var LineMat = new THREE.MeshLambertMaterial({color:0xDFCE19,NeedsUpdate: 1}); this.BorderWidth=8; this.PositionY=2.5; this.length=option.Length||1; this.width=option.Width||1; this.positionX=option.Position.X||0; this.positionZ=option.Position.Z||0; //水平线 var horizonalLineGeometry=new THREE.PlaneGeometry(this.BorderWidth, this.length); //垂直线 var verticalLineGeometry=new THREE.PlaneGeometry(this.BorderWidth ,this.width+this.BorderWidth*2); var topLine = new THREE.Mesh( horizonalLineGeometry, LineMat ); topLine.position.set(this.positionX,this.PositionY,this.positionZ-this.width/2-this.BorderWidth/2); topLine.rotation.x = -Math.PI / 2.0; topLine.rotation.z = -Math.PI / 2.0; var downLine = topLine.clone(); downLine.position.z= downLine.position.z +this.width+this.BorderWidth; var leftLine=new THREE.Mesh( verticalLineGeometry, LineMat ); leftLine.position.set(this.positionX-this.length/2-this.BorderWidth/2,this.PositionY,this.positionZ); leftLine.rotation.x = -Math.PI / 2.0; var rightLine=leftLine.clone(); rightLine.position.x=rightLine.position.x+this.length+this.BorderWidth; var positionY=this.PositionY; var positionX=this.positionX; var positionZ=this.positionZ; var group=new THREE.Group(); group.add(topLine); group.add(downLine); group.add(leftLine); group.add(rightLine); new THREE.FontLoader().load('./res/fonts/FZYaoTi_Regular.json',function(font){ ////加入立体文字 var text= new THREE.TextGeometry(option.Title.Text,{ // 设定文字字体 font:font, //尺寸 size:option.Title.FontSize, //厚度 height:0.1 }); text.computeBoundingBox(); //3D文字材质 var m = new THREE.MeshStandardMaterial({color:"#" + option.Title.TextColor}); var mesh = new THREE.Mesh(text,m); mesh.position.y =positionY; mesh.position.z = option.Title.Position.Z+positionZ; mesh.position.x = option.Title.Position.X+positionX; mesh.rotation.x = -Math.PI / 2.0; mesh.name=option.Name; mesh.id=option.No; group.add(mesh); }); return group; }