|
@@ -156,12 +156,11 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
|
|
|
}
|
|
|
*/
|
|
|
int action_type = request.getActionType();
|
|
|
-
|
|
|
- //request.getRotationAction()
|
|
|
-
|
|
|
String trace_id = request.getTraceId();
|
|
|
String user_id = request.getUserId();
|
|
|
-
|
|
|
+ RotationAction rotation_action = request.getRotationAction();
|
|
|
+ double horizontal_move = rotation_action.getHorizontalMove();
|
|
|
+
|
|
|
//这三个变量从user表和rotateframe表里取
|
|
|
UserEntity user = userService.findById(user_id);
|
|
|
BreakpointsEntity breakpointsEntity = breakpointsService.findById(user.getBreakPointId());
|
|
@@ -169,21 +168,32 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
|
|
|
|
|
|
PointPO playerPoint = breakpointsEntity.getPosition();
|
|
|
Point playerPosition = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
|
|
|
- AnglePO userAngle = user.getPlayerAngle();
|
|
|
- AngleUe4 playerAngle = createAngle(userAngle.getPitch(),userAngle.getYaw(),userAngle.getRoll());
|
|
|
-
|
|
|
+ AnglePO playerAnglePO = user.getPlayerAngle();
|
|
|
+ AngleUe4 playerAngle = createAngle(playerAnglePO.getPitch(),playerAnglePO.getYaw(),playerAnglePO.getRoll());
|
|
|
Space player = createSpace(playerPosition,playerAngle);
|
|
|
|
|
|
+ PointPO cameraPoint = rotateFrameEntity.getCameraPosition();
|
|
|
+ Point cameraPosition = createPoint(String.valueOf(cameraPoint.getX()),String.valueOf(cameraPoint.getY()),String.valueOf(cameraPoint.getZ()));
|
|
|
+ AnglePO cameraAnglePO = rotateFrameEntity.getCameraAngle();
|
|
|
+
|
|
|
+ double hAngle = horizontal_move * 90;
|
|
|
+ int offFrameIndex = (int)Math.ceil(hAngle);
|
|
|
+ int currentFrame = rotateFrameEntity.getFrameIndex(); //从数据库里读取
|
|
|
+ currentFrame +=offFrameIndex;
|
|
|
+ currentFrame = currentFrame % 359;
|
|
|
+ //currentFrame
|
|
|
|
|
|
- Space camera = null;
|
|
|
- Point cameraCenter = null;
|
|
|
+ AngleUe4 cameraAngle = createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
|
|
|
+ Space camera = createSpace(cameraPosition,cameraAngle);
|
|
|
+
|
|
|
+ //对准player
|
|
|
+ Point cameraCenter = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
|
|
|
|
|
|
State playerState = createPlayerState( player, camera, cameraCenter);
|
|
|
RenderInfo renderInfo = createRenderInfo();
|
|
|
Event event = createEvent();
|
|
|
UserState userState = createUserState( user_id, playerState, renderInfo, event);
|
|
|
|
|
|
-
|
|
|
/// metaConfig.getVideoFramePath()
|
|
|
log.info("VideoFramePath{}", metaConfig.getVideoFramePath());
|
|
|
NormalReply res = NormalReply.newBuilder()
|
|
@@ -227,13 +237,14 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
|
|
|
String trace_id = request.getTraceId();
|
|
|
String user_id = request.getUserId();
|
|
|
|
|
|
- UserEntity userEntity = userService.findById(user_id);
|
|
|
- BreakpointsEntity breakpointsEntity = breakpointsService.findById(userEntity.getBreakPointId());
|
|
|
-
|
|
|
+ UserEntity user = userService.findById(user_id);
|
|
|
+ BreakpointsEntity breakpointsEntity = breakpointsService.findById(user.getBreakPointId());
|
|
|
+ RotateFrameEntity rotateFrameEntity = rotateFrameService.findById(user.getFrameId());
|
|
|
+
|
|
|
Point start = null; //从user表里取
|
|
|
//计算路径
|
|
|
|
|
|
- String appId = userEntity.getAppId();
|
|
|
+ String appId = user.getAppId();
|
|
|
RouteDto po=new RouteDto();
|
|
|
PointPO s=new PointPO();
|
|
|
s.setX(Double.parseDouble(start.getX()));
|
|
@@ -253,17 +264,39 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
|
|
|
redisCache.setCacheObject(trace_id,maps);
|
|
|
// 从缓存里面取 JSONArray cacheObject = redisCache.getCacheObject(trace_id);
|
|
|
|
|
|
-
|
|
|
+ //获得下一个要走的breakPointId
|
|
|
+ int nextbreakPointId = 0;
|
|
|
|
|
|
//开始返回结果,一段一段的返回(每段是两个邻居点的过渡),第一段之前还要有角度的矫正
|
|
|
//矫正的结果:
|
|
|
//moveFrameService.findById()
|
|
|
-
|
|
|
- //这三个变量从user表和rotateframe表里取。自己对应的都是空
|
|
|
- Space player = null;
|
|
|
- Space camera = null;
|
|
|
- Point cameraCenter = null;
|
|
|
-
|
|
|
+ PointPO playerPoint = breakpointsEntity.getPosition();
|
|
|
+ Point playerPosition = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
|
|
|
+ AnglePO playerAnglePO = user.getPlayerAngle();
|
|
|
+ AngleUe4 playerAngle = createAngle(playerAnglePO.getPitch(),playerAnglePO.getYaw(),playerAnglePO.getRoll());
|
|
|
+ Space player = createSpace(playerPosition,playerAngle);
|
|
|
+
|
|
|
+ AnglePO cameraAnglePO = rotateFrameEntity.getCameraAngle();
|
|
|
+
|
|
|
+ int angle = cameraAnglePO.getYaw();
|
|
|
+ int offAngle = 0;
|
|
|
+ offAngle = angle%45;
|
|
|
+ if(offAngle>45-offAngle) {
|
|
|
+ offAngle = 45-offAngle;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ offAngle = -1*offAngle;
|
|
|
+ }
|
|
|
+
|
|
|
+ //循环
|
|
|
+ //for()
|
|
|
+
|
|
|
+ PointPO cameraPoint = rotateFrameEntity.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);
|
|
|
+
|
|
|
+ Point cameraCenter = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
|
|
|
State playerState = createPlayerState( player, camera, cameraCenter);
|
|
|
RenderInfo renderInfo = createRenderInfo();
|
|
|
Event event = createEvent();
|
|
@@ -303,7 +336,58 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
|
|
|
String trace_id = request.getTraceId();
|
|
|
boolean needNext = request.getNext();
|
|
|
|
|
|
+ UserEntity user = userService.findById(user_id);
|
|
|
+ BreakpointsEntity breakpointsEntity = breakpointsService.findById(user.getBreakPointId());
|
|
|
+ RotateFrameEntity rotateFrameEntity = rotateFrameService.findById(user.getFrameId());
|
|
|
//moveStart的结果参考moveStart
|
|
|
+ //开始返回结果,一段一段的返回(每段是两个邻居点的过渡),第一段之前还要有角度的矫正
|
|
|
+ //矫正的结果:
|
|
|
+ //moveFrameService.findById()
|
|
|
+ PointPO playerPoint = breakpointsEntity.getPosition();
|
|
|
+ Point playerPosition = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
|
|
|
+ AnglePO playerAnglePO = user.getPlayerAngle();
|
|
|
+ AngleUe4 playerAngle = createAngle(playerAnglePO.getPitch(),playerAnglePO.getYaw(),playerAnglePO.getRoll());
|
|
|
+ Space player = createSpace(playerPosition,playerAngle);
|
|
|
+
|
|
|
+ AnglePO cameraAnglePO = rotateFrameEntity.getCameraAngle();
|
|
|
+
|
|
|
+ int angle = cameraAnglePO.getYaw();
|
|
|
+ int offAngle = 0;
|
|
|
+ offAngle = angle%45;
|
|
|
+ if(offAngle>45-offAngle) {
|
|
|
+ offAngle = 45-offAngle;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ offAngle = -1*offAngle;
|
|
|
+ }
|
|
|
+
|
|
|
+ //循环
|
|
|
+ //for()
|
|
|
+
|
|
|
+ PointPO cameraPoint = rotateFrameEntity.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);
|
|
|
+
|
|
|
+ Point cameraCenter = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
|
|
|
+ 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();
|
|
@@ -356,10 +440,31 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
|
|
|
public void joystick(JoystickRequest request, StreamObserver<NormalReply> responseObserver) {
|
|
|
try {
|
|
|
log.info("进入{}",request);
|
|
|
-
|
|
|
-// responseObserver.onNext(res);
|
|
|
-// responseObserver.onCompleted();
|
|
|
-// log.info("回复{}",res);
|
|
|
+ /*
|
|
|
+ {
|
|
|
+ "action_type": 15,
|
|
|
+ "dir_action": {
|
|
|
+ "move_angle": 276,
|
|
|
+ "speed_level": 8
|
|
|
+ },
|
|
|
+ "trace_id": "d0a45ade-b674-47dc-a546-36e981c78ae8",
|
|
|
+ "user_id": "7ef177cb55c91",
|
|
|
+ "packet_id": "d3a3b46a-33cf-486f-b8aa-36b26f786eeb"
|
|
|
+ }
|
|
|
+ */
|
|
|
+ int actionType = request.getActionType();
|
|
|
+ DirAction dirAction = request.getDirAction();
|
|
|
+
|
|
|
+ String trace_id = request.getTraceId();
|
|
|
+ String user_id = request.getUserId();
|
|
|
+ String packet_id = request.getPacketId();
|
|
|
+
|
|
|
+ UserEntity user = userService.findById(user_id);
|
|
|
+ Long breakPointId = user.getBreakPointId();
|
|
|
+ //获得当前点所有邻居点
|
|
|
+ //找到与角度move_angle最近的邻居点
|
|
|
+ //移动player,并且更新相机角度
|
|
|
+
|
|
|
}
|
|
|
catch(Exception e) {
|
|
|
e.printStackTrace();
|