Example #1
0
def get_toric_trajectory():
  '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
  {
    cameraPoseN: [0, ...],
    cameraPoseE: [0, ...],
    cameraPoseD: [0, ...],
    cameraPoseT: [0, ...],
    personA: [x, y, z]
    personB: [x, y, z]
  }

  Returns: a JSON object as follows:
  {
    interpolatedSpline: [...],
  }
  '''
  parsed_json = request.get_json()
  if parsed_json is None:
    return abort(400)

  cameraPose_n_list = parsed_json['cameraPoseN'] #y
  cameraPose_e_list = parsed_json['cameraPoseE'] #x
  cameraPose_d_list = parsed_json['cameraPoseD'] #z
  cameraPose_t_list = parsed_json['cameraPoseT']

  person_n_list = parsed_json['personN']
  person_e_list = parsed_json['personE']
  person_d_list = parsed_json['personD']

  print "get_toric_trajectory: Calling trajectoryAPI now..."

  # toric interpolation

  # starting people positons
  PA_1 = toric.Vector3(person_n_list[0],person_e_list[0],person_d_list[0])
  PB_1 = toric.Vector3(person_n_list[1],person_e_list[1],person_d_list[1])

  # ending people positions: for the moment the positions are the same
  PA_2 = toric.Vector3(person_n_list[0],person_e_list[0],person_d_list[0])
  PB_2 = toric.Vector3(person_n_list[1],person_e_list[1],person_d_list[1])

  # Starting camera position is *outside* of PA_1:
  C_1 = toric.Vector3(cameraPose_n_list[0], cameraPose_e_list[0], cameraPose_d_list[0])
  C_2 = toric.Vector3(cameraPose_n_list[1], cameraPose_e_list[1], cameraPose_d_list[1])
  interpolated = toricinterpolation.toric_position_interpolation(C_1, PA_1, PB_1, C_2, PA_2, PB_2)

  print C_1
  print C_2

  P_cameraPose = interpolated['F']

  print "P: ", P_cameraPose

  # scale
  P_cameraPose[:,0] *= 1000.0;
  P_cameraPose[:,1] *= 1000.0;
  P_cameraPose[:,2] *= -1000.0; 
  T_cameraPose = c_[interpolated['t'], interpolated['t'], interpolated['t']]

  P_positionSpline = trajectoryAPI.compute_easing_spline_trajectory(P_cameraPose, T_cameraPose)
  
  print "get_toric_trajectory: Response from trajectoryAPI", P_positionSpline

  data = {
    'positionSpline': P_positionSpline.tolist(),
  }
  return jsonify(data)
Example #2
0
def get_toric_trajectory():
  '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
  {
    cameraPoseN: [0, ...],
    cameraPoseE: [0, ...],
    cameraPoseD: [0, ...],
    cameraPoseT: [0, ...],
    personA: [x, y, z, ...]
    personB: [x, y, z, ...]
    screenSpaceA : [x, y, ...]
    screenSpaceB : [x, y, ...]
  }

  Returns: a JSON object as follows:
  {
    interpolatedSpline: [...],
  }
  '''
  parsed_json = request.get_json()
  if parsed_json is None:
    return abort(400)

  cameraPose_n_list = parsed_json['cameraPoseN'] #y
  cameraPose_e_list = parsed_json['cameraPoseE'] #x
  cameraPose_d_list = parsed_json['cameraPoseD'] #z
  cameraPose_t_list = parsed_json['cameraPoseT']
  personA_list = parsed_json['personA']
  personB_list = parsed_json['personB']
  screenSpaceA_list = parsed_json['screenSpaceA']
  screenSpaceB_list = parsed_json['screenSpaceB']

  print "get_toric_trajectory: Calling trajectoryAPI now..."

  # toric interpolation

  # people positons
  PA_1 = toric.Vector3(personA_list[0],personA_list[1],personA_list[2])
  PB_1 = toric.Vector3(personB_list[0],personB_list[1],personB_list[2])
  PA_2 = toric.Vector3(personA_list[0],personA_list[1],personA_list[2]) # ending people positions: for the moment the positions are the same
  PB_2 = toric.Vector3(personB_list[0],personB_list[1],personB_list[2])

  # camera positions
  C_1 = toric.Vector3(cameraPose_n_list[0], cameraPose_e_list[0], cameraPose_d_list[0])
  C_2 = toric.Vector3(cameraPose_n_list[1], cameraPose_e_list[1], cameraPose_d_list[1])

  # screen space positions
  SA_1 = toric.Vector2(screenSpaceA_list[0], screenSpaceA_list[1])
  SB_1 = toric.Vector2(screenSpaceB_list[0], screenSpaceB_list[1])
  SA_2 = toric.Vector2(screenSpaceA_list[2], screenSpaceA_list[3])
  SB_2 = toric.Vector2(screenSpaceB_list[2], screenSpaceB_list[3])

  interpolated = toricinterpolation.toric_position_interpolation(C_1, PA_1, PB_1, C_2, PA_2, PB_2)

  print C_1
  print C_2

  P_cameraPose = interpolated['F']
  #orientInterpolated = toricinterpolation.toric_orientation_interpolation(P_cameraPose, SA_1, SB_1, SA_2, SB_2, PA_1, PB_1, PA_2, PB_2)

  print "P: ", P_cameraPose
  T_cameraPose = c_[interpolated['t'], interpolated['t'], interpolated['t']]
  P_positionSpline = trajectoryAPI.compute_easing_spline_trajectory(P_cameraPose, T_cameraPose)
  
  print "get_toric_trajectory (position): Response from trajectoryAPI", P_positionSpline
  #print "get_toric_trajectory (orientation): Response from trajectoryAPI", P_orientationSpline

  data = {
    'positionSpline': P_positionSpline.tolist(),
    #'orientationSpline': P_orientationSpline.tolist(),
  }
  return jsonify(data)
Example #3
0
def get_toric_trajectory():
    '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
  {
    cameraPoseN: [0, ...],
    cameraPoseE: [0, ...],
    cameraPoseD: [0, ...],
    cameraPoseT: [0, ...],
    personA: [x, y, z, ...]
    personB: [x, y, z, ...]
    screenSpaceA : [x, y, ...]
    screenSpaceB : [x, y, ...]
  }

  Returns: a JSON object as follows:
  {
    interpolatedSpline: [...],
  }
  '''
    parsed_json = request.get_json()
    if parsed_json is None:
        return abort(400)

    cameraPose_n_list = parsed_json['cameraPoseN']  #y
    cameraPose_e_list = parsed_json['cameraPoseE']  #x
    cameraPose_d_list = parsed_json['cameraPoseD']  #z
    cameraPose_t_list = parsed_json['cameraPoseT']
    personA_list = parsed_json['personA']
    personB_list = parsed_json['personB']
    screenSpaceA_list = parsed_json['screenSpaceA']
    screenSpaceB_list = parsed_json['screenSpaceB']

    print "get_toric_trajectory: Calling trajectoryAPI now..."

    # toric interpolation

    # people positons
    PA_1 = toric.Vector3(personA_list[0], personA_list[1], personA_list[2])
    PB_1 = toric.Vector3(personB_list[0], personB_list[1], personB_list[2])
    PA_2 = toric.Vector3(
        personA_list[0], personA_list[1], personA_list[2]
    )  # ending people positions: for the moment the positions are the same
    PB_2 = toric.Vector3(personB_list[0], personB_list[1], personB_list[2])

    # camera positions
    C_1 = toric.Vector3(cameraPose_n_list[0], cameraPose_e_list[0],
                        cameraPose_d_list[0])
    C_2 = toric.Vector3(cameraPose_n_list[1], cameraPose_e_list[1],
                        cameraPose_d_list[1])

    # screen space positions
    SA_1 = toric.Vector2(screenSpaceA_list[0], screenSpaceA_list[1])
    SB_1 = toric.Vector2(screenSpaceB_list[0], screenSpaceB_list[1])
    SA_2 = toric.Vector2(screenSpaceA_list[2], screenSpaceA_list[3])
    SB_2 = toric.Vector2(screenSpaceB_list[2], screenSpaceB_list[3])

    interpolated = toricinterpolation.toric_position_interpolation(
        C_1, PA_1, PB_1, C_2, PA_2, PB_2)

    print C_1
    print C_2

    P_cameraPose = interpolated['F']
    #orientInterpolated = toricinterpolation.toric_orientation_interpolation(P_cameraPose, SA_1, SB_1, SA_2, SB_2, PA_1, PB_1, PA_2, PB_2)

    print "P: ", P_cameraPose
    T_cameraPose = c_[interpolated['t'], interpolated['t'], interpolated['t']]
    P_positionSpline = trajectoryAPI.compute_easing_spline_trajectory(
        P_cameraPose, T_cameraPose)

    #print "get_toric_trajectory (position): Response from trajectoryAPI", P_positionSpline
    #print "get_toric_trajectory (orientation): Response from trajectoryAPI", P_orientationSpline

    data = {
        'positionSpline': P_positionSpline.tolist(),
        #'orientationSpline': P_orientationSpline.tolist(),
    }
    return jsonify(data)