Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>BabylonJS - using pickWithRay to detect collision along line</title>
</head>
  <script src="http://www.babylonjs.com/babylon.js"></script>
  <script>
    var divAlert;
    
    window.onload = function(){
    var canvas = document.getElementById("canvas");
  
    // Check support
    if (!BABYLON.Engine.isSupported()) {
        window.alert('Browser not supported');
    } else {
        // Babylon
        var engine = new BABYLON.Engine(canvas, true);
        //Creation of the scene 
        var scene = new BABYLON.Scene(engine);
    
        //Adding of the light on the scene
        var light = new BABYLON.PointLight("Omni", new BABYLON.Vector3(10, 10, -30), scene);
    
        //Adding of the Arc Rotate Camera
        var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0.8, 100, new BABYLON.Vector3.Zero(), scene);
       
        // MESHES
        //------------
  
    
        //Creation of a sphere 
        var sphere = BABYLON.Mesh.CreateSphere("Sphere", 10.0, 10.0, scene);
       
        //Creation of a plane
        var plan = BABYLON.Mesh.CreatePlane("Plane", 50.0, scene);
        plan.rotation = new BABYLON.Vector3(degToRadians(90), 0, 0);
    
        //Positioning the elements
        sphere.position = new BABYLON.Vector3(0,20,0);
    
        scene.registerBeforeRender(function () {
    
            var rayPick = new BABYLON.Ray(sphere.position, new BABYLON.Vector3(0, -1, 0));
            var meshFound = scene.pickWithRay(rayPick, function (item) {
                if (item.name.indexOf("Plane") == 0)
                    return true;
                else
                    return false;
            });
    
            if (meshFound != null && meshFound.pickedPoint != null) {
              if (!divAlert) { 
                divAlert = document.createElement("div");
                document.body.appendChild(divAlert);
                divAlert.innerText = (meshFound.pickedMesh.name + " hit at " + meshFound.pickedPoint);
              }
            }
        });
        scene.activeCamera.attachControl(canvas);
        // Once the scene is loaded, just register a render loop to render it
        engine.runRenderLoop(function () {
            scene.render();
        });
        // Resize
        window.addEventListener("resize", function () {
            engine.resize();
        });
    } 
};
    
function radiansToDeg(val) {
    var pi = Math.PI;
    var ra_de = (val) * (180 / pi);
    return ra_de;
}
function degToRadians(val) {
    var pi = Math.PI;
    var de_ra = (val) * (pi / 180);
    return de_ra;
}
  </script>
<body>
  
  BabylonJS - using pickWithRay to detect collision along line<br/><br/>
  
  <canvas id="canvas"></canvas>
  
  
</body>
</html>
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
andybeaulieupro
0viewers