Changeset 36963


Ignore:
Timestamp:
2022-11-30T17:19:14+13:00 (17 months ago)
Author:
davidb
Message:

AV values now returned for each recommendation as data attributes; function added on calculate min-max range of AV vals

Location:
gs3-installations/mars/trunk/sites/mars/collect/amc-essentia
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • gs3-installations/mars/trunk/sites/mars/collect/amc-essentia/etc/collectionConfig.xml

    r36960 r36963  
    132132          <td>
    133133         
    134           <a>
     134          <a class="AVRecommendation">
    135135        <xsl:choose>
    136136          <xsl:when test="/page/pageResponse/collection/@name">
     
    141141          </xsl:when>
    142142        </xsl:choose>
     143        <xsl:attribute name="data-arousalval"><xsl:value-of select="@arousalVal"/></xsl:attribute>
     144        <xsl:attribute name="data-valenceval"><xsl:value-of select="@valenceVal"/></xsl:attribute>
     145        <xsl:attribute name="data-frameoffset"><xsl:value-of select="@frameOffset"/></xsl:attribute>
     146       
    143147        <gsf:metadata name="amc.title"/>
    144148        by <gsf:metadata name="amc.artist"/>
     
    758762              </form>
    759763              <div>
    760                 <div id="av-chart-div" style="height: 265px; width: 250px; float: right; display: none;">
    761                   <img id="av-chart-img" width="250"
     764                <div id="av-chart-div" style="height: 325px; width: 300px; float: right; display: none;">
     765                  <img id="av-chart-img" width="300"
    762766                   style="cursor: crosshair; background-colorXX: #fefefe;"
    763767                   src="{$library_name}/sites/{$site_name}/collect/{$collName}/images/av-diagram-bw.svg" />
     
    767771
    768772                </div>
    769                 <div id="resultsAreaDiv" style="padding-top: 1rem; min-height: 265px; display: none;">
     773                <div id="resultsAreaDiv" style="padding-top: 1rem; min-height: 325px; display: none;">
    770774                  <xsl:text> </xsl:text>
    771775                </div>
  • gs3-installations/mars/trunk/sites/mars/collect/amc-essentia/js/av_document.js

    r36960 r36963  
    8888
    8989    return submitAVRecommendation(form, arousal_val,valence_val, current_time);
     90}
     91
     92function AVPlotRecommendations()
     93{
     94    var $av_recommendations = $('.AVRecommendation');
     95
     96    var min_arousal_val = +1.0;
     97    var max_arousal_val = -1.0;
     98
     99    var min_valence_val = +1.0;
     100    var max_valence_val = -1.0;
     101
     102    $av_recommendations.each(function(index_unused) {
     103    var arousal_val = $(this).data("arousalval");
     104    var valence_val = $(this).data("valenceval");
     105
     106    if (arousal_val < min_arousal_val) {
     107        min_arousal_val = arousal_val;
     108    }
     109    if (arousal_val > max_arousal_val) {
     110        max_arousal_val = arousal_val;
     111    }
     112
     113   
     114    if (valence_val < min_valence_val) {
     115        min_valence_val = valence_val;
     116    }
     117    if (valence_val > max_valence_val) {
     118        max_valence_val = valence_val;
     119    }
     120
     121    });
     122
     123    console.log(`AVRecommendations Arousal limits: ${min_arousal_val} <-> ${max_arousal_val}`);
     124    console.log(`AVRecommendations Valence limits: ${min_valence_val} <-> ${max_valence_val}`);
     125   
    90126}
    91127
     
    135171        $('#av-chart-div').show();
    136172
     173        AVPlotRecommendations();
     174       
    137175        if (current_time) {
    138176        const updated_url = new URL(window.location);
     
    249287var av_chart_orig_y_dim = 825;
    250288
    251 var av_chart_disp_x_dim = 250;
     289var av_chart_disp_x_dim = 300; // ****
    252290var av_chart_disp_x_mid = av_chart_disp_x_dim/2.0;
    253291
    254292var av_chart_scale = av_chart_orig_x_dim / av_chart_disp_x_dim;
     293
     294function display_to_av_coord(disp_x,disp_y)
     295{
     296    var scaled_disp_x = disp_x * av_chart_scale;
     297    var scaled_disp_y = disp_y * av_chart_scale;
     298
     299    var orig_av_x = scaled_disp_x - av_chart_orig_x_org;
     300    var orig_av_y = -1 * (scaled_disp_y - av_chart_orig_y_org); // flip y axis
     301
     302    var av_x = orig_av_x / av_chart_orig_r;
     303    var av_y = orig_av_y / av_chart_orig_r;
     304   
     305    var capped_av_x = Math.max(Math.min(av_x,1.0),-1.0);
     306    var capped_av_y = Math.max(Math.min(av_y,1.0),-1.0);
     307
     308    return { "x": capped_av_x, "y": capped_av_y };
     309}
    255310
    256311function av_chart_click(elem,e)
     
    264319    var disp_y = e.pageY - elem_y_org;
    265320
     321    /*
    266322    var scaled_disp_x = disp_x * av_chart_scale;
    267323    var scaled_disp_y = disp_y * av_chart_scale;
     
    275331    var capped_av_x = Math.max(Math.min(av_x,1.0),-1.0);
    276332    var capped_av_y = Math.max(Math.min(av_y,1.0),-1.0);
    277    
    278 
     333    */ 
     334
     335    av_coord = display_to_av_coord(disp_x,disp_y);
     336    var capped_av_x = av_coord.x;
     337    var capped_av_y = av_coord.y;
     338   
    279339    console.log(`av x,y: (${capped_av_x},${capped_av_y})`);
    280340
Note: See TracChangeset for help on using the changeset viewer.