krpano 1.19-pr14

  • please, check out the link - https://look360.kr/vr/indyspot/indyspot_member/2521
    I hope the link will work on your country as well.

    press 'o' key will show the log.


    Yes, this is a css override in https://look360.kr/assets/bootstr…otstrap.min.css
    pre {
    display: block;
    padding: 9.5px;
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.42857143;
    color: #333;
    word-break: break-all;
    word-wrap: break-word;
    background-color: #f5f5f5;
    border: 1px solid #ccc;
    border-radius: 4px;
    }

  • Here is a video sample with closed Chrome dev tools : https://www.dropbox.com/sh/dq9jntg58uo9z…tpIn4lxPma?dl=0


    Thanks for the video - after some testing I was able to reproduce this now on a Windows 10 system.

    But it's clearly a browser or system bug - when logging the 'event.movementX' values (that's the mouse movement reported from the browser) there are sometimes bigger jumps - e.g. in my tests in the range of 500-1000 pixels.

    I have added now a workaround for that browser bug for the next krpano release (only applied to Windows Chrome) - when the movementX value will differ more than 400px from the previous value, then it will be ignored.

    This should cover this most cases, but I will still need some testing (e.g. on HiDPI systems) do make sure that the 400px limit is not too small or might need to be scaled depending on the resolution...

    But normally such bug should be reported to the browser developer and fixed there...

    Best regards,
    Klaus

  • I've also an override for the style of the log on the website : it's white on almost white !! *cry*
    an example here http://photo.maelbathfield.net/cap-noir-la-reunion/ (press 'o' key)
    unfortunately, i don't know which of my style file (.css, .less or other?) causes this problem. *confused*

  • Hello, i updated a virtual tour from 19pr8 to 19pr14, i change all the plugins and the functions, all is quite ok, i have just an error message because of these 3 functions.

    i just add "caller." before the name of the function, like this:
    caller.addspotstyle(NEWSTYLE, skin/vtourskin_mapspot_NEWSTYLE.png);

    i didn't change anything else...

    in 19pr8 this code was ok:
    addspotstyle(NEWSTYLE, skin/vtourskin_mapspot_NEWSTYLE.png);

    in 19pr14 this code is not ok (unknown action):
    caller.addspotstyle(NEWSTYLE, skin/vtourskin_mapspot_NEWSTYLE.png);
    without "caller." it's the same thing...

    is it a bug??
    Thank you in advance

  • Hi Klaus,

    Thank you for the great update in 1.19-pr14.
    Reading from docu:
    deferred code - Actions that will call other code later (e.g. delayedcall, tween, asyncloop, ...) will use the same scope as in the current action in that code.

    I have created my obj360 actions by using the 1.19-pr14 action scope=local. I found that the deferred code actions (in my case the tween and delayedcall) are working well when only one instance of the deferred function is running.
    As soon as there are two(and more) actions with different arguments for the tween() and delayedcall() the first tween() and delayedcall() instance is overridden by the last one.

    By now I am going back to the global scope of my code and will post my pano as working here:
    http://www.pavel.ursiny.sk/art-galeria/MO…rs.i18n_lang=en
    In the fourth scene of the pano you can see (when zoom-out) two 3D objects. The contextmenu "Next only" is tweening both clowns. This is not working in the case when the scope=local.

    If you find difficult to reproduce such a test case, I will post my pano in both (global/local) versions later.

    BTW I found that only the action scope=local is passing as an argument the reference to the object e.g.

    Code
    <action name=my_local_action scope=local arg="hs, direction" >
         if(hs,
            set(hs.alpha,0.5);
             ...
         </action>


    And the action call:
    ...
    onclick="my_local_action(get(hotspot[myhotspot]), lett)"

    Is this construction valid and will work in the next releases, too?

    Thank you and have a great day!
    Pavel

  • Hi,

    The contextmenu "Next only" is tweening both clowns. This is not working in the case when the scope=local.

    Right, thanks for noting - the tween animation system is currently not 'multi-scope-able'. That means when internally registering a tween animation, it doesn't check if the variable might be from a local scope. The animation itself should be working correctly, but tweens with SAME-NAMED variables from other scopes would be wrongly stopped.

    This will be fixed in the next release.

    With delayedcall there should be no problem, but the id itself of the delayedcall is NOT local.
    To run several delayed calls the same time, different ids would need to be used.

    E.g. generate an unique/random id at start of the action:

    Code
    calc(myid, 'id_' + timertick + '_' + random);
    delayedcall(get(myid), ...);
    ...
    stopdelayedcall(get(myid));


    BTW I found that only the action scope=local is passing as an argument the reference to the object
    ...
    Is this construction valid and will work in the next releases, too?

    Yes, that's valid and intended.

    Best regards,
    Klaus

  • Hi,

    Since the last update, this command returns a null value: copy(titelscene,scene[get(xml.scene)].title);
    Has something changed because in earlier versions, I had no problems with this command.

    EDIT: Found the solution myself (script error).

    Yvan.

    Edited once, last by Birdseye (February 9, 2018 at 5:21 AM).

  • Klaus,

    Thank you for your replay. Yes, by now I made tweening inside an action with an explicit name passing and it works well.
    http://pavel.ursiny.sk/pano/Art/LESSO…=en&dbgobj=true
    This example has two actions in the contextmenu: "Rotate Next Only" and "obj360_next_local( ) "
    The first one works, the second will after your release later :) ... (Please start them after autorotate starts working, because onstart of the scene the 3D object rotates one round first. Here is the code: http://pavel.ursiny.sk/pano/Art/LESSO…j360/obj360.xml).

    Please, can you give us some more insides how to use scope=private:NAME ?
    I tried to learn from the showtext.xml plugin, but no success. How to reference the variables in this case?

    Thank you again,
    Pavel

  • Hi Klaus,

    I found the callwhen() function as a very powerful instrument. But before using it more I'd like to learn about.
    - how heavy the function is (resource consuming, limitations,...)?
    - what is the lifespan of the function? (Until the condition is met or is there some 'garbage collection'?)
    - how can I cancel obsolete callwhen() when I need to start "my new era"?
    - is/will be there a way to control a callwhen() selectively like delayedcall(id, ...);
    - is there a queue where I can see (debug) callwhen functions pending for execution?

    Thank you very much,
    Pavel

  • Please, can you give us some more insides how to use scope=private:NAME ?
    I tried to learn from the showtext.xml plugin, but no success. How to reference the variables in this case?


    All actions with scope="private:NAME" and the same NAME are sharing the same local variable scope.
    E.g. when defining a new variable via set(xyz, 123) - then this variable will be defined inside that private scope and be also available in the other actions using the same private scope.

    This could be used to defined several actions working with the same set of 'internal' variables.

    Additionally all access to variables is limited to that private scope by default (same as scope="localonly").

    For accessing variables from the global scope it would necessary to add 'global.' to the variable.
    E.g. trace(global.version) instead of trace(version);

  • I found the callwhen() function as a very powerful instrument. But before using it more I'd like to learn about.
    - how heavy the function is (resource consuming, limitations,...)?

    The check happens only once per frame, so it should be not very heavy.

    - what is the lifespan of the function? (Until the condition is met or is there some 'garbage collection'?)

    The function runs until the condition is met. When the condition is already true, it acts like a normal if() check.

    - how can I cancel obsolete callwhen() when I need to start "my new era"?
    - is/will be there a way to control a callwhen() selectively like delayedcall(id, ...);

    There is currently no API for canceling or defining an id (but I will consider one).

    - is there a queue where I can see (debug) callwhen functions pending for execution?

    No, but good idea - I will look if that could be exposed somewhere for debugging.

  • Hi Klaus,
    Thank you for giving me a clue about tween animation system. I made it working here using HTML5
    http://pavel.ursiny.sk/pano/Art/LESSO…rs.i18n_lang=en
    and Flashplayer
    http://pavel.ursiny.sk/pano/Art/LESSO…rs.i18n_lang=en
    Interesting that the krpano with Flashplayer DOES/DOESNOT tween all images the same way. I tested my pano using html5 and Flash on WIN, MAC, iPad, iPhone. (IE + Flashplayer WIN 27.0.0.187 Plugin, Firefox + Flashplayer WIN 28.0.0.161 PlugIn, Safari + MAC 28.0.0.161).
    HTML5 tweens ALL my 3D objects as expected. You can browse the 3D objects by clicking the contextmenu "Rotate Blue Eye" (obj01) or "Rotate Ice Lake" (obj04) on the first scene. The second scene has 3 objects: obj05 = "Rotate Ice Lake", obj06 ="Rotate Blue Lake ", obj07 = "Rotate Pyramide ".

    When using Flash the obj04 and obj05 do not tween just animate. No idea what's wrong? Hoping is not frozen due to the names :)
    tour.xml: http://pavel.ursiny.sk/pano/Art/LESSO_2017/vtour/tour.xml
    obj360.xml: http://pavel.ursiny.sk/pano/Art/LESSO…j360/obj360.xml

    copyattributes()
    Please note that the copyattributes() when Flash viewer does not copy all attributes to the new destination (mainly numeric) e.g. width, height, ath, atv.
    The workaround: device.flash only set() function.

    *blend e.g. SLIDEBLEND(time, angle, smooth, tweentype)
    I do use a shadow hotspot (e.g. obj01_blend) to avoid flickering when switching between the frames of the 3D images. I'd like to use blending in the animation similar to loadpano( ), loadscene( ),... Is there a way to reuse these blending functions for other than scene loading?

    Thank you and have a nice day!
    Pavel

    Edited once, last by pur (February 12, 2018 at 6:23 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!