sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Model.raytest and Entity visibillity

    Scheduled Pinned Locked Moved Developers' Forum
    28 Posts 6 Posters 1.8k Views 6 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Chris FullmerC Offline
      Chris Fullmer
      last edited by

      I've used a little recursive method to check what I am hitting. If I do not like what I hit, I recall the method supply the Point3d of the last thing I hit. It remakes the ray and casts it again until I hit what I'm after.

      It has worked perfectly so far. But I'm concerned about the rays that don't work if they are shot through the groundplane? Is that still an issue in 8?

      Lately you've been tan, suspicious for the winter.
      All my Plugins I've written

      1 Reply Last reply Reply Quote 0
      • thomthomT Offline
        thomthom
        last edited by

        @chris fullmer said:

        It has worked perfectly so far. But I'm concerned about the rays that don't work if they are shot through the groundplane? Is that still an issue in 8?

        "Still an issue in 8"? Has it been an issue before?
        At it turned out - it's not only when the ray passes through the axis planes - but also at random times. model.raytest is fubar in SU8 - not reliable.

        Thomas Thomassen — SketchUp Monkey & Coding addict
        List of my plugins and link to the CookieWare fund

        1 Reply Last reply Reply Quote 0
        • K Offline
          kwalkerman
          last edited by

          Ok, so here's an issue with the new way raytest works (ie it sees all entities, visible and hidden).

          There are times when a ray will hit multiple entities at the same point. In SU 7, model.raytest will return only one of those entities. It's easy to find all entities by hiding any entities that are hidden, but under the new version of SU, only one of the entities will be found. Another thing, which is interesting, is that if there are multiple entities in the same location, SU will return the same entity first, regardless of the direction of the ray.

          Try this code:

          
          model = Sketchup.active_model
          p1 = Geom;;Point3d.new(0,0,0)
          p2 = Geom;;Point3d.new(20,20,0)
          p3 = Geom;;Point3d.new(0,20,0)
          f = model.entities.add_face(p1,p2,p3)
          model.entities.add_group([f])
          model.entities.add_face(p1,p2,p3)
          p4 = Geom;;Point3d.new(5,10,-5)
          p5 = Geom;;Point3d.new(5,10,5)
          ray1 = [p4, Geom;;Vector3d.new(0,0,1)]
          item1 = model.raytest ray1
          ray2 = [p5, Geom;;Vector3d.new(0,0,-1)]
          item2 = model.raytest ray2
          item1 == item2
          
          #==> returns TRUE!
          
          

          I can't currently think of a ruby workaround for this. The new version of raytest will limit the ability to get all objects at a certain location.

          As I suggested before, I think it makes the most sense to extend the native raytest so that you can specify whether or not you want the ray to be allowed to show hidden objects.

          --
          Karen

          1 Reply Last reply Reply Quote 0
          • Al HartA Offline
            Al Hart
            last edited by

            @kwalkerman said:

            I can't currently think of a ruby workaround for this. The new version of raytest will limit the ability to get all objects at a certain location.

            --
            Karen

            It would be fairly painful, but you could start an undo operation, delete each item as it is found (rather than changing the starting point of the ray, ot just hiding the object) and continue until all objects are found (saving their object IDs), then abort the operation to restore everything to the database.

            Al Hart

            http:wiki.renderplus.comimageseefRender_plus_colored30x30%29.PNG
            IRender nXt from Render Plus

            1 Reply Last reply Reply Quote 0
            • T Offline
              tomasz
              last edited by

              @kwalkerman said:

              As I suggested before, I think it makes the most sense to extend the native raytest so that you can specify whether or not you want the ray to be allowed to show hidden objects.

              I have proposed it TWO years ago.... G Team isn't responsive.

              Author of [Thea Render for SketchUp](http://www.thearender.com/sketchup)

              1 Reply Last reply Reply Quote 0
              • Chris FullmerC Offline
                Chris Fullmer
                last edited by

                Hmm, nevermind. I retract this post, I was confused 😄

                Lately you've been tan, suspicious for the winter.
                All my Plugins I've written

                1 Reply Last reply Reply Quote 0
                • thomthomT Offline
                  thomthom
                  last edited by

                  Right, so the raytest should have an argument to ignore hidden.

                  Thomas Thomassen — SketchUp Monkey & Coding addict
                  List of my plugins and link to the CookieWare fund

                  1 Reply Last reply Reply Quote 0
                  • Al HartA Offline
                    Al Hart
                    last edited by

                    @thomthom said:

                    Right, so the raytest should have an argument to ignore hidden.

                    And, hopefully, they will make it an optional argument, so they don't break all the existing ruby files once again.

                    Al Hart

                    http:wiki.renderplus.comimageseefRender_plus_colored30x30%29.PNG
                    IRender nXt from Render Plus

                    1 Reply Last reply Reply Quote 0
                    • 1
                    • 2
                    • 2 / 2
                    • First post
                      Last post
                    Buy SketchPlus
                    Buy SUbD
                    Buy WrapR
                    Buy eBook
                    Buy Modelur
                    Buy Vertex Tools
                    Buy SketchCuisine
                    Buy FormFonts

                    Advertisement