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

+ loading additional models to the current model

parent 84f58cc5
Loading
Loading
Loading
Loading
+404 B
Loading image diff...
+737 B
Loading image diff...
+10 −3
Original line number Original line Diff line number Diff line
@@ -146,7 +146,9 @@ html, body, #x3d_wrapper {
    background: rgba(240,240,240,1);
    background: rgba(240,240,240,1);
}
}


#help-content, #menu-content{
#help-content,
#menu-content,
#extra_models-content{
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    position:absolute;
    position:absolute;
    top:0px;
    top:0px;
@@ -192,7 +194,8 @@ html, body, #x3d_wrapper {
#align_button_heading,
#align_button_heading,
#align_button_location,
#align_button_location,
#align_tr_button,
#align_tr_button,
#download_button{
#download_button,
#extra_models_button{
    background-size: 32px 32px;
    background-size: 32px 32px;
    background-repeat: no-repeat;
    background-repeat: no-repeat;
    background-position: center;
    background-position: center;
@@ -222,6 +225,9 @@ html, body, #x3d_wrapper {
    background-image:url('images/ic_horizon_black_48dp_1x.png');
    background-image:url('images/ic_horizon_black_48dp_1x.png');
}
}


#extra_models_button{
    background-image:url('images/ic_add_location_black_48dp_1x.png');
}


#exit_button:hover{
#exit_button:hover{
    background-color: rgba(240,150,150,1);
    background-color: rgba(240,150,150,1);
@@ -231,7 +237,8 @@ html, body, #x3d_wrapper {
#align_button_heading:hover,
#align_button_heading:hover,
#align_button_location:hover,
#align_button_location:hover,
#align_tr_button:hover,
#align_tr_button:hover,
#download_button:hover{
#download_button:hover,
#extra_models_button:hover{
/*     background-image:url('images/align.png'); */
/*     background-image:url('images/align.png'); */
    background-color: rgba(240,240,240,1);
    background-color: rgba(240,240,240,1);
}
}

js/ui_extra_models.js

0 → 100644
+106 −0
Original line number Original line Diff line number Diff line

function load_extra_models(){

  var load_array = [];

  $(".extra_model_item").each(function(){

    var is_checked = $(this).parent().find('input').prop("checked");

    if (is_checked){
      console.log("Loading "+$(this).html());
      load_extra_model($(this).html(),$(this).attr('version'));
    }else{
      console.log("Hiding "+$(this).html());
      hide_extra_model($(this).html());
    }

  });

}

function load_extra_model(name,version){

//get current kml
//get that model kml
//find relative orientation and apply to the group first

  //console.log($("inline[name=x3d_"+name+"]"));

  if ($("inline[name=x3d_"+name+"]").length==0){

    model_kml = SETTINGS.basepath+"/"+name+"/"+name+".kml";

    $.ajax({
      url: model_kml+"?"+Date.now(),
      success:function(response){

        parse_load_extra_model(name,version,response);

      },
      error:function(response){
        console.log("Too bad, file not found");
      }
    });

  }else{

    console.log("Model "+name+" is already loaded");

  }
}

function hide_extra_model(name){
  //donothing
}

function parse_load_extra_model(name,version,response){

  var latitude  = parseFloat($(response).find("Camera").find("latitude").text());
  var longitude = parseFloat($(response).find("Camera").find("longitude").text());
  var altitude  = parseFloat($(response).find("Camera").find("altitude").text());

  var heading = parseFloat($(response).find("Camera").find("heading").text());
  var tilt    = parseFloat($(response).find("Camera").find("tilt").text())-90;
  var roll    = parseFloat($(response).find("Camera").find("roll").text());

  heading = heading*Math.PI/180;
  tilt = tilt*Math.PI/180;
  roll = roll*Math.PI/180;

  // Heading,Tilt,Roll
  var Mh = x3dom.fields.SFMatrix4f.rotationZ(heading);
  var Mt = x3dom.fields.SFMatrix4f.rotationY(tilt);
  var Mr = x3dom.fields.SFMatrix4f.rotationX(roll);

  // proper Euler rotation
  var R = Mh.mult(Mt).mult(Mr);
  //var R = Mr.mult(Mt).mult(Mh);
  // convert to proper Euler
  var T = x3dom_toYawPitchRoll();

  var R1 = T.inverse().mult(R).mult(T);
  var R0 = Data.camera.Matrices.R0;

  var R_diff = R1.mult(R0.inverse());

  var Q = new x3dom.fields.Quaternion(0, 0, 1, 0);
  Q.setValue(R_diff);
  var AA = Q.toAxisAngle();
  var rstring = AA[0].toString()+" "+AA[1];

  var x3delement = $("#x3d_id").find("scene");

  model_url = SETTINGS.basepath+"/"+name+"/"+version+"/"+name+".x3d";

  var model = $([
      '<group>',
      '  <transform rotation=\''+rstring+'\'>',
      '    <inline name="x3d_'+name+'" namespacename="x3d_'+name+'" url="'+model_url+'"></inline>',
      '  </transform>',
      '</group>'
    ].join('\n'));

  x3delement.append(model);

}
 No newline at end of file
+12 −1
Original line number Original line Diff line number Diff line
@@ -210,10 +210,21 @@ function light_init(){
    var model_url = SETTINGS.files.x3d;
    var model_url = SETTINGS.files.x3d;
    var model_back_url = SETTINGS.files.x3d_background;
    var model_back_url = SETTINGS.files.x3d_background;


    // multiple models in one scene test
    //second_x3d = SETTINGS.basepath+"/1502241323_909309/v1/1502241323_909309.x3d";

    var model = $([
    var model = $([
        '<group>',
        '<group>',
        '  <transform id=\'x3d_transform\'>',
        '    <inline name="x3d" namespacename="x3d" url="'+model_url+'"></inline>',
        '    <inline name="x3d" namespacename="x3d" url="'+model_url+'"></inline>',
        '</group>'
        '  </transform>',
        '</group>',
        // multiple models in one scene test
        //'<group>',
        //'  <transform rotation="0,1,0,-0.41">',
        //'    <inline name="x3d2" namespacename="x3d2" url="'+second_x3d+'"></inline>',
        //'  </transform>',
        //'</group>',
      ].join('\n'));
      ].join('\n'));


    x3delement.append(model);
    x3delement.append(model);
Loading