Main Content

read

Return target data using ray tracing

Since R2024b

    Description

    [surfaceIds,hitDistances,hitLocations,hitNormals,validHits] = read(raytraceSensor) returns data about the target detected using the ray trace sensor specified by raytraceSensor in the 3D environment.

    example

    Examples

    collapse all

    Since R2025a

    Create a raytrace sensor in the 3D environment using the sim3d.sensors.RaytraceSensor object. You can adjust the ray trace sensor pattern for your scene and test scenario. Use the read function to extract target data from the 3D environment.

    Create a 3D environment and set up communication with the Unreal Engine simulation environment using the output function OutputImpl and the update function UpdateImpl. The sim3d.World object can send and receive data about the 3D environment to and from the Unreal Engine at each simulation step using output and update functions, respectively. Before the Unreal Engine simulates, MATLAB calls the output function and sends data to the Unreal Engine. Then, the Unreal Engine executes at each time step and sends data to MATLAB in the update function. You can use the update function to read this data or change values after each simulation step.

    world = sim3d.World(Output=@OutputImpl,Update=@UpdateImpl);

    Create a box actor in the 3D environment using the sim3d.Actor object and add the box to the world.

    cube = sim3d.Actor( ...
            ActorName="Cube", ...
            Mobility=sim3d.utils.MobilityTypes.Movable);
    createShape(cube,"box");
    add(world,cube);

    Create a grid of coordinates using the meshgrid function. Use the two 2D grids, Y and Z to generate directions. The directions matrix specifies the direction for each ray.

    ys = linspace(-0.1,0.1,4);
    zs = linspace(-0.1,0.1,4);
    [Y,Z] = meshgrid(ys,zs);
    directions = [ones(16, 1) Y(:) Z(:)];

    Create a raytrace sensor object using the sim3d.sensors.RaytraceSensor object and set the location of the sensor. Add the sensor to the world.

    raytracesensor = sim3d.sensors.RaytraceSensor( ...
            ActorName="Raytracer", ...
            RayOrigins = zeros(16, 3), ...
            RayDirections = directions, ...
            RayLengths = 1000 .* ones(16, 1), ...
            VisualizeTraceLines = true);
    raytracesensor.Translation = [-3 0 0];
    add(world,raytracesensor);

    Set the Simulation 3D Viewer window point of view and run the co-simulation. You can visualize the rays from the sensor in the simulation. The red rays are the rays generated from the sensor, the green rays are the rays reflected from the target, and the blue box displays the area of intersection on the target surface.

    viewport = createViewport(world);
    viewport.Translation=[-4 2 0];
    viewport.Rotation=[0 0 -0.2*pi];
    sampletime = 0.5;
    stoptime = 10;
    run(world,sampletime,stoptime);
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 1
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    Valid Hits: 0
    

    A cube actor in the 3D environment with raytrace sensor firing rays on the cube.

    Output Function

    The output function sends data about the actor to the Unreal Engine environment at each simulation step. For this example, the function rotates the Cube about its Z-axis by updating the Rotation property of the Cube at each simulation step.

    function OutputImpl(world)
        world.Actors.Cube.Rotation(3) = world.Actors.Cube.Rotation(3) ...
        + 0.01; 
    end

    Update Function

    The update function reads data from the Unreal Engine environment at each simulation step. For this example, the update function uses the read function of the sim3d.sensors.RaytraceSensor object to detect valid hits from the raytrace sensor in the Unreal Engine environment.

    function UpdateImpl(world)
        [~,~,~,~,validHits] = read(world.Actors.Raytracer);
        fprintf("Valid Hits: %d\n", validHits);
    end

    Input Arguments

    collapse all

    Virtual ray trace sensor that detects target in the 3D environment, specified as a sim3d.sensors.RaytraceSensor object.

    Example: raytraceSensor = sim3d.sensors.RaytraceSensor

    Output Arguments

    collapse all

    Object identifiers of the surfaces hit by the ray, returned as an integer-valued N(B+1)-by-1 vector. N is the number of rays. B is the number of bounces per ray.

    Data Types: uint8

    Ray distance to hit location, returned as a real-valued N(B+1)-by-1 vector, in meters. N is the number of rays. B is the number of bounces per ray.

    Data Types: double

    Hit locations, returned as a real-valued N(B+1)-by-3 array of the form [X, Y, Z], in meters. N is the number of rays. B is the number of bounces per ray.

    Data Types: double

    Ray normal to the hit location, returned as a real-valued N(B+1)-by-3 array of the form [X, Y, Z], in meters. N is the number of rays. B is the number of bounces per ray.

    Data Types: double

    Hit flag, returned as an N-by-1 logical vector. N is the number of rays. A value of 1 indicates the ray hit a surface.

    Data Types: Logical

    Version History

    Introduced in R2024b