sim3d.sensors.RaytraceSensor
Description
Use the sim3d.sensors.RaytraceSensor
object to implement ray tracing in the
scene. You can configure the ray origins, directions, and lengths to adjust the ray trace
sensor pattern for your scene and test scenario. After you create a
sim3d.sensors.RaytraceSensor
object, you can modify aspects of the actor object by setting
property values.
Creation
Syntax
Description
creates a default raytraceSensor
= sim3d.sensors.RaytraceSensor()sim3d.sensors.RaytraceSensor
object in the 3D environment.
specifies options using one or more optional name-value arguments. For example, to create
a ray trace sensor with number of bounces per ray as 3, set
raytraceSensor
= sim3d.sensors.RaytraceSensor(Name=Value
)NumberOfBounces
to 3
.
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Example: raytraceSensor =
sim3d.sensors.RaytraceSensor(ActorName='RaytraceSensor',NumberOfBounces=3)
Name of actor, specified as a character array or string. If you do not specify an actor name,
then the software assigns the actor an autogenerated name. Use
this argument to set the name of the
sim3d.sensors.RaytraceSensor
object.
Note
If you specify the same name as an actor that already exists, then the software appends actor name you specify with a unique identifier.
Since R2025a
Coordinate system that the actor uses for translation and rotation in the 3D environment, specified as one of these listed values:
'Default'
– World coordinate system'MATLAB'
– MATLAB® coordinate system'ISO8855'
– ISO 8855 standard coordinate system'AERO'
– SAE coordinate system'VRML'
– X3D ISO standard coordinate system'SAE'
– SAE coordinate system
For more details on the different coordinate systems, see Coordinate Systems in Simulink 3D Animation.
Data Types: string
Relative translation
(x,y,z) of the actor object to its
parent actor, specified as a real 1-by-3 vector. Use Translation
to change
the position of the sim3d.sensors.RaytraceSensor
object in the 3D environment along the
X, Y, and Z axes of the
coordinate system. When you add an actor to the 3D environment, the default parent actor is the
Scene Origin
at (0,0,0)
.
Example: Translation=[1 2 1]
Relative rotation (roll,
pitch, yaw) of the actor object to its parent actor,
specified as a real 1-by-3 vector. Use Rotation
to rotate the
sim3d.sensors.RaytraceSensor
object in the 3D environment.
Example: Rotation=[pi/4 pi/8 pi/2]
Ray origin relative to sensor location, specified as a real-valued N-by-3 array of the form [X, Y, Z], in meters. N is the number of rays. If you mount the sensor to an actor by setting Parent
to the name of that actor, then X, Y, and Z are in the world coordinate system, where:
The X-axis points forward and away from the viewer.
The Y-axis points to the right.
The Z-axis points up.
Example: RayOrigins=zeros(10,3)
Normalized ray direction relative to sensor location, specified as a real-valued N-by-3 array of the form [X, Y, Z]. N is the number of rays. The units are dimensionless. If you mount the sensor to an actor by setting Parent
to the name of that actor, then X, Y, and Z are in the world coordinate system, where:
The X-axis points forward and away from the viewer.
The Y-axis points to the right.
The Z-axis points up.
Example: RayDirections=ones(10,3)
Maximum total ray length of a multi-bounce trace path, specified as a real-valued N-by-1 vector, in meters. N is the number of rays.
Example: RayLengths=ones(10,1)*10
Number of bounces per ray that a trace may have before terminating, B, specified as a positive integer.
Example: NumberOfBounces=0
Option to visualize trace lines, specified as 0
(false
) if the trace line visualization is not enabled or
1
(true
) if it is enabled.
Example: VisualizeTraceLines=1
Option to enable optimization, specified as 0
(false
) if the optimization is not enabled or
1
(true
) if it is enabled. Enabling this
argument allows the object to perform concurrent traces. Enable this argument when
the number of traces is large and your machine has multiple cores.
Example: EnableOptimization=1
Output Arguments
Actor object, returned as a sim3d.sensors.RaytraceSensor
object.
Properties
Parent of actor, specified as a handle to the parent actor
object. After you add an actor to the sim3d.World
object, the default parent
actor is the Scene Origin
at (0,0,0)
. Use
Parent
to set any actor in the 3D environment as the parent actor of a
sim3d.sensors.RaytraceSensor
object.
This property is read-only.
Children of actor, specified as a structure.
Each field of the structure contains a handle to
the child of a sim3d.sensors.RaytraceSensor
object.
Parent world, specified as a handle to the parent sim3d.World
object. You can use this property only if the sim3d.sensors.RaytraceSensor
object is
added to the parent sim3d.World
object.
This property is read-only.
Unique ID of the sensor, specified as a real positive scalar.
Data Types: uint32
Since R2025a
Coordinate system that the actor uses for translation and rotation in the 3D environment, specified as one of these listed values:
'Default'
– World coordinate system'MATLAB'
– MATLAB coordinate system'ISO8855'
– ISO 8855 standard coordinate system'AERO'
– SAE coordinate system'VRML'
– X3D ISO standard coordinate system'SAE'
– SAE coordinate system
For more details on the different coordinate systems, see Coordinate Systems in Simulink 3D Animation.
Data Types: string
Relative translation
(x,y,z) of the actor object to its
parent actor, specified as a real 1-by-3 vector. Use Translation
to change
the position of the sim3d.sensors.RaytraceSensor
object in the 3D environment along the
X, Y, and Z axes of the
coordinate system. When you add an actor to the 3D environment, the default parent actor is the
Scene Origin
at (0,0,0)
.
Example: raytraceSensor.Translation = [1 2 1]
Relative rotation (roll,
pitch, yaw) of the actor object to its parent actor,
specified as a real 1-by-3 vector. Use Rotation
to rotate the
sim3d.sensors.RaytraceSensor
object in the 3D environment.
Example: raytraceSensor.Rotation = [pi/4 pi/8 pi/2]
Type of actor mobility to respond to physics, move the actor
during simulation, or both, specified as 'sim3d.utils.MobilityTypes.Movable'
or 'sim3d.utils.MobilityTypes.Static'
. When Mobility
is
'sim3d.utils.MobilityTypes.Static'
, only the Material Attributes are run-time configurable.
When you set Mobility
to
'sim3d.utils.MobilityTypes.Movable'
, all the actor properties become
run-time configurable, allowing for programmatic interaction. For more details on programmatic
interaction, see Programmatic Interaction.
Example: raytraceSensor.Mobility =
sim3d.utils.MobilityTypes.Movable
Data Types: sim3d.utils.MobilityTypes
Ray origin relative to sensor location, specified as a real-valued N-by-3 array of the form [X, Y, Z], in meters. N is the number of rays. If you mount the sensor to an actor by setting Parent
to the name of that actor, then X, Y, and Z are in the world coordinate system, where:
The X-axis points forward and away from the viewer.
The Y-axis points to the right.
The Z-axis points up.
Example: raytraceSensor.RayOrigins = zeros(10,3)
Normalized ray direction relative to sensor location, specified as a real-valued N-by-3 array of the form [X, Y, Z]. N is the number of rays. The units are dimensionless. If you mount the sensor to an actor by setting Parent
to the name of that actor, then X, Y, and Z are in the world coordinate system, where:
The X-axis points forward and away from the viewer.
The Y-axis points to the right.
The Z-axis points up.
Example: raytraceSensor.RayDirections = ones(10,3)
Maximum total ray length of a multi-bounce trace path, specified as a real-valued N-by-1 vector, in meters. N is the number of rays.
Example: raytraceSensor.RayLengths = ones(10,1)*10
Number of bounces per ray that a trace may have before terminating, B, specified as a positive integer.
Example: raytraceSensor.NumberOfBounces = 0
Option to visualize trace lines, specified as 0
(false
) if the trace line visualization is not enabled or
1
(true
) if it is enabled.
Example: raytraceSensor.VisualizeTraceLines = 1
Object Functions
read | Return target data using ray tracing |
Examples
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
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
Version History
Introduced in R2024bSet the CoordinateSystem
argument and
property of the sim3d.sensors.RaytraceSensor
object to represent the coordinate system for actor
transformation in the 3D environment.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: United States.
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)