Commit ef6a5a1c authored by Oleg Dzhimiev's avatar Oleg Dzhimiev
Browse files

fixed saving incorrect tilt

parent da183e17
Loading
Loading
Loading
Loading
+62 −58
Original line number Original line Diff line number Diff line
@@ -231,7 +231,7 @@ function parse_load_extra_model(name,version,response){
      longitude: longitude,
      longitude: longitude,
      altitude: altitude,
      altitude: altitude,
      heading: heading,
      heading: heading,
      tilt: tilt,
      tilt: tilt+90,
      roll: roll,
      roll: roll,
      name        : $(response).find("name").text(),
      name        : $(response).find("name").text(),
      description : $(response).find("Camera").find("description").text(),
      description : $(response).find("Camera").find("description").text(),
@@ -359,7 +359,7 @@ function manualposor_refresh_content(){
    // B.
    // B.
    //toMatrix
    //toMatrix


    console.log(tra_rot);
    //console.log(tra_rot);


    // tra_tra is local - convert to real world
    // tra_tra is local - convert to real world
    var tra_tra = $(tra).attr("translation").split(",");
    var tra_tra = $(tra).attr("translation").split(",");
@@ -399,6 +399,12 @@ function manualposor_refresh_content(){


    //unbind existing
    //unbind existing
    this.removeEventListener("mousewheel",false);
    this.removeEventListener("mousewheel",false);
    this.removeEventListener("change",false);

    this.onchange = function(event){
      manualposor_update(this);
    }

    //bind new
    //bind new
    this.onmousewheel = function(event){
    this.onmousewheel = function(event){


@@ -435,16 +441,20 @@ function manualposor_refresh_content(){
        newval = tmpval + (delta>0?speed:-speed);
        newval = tmpval + (delta>0?speed:-speed);
        $(this).val(newval.toFixed(preci));
        $(this).val(newval.toFixed(preci));


        // move/rotate model
        manualposor_update(this);
        var tmp_pp = $(this).parent().parent();


        var tmpname = tmp_pp.find(".mpr_name").html();
      }


        var tmptransform = $("inline[name=x3d_"+tmpname+"]").parent();
    }
  });


        //get new coordinates
}
        var angle = 0;

        var distance = 0;
function manualposor_update(elem){

  var tmp_pp = $(elem).parent().parent();
  var tmpname = tmp_pp.find(".mpr_name").html();
  var tmptransform = $("inline[name=x3d_"+tmpname+"]").parent();


  var dp_rw = {
  var dp_rw = {
    x: parseFloat(tmp_pp.find(".mpr_x").val()),
    x: parseFloat(tmp_pp.find(".mpr_x").val()),
@@ -452,15 +462,8 @@ function manualposor_refresh_content(){
    z: parseFloat(tmp_pp.find(".mpr_z").val())
    z: parseFloat(tmp_pp.find(".mpr_z").val())
  };
  };


        distance = Math.sqrt(dp_rw.x*dp_rw.x+dp_rw.z*dp_rw.z);
  var distance = Math.sqrt(dp_rw.x*dp_rw.x+dp_rw.z*dp_rw.z);

  var angle = 180/Math.PI*Math.atan2(dp_rw.x,-dp_rw.z);
        angle = 180/Math.PI*Math.atan2(dp_rw.x,-dp_rw.z);

        if (dp_rw.z!=0){
          angle = 180/Math.PI*Math.atan2(dp_rw.x,-dp_rw.z);
        }

        console.log("Angle-Distance: "+angle+" "+distance);


  var dp_r = x3dom_real_to_scene(dp_rw.x,dp_rw.y,dp_rw.z);
  var dp_r = x3dom_real_to_scene(dp_rw.x,dp_rw.y,dp_rw.z);
  var new_tra = [dp_r.x,dp_r.y,dp_r.z].join(",");
  var new_tra = [dp_r.x,dp_r.y,dp_r.z].join(",");
@@ -469,11 +472,17 @@ function manualposor_refresh_content(){
  var tilt = tmp_pp.find(".mpr_t").val()*Math.PI/180;
  var tilt = tmp_pp.find(".mpr_t").val()*Math.PI/180;
  var roll = tmp_pp.find(".mpr_r").val()*Math.PI/180;
  var roll = tmp_pp.find(".mpr_r").val()*Math.PI/180;


  var heading = tmp_pp.find(".mpr_h").val()*Math.PI/180;
  var tilt = tmp_pp.find(".mpr_t").val()*Math.PI/180;
  var roll = tmp_pp.find(".mpr_r").val()*Math.PI/180;

  // update object
  // update object
  var initial_coordinates = [Data.camera.latitude,Data.camera.longitude];
  var initial_coordinates = [Data.camera.latitude,Data.camera.longitude];
  var p0 = new L.LatLng(initial_coordinates[0],initial_coordinates[1]);//Camera._latlng;
  var p0 = new L.LatLng(initial_coordinates[0],initial_coordinates[1]);//Camera._latlng;
  var p1 = p0.CoordinatesOf(angle,distance);
  var p1 = p0.CoordinatesOf(angle,distance);


  if (tmpname!=SETTINGS.path){

    Data.extra_models["x3d_"+tmpname].latitude = p1.lat.toFixed(8);
    Data.extra_models["x3d_"+tmpname].latitude = p1.lat.toFixed(8);
    Data.extra_models["x3d_"+tmpname].longitude = p1.lng.toFixed(8);
    Data.extra_models["x3d_"+tmpname].longitude = p1.lng.toFixed(8);


@@ -481,6 +490,7 @@ function manualposor_refresh_content(){
    Data.extra_models["x3d_"+tmpname].tilt    = parseFloat(tmp_pp.find(".mpr_t").val())+90;
    Data.extra_models["x3d_"+tmpname].tilt    = parseFloat(tmp_pp.find(".mpr_t").val())+90;
    Data.extra_models["x3d_"+tmpname].roll    = tmp_pp.find(".mpr_r").val();
    Data.extra_models["x3d_"+tmpname].roll    = tmp_pp.find(".mpr_r").val();


  }
  // Heading,Tilt,Roll
  // Heading,Tilt,Roll
  var Mh = x3dom.fields.SFMatrix4f.rotationZ(heading);
  var Mh = x3dom.fields.SFMatrix4f.rotationZ(heading);
  var Mt = x3dom.fields.SFMatrix4f.rotationY(tilt);
  var Mt = x3dom.fields.SFMatrix4f.rotationY(tilt);
@@ -508,10 +518,4 @@ function manualposor_refresh_content(){


}
}


    }
  });

}