|
@@ -25,240 +25,240 @@ import java.util.*;
|
|
public class ComputerUtil {
|
|
public class ComputerUtil {
|
|
|
|
|
|
|
|
|
|
-// public static Map<String,String> computer(String projectNum, String path, String buildType, String ossType) throws Exception{
|
|
|
|
-// Map<String,String> map = new HashMap<String,String>();
|
|
|
|
-// path = path.replace("//", "/");
|
|
|
|
-//
|
|
|
|
-// log.info("开始建模:"+projectNum);
|
|
|
|
-// //构建算法isModel去掉,因此改成空字符串
|
|
|
|
-// if("V2".equals(buildType)){
|
|
|
|
-// CreateObjUtil.build3dModelOld(path, "");
|
|
|
|
-// }
|
|
|
|
-// if("V3".equals(buildType)){
|
|
|
|
-// CreateObjUtil.build3dModel(path, "");
|
|
|
|
-//// CreateObjUtil.build3dModel(unicode, "");
|
|
|
|
-// }
|
|
|
|
-// log.info("建模完成转换数据:"+projectNum);
|
|
|
|
-//
|
|
|
|
-// boolean vision2 = false;
|
|
|
|
-// //读取upload文件,检验需要上传的文件是否存在
|
|
|
|
-// String uploadData = FileUtils.readFile(path + File.separator + "results" +File.separator+"upload.json");
|
|
|
|
-// JSONObject uploadJson = null;
|
|
|
|
-// JSONArray array = null;
|
|
|
|
-// if(uploadData!=null) {
|
|
|
|
-// uploadJson = JSONObject.parseObject(uploadData);
|
|
|
|
-// array = uploadJson.getJSONArray("upload");
|
|
|
|
-// }
|
|
|
|
-// if(array == null){
|
|
|
|
-// String instanceId = FileUtils.readFile("/opt/hosts/hosts.txt");
|
|
|
|
-// FileUtils.writeFile(path + File.separator + "javaErrorNow.log", instanceId + ":计算错误!");
|
|
|
|
-//
|
|
|
|
-// Thread.sleep(10000L);
|
|
|
|
-// FileUtils.writeFile(path + File.separator + "javaError.log", instanceId + ":计算错误!");
|
|
|
|
-// throw new Exception("upload.json数据出错");
|
|
|
|
-// }
|
|
|
|
-// JSONObject fileJson = null;
|
|
|
|
-// String fileName = "";
|
|
|
|
-// String meshfix = ""; //双模型时候会有改文件路径
|
|
|
|
-// for(int i = 0, len = array.size(); i < len; i++){
|
|
|
|
-// fileJson = array.getJSONObject(i);
|
|
|
|
-// fileName = fileJson.getString("file");
|
|
|
|
-// //文件不存在抛出异常
|
|
|
|
-// if(!new File(path + File.separator + "results" +File.separator + fileName).exists()){
|
|
|
|
-// throw new Exception(path + File.separator + "results" +File.separator + fileName+"文件不存在");
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //判断是否有vision2.txt
|
|
|
|
-// if("vision2.txt".equals(fileName)){
|
|
|
|
-// vision2 = true;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //tex文件夹
|
|
|
|
-// if(fileJson.getIntValue("clazz") == 2 && !fileJson.containsKey("pack-file")){
|
|
|
|
-// if(fileName.contains("meshfix.txt")){
|
|
|
|
-// meshfix = fileName;
|
|
|
|
-// }else {
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+ fileName,"images/images"+
|
|
|
|
-// projectNum+"/"+ ConstantFileName.modelUUID+"_50k_texture_jpg_high1/"+fileName.replace("tex/", ""));
|
|
|
|
-// }
|
|
|
|
-// continue;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //high文件夹
|
|
|
|
-// if(fileJson.getIntValue("clazz") == 3){
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+ fileName,"images/images"+
|
|
|
|
-// projectNum+"/pan/high/"+ fileName.replace("high/", ""));
|
|
|
|
-// continue;
|
|
|
|
-// }
|
|
|
|
-// //low文件夹
|
|
|
|
-// if(fileJson.getIntValue("clazz") == 4){
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+ fileName,"images/images"+
|
|
|
|
-// projectNum+"/pan/low/"+ fileName.replace("low/", ""));
|
|
|
|
-// continue;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //tiles文件夹,亚马逊没有裁剪图片api,不需要上传4k图
|
|
|
|
-//// if(fileJson.getIntValue("clazz") == 5 && !"s3".equals(ossType)){
|
|
|
|
-//// map.put(path + File.separator + "results" + File.separator+ fileName,"images/images"+
|
|
|
|
-//// projectNum+ File.separator + fileName);
|
|
|
|
-//// continue;
|
|
|
|
-//// }
|
|
|
|
-// if(fileJson.getIntValue("clazz") == 5 ){
|
|
|
|
-// map.put(path + File.separator + "results" + File.separator+ fileName,"images/images"+
|
|
|
|
-// projectNum+ File.separator + fileName);
|
|
|
|
-// continue;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //tiles文件夹,亚马逊瓦片图
|
|
|
|
-// if(fileJson.getIntValue("clazz") == 7 ){
|
|
|
|
-// if(fileName.contains("/4k_")){
|
|
|
|
-// continue;
|
|
|
|
-// }
|
|
|
|
|
|
+ public static Map<String,String> computer(String projectNum, String path, String buildType, String ossType) throws Exception{
|
|
|
|
+ Map<String,String> map = new HashMap<String,String>();
|
|
|
|
+ path = path.replace("//", "/");
|
|
|
|
+
|
|
|
|
+ log.info("开始建模:"+projectNum);
|
|
|
|
+ //构建算法isModel去掉,因此改成空字符串
|
|
|
|
+ if("V2".equals(buildType)){
|
|
|
|
+ CreateObjUtil.build3dModelOld(path, "");
|
|
|
|
+ }
|
|
|
|
+ if("V3".equals(buildType)){
|
|
|
|
+ CreateObjUtil.build3dModel(path, "");
|
|
|
|
+// CreateObjUtil.build3dModel(unicode, "");
|
|
|
|
+ }
|
|
|
|
+ log.info("建模完成转换数据:"+projectNum);
|
|
|
|
+
|
|
|
|
+ boolean vision2 = false;
|
|
|
|
+ //读取upload文件,检验需要上传的文件是否存在
|
|
|
|
+ String uploadData = FileUtils.readFile(path + File.separator + "results" +File.separator+"upload.json");
|
|
|
|
+ JSONObject uploadJson = null;
|
|
|
|
+ JSONArray array = null;
|
|
|
|
+ if(uploadData!=null) {
|
|
|
|
+ uploadJson = JSONObject.parseObject(uploadData);
|
|
|
|
+ array = uploadJson.getJSONArray("upload");
|
|
|
|
+ }
|
|
|
|
+ if(array == null){
|
|
|
|
+ String instanceId = FileUtils.readFile("/opt/hosts/hosts.txt");
|
|
|
|
+ FileUtils.writeFile(path + File.separator + "javaErrorNow.log", instanceId + ":计算错误!");
|
|
|
|
+
|
|
|
|
+ Thread.sleep(10000L);
|
|
|
|
+ FileUtils.writeFile(path + File.separator + "javaError.log", instanceId + ":计算错误!");
|
|
|
|
+ throw new Exception("upload.json数据出错");
|
|
|
|
+ }
|
|
|
|
+ JSONObject fileJson = null;
|
|
|
|
+ String fileName = "";
|
|
|
|
+ String meshfix = ""; //双模型时候会有改文件路径
|
|
|
|
+ for(int i = 0, len = array.size(); i < len; i++){
|
|
|
|
+ fileJson = array.getJSONObject(i);
|
|
|
|
+ fileName = fileJson.getString("file");
|
|
|
|
+ //文件不存在抛出异常
|
|
|
|
+ if(!new File(path + File.separator + "results" +File.separator + fileName).exists()){
|
|
|
|
+ throw new Exception(path + File.separator + "results" +File.separator + fileName+"文件不存在");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //判断是否有vision2.txt
|
|
|
|
+ if("vision2.txt".equals(fileName)){
|
|
|
|
+ vision2 = true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //tex文件夹
|
|
|
|
+ if(fileJson.getIntValue("clazz") == 2 && !fileJson.containsKey("pack-file")){
|
|
|
|
+ if(fileName.contains("meshfix.txt")){
|
|
|
|
+ meshfix = fileName;
|
|
|
|
+ }else {
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+ fileName,"images/images"+
|
|
|
|
+ projectNum+"/"+ ConstantFileName.modelUUID+"_50k_texture_jpg_high1/"+fileName.replace("tex/", ""));
|
|
|
|
+ }
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //high文件夹
|
|
|
|
+ if(fileJson.getIntValue("clazz") == 3){
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+ fileName,"images/images"+
|
|
|
|
+ projectNum+"/pan/high/"+ fileName.replace("high/", ""));
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ //low文件夹
|
|
|
|
+ if(fileJson.getIntValue("clazz") == 4){
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+ fileName,"images/images"+
|
|
|
|
+ projectNum+"/pan/low/"+ fileName.replace("low/", ""));
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //tiles文件夹,亚马逊没有裁剪图片api,不需要上传4k图
|
|
|
|
+// if(fileJson.getIntValue("clazz") == 5 && !"s3".equals(ossType)){
|
|
// map.put(path + File.separator + "results" + File.separator+ fileName,"images/images"+
|
|
// map.put(path + File.separator + "results" + File.separator+ fileName,"images/images"+
|
|
// projectNum+ File.separator + fileName);
|
|
// projectNum+ File.separator + fileName);
|
|
// continue;
|
|
// continue;
|
|
// }
|
|
// }
|
|
-//
|
|
|
|
-// //updown文件复制一份到ecs中并去掉换行符
|
|
|
|
-// if(fileJson.getIntValue("clazz") == 10){
|
|
|
|
-// String updown = FileUtils.readFile(path + File.separator + "results" +File.separator+ fileName);
|
|
|
|
-// JSONObject updownJson = JSONObject.parseObject(updown);
|
|
|
|
-// FileUtils.writeFile(ConstantFilePath.SCENE_PATH + "data" + File.separator + "data" + projectNum +
|
|
|
|
-// File.separator + fileName.replace("updown", "mapping"), updownJson.toString());
|
|
|
|
-// continue;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //video视频文件或封面图
|
|
|
|
-// if(fileJson.getIntValue("clazz") == 11 || fileJson.getIntValue("cl" +
|
|
|
|
-// "azz") == 12){
|
|
|
|
-// map.put(path + File.separator + "results" + File.separator+ fileName,"video/video"+
|
|
|
|
-// projectNum+ File.separator + fileName.replace("videos/", ""));
|
|
|
|
-//
|
|
|
|
-// if(fileName.contains(".mp4")){
|
|
|
|
-//// CreateObjUtil.mp4ToFlv(path + File.separator + "results" + File.separator+ fileName,
|
|
|
|
-//// path + File.separator + "results" + File.separator+ fileName.replace("mp4", "flv"));
|
|
|
|
-//
|
|
|
|
-// map.put(path + File.separator + "results" + File.separator+ fileName.replace("mp4", "flv"),"video/video"+
|
|
|
|
-// projectNum+ File.separator + fileName.replace("videos/", "").replace("mp4", "flv"));
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //2048的模型和贴图
|
|
|
|
-// if(fileJson.getIntValue("clazz") == 16){
|
|
|
|
-// map.put(path + File.separator + "results" + File.separator+ fileName,"data/data"+
|
|
|
|
-// projectNum+ File.separator + fileName);
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// if(fileJson.getIntValue("clazz") == 18){
|
|
|
|
-// map.put(path + File.separator + "results" + File.separator+ fileName,"images/images"+
|
|
|
|
-// projectNum+ File.separator + fileName);
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// CreateObjUtil.convertTxtToDam( path + File.separator + "results" + File.separator+"tex"+File.separator+"modeldata.txt", path + File.separator + "results" +File.separator+ ConstantFileName.modelUUID+"_50k.dam");
|
|
|
|
-// CreateObjUtil.convertDamToLzma(path + File.separator + "results");
|
|
|
|
-// CreateObjUtil.convertTxtToDam( path + File.separator + "results" +File.separator+"tex"+File.separator+"modeldata.txt", path + File.separator + "results" + File.separator+ConstantFileName.modelUUID+"_50k.dam");
|
|
|
|
-// //有meshfix,表示双模型
|
|
|
|
-// if(!"".equals(meshfix)){
|
|
|
|
-// CreateObjUtil.convertTxtToDam( path + File.separator + "results" + File.separator+meshfix, path + File.separator + "results" +File.separator+ ConstantFileName.modelUUID+"_50k2.dam");
|
|
|
|
-// CreateObjUtil.convertDamToLzma2(path + File.separator + "results");
|
|
|
|
-// CreateObjUtil.convertTxtToDam( path + File.separator + "results" +File.separator+meshfix, path + File.separator + "results" + File.separator+ConstantFileName.modelUUID+"_50k2.dam");
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k2.dam.lzma", "images/images"+projectNum+"/"+ConstantFileName.modelUUID+"_50k2.dam.lzma");
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k2.dam", "images/images"+projectNum+"/"+ConstantFileName.modelUUID+"_50k2.dam");
|
|
|
|
-// }
|
|
|
|
-// //8目相机有两个vision.txt因此第二个叫vision2.txt
|
|
|
|
-// CreateObjUtil.convertTxtToVisionmodeldata(path + File.separator + "results" +File.separator+"vision.txt",path + File.separator + "results" +File.separator+"vision.modeldata");
|
|
|
|
-// if(vision2){
|
|
|
|
-// CreateObjUtil.convertTxtToVisionmodeldata(path + File.separator + "results" +File.separator+"vision2.txt",path + File.separator + "results" +File.separator+"vision2.modeldata");
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+"vision2.modeldata", "images/images"+projectNum+"/"+"vision2.modeldata");
|
|
|
|
-// }else {
|
|
|
|
-// CreateObjUtil.convertTxtToVisionmodeldataCommon(path + File.separator + "results" +File.separator+"vision.txt",path + File.separator + "results" +File.separator+"vision.modeldata");
|
|
|
|
-// }
|
|
|
|
-// log.info("数据转换完成:"+projectNum);
|
|
|
|
-//
|
|
|
|
-// File file = new File(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam.lzma");
|
|
|
|
-// while(!file.exists())
|
|
|
|
-// {
|
|
|
|
-// Thread.sleep(60000);
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+"vision.modeldata", "images/images"+projectNum+"/"+"vision.modeldata");
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam.lzma", "images/images"+projectNum+"/"+ConstantFileName.modelUUID+"_50k.dam.lzma");
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam", "images/images"+projectNum+"/"+ConstantFileName.modelUUID+"_50k.dam");
|
|
|
|
-//
|
|
|
|
-// file = new File(ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+projectNum);
|
|
|
|
-// if(!file.exists())
|
|
|
|
-// {
|
|
|
|
-// file.mkdir();
|
|
|
|
-// }
|
|
|
|
-// FileUtils.copyFile(path + File.separator + "results" +File.separator+"floor.json", ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+projectNum+File.separator+"floor.json", true);
|
|
|
|
-// FileUtils.copyFile(path + File.separator + "results" +File.separator+"floorplan.json", ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+projectNum+File.separator+"floor.json", true);
|
|
|
|
-// FileUtils.copyFile(path + File.separator + "results" +File.separator+"floorplan.json", ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+projectNum+File.separator+"floorplan.json", true);
|
|
|
|
-// log.info("floor.json路径:"+ path + File.separator + "results" +File.separator+"floor.json");
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+"floor.json","data/data"+projectNum+"/floor.json");
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+"floorplan.json","data/data"+projectNum+"/floor.json");
|
|
|
|
-//// map.put(path + File.separator + "results" +File.separator+"floorplan_cad.json","data/data"+projectNum+"/house_floor.json");
|
|
|
|
-// map.put(path + File.separator + "results" +File.separator+"floorplan_cad.json","data/data"+projectNum+"/floorplan_cad.json");
|
|
|
|
-// log.info("准备上传文件到oss:"+projectNum);
|
|
|
|
-// return map;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-//
|
|
|
|
-// public static Map<String,String> computerRebuildVideo(String projectNum, String path) throws Exception{
|
|
|
|
-// Map<String,String> map = new HashMap<String,String>();
|
|
|
|
-// path = path.replace("//", "/");
|
|
|
|
-//
|
|
|
|
-// log.info("开始建模:"+projectNum);
|
|
|
|
-// //构建算法isModel去掉,因此改成空字符串
|
|
|
|
-// CreateObjUtil.build3dModel(path, "");
|
|
|
|
-// log.info("建模完成转换数据:"+projectNum);
|
|
|
|
-//
|
|
|
|
-// boolean vision2 = false;
|
|
|
|
-// //读取upload文件,检验需要上传的文件是否存在
|
|
|
|
-// String uploadData = FileUtils.readFile(path + File.separator + "results" +File.separator+"upload.json");
|
|
|
|
-// JSONObject uploadJson = null;
|
|
|
|
-// JSONArray array = null;
|
|
|
|
-// if(uploadData!=null) {
|
|
|
|
-// uploadJson = JSONObject.parseObject(uploadData);
|
|
|
|
-// array = uploadJson.getJSONArray("upload");
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// if(array == null){
|
|
|
|
-// String instanceId = FileUtils.readFile("/opt/hosts/hosts.txt");
|
|
|
|
-// FileUtils.writeFile(path + File.separator + "javaErrorNow.log", instanceId + ":计算错误!");
|
|
|
|
-//
|
|
|
|
-// Thread.sleep(10000L);
|
|
|
|
-// FileUtils.writeFile(path + File.separator + "javaError.log", instanceId + ":计算错误!");
|
|
|
|
-// throw new Exception("upload.json数据出错");
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// JSONObject fileJson = null;
|
|
|
|
-// String fileName = "";
|
|
|
|
-// for(int i = 0, len = array.size(); i < len; i++) {
|
|
|
|
-// fileJson = array.getJSONObject(i);
|
|
|
|
-// fileName = fileJson.getString("file");
|
|
|
|
-// //文件不存在抛出异常
|
|
|
|
-// if (!new File(path + File.separator + "results" + File.separator + fileName).exists()) {
|
|
|
|
-// throw new Exception(path + File.separator + "results" + File.separator + fileName + "文件不存在");
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //video视频文件或封面图
|
|
|
|
-// if (fileJson.getIntValue("clazz") == 20) {
|
|
|
|
-// if (fileName.contains(".flv")) {
|
|
|
|
-// map.put(path + File.separator + "results" + File.separator + fileName, "video/video" +
|
|
|
|
-// projectNum + File.separator + fileName.replace("videos/", ""));
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// if (fileName.contains(".mp4")) {
|
|
|
|
-// map.put(path + File.separator + "results" + File.separator + fileName, "video/video" +
|
|
|
|
-// projectNum + File.separator + fileName.replace("videos/", ""));
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// log.info("准备上传文件到oss:"+projectNum);
|
|
|
|
-// return map;
|
|
|
|
-// }
|
|
|
|
|
|
+ if(fileJson.getIntValue("clazz") == 5 ){
|
|
|
|
+ map.put(path + File.separator + "results" + File.separator+ fileName,"images/images"+
|
|
|
|
+ projectNum+ File.separator + fileName);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //tiles文件夹,亚马逊瓦片图
|
|
|
|
+ if(fileJson.getIntValue("clazz") == 7 ){
|
|
|
|
+ if(fileName.contains("/4k_")){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ map.put(path + File.separator + "results" + File.separator+ fileName,"images/images"+
|
|
|
|
+ projectNum+ File.separator + fileName);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //updown文件复制一份到ecs中并去掉换行符
|
|
|
|
+ if(fileJson.getIntValue("clazz") == 10){
|
|
|
|
+ String updown = FileUtils.readFile(path + File.separator + "results" +File.separator+ fileName);
|
|
|
|
+ JSONObject updownJson = JSONObject.parseObject(updown);
|
|
|
|
+ FileUtils.writeFile(ConstantFilePath.SCENE_PATH + "data" + File.separator + "data" + projectNum +
|
|
|
|
+ File.separator + fileName.replace("updown", "mapping"), updownJson.toString());
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //video视频文件或封面图
|
|
|
|
+ if(fileJson.getIntValue("clazz") == 11 || fileJson.getIntValue("cl" +
|
|
|
|
+ "azz") == 12){
|
|
|
|
+ map.put(path + File.separator + "results" + File.separator+ fileName,"video/video"+
|
|
|
|
+ projectNum+ File.separator + fileName.replace("videos/", ""));
|
|
|
|
+
|
|
|
|
+ if(fileName.contains(".mp4")){
|
|
|
|
+// CreateObjUtil.mp4ToFlv(path + File.separator + "results" + File.separator+ fileName,
|
|
|
|
+// path + File.separator + "results" + File.separator+ fileName.replace("mp4", "flv"));
|
|
|
|
+
|
|
|
|
+ map.put(path + File.separator + "results" + File.separator+ fileName.replace("mp4", "flv"),"video/video"+
|
|
|
|
+ projectNum+ File.separator + fileName.replace("videos/", "").replace("mp4", "flv"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //2048的模型和贴图
|
|
|
|
+ if(fileJson.getIntValue("clazz") == 16){
|
|
|
|
+ map.put(path + File.separator + "results" + File.separator+ fileName,"data/data"+
|
|
|
|
+ projectNum+ File.separator + fileName);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(fileJson.getIntValue("clazz") == 18){
|
|
|
|
+ map.put(path + File.separator + "results" + File.separator+ fileName,"images/images"+
|
|
|
|
+ projectNum+ File.separator + fileName);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ CreateObjUtil.convertTxtToDam( path + File.separator + "results" + File.separator+"tex"+File.separator+"modeldata.txt", path + File.separator + "results" +File.separator+ ConstantFileName.modelUUID+"_50k.dam");
|
|
|
|
+ CreateObjUtil.convertDamToLzma(path + File.separator + "results");
|
|
|
|
+ CreateObjUtil.convertTxtToDam( path + File.separator + "results" +File.separator+"tex"+File.separator+"modeldata.txt", path + File.separator + "results" + File.separator+ConstantFileName.modelUUID+"_50k.dam");
|
|
|
|
+ //有meshfix,表示双模型
|
|
|
|
+ if(!"".equals(meshfix)){
|
|
|
|
+ CreateObjUtil.convertTxtToDam( path + File.separator + "results" + File.separator+meshfix, path + File.separator + "results" +File.separator+ ConstantFileName.modelUUID+"_50k2.dam");
|
|
|
|
+ CreateObjUtil.convertDamToLzma2(path + File.separator + "results");
|
|
|
|
+ CreateObjUtil.convertTxtToDam( path + File.separator + "results" +File.separator+meshfix, path + File.separator + "results" + File.separator+ConstantFileName.modelUUID+"_50k2.dam");
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k2.dam.lzma", "images/images"+projectNum+"/"+ConstantFileName.modelUUID+"_50k2.dam.lzma");
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k2.dam", "images/images"+projectNum+"/"+ConstantFileName.modelUUID+"_50k2.dam");
|
|
|
|
+ }
|
|
|
|
+ //8目相机有两个vision.txt因此第二个叫vision2.txt
|
|
|
|
+ CreateObjUtil.convertTxtToVisionmodeldata(path + File.separator + "results" +File.separator+"vision.txt",path + File.separator + "results" +File.separator+"vision.modeldata");
|
|
|
|
+ if(vision2){
|
|
|
|
+ CreateObjUtil.convertTxtToVisionmodeldata(path + File.separator + "results" +File.separator+"vision2.txt",path + File.separator + "results" +File.separator+"vision2.modeldata");
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+"vision2.modeldata", "images/images"+projectNum+"/"+"vision2.modeldata");
|
|
|
|
+ }else {
|
|
|
|
+ CreateObjUtil.convertTxtToVisionmodeldataCommon(path + File.separator + "results" +File.separator+"vision.txt",path + File.separator + "results" +File.separator+"vision.modeldata");
|
|
|
|
+ }
|
|
|
|
+ log.info("数据转换完成:"+projectNum);
|
|
|
|
+
|
|
|
|
+ File file = new File(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam.lzma");
|
|
|
|
+ while(!file.exists())
|
|
|
|
+ {
|
|
|
|
+ Thread.sleep(60000);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+"vision.modeldata", "images/images"+projectNum+"/"+"vision.modeldata");
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam.lzma", "images/images"+projectNum+"/"+ConstantFileName.modelUUID+"_50k.dam.lzma");
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam", "images/images"+projectNum+"/"+ConstantFileName.modelUUID+"_50k.dam");
|
|
|
|
+
|
|
|
|
+ file = new File(ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+projectNum);
|
|
|
|
+ if(!file.exists())
|
|
|
|
+ {
|
|
|
|
+ file.mkdir();
|
|
|
|
+ }
|
|
|
|
+ FileUtils.copyFile(path + File.separator + "results" +File.separator+"floor.json", ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+projectNum+File.separator+"floor.json", true);
|
|
|
|
+ FileUtils.copyFile(path + File.separator + "results" +File.separator+"floorplan.json", ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+projectNum+File.separator+"floor.json", true);
|
|
|
|
+ FileUtils.copyFile(path + File.separator + "results" +File.separator+"floorplan.json", ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+projectNum+File.separator+"floorplan.json", true);
|
|
|
|
+ log.info("floor.json路径:"+ path + File.separator + "results" +File.separator+"floor.json");
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+"floor.json","data/data"+projectNum+"/floor.json");
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+"floorplan.json","data/data"+projectNum+"/floor.json");
|
|
|
|
+// map.put(path + File.separator + "results" +File.separator+"floorplan_cad.json","data/data"+projectNum+"/house_floor.json");
|
|
|
|
+ map.put(path + File.separator + "results" +File.separator+"floorplan_cad.json","data/data"+projectNum+"/floorplan_cad.json");
|
|
|
|
+ log.info("准备上传文件到oss:"+projectNum);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public static Map<String,String> computerRebuildVideo(String projectNum, String path) throws Exception{
|
|
|
|
+ Map<String,String> map = new HashMap<String,String>();
|
|
|
|
+ path = path.replace("//", "/");
|
|
|
|
+
|
|
|
|
+ log.info("开始建模:"+projectNum);
|
|
|
|
+ //构建算法isModel去掉,因此改成空字符串
|
|
|
|
+ CreateObjUtil.build3dModel(path, "");
|
|
|
|
+ log.info("建模完成转换数据:"+projectNum);
|
|
|
|
+
|
|
|
|
+ boolean vision2 = false;
|
|
|
|
+ //读取upload文件,检验需要上传的文件是否存在
|
|
|
|
+ String uploadData = FileUtils.readFile(path + File.separator + "results" +File.separator+"upload.json");
|
|
|
|
+ JSONObject uploadJson = null;
|
|
|
|
+ JSONArray array = null;
|
|
|
|
+ if(uploadData!=null) {
|
|
|
|
+ uploadJson = JSONObject.parseObject(uploadData);
|
|
|
|
+ array = uploadJson.getJSONArray("upload");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(array == null){
|
|
|
|
+ String instanceId = FileUtils.readFile("/opt/hosts/hosts.txt");
|
|
|
|
+ FileUtils.writeFile(path + File.separator + "javaErrorNow.log", instanceId + ":计算错误!");
|
|
|
|
+
|
|
|
|
+ Thread.sleep(10000L);
|
|
|
|
+ FileUtils.writeFile(path + File.separator + "javaError.log", instanceId + ":计算错误!");
|
|
|
|
+ throw new Exception("upload.json数据出错");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ JSONObject fileJson = null;
|
|
|
|
+ String fileName = "";
|
|
|
|
+ for(int i = 0, len = array.size(); i < len; i++) {
|
|
|
|
+ fileJson = array.getJSONObject(i);
|
|
|
|
+ fileName = fileJson.getString("file");
|
|
|
|
+ //文件不存在抛出异常
|
|
|
|
+ if (!new File(path + File.separator + "results" + File.separator + fileName).exists()) {
|
|
|
|
+ throw new Exception(path + File.separator + "results" + File.separator + fileName + "文件不存在");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //video视频文件或封面图
|
|
|
|
+ if (fileJson.getIntValue("clazz") == 20) {
|
|
|
|
+ if (fileName.contains(".flv")) {
|
|
|
|
+ map.put(path + File.separator + "results" + File.separator + fileName, "video/video" +
|
|
|
|
+ projectNum + File.separator + fileName.replace("videos/", ""));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (fileName.contains(".mp4")) {
|
|
|
|
+ map.put(path + File.separator + "results" + File.separator + fileName, "video/video" +
|
|
|
|
+ projectNum + File.separator + fileName.replace("videos/", ""));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ log.info("准备上传文件到oss:"+projectNum);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 标定算法
|
|
* 标定算法
|
|
@@ -306,39 +306,39 @@ public class ComputerUtil {
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
//
|
|
//
|
|
-// public static void createJson(String path, String splitType, String skyboxType, String dataDescribe,
|
|
|
|
-// String sceneNum, String dataSource) throws Exception{
|
|
|
|
-// JSONObject projectJson = new JSONObject();
|
|
|
|
-// projectJson.put("version", "201909231830");
|
|
|
|
-// projectJson.put("protocol", "file api 1.4");
|
|
|
|
-// projectJson.put("uuid", UUID.randomUUID().toString());
|
|
|
|
-// projectJson.put("description", "");
|
|
|
|
-// projectJson.put("time", System.currentTimeMillis());
|
|
|
|
-// projectJson.put("category", "default");
|
|
|
|
-// projectJson.put("tag", null);
|
|
|
|
-// projectJson.put("status", null);
|
|
|
|
-// projectJson.put("sceneNum", sceneNum);
|
|
|
|
-// projectJson.put("dataSource", dataSource);
|
|
|
|
-// FileUtils.writeFile(path + File.separator + "project.json", projectJson.toString());
|
|
|
|
-//
|
|
|
|
-// JSONObject dataJson = new JSONObject();
|
|
|
|
-// dataJson.put("split_type", splitType);
|
|
|
|
-// dataJson.put("skybox_type", skyboxType);
|
|
|
|
-// dataJson.put("extras", null);
|
|
|
|
-// FileUtils.writeFile(path + File.separator + "data.json", dataJson.toString());
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// public static void createExtras(String rebuildParam, String hdrParam, String path) throws Exception {
|
|
|
|
-//
|
|
|
|
-// FileUtils.writeFile( path + File.separator + "extras" + File.separator + "videos_hdr_param.json", hdrParam);
|
|
|
|
-//
|
|
|
|
-// FileUtils.writeFile( path + File.separator + "extras" + File.separator + "required_videos.json", rebuildParam);
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// public static void createExtras(String rebuildParam,String path) throws Exception {
|
|
|
|
-// FileUtils.writeFile( path + File.separator + "extras" + File.separator + "image-ROI.json", rebuildParam);
|
|
|
|
-// }
|
|
|
|
|
|
+ public static void createJson(String path, String splitType, String skyboxType, String dataDescribe,
|
|
|
|
+ String sceneNum, String dataSource) throws Exception{
|
|
|
|
+ JSONObject projectJson = new JSONObject();
|
|
|
|
+ projectJson.put("version", "201909231830");
|
|
|
|
+ projectJson.put("protocol", "file api 1.4");
|
|
|
|
+ projectJson.put("uuid", UUID.randomUUID().toString());
|
|
|
|
+ projectJson.put("description", "");
|
|
|
|
+ projectJson.put("time", System.currentTimeMillis());
|
|
|
|
+ projectJson.put("category", "default");
|
|
|
|
+ projectJson.put("tag", null);
|
|
|
|
+ projectJson.put("status", null);
|
|
|
|
+ projectJson.put("sceneNum", sceneNum);
|
|
|
|
+ projectJson.put("dataSource", dataSource);
|
|
|
|
+ FileUtils.writeFile(path + File.separator + "project.json", projectJson.toString());
|
|
|
|
+
|
|
|
|
+ JSONObject dataJson = new JSONObject();
|
|
|
|
+ dataJson.put("split_type", splitType);
|
|
|
|
+ dataJson.put("skybox_type", skyboxType);
|
|
|
|
+ dataJson.put("extras", null);
|
|
|
|
+ FileUtils.writeFile(path + File.separator + "data.json", dataJson.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static void createExtras(String rebuildParam, String hdrParam, String path) throws Exception {
|
|
|
|
+
|
|
|
|
+ FileUtils.writeFile( path + File.separator + "extras" + File.separator + "videos_hdr_param.json", hdrParam);
|
|
|
|
+
|
|
|
|
+ FileUtils.writeFile( path + File.separator + "extras" + File.separator + "required_videos.json", rebuildParam);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static void createExtras(String rebuildParam,String path) throws Exception {
|
|
|
|
+ FileUtils.writeFile( path + File.separator + "extras" + File.separator + "image-ROI.json", rebuildParam);
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 生成标定数据
|
|
* 生成标定数据
|
|
@@ -365,66 +365,66 @@ public class ComputerUtil {
|
|
FileUtils.writeFile(calPath + "/data.json", dataJson.toString());
|
|
FileUtils.writeFile(calPath + "/data.json", dataJson.toString());
|
|
}
|
|
}
|
|
|
|
|
|
-// public static Map<String, String> getTypeString(String cameraType, String algorithm, String resolution){
|
|
|
|
-// Map<String, String> map = new HashMap<>();
|
|
|
|
-// String splitType = "";
|
|
|
|
-// String skyboxType = "";
|
|
|
|
-// String dataDescribe = "";
|
|
|
|
-// if(Integer.parseInt(cameraType) >= 4){
|
|
|
|
-// if("0".equals(resolution)){
|
|
|
|
-//// skyboxType = "SKYBOX_V4"; //tiles
|
|
|
|
-//// skyboxType = "SKYBOX_V6"; //high,low,4k
|
|
|
|
-// skyboxType = "SKYBOX_V7"; //high,low,2k
|
|
|
|
-// }else {
|
|
|
|
-// skyboxType = "SKYBOX_V1";
|
|
|
|
-// }
|
|
|
|
-// splitType = "SPLIT_V1";
|
|
|
|
-//// skyboxType = "SKYBOX_V4"; //tiles
|
|
|
|
-// dataDescribe = "double spherical";
|
|
|
|
-//
|
|
|
|
-// if(Integer.parseInt(cameraType) == 5 ){
|
|
|
|
-// //新双目相机
|
|
|
|
-//// skyboxType = "SKYBOX_V9";
|
|
|
|
-// splitType = "SPLIT_V9";
|
|
|
|
-// skyboxType = "SKYBOX_V1";
|
|
|
|
-// }
|
|
|
|
-// if(Integer.parseInt(cameraType) == 6){
|
|
|
|
-// //小红屋新双目相机
|
|
|
|
-//// skyboxType = "SKYBOX_V9";
|
|
|
|
-// splitType = "SPLIT_V3";
|
|
|
|
-// skyboxType = "SKYBOX_V7";
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// if(Integer.parseInt(cameraType) == 13){
|
|
|
|
-// //转台相机
|
|
|
|
-// skyboxType = "SKYBOX_V6";
|
|
|
|
-// splitType = "SPLIT_V12";
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// if(Integer.parseInt(cameraType) == 14){
|
|
|
|
-// //转台相机
|
|
|
|
-// log.info("激光转台相机调用算法");
|
|
|
|
-// skyboxType = "SKYBOX_V11";
|
|
|
|
-// splitType = "SPLIT_V14";
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// }else {
|
|
|
|
-// if("sfm".equals(algorithm)){
|
|
|
|
-// splitType = "SPLIT_V2";
|
|
|
|
-// skyboxType = "SKYBOX_V1";
|
|
|
|
-// dataDescribe = "old sfm";
|
|
|
|
-// }else {
|
|
|
|
-// splitType = "SPLIT_V3";
|
|
|
|
-// skyboxType = "SKYBOX_V1";
|
|
|
|
-// dataDescribe = "old slam";
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// map.put("splitType", splitType);
|
|
|
|
-// map.put("skyboxType", skyboxType);
|
|
|
|
-// map.put("dataDescribe", dataDescribe);
|
|
|
|
-// return map;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
|
|
+ public static Map<String, String> getTypeString(String cameraType, String algorithm, String resolution){
|
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
|
+ String splitType = "";
|
|
|
|
+ String skyboxType = "";
|
|
|
|
+ String dataDescribe = "";
|
|
|
|
+ if(Integer.parseInt(cameraType) >= 4){
|
|
|
|
+ if("0".equals(resolution)){
|
|
|
|
+// skyboxType = "SKYBOX_V4"; //tiles
|
|
|
|
+// skyboxType = "SKYBOX_V6"; //high,low,4k
|
|
|
|
+ skyboxType = "SKYBOX_V7"; //high,low,2k
|
|
|
|
+ }else {
|
|
|
|
+ skyboxType = "SKYBOX_V1";
|
|
|
|
+ }
|
|
|
|
+ splitType = "SPLIT_V1";
|
|
|
|
+// skyboxType = "SKYBOX_V4"; //tiles
|
|
|
|
+ dataDescribe = "double spherical";
|
|
|
|
+
|
|
|
|
+ if(Integer.parseInt(cameraType) == 5 ){
|
|
|
|
+ //新双目相机
|
|
|
|
+// skyboxType = "SKYBOX_V9";
|
|
|
|
+ splitType = "SPLIT_V9";
|
|
|
|
+ skyboxType = "SKYBOX_V1";
|
|
|
|
+ }
|
|
|
|
+ if(Integer.parseInt(cameraType) == 6){
|
|
|
|
+ //小红屋新双目相机
|
|
|
|
+// skyboxType = "SKYBOX_V9";
|
|
|
|
+ splitType = "SPLIT_V3";
|
|
|
|
+ skyboxType = "SKYBOX_V7";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(Integer.parseInt(cameraType) == 13){
|
|
|
|
+ //转台相机
|
|
|
|
+ skyboxType = "SKYBOX_V6";
|
|
|
|
+ splitType = "SPLIT_V12";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(Integer.parseInt(cameraType) == 14){
|
|
|
|
+ //转台相机
|
|
|
|
+ log.info("激光转台相机调用算法");
|
|
|
|
+ skyboxType = "SKYBOX_V11";
|
|
|
|
+ splitType = "SPLIT_V14";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }else {
|
|
|
|
+ if("sfm".equals(algorithm)){
|
|
|
|
+ splitType = "SPLIT_V2";
|
|
|
|
+ skyboxType = "SKYBOX_V1";
|
|
|
|
+ dataDescribe = "old sfm";
|
|
|
|
+ }else {
|
|
|
|
+ splitType = "SPLIT_V3";
|
|
|
|
+ skyboxType = "SKYBOX_V1";
|
|
|
|
+ dataDescribe = "old slam";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ map.put("splitType", splitType);
|
|
|
|
+ map.put("skyboxType", skyboxType);
|
|
|
|
+ map.put("dataDescribe", dataDescribe);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+
|
|
// public static SceneEntity createScene(String projectNum, Long cameraId, String cameraName, String phoneId, String scenepsd,
|
|
// public static SceneEntity createScene(String projectNum, Long cameraId, String cameraName, String phoneId, String scenepsd,
|
|
// String unicode, Long cameraType, String fileId, String prefix,
|
|
// String unicode, Long cameraType, String fileId, String prefix,
|
|
// String imgsName, String pic, String isModel, Long userId, String userName,
|
|
// String imgsName, String pic, String isModel, Long userId, String userName,
|