提交 424dd88e 编写于 作者: X xiao149

添加天空盒

添加天空盒和删除不必要的图片
上级 48e43d23
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="09db71c4-55c5-47c5-a535-d9c3f862f226" name="Default Changelist" comment="" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="DefaultGradleProjectSettings">
<option name="testRunner" value="GRADLE" />
<option name="delegatedBuild" value="true" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="50" />
<option name="y" value="20" />
<option name="width" value="1750" />
<option name="height" value="970" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="settings.editor.selected.configurable" value="com.genymobile.genymotion.ide.idea.GdmSettings" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="09db71c4-55c5-47c5-a535-d9c3f862f226" name="Default Changelist" comment="" />
<created>1574840092432</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1574840092432</updated>
<workItem from="1574840093708" duration="1181000" />
</task>
<task id="LOCAL-00001" summary="初始提交">
<created>1574840585667</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1574840585667</updated>
</task>
<task id="LOCAL-00002" summary="初始提交">
<created>1574840864085</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1574840864085</updated>
</task>
<option name="localTasksCounter" value="3" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="1181000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
<is-autoscroll-to-source value="true" />
</todo-panel>
<todo-panel id="all">
<are-packages-shown value="true" />
<is-autoscroll-to-source value="true" />
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
<layout>
<window_info id="Image Layers" />
<window_info id="Designer" />
<window_info id="UI Designer" />
<window_info id="Capture Tool" />
<window_info id="Favorites" side_tool="true" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="bottom" id="Docker" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" />
<window_info anchor="bottom" id="Version Control" weight="0.6480938" />
<window_info anchor="bottom" id="Terminal" weight="0.329429" />
<window_info anchor="bottom" id="Event Log" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" visible="true" weight="0.329429" />
<window_info anchor="right" id="Palette" />
<window_info anchor="right" id="Theme Preview" />
<window_info anchor="right" id="Maven" />
<window_info anchor="right" id="Capture Analysis" />
<window_info anchor="right" id="Palette&#9;" />
<window_info anchor="right" id="Database" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="初始提交" />
<option name="LAST_COMMIT_MESSAGE" value="初始提交" />
</component>
<component name="masterDetails">
<states>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>
\ No newline at end of file
......@@ -67,14 +67,12 @@
// 初始化场景
function initScene() {
scene = new THREE.Scene();
scene.fog = new THREE.Fog(scene.background, 3000, 5000);
}
// 初始化相机
function initCamera() {
camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 10000);
camera.position.set(0, 800, 1500);
camera.lookAt(new THREE.Vector3(0, 0, 0));
camera.position.set(50, 50, 200);
}
// 初始化灯光
......@@ -315,7 +313,7 @@
texture.format = THREE.RGBFormat;
material.map = texture;
var mesh = new THREE.Mesh(planeGeometry, material);
mesh.position.set(500, 100, -694);
mesh.position.set(0, 60, -690);
scene.add(mesh);
}
......@@ -327,9 +325,10 @@
// 视角最小距离
controls.minDistance = 100;
// 视角最远距离
controls.maxDistance = 5000;
controls.maxDistance = 1000;
// 最大角度
controls.maxPolarAngle = Math.PI / 2.2;
controls.target = new THREE.Vector3(50,50,0);
}
function initEcharts(){
......@@ -448,8 +447,9 @@
// 初始化
function init() {
initMat();//初始化材质信息
initMat();
initScene();
addSkybox( 10000, scene );
initCamera();
initRenderer();
initContent();
......
......@@ -180,6 +180,34 @@ function initMat() {
RollTexture.wrapT=THREE.RepeatWrapping;
}
//region 放置天空盒
function addSkybox( size,scene ) {
urls = [
'./ThreeJs/images/skybox/远山_RT.jpg', // right
'./ThreeJs/images/skybox/远山_LF.jpg', // left
'./ThreeJs/images/skybox/远山_UP.jpg', // top
'./ThreeJs/images/skybox/远山_DN.jpg', // bottom
'./ThreeJs/images/skybox/远山_BK.jpg', // back
'./ThreeJs/images/skybox/远山_FR.jpg' // front
];
var skyboxCubemap = new THREE.CubeTextureLoader().load( urls );
skyboxCubemap.format = THREE.RGBFormat;
var skyboxShader = THREE.ShaderLib['cube'];
skyboxShader.uniforms['tCube'].value = skyboxCubemap;
var obj = new THREE.Mesh(
new THREE.BoxGeometry( size, size, size ),
new THREE.ShaderMaterial({
fragmentShader : skyboxShader.fragmentShader,
vertexShader : skyboxShader.vertexShader,
uniforms : skyboxShader.uniforms,
depthWrite : false,
side : THREE.BackSide
})
);
scene.add( obj );
}
//endregion
//region 滚动的物体
function addRollPlane(scene) {
......@@ -190,7 +218,6 @@ function addRollPlane(scene) {
}
//endregion
//region 矩形区域
/** */
function addPlane(x,z,width,length,scene) {
......
/**
* Modules.js是3D库区图显示模型存放的地方
*
* @author 谢宁, Created on 2018-06-07
*/
/** ***************************************************************** */
//模型材质信息
var planeMat, RackMat, RackMat2, CargoMat, CargoMat_yuanliao, CargoMat_fuliao, CargoMat_baocai, CargoMat_zhongjian, CargoMat_huagong, CargoMat_chengpin, CargoMat_qita;
//库图环境配置信息
var enable_composer, enable_pan, enable_rotate, enable_zoom;
//库区信息
var storageZoneSize = 0, storageZoneList = [];
//货架信息
var shelfSize = 0, shelfList = [];
//货位信息
var storageUnitSize = 0, storageUnitList = [];
//货物信息
var cargoSize = 0, cargoList = [], CargosExist;
var PLANE_LENGTH = 24;
var PLANE_WIDTH = 55;
var PLANE_HEIGHT = 2;
var HOLDER_LENGTH = 2;
var HOLDER_WIDTH = 2;
var HOLDER_HEIGHT = 25;
var LAYER_NUM = 3;
var COLUMN_NUM = 2;
//创建库区对象
function storageZone(StorageZoneId,StorageZoneName,
coordinateX,coordinateZ,
width,length,
textColor,fontSize,textposition)
{
this.StorageZoneId=StorageZoneId;
this.StorageZoneName=StorageZoneName;
this.coordinateX=coordinateX;
this.coordinateZ=coordinateZ;
this.width=width;
this.length=length;
this.textColor=textColor;
this.fontSize=fontSize;
this.textposition=textposition;
}
//根据库区编码获取库区对象
function getStorageZoneById(StorageZoneId) {
for(var i = 0; i < storageZoneSize; i++){
if(storageZoneList[i].StorageZoneId == StorageZoneId){
return storageZoneList[i];
}
}
}
//创建货架对象
function shelf(storageZoneId, shelfId, shelfName,
planeLength , planeWidth , planeHeight ,
holderLength , holderWidth , holderHeight ,
positionX , positionY , positionZ ,
layerNum , columnNum)
{
this.storageZoneId=storageZoneId;
this.shelfId=shelfId;
this.shelfName=shelfName;
this.planeLength=planeLength;
this.planeWidth=planeWidth;
this.planeHeight=planeHeight;
this.holderLength=holderLength;
this.holderWidth=holderWidth;
this.holderHeight=holderHeight;
this.positionX=positionX;
this.positionY=positionY;
this.positionZ=positionZ;
this.layerNum=layerNum;
this.columnNum=columnNum;
}
//根据货架编码获取货架对象
function getShelfById(shelfId) {
for(var i = 0; i < shelfSize; i++){
if(shelfList[i].shelfId == shelfId){
return shelfList[i];
}
}
}
//创建货位对象
function storageUnit(storageZoneId, shelfId, shelfName,
inLayerNum , inColumnNum ,
positionX , positionY , positionZ, storageUnitId)
{
this.storageZoneId=storageZoneId;
this.shelfId=shelfId;
this.shelfName=shelfName;
this.inLayerNum=inLayerNum;
this.inColumnNum=inColumnNum;
this.positionX=positionX;
this.positionY=positionY;
this.positionZ=positionZ;
this.storageUnitId=storageUnitId;
}
//根据货架ID、层数、列数获取货位对象
function getStorageUnitById(shelfId,inLayerNum,inColumnNum) {
for(var i = 0; i < storageUnitSize; i++){
if(storageUnitList[i].shelfId == shelfId && storageUnitList[i].inLayerNum == inLayerNum && storageUnitList[i].inColumnNum == inColumnNum){
return storageUnitList[i];
}
}
}
//根据库位编码获取货位对象
function getStorageUnitByUnitId(storageUnitId) {
for(var i = 0; i < storageUnitSize; i++){
if(storageUnitList[i].storageUnitId == storageUnitId){
return storageUnitList[i];
}
}
}
//创建货物对象
function cargo(batchNo, prodBatchNo, inBatchNo,
matId, matClassId, matName,
qty, qtyUom, qty2,
warehouseId, storageZoneId, storageUnitId,
positionX , positionY , positionZ,
length , width , height)
{
this.batchNo=batchNo;
this.prodBatchNo=prodBatchNo;
this.inBatchNo=inBatchNo;
this.matId=matId;
this.matClassId=matClassId;
this.matName=matName;
this.qtyUom=qtyUom;
this.qty2=qty2;
this.warehouseId=warehouseId;
this.storageZoneId=storageZoneId;
this.storageUnitId=storageUnitId;
this.positionX=positionX;
this.positionY=positionY;
this.positionZ=positionZ;
this.length=length;
this.width=width;
this.height=height;
}
/** 初始化材质信息 */
function initMat() {
planeMat = new THREE.MeshLambertMaterial();
RackMat = new THREE.MeshLambertMaterial();
RackMat2 = new THREE.MeshPhongMaterial({color:0x1C86EE});
CargoMat = new THREE.MeshLambertMaterial();
CargoMat_yuanliao = new THREE.MeshLambertMaterial();//原料
CargoMat_fuliao = new THREE.MeshLambertMaterial();//辅料
CargoMat_baocai = new THREE.MeshLambertMaterial();//包材
CargoMat_huagong = new THREE.MeshLambertMaterial();//化工品
CargoMat_zhongjian = new THREE.MeshLambertMaterial();//中间品
CargoMat_chengpin = new THREE.MeshLambertMaterial();//成品
CargoMat_qita = new THREE.MeshLambertMaterial();//其他
new THREE.TextureLoader().load( './ThreeJs/images/plane.png', function( map ) {
planeMat.map = map;
planeMat.transparent = true;
planeMat.opacity = 0.8;
planeMat.needsUpdate = true;
} );
new THREE.TextureLoader().load( "./ThreeJs/images/rack.png", function( map ) {
RackMat.map = map;
RackMat.needsUpdate = true;
} );
new THREE.TextureLoader().load( "./ThreeJs/images/box.png", function( map ) {
CargoMat.map = map;
CargoMat.needsUpdate = true;
} );
new THREE.TextureLoader().load( "./ThreeJs/images/原料.png", function( map ) {
CargoMat_yuanliao.map = map;
CargoMat_yuanliao.needsUpdate = true;
} );
new THREE.TextureLoader().load( "./ThreeJs/images/辅料.png", function( map ) {
CargoMat_fuliao.map = map;
CargoMat_fuliao.needsUpdate = true;
} );
new THREE.TextureLoader().load( "./ThreeJs/images/包材.png", function( map ) {
CargoMat_baocai.map = map;
CargoMat_baocai.needsUpdate = true;
} );
new THREE.TextureLoader().load( "./ThreeJs/images/化工品.png", function( map ) {
CargoMat_huagong.map = map;
CargoMat_huagong.needsUpdate = true;
} );
new THREE.TextureLoader().load( "./ThreeJs/images/中间品.png", function( map ) {
CargoMat_zhongjian.map = map;
CargoMat_zhongjian.needsUpdate = true;
} );
new THREE.TextureLoader().load( "./ThreeJs/images/成品.png", function( map ) {
CargoMat_chengpin.map = map;
CargoMat_chengpin.needsUpdate = true;
} );
new THREE.TextureLoader().load( "./ThreeJs/images/其他.png", function( map ) {
CargoMat_qita.map = map;
CargoMat_qita.needsUpdate = true;
} );
}
/* 放置天空盒 **/
// function addSkybox( size,scene ) {
// urls = [
// './BM2P/images/right.jpg', // right
// './BM2P/images/left.jpg', // left
// './BM2P/images/top.jpg', // top
// './BM2P/images/down.jpg', // bottom
// './BM2P/images/back.jpg', // back
// './BM2P/images/front.jpg' // front
// ];
// var skyboxCubemap = new THREE.CubeTextureLoader().load( urls );
// skyboxCubemap.format = THREE.RGBFormat;
//
// var skyboxShader = THREE.ShaderLib['cube'];
// skyboxShader.uniforms['tCube'].value = skyboxCubemap;
// var obj = new THREE.Mesh(
// new THREE.BoxGeometry( size, size, size ),
// new THREE.ShaderMaterial({
// fragmentShader : skyboxShader.fragmentShader,
// vertexShader : skyboxShader.vertexShader,
// uniforms : skyboxShader.uniforms,
// depthWrite : false,
// side : THREE.BackSide
// })
// );
// scene.add( obj );
// }
//region 库区
/** 放置虚线框区域和库区名称 */
function addArea(x,z,width,length,scene,name,textColor,font_size,textposition) {
var geometry = new THREE.PlaneGeometry( width, length );
var obj = new THREE.Mesh( geometry, planeMat );
obj.position.set(x,1.5,z);
obj.rotation.x = -Math.PI / 2.0;
obj.name = "库区"+"$"+name.split("$")[1];
scene.add( obj );
new THREE.FontLoader().load('./BM2P/js/FZYaoTi_Regular.json',function(font){
////加入立体文字
var text= new THREE.TextGeometry(name.split("$")[1],{
// 设定文字字体
font:font,
//尺寸
size:font_size,
//厚度
height:0.01
});
text.computeBoundingBox();
//3D文字材质
var m = new THREE.MeshStandardMaterial({color:"#" + textColor});
var mesh = new THREE.Mesh(text,m)
if(textposition == "左对齐"){
mesh.position.x = x - width/2 + 10;
}else if(textposition == "居中"){
mesh.position.x = x - 15;
}else if(textposition == "右对齐"){
mesh.position.x = x + width/2 - 60;
}
mesh.position.y = 1.3;
mesh.position.z = z + length/2 - 20;
mesh.rotation.x = -Math.PI / 2.0;
scene.add(mesh);
});
}
/** 根据3D库图库区配置表添加库区和文字 */
function addStorageZone(scene) {
var eiinfo = new EiInfo();
var ajax_callback = {
onSuccess : function(eiinfo) {
storageZoneSize = eiinfo.get("size");
for(var i = 0; i < storageZoneSize; i++){
var storageZone_obj = new storageZone(eiinfo.get("StorageZoneId")[i],
eiinfo.get("StorageZoneName")[i],
eiinfo.get("coordinateX")[i],
eiinfo.get("coordinateZ")[i],
eiinfo.get("width")[i],
eiinfo.get("length")[i],
eiinfo.get("textColor")[i],
eiinfo.get("fontSize")[i],
eiinfo.get("textposition")[i]);
storageZoneList.push(storageZone_obj);
}
},
onFail : function(eMsg) {
EFAlert( "加载库图配置失败:"+eMsg ,"错误" );
}
};
EiCommunicator.send("YMIQ083D", "queryStorageZoneConfig3D", eiinfo, ajax_callback);
for(var i = 0;i < storageZoneSize; i++){
addArea(storageZoneList[i].coordinateX,storageZoneList[i].coordinateZ,storageZoneList[i].width,storageZoneList[i].length,scene,storageZoneList[i].StorageZoneId+"$"+storageZoneList[i].StorageZoneName,storageZoneList[i].textColor,storageZoneList[i].fontSize,storageZoneList[i].textposition);
}
}
//endregion
//region 货架货位
/** 放置单层货架 */
/** x,y,z 整个模型在场景中的位置 */
/** plane_x,plane_y,plane_z 货架板面的长高宽 */
/** holder_x,holder_y,holder_z 货架支架的长高宽 */
/** scene,name,num 要添加的场景,货架的名字,单层货架的库位数量 */
function addRack(x,y,z,plane_x,plane_y,plane_z,holder_x,holder_y,holder_z,scene,name,num) {
var plane = new THREE.BoxGeometry( plane_x, plane_y, plane_z/num );
var gz = [];
for(var i = 0; i < num; i++){
gz.push( z + plane_z/num/2 + (plane_z/num)*i );
var obj = new THREE.Mesh( plane, RackMat );
obj.position.set(x , y, gz[i]) ;
var msg = name+"$"+(2-i);
var eiinfo = new EiInfo();
eiinfo.set("shelfId",msg.split("$")[1]);
eiinfo.set("inLayerNum",msg.split("$")[3]);
eiinfo.set("inColumnNum",msg.split("$")[4]);
var storageUnitId = "";
var ajax_callback = {
onSuccess : function(eiinfo) {
storageUnitId = eiinfo.get("storageUnitId");
},
onFail : function(eMsg) {
EFAlert( "加载库图货架配置失败:"+eMsg ,"错误" );
}
};
EiCommunicator.send("YMIQ083D", "queryStorageUnit", eiinfo, ajax_callback);
//添加货位
var storageUnit_obj = new storageUnit(msg.split("$")[0],
msg.split("$")[1],
msg.split("$")[2],
msg.split("$")[3],
msg.split("$")[4],
x, y, gz[i], storageUnitId);
storageUnitList.push(storageUnit_obj);
storageUnitSize++;
var Unit = getStorageUnitById(msg.split("$")[1],msg.split("$")[3],msg.split("$")[4]);
obj.name = "货位"+"$"+Unit.storageUnitId;
scene.add(obj);
}
var holder = new THREE.BoxGeometry( holder_x, holder_y, holder_z );
var obj2 = new THREE.Mesh( holder, RackMat2 );
var obj3 = new THREE.Mesh( holder, RackMat2 );
var obj4 = new THREE.Mesh( holder, RackMat2 );
var obj5 = new THREE.Mesh( holder, RackMat2 );
obj2.position.set(x-plane_x/2+holder_x/2,y-holder_y/2-plane_y/2,z+holder_z/2);
obj3.position.set(x+plane_x/2-holder_x/2,y-holder_y/2-plane_y/2,z+holder_z/2);
obj4.position.set(x-plane_x/2+holder_x/2,y-holder_y/2-plane_y/2,z+plane_z-holder_z/2);
obj5.position.set(x+plane_x/2-holder_x/2,y-holder_y/2-plane_y/2,z+plane_z-holder_z/2);
scene.add(obj2);scene.add(obj3);scene.add(obj4);scene.add(obj5);
}
/** 放置一叠货架 */
/** stack_num 货架的叠数 */
function addStackOfRack(x,y,z,plane_x,plane_y,plane_z,holder_x,holder_y,holder_z,scene,name,num,stack_num) {
for(var i = 0; i < stack_num; i++){
addRack(x,y*(i+1),z,plane_x,plane_y,plane_z,holder_x,holder_y,holder_z,scene,name+"$"+(i+1),num);
}
}
/** 根据3D库图货架配置表添加货架 */
function addShelf(scene) {
var eiinfo = new EiInfo();
var ajax_callback = {
onSuccess : function(eiinfo) {
shelfSize = eiinfo.get("size");
for(var i = 0; i < shelfSize; i++){
var shelf_obj = new shelf(eiinfo.get("StorageZoneId")[i],
eiinfo.get("shelfId")[i],
eiinfo.get("shelfName")[i],
PLANE_LENGTH,PLANE_WIDTH,PLANE_HEIGHT,
HOLDER_LENGTH,HOLDER_WIDTH,HOLDER_HEIGHT,
eiinfo.get("positionX")[i],
eiinfo.get("positionY")[i],
eiinfo.get("positionZ")[i],
LAYER_NUM,COLUMN_NUM);
shelfList.push(shelf_obj);
}
},
onFail : function(eMsg) {
EFAlert( "加载库图货架配置失败:"+eMsg ,"错误" );
}
};
EiCommunicator.send("YMIQ083D", "queryShelfConfig3D", eiinfo, ajax_callback);
for(var i = 0;i < shelfSize; i++){
addStackOfRack(shelfList[i].positionX,shelfList[i].positionY,shelfList[i].positionZ,shelfList[i].planeLength,shelfList[i].planeHeight,shelfList[i].planeWidth,shelfList[i].holderLength,shelfList[i].holderHeight,shelfList[i].holderWidth,scene,shelfList[i].storageZoneId+"$"+shelfList[i].shelfId+"$"+shelfList[i].shelfName,shelfList[i].columnNum,shelfList[i].layerNum);
}
}
//region 货物
/** 放置单个货物 */
function addCargo(x,y,z,box_x,box_y,box_z,scene,name) {
var geometry = new THREE.BoxGeometry( box_x, box_y, box_z );
var obj = new THREE.Mesh( geometry, CargoMat );
obj.position.set(x,y,z);
obj.name = name;
scene.add(obj);
}
/** 放置单个货物 */
function addOneCargo(num,floor,scene,name,matClassId) {
var geometry = new THREE.BoxGeometry( 180, 180, 180 );
var x,y,z;
switch (num) {
case 1 : x=-200;y=150+(floor-1)*180;z=200;break;
case 2 : x=0;y=150+(floor-1)*180;z=200;break;
case 3 : x=200;y=150+(floor-1)*180;z=200;break;
case 4 : x=-200;y=150+(floor-1)*180;z=0;break;
case 5 : x=0;y=150+(floor-1)*180;z=0;break;
case 6 : x=200;y=150+(floor-1)*180;z=0;break;
case 7 : x=-200;y=150+(floor-1)*180;z=-200;break;
case 8 : x=0;y=150+(floor-1)*180;z=-200;break;
case 9 : x=200;y=150+(floor-1)*180;z=-200;break;
default : x=-200;y=150+(floor-1)*180;z=200;
}
var obj;
switch (matClassId) {
case "1" : obj = new THREE.Mesh( geometry, CargoMat_yuanliao );break;
case "2" : obj = new THREE.Mesh( geometry, CargoMat_fuliao );break;
case "3" : obj = new THREE.Mesh( geometry, CargoMat_baocai );break;
case "4" : obj = new THREE.Mesh( geometry, CargoMat_huagong );break;
case "5" : obj = new THREE.Mesh( geometry, CargoMat_zhongjian );break;
case "7" : obj = new THREE.Mesh( geometry, CargoMat_chengpin );break;
case "20" : obj = new THREE.Mesh( geometry, CargoMat_qita );break;
default : obj = new THREE.Mesh( geometry, CargoMat_yuanliao )
}
obj.position.set(x,y,z);
obj.name = name;
scene.add(obj);
}
/** 查询单个货位上的货物是否存在 */
function queryCargosExist(storageZoneId,storageUnitId) {
var eiinfo = new EiInfo();
eiinfo.set("storageZoneId",storageZoneId);
eiinfo.set("storageUnitId",storageUnitId);
var ajax_callback = {
onSuccess : function(eiinfo) {
CargosExist = eiinfo.get("flag")
}
};
EiCommunicator.send("YMIQ083D", "queryCargosExist", eiinfo, ajax_callback);
}
/** 查询单个货位上的货物 */
function queryOneUnitCargos(storageUnitId) {
var eiinfo = new EiInfo();
eiinfo.set("storageUnitId",storageUnitId);
var ajax_callback = {
onSuccess : function(eiinfo) {
cargoSize = eiinfo.get("size");
for(var i = 0; i < cargoSize; i++){
var cargo_obj = new cargo(eiinfo.get("batchNo")[i],
eiinfo.get("prodBatchNo")[i],
eiinfo.get("inBatchNo")[i],
eiinfo.get("matId")[i],
eiinfo.get("matClassId")[i],
eiinfo.get("matName")[i],
eiinfo.get("qty")[i],
eiinfo.get("qtyUom")[i],
eiinfo.get("qty2")[i],
eiinfo.get("warehouseId")[i],
eiinfo.get("storageZoneId")[i],
eiinfo.get("storageUnitId")[i]);
cargoList.push(cargo_obj);
}
},
onFail : function(eMsg) {
EFAlert( "加载库图货架配置失败:"+eMsg ,"错误" );
}
};
EiCommunicator.send("YMIQ083DP", "queryOneUnitCargos", eiinfo, ajax_callback);
}
/** 添加单个货位上的货物 */
function addOneUnitCargos(shelfId,inLayerNum,inColumnNum,scene) {
var storageUnit = getStorageUnitById(shelfId,inLayerNum,inColumnNum);
var storageZoneId = storageUnit.storageZoneId;
var shelf = getShelfById(storageUnit.shelfId);
var storageUnitid = storageUnit.storageUnitId;
queryCargosExist(storageZoneId,storageUnitid);
if(CargosExist == "true"){
var x = storageUnit.positionX;
var y = storageUnit.positionY + 8 + shelf.planeHeight/2;
var z = storageUnit.positionZ;
addCargo(x,y,z,16,16,16,scene,"货物"+"$"+storageUnitid)
}
}
/** 添加货物详情 */
function addCargoDetail(storageUnitId) {
queryOneUnitCargos(storageUnitId);
if(cargoList.length != 0){
for(var i = 0; i < cargoSize; i++){
addOneCargo(i+1-parseInt(i/9)*9,parseInt(i/9)+1,scene,"货物详情"+"$"+cargoList[i].batchNo,cargoList[i].matClassId)
}
cargoList = [];
}
}
//endregion
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册