Browse Source

目前深时场景生成obj,算法只支持3dtiles模型,v3版本激光场景生成obj,设置modelkind字段为3dtiles

dsx 2 years ago
parent
commit
fe0d0a67aa

+ 24 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneUpgradeToV4Service.java

@@ -98,6 +98,10 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
     private String copyCachesImages;
     @Value("${upgrade.houseType:yes}")
     private String createHouseType;
+    @Value("${model.modelKind:3dtiles}")
+    private String modelKind;
+    @Value("#{'${model.3dtiles.sceneSource:}'.split(',')}")
+    private List<Integer> sdTilesSceneSourceList;
 
     @Autowired
     private RedisLockUtil redisLockUtil;
@@ -408,6 +412,10 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
                     scenePlusExt.setVideos(videosJson.toJSONString());
                 }
             }
+
+            //v3版本的模型是dam类型,pc端点击生成obj时,统一生成3dtiles模型且会调用升级接口
+            this.setLaserModelKind(scenePlus, scenePlusExt);
+
             scenePlusExtService.updateById(scenePlusExt);
 
             if(StrUtil.isNotEmpty(sceneEditInfo.getBoxVideos())){
@@ -518,6 +526,22 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
     }
 
     /**
+     * v3版本的模型是dam类型,pc端点击生成obj时,统一生成3dtiles模型且会调用升级接口
+     */
+    private void setLaserModelKind(ScenePlus scenePlus, ScenePlusExt scenePlusExt){
+        if(SceneSource.JG.code() != scenePlus.getSceneSource()){
+            return;
+        }
+        if(StrUtil.isEmpty(modelKind) || !ModelKind.THREE_D_TILE.code().equals(modelKind) ||){
+          return;
+        }
+        if(CollUtil.isEmpty(sdTilesSceneSourceList) || !sdTilesSceneSourceList.contains(scenePlus.getSceneSource())){
+            return;
+        }
+        scenePlusExt.setModelKind(ModelKind.THREE_D_TILE.message());
+    }
+
+    /**
      * <p>
             场景升级后,场景id发生了变化,需要把新的id放入倒文件夹中
      * </p>