The forum on this site is closed for new comments and posts. Continue the conversation in our Snap AR Discord server.

How to reference the position of a scene object in a script?

  • Hey @...

    I dont know much about scripting, but i found a script from @... which could work on your issue.

     "you are able to get distance between object right now in Lenses

    var pos1 = someComponent.getTransform().getWorldPosition();
    var pos2 = someOtherComponent.getTransform().getWorldPosition();
    var dist = pos1.distance(pos2);

    This distance will be in centimeters.


    But this won't work with object detected by Object Detection Template, as it find only coordinates in 2D, not in 3D."

    Check this post from him out.

     

    Some links which could help you ( not sure if they work to 100%) :

    Link1

    Link2

    I hope i could help you.

     

    Cheers,

    SirQu3ntin

    Comment actions Permalink
  • Thanks, Sir Qu3ntin,

    I will give these a try

    Comment actions Permalink
  • Assuming your two images have ScreenTransform components on them, you can do something like below. (You can pull it out of the onUpdate function and just call it when necessary if you don't need it to constantly compute distance every frame).

    Since the points are being computed in screen space, they are limited to values between 0 and 1, so that affects the calculated distance result (i.e. it's not in centimeters). 

    The anchorSpaceToScreenSpace() function simply converts one coordinate system to another (I nabbed that bit from one of the lens studio template scripts at some point). 

    //@input Component.ScreenTransform obj1
    //@input Component.ScreenTransform obj2

    function onUpdate() {
    var center1 = script.obj1.anchors.getCenter();
    screenPos1 = anchorSpaceToScreenSpace(center1);
    var center2 = script.obj2.anchors.getCenter();
    screenPos2 = anchorSpaceToScreenSpace(center2);
    var dist = center1.distance(center2);

    //then do something with dist
    }

    function anchorSpaceToScreenSpace(point) {
    return new vec2(
    (point.x * 0.5) + 0.5,
    (-point.y * 0.5) + 0.5
    );
    }

    var updateEvent = script.createEvent("UpdateEvent");
    updateEvent.bind(onUpdate);
    Comment actions Permalink

We're here to help! We just need a little bit of information...

What system are you using?

Have you downloaded the latest version of Lens Studio?

Please download the latest version of Lens Studio. If you still run into this issue, please come back and report it!

Is this issue causing Lens Studio to crash?

What system do you run Lens Studio on?

Version

Graphics

Follow the next steps to help us solve your issue:

  • Copy and paste this text into your TerminalCommand Window
    open ~/Library/Preferences/Snap/Lens\ Studio/ %LOCALAPPDATA%\Snap\Lens Studio Copy Text
  • Press ReturnEnter to run the command. The Lens Studio folder will automatically open
  • Prepare to upload your files: zip the "Log" Folder by right-clicking and choosing "compress."
    Locate the Log.txt file right above it.

    Attach a screenshot of the issue:

Name:

Email:

What is this most relevant to?

Please enter a brief description of your issue:

Thanks for submitting this issue.

Unfortunately, it's likely due to the operating system or hardware you're using – since they don't meet the system requirements for Lens Studio.

Still, we hear you loud and clear, and are logging the issue in case there's ever a workaround we can provide!

Minimum Requirements

Operating System: Windows 10 (64 bit); MacOS 10.11+

Hardware: Minimum of Intel Core i3 2.5Ghz or AMD Phenom II 2.6Ghz with 4 GB RAM; Intel HD Graphics 4000 / Nvidia GeForce 710 / AMD Radeon HD 6450 or better; screen resolution of 1280x768 or higher

We'll try to resolve this issue as soon as possible. Thanks for letting us know about it!

Keep an eye out for a followup email from us. We may have a couple more questions for you, or we might already have a solution to offer.

Happy creating!