xushiting 3 anni fa
parent
commit
cd08560737

+ 61 - 53
src/main/java/com/fdkk/fdkkmeta/grpcService/sceneGrpcServer.java

@@ -212,6 +212,8 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 //			}
 
 			builder.addTraceIds(trace_id);
+			//builder.setVehicle(null);
+			builder.setVehicle("");
 			builder.addNewUserStates(userState);
 			builder.addActionResponses(0);//这个要查查
 			builder.addNewUserStates(userState);
@@ -248,21 +250,18 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
      		String trace_id = request.getTraceId();
      		String user_id = request.getUserId();
 
+			MoveReply.Builder builder = MoveReply.newBuilder();
+
             UserEntity user = userService.findUserId(user_id);
             String appId = user.getAppId();
 			Long breakPointId = user.getBreakPointId();
 			BreakpointsEntity breakpointsEntity = breakpointsService.findByAppIdAndBreakPointId(appId,breakPointId);
             RotateFrameEntity rotateFrameEntity = rotateFrameService.findById(user.getFrameId());
 
-            Point start = null;    //从user表里取
-
             boolean isEnd = false;
      		//计算路径
             RouteDto po=new RouteDto();
-            PointPO s=new PointPO();
-            s.setX(Double.parseDouble(start.getX()));
-            s.setY(Double.parseDouble(start.getY()));
-            s.setZ(Double.parseDouble(start.getY()));
+            PointPO s=breakpointsEntity.getPosition();
             PointPO e=new PointPO();
             e.setX(Double.parseDouble(end.getX()));
             e.setY(Double.parseDouble(end.getY()));
@@ -283,8 +282,6 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
 				isEnd = true;
 			}
 
-
-
      		//开始返回结果,一段一段的返回(每段是两个邻居点的过渡),第一段之前还要有角度的矫正
      		//矫正的结果:
             //moveFrameService.findById()
@@ -317,7 +314,10 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             	Point cameraCenter = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
             	String frameSrc = metaConfig.getVideoFramePath()+"/"+_rotateFrameEntity.getDirectory()+"/"+_rotateFrameEntity.getFileName();
             	//添加player,camera,cameraCenter,frameSrc
-
+				builder.addPlayer(player);
+				builder.addCamera(camera);
+				builder.addCameraCenter(cameraCenter);
+				builder.addFrameSrc(frameSrc);
             }
 
             breakpointsEntity = breakpointsService.findByAppIdAndBreakPointId(appId,nextbreakPointId);
@@ -348,15 +348,19 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             	PointPO cameraPoint = _moveFrameEntityList.getCameraPosition();
             	Point cameraPosition = createPoint(String.valueOf(cameraPoint.getX()),String.valueOf(cameraPoint.getY()),String.valueOf(cameraPoint.getZ()));
             	AngleUe4 cameraAngle = createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
-                Space camera = createSpace(cameraPosition,cameraAngle);
+                Space _camera = createSpace(cameraPosition,cameraAngle);
 
-            	Point cameraCenter = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
-            	String frameSrc = metaConfig.getVideoFramePath()+"/"+_moveFrameEntityList.getDirectory()+"/"+_moveFrameEntityList.getFileName();
+            	Point _cameraCenter = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
+            	String _frameSrc = metaConfig.getVideoFramePath()+"/"+_moveFrameEntityList.getDirectory()+"/"+_moveFrameEntityList.getFileName();
 
             	Point _playerPosition = createPoint(String.valueOf(playerPoint.getX()+offsetX/moveFrameEntityList.size()),String.valueOf(playerPoint.getY()+offsetY/moveFrameEntityList.size()),String.valueOf(playerPoint.getZ()+offsetZ/moveFrameEntityList.size()));
 				AngleUe4 _playerAngle = createAngle(playerAnglePO.getPitch(),_angle,playerAnglePO.getRoll());
 				Space _player = createSpace(_playerPosition,_playerAngle);
             	//添加_player,camera,cameraCenter,frameSrc
+				builder.addPlayer(_player);
+				builder.addCamera(_camera);
+				builder.addCameraCenter(_cameraCenter);
+				builder.addFrameSrc(_frameSrc);
             }
 
 //          PointPO cameraPoint = rotateFrameEntity.getCameraPosition();
@@ -371,20 +375,18 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     		Event event = createEvent();
     		UserState userState = createUserState( user_id, playerState, renderInfo, event);
 
-    		MoveReply res = MoveReply.newBuilder()
-    				.setTraceIds(0, trace_id)
-    				.setVehicle(null)
-    				.setNewUserStates(0, userState)
-    				.setActionResponses(0, 0)              //这个要查查
-    				.setGetStateType(0)
-    				.setCode(0)
-    				.setMsg("OK")
-			    				//.setPlayer(index, value)
-			    				//.setCamera(index, value)
-			    				//.setCameraCenter(index, value)
-			    				//.setFrameSrc(index, value)
-    				.setIsEnd(isEnd)
-    				.build();
+			//builder.addTraceIds()
+			//.setVehicle(null)
+			builder.setVehicle("");
+			builder.setNewUserStates(0, userState);
+			builder.setActionResponses(0, 0);             //这个要查查
+			builder.setGetStateType(0);
+			builder.setCode(0);
+			builder.setMsg("OK");
+			builder.setIsEnd(isEnd);
+
+			responseObserver.onNext(builder.build());
+			responseObserver.onCompleted();
     	}
     	catch(Exception e) {
     		e.printStackTrace();
@@ -463,8 +465,9 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     		UserState userState = createUserState( user_id, playerState, renderInfo, event);
     		MoveReply res = MoveReply.newBuilder()
     				.setTraceIds(0, trace_id)
-    				.setVehicle(null)
-    				.setNewUserStates(0, userState)
+    				//.setVehicle(null)
+					.setVehicle("")
+					.setNewUserStates(0, userState)
     				.setActionResponses(0, 0)              //这个要查查
     				.setGetStateType(0)
     				.setCode(0)
@@ -573,36 +576,41 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     }
 
     private State createPlayerState(Space player,Space camera,Point cameraCenter) {
-    	State playerState = State.newBuilder()
-    			.setRoomTypeId("")
-    			.setPerson(0)
-    			.setAvatarId("")
-    			.setSkinId("")
-    			.setRoomId("")
-    			.setIsHost(false)
-    			.setIsFollowHost(false)
-    			.setSkinDataVersion("")
-    			.setAvatarComponents("")
-    			.setNickName("")
-    			.setMovingMode(0)
-    			.setAttitude("")
-    			.setAreaName("")
-    			.setPathName("")
-    			.setPathId("")
-    			.setAvatarSize(1)
-    			.setExtra("")
-    			.setPrioritySync(false)
-    			.setPlayer(player)
-    			.setCamera(camera)
-    			.setCameraCenter(cameraCenter).build();
-    	return playerState;
+		State.Builder builder = State.newBuilder();
+		builder.setRoomTypeId("");
+		builder.setPerson(0);
+		builder.setAvatarId("");
+		builder.setSkinId("");
+		builder.setRoomId("");
+		builder.setIsHost(false);
+		builder.setIsFollowHost(false);
+		builder.setSkinDataVersion("");
+		builder.setAvatarComponents("");
+		builder.setNickName("");
+		builder.setMovingMode(0);
+		builder.setAttitude("");
+		builder.setAreaName("");
+		builder.setPathName("");
+		builder.setPathId("");
+		builder.setAvatarSize(1);
+		builder.setExtra("");
+		builder.setPrioritySync(false);
+		builder.setPlayer(player);
+		if(camera != null){
+			builder.setCamera(camera);
+		}
+		if(cameraCenter!=null){
+			builder.setCameraCenter(cameraCenter);
+		}
+    	return builder.build();
     }
 
     private RenderInfo createRenderInfo() {
     	RenderInfo renderInfo = RenderInfo.newBuilder()
     			.setRenderType(0)
-    			.setVideoFrame("")
-    			.setCameraStateType(0)
+    			//.setVideoFrame(null)
+				.setVideoFrame("")
+				.setCameraStateType(0)
     			.setIsMoving(0)
     			.setNeedIfr(0)
     			.setIsVideo(0)