Main Content


Manage surfaces in tracking scenario

Since R2022a


The SurfaceManager object manages the surfaces in the tracking scenario. Use the UseOcculusion property to enable or disable terrain occlusion by ground surfaces in the tracking scenario, use the height object function to query the height of ground surfaces at a location in the scenario, and use the occlusion function to determine if the surfaces in the scenario occlude the line-of-sight between two points.


After creating GroundSurface objects using the groundSurface object function, obtain the SurfaceManager object from the SurfaceManager property of the trackingScenario object.


expand all

Enable line-of-sight occlusion by surfaces, specified as a logical 1 (true) or 0 (false).

When specified as:

  • 1 (true) — The scenario models the occlusion of the line-of-sight caused by surfaces between points. In this case, the detect object function of the trackingScenario object or the detect object function of the Platform object accounts for surface occlusion.


    If the IsEarthCentered property of the trackingScenario object is specified true, selecting this option also enables horizon occlusion based on the WGS84 Earth model.

  • 0 (false) — The scenario does not model the occlusion of the line-of-sight caused by ground surfaces or the WGS84 Earth model.

Surfaces in the tracking scenario, specified as an array of GroundSurface objects. You can add surfaces to a tracking scenario using the groundSurface object function.

Object Functions

heightHeight of surfaces in tracking scenario
occlusionDetermine occlusion status by surfaces
surfacePlotterDataGet data for surface plotter


collapse all

Create a tracking scenario.

scene = trackingScenario;

Create two ground surface terrains, each with a specified boundary.

terrain1 = randi(10,3,3)
terrain1 = 3×3

     9    10     3
    10     7     6
     2     1    10

terrain2 = randi(10,3,3)
terrain2 = 3×3

    10    10     2
     2     5     5
    10     9    10

boundary1 = [0 100;
             0 100-eps];
boundary2 = [0 100;
             100 200];

Add the two ground surfaces to the tracking scenario.


Obtain the surface manager object, saved in the SurfaceManager property of the tracking scenario.

manager = scene.SurfaceManager
manager = 
  SurfaceManager with properties:

    UseOcclusion: 1
        Surfaces: [1x2 fusion.scenario.GroundSurface]

Set the UseOcclusion property to false to disable terrain occlusion.

manager.UseOcclusion = false
manager = 
  SurfaceManager with properties:

    UseOcclusion: 0
        Surfaces: [1x2 fusion.scenario.GroundSurface]

Version History

Introduced in R2022a