xushiting il y a 3 ans
Parent
commit
ba8d88067a

+ 122 - 11
src/main/java/com/fdkk/fdkkmeta/grpcService/sceneGrpcServer.java

@@ -35,6 +35,7 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
      *    SceneReply res = SceneReply.newBuilder().setRes(id+","+name).build();
      *         responseObserver.onNext(res);
      */
+    /*
     @Override
     public void testMethod(SceneRequest request, StreamObserver<SceneReply> responseObserver) {
         // grpc服务端获取调用端请求参数
@@ -124,11 +125,25 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     		String trace_id = request.getTraceId();
     		String user_id = request.getUserId();
     		
+    		//这三个变量从user表和rotateframe表里取
+    		Space player = null;
+    		Space camera = null;
+    		Point cameraCenter = null;
     		
+    		State playerState = createPlayerState( player, camera, cameraCenter);
+    		RenderInfo renderInfo = createRenderInfo();
+    		Event event = createEvent();
+    		UserState userState = createUserState( user_id, playerState, renderInfo, event);
     		
     		NormalReply res = NormalReply.newBuilder()
-    				.setTraceIds(0, trace_id).setVehicle(null)
-    				.setNewUserStates(0, value)
+    				.setTraceIds(0, trace_id)
+    				.setVehicle(null)
+    				.setNewUserStates(0, userState)
+    				.setActionResponses(0, 0)              //这个要查查
+    				.setGetStateType(0) 
+    				.setCode(0)
+    				.setMsg("OK")
+    				.setFrameSrc(null)                     //从数据库中获取对应的路径
     				.build();
     		
     		
@@ -141,8 +156,9 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     }
 
 
+    //返回的是角度矫正数据
     @Override
-    public void moveStart(StartMoveRequest request, StreamObserver<NormalReply> responseObserver)   {
+    public void moveStart(StartMoveRequest request, StreamObserver<MoveReply> responseObserver)   {
      	try {
         	/*
         	 * 1.从user表里获得当前人物所在的breakPoint_id
@@ -151,6 +167,45 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
         	 * 4.返回整个路径的一段
         	 * 
         	 * */
+     		int action_type= request.getActionType();
+     		ClickingAction clicking_action = request.getClickingAction();
+     		
+     		Point end = clicking_action.getClickingPoint();
+     		
+     		State clicking_state = request.getClickingState();
+     		String trace_id = request.getTraceId();
+     		String user_id = request.getUserId();
+     		
+     		Point start = null;    //从user表里取
+     		//计算路径
+     		//开始返回结果,一段一段的返回(每段是两个邻居点的过渡),第一段之前还要有角度的矫正
+     		//矫正的结果:
+     		
+     		
+     		//这三个变量从user表和rotateframe表里取。自己对应的都是空
+    		Space player = null;
+    		Space camera = null;
+    		Point cameraCenter = null;
+    		
+    		State playerState = createPlayerState( player, camera, cameraCenter);
+    		RenderInfo renderInfo = createRenderInfo();
+    		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(false)
+    				.build();
     	}
     	catch(Exception e) {
     		e.printStackTrace();
@@ -167,6 +222,11 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
         	 * 4.返回整个路径的一段
         	 * 
         	 * */
+     		String user_id = request.getUserId();
+     		String trace_id = request.getTraceId();
+     		boolean needNext = request.getNext();
+     		
+     		//moveStart的结果参考moveStart
     	}
     	catch(Exception e) {
     		e.printStackTrace();
@@ -178,10 +238,33 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
      	try {
             log.info("进入{}",request);
 
-
-//            responseObserver.onNext(res);
-//            responseObserver.onCompleted();
-//            log.info("回复{}",res);
+            int action_type = request.getActionType();
+            NeighborPointsAction get_neighbor_points_action = request.getGetNeighborPointsAction();
+     		String trace_id = request.getTraceId();
+     		String user_id = request.getUserId();
+     		
+     		//从表breakpoints里获取所有的呼吸点,并且是数组
+     		Point[] nps=null;
+     		
+     		BreakPointReply res = BreakPointReply.newBuilder()
+     				.setActionType(action_type)
+     				.setPointType(100)
+     				.setExtra("")
+     				.setTraceId(trace_id)
+     				.setPacketId("")
+     				//.setNps(nps)                   
+     				.setPeopleNum(0)
+     				.setZoneId("")
+     				.setEchoMsg("")
+     				.setReserveDetail(null)
+     				//.setUserWithAvatarList()
+     				//.setNewUserStates()
+     				.setCode(0)
+     				.setMsg("")
+     				.build();
+            responseObserver.onNext(res);
+            responseObserver.onCompleted();
+            log.info("回复{}",res);
     	}
     	catch(Exception e) {
     		e.printStackTrace();
@@ -203,11 +286,15 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     	}
     }
     
-    private UserState createUserState(String user_id,State state) {
-    	UserState state = UserState.newBuilder()
+    private UserState createUserState(String user_id,State state,RenderInfo renderInfo,Event event) {
+    	UserState userState = UserState.newBuilder()
 				.setUserId(user_id)
 				.setPlayerState(state)
+				.setRenderInfo(renderInfo)
+				.setEvent(event)
+				.setRelation(1)
 				.build();
+    	return userState;
     }
     
     private State createPlayerState(Space player,Space camera,Point cameraCenter) {
@@ -236,13 +323,35 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     	return playerState;
     }
     
+    private RenderInfo createRenderInfo() {
+    	RenderInfo renderInfo = RenderInfo.newBuilder()
+    			.setRenderType(0)
+    			.setVideoFrame(null)
+    			.setCameraStateType(0)
+    			.setIsMoving(0)
+    			.setNeedIfr(0)
+    			.setIsVideo(0)
+    			.setStillFrame(0)
+    			.setIsRotating(0)
+    			.setIsFollowing(0)
+    			.setClientPanoTreceId("")
+    			.setPrefetchVideoId("")
+    			.setNoMedia(false).build();
+    	return renderInfo;
+    }
+    
+    private Event createEvent() {
+    	Event event = Event.newBuilder().setId("").setType(0).setRotateEvent(null).setRemoveVisitorEvent(null).build();
+    	return event;
+    }
+    
     private Space createSpace(Point position,AngleUe4 angle) {
     	Space space = Space.newBuilder().setPosition(position).setAngle(angle).build();
     	return space;
     }
     
-    private Point createPoint(double x,double y,double z) {
-    	Point point = Point.newBuilder().setX(x).setY(y).setZ(z);
+    private Point createPoint(String x,String y,String z) {
+    	Point point = Point.newBuilder().setX(x).setY(y).setZ(z).build();
     	return point;
     }
     
@@ -250,4 +359,6 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     	AngleUe4 angle = AngleUe4.newBuilder().setPitch(pitch).setYaw(yaw).setRoll(roll).build();
     	return angle;
     }
+    
+    
 }

+ 4 - 3
src/main/proto/scene.proto

@@ -10,7 +10,7 @@ service SceneGrpcService {
   rpc getRoute (RouteRequest) returns (RouteReply){}
   rpc init (InitRequest) returns (NormalReply){}
   rpc rotate (RotateRequest) returns (NormalReply){}
-  rpc moveStart (StartMoveRequest) returns (NormalReply){}
+  rpc moveStart (StartMoveRequest) returns (MoveReply){}
   rpc moveProcess (MoveNextNeighborRequest) returns (MoveReply){}
   rpc getBreakPoint (BreakPointRequest) returns (BreakPointReply){}
   rpc joystick (JoystickRequest) returns (NormalReply){} //操作杆
@@ -178,7 +178,7 @@ message StartMoveRequest {
 
 // 请求移动下一段
 message MoveNextNeighborRequest {
-  int32 user_id=1;
+  string user_id=1;
   string trace_id=2;
   bool next=3;      //true表示继续拿下一个,false表示结束(一般是有新的请求)
 }
@@ -197,7 +197,8 @@ message MoveReply {
    repeated Space player=8;
    repeated Space camera=9;
    repeated Point cameraCenter=10;
-   bool isEnd=11;     //false表示可以继续移动,true表示这次移动已经结束
+   repeated string frameSrc=11;
+   bool isEnd=12;     //false表示可以继续移动,true表示这次移动已经结束
 }
 /**********************************************************/