主要内容

addPolygonMaterial

Apply material to polygon shaped region

Since R2026a

    Description

    polygonMaterial = addPolygonMaterial(scn,bounds,materialReference) creates a closed polygon region defined by a set of XYZ- coordinates and applies the specified material to the region enclosed by the polygon.

    example

    polygonMaterial = addPolygonMaterial(scn,bounds,materialReference,Name=Value) creates a closed polygon region defined by a set of XYZ- coordinates and applies the specified material to the region enclosed by the polygon using the specified name-value arguments.

    Examples

    collapse all

    Use the addPolygonMaterial function to create an enclosed polygon region and apply a surface material using the Material object on a single lane.

    Create a roadrunner object, specifying the path to an existing project. For example, this code shows the path to a project, on a Windows® machine, located at "C:\RR\MyProject". This code assumes that RoadRunner is installed in the default location, and returns an object, rrApp, that provides functions for performing basic tasks such as opening, closing, and saving scenes and projects.

    rrApp = roadrunner(ProjectFolder="C:\RR\MyProject");

    Note: If you are opening RoadRunner from MATLAB® for the first time, or if you have changed the RoadRunner installation location since you last opened it from MATLAB®, you can use the roadrunnerSetup (RoadRunner) function to specify new default project and installation folders to use when opening RoadRunner. You can save these folders between MATLAB sessions by selecting the Across MATLAB sessions option from the corresponding drop down.

    Create a new RoadRunner scene in the current project by using the newScene function, specifying the roadrunner object rrApp.

    newScene(rrApp);

    Create an object for the RoadRunner authoring API, rrApi, that references the object for the current RoadRunner instance rrApp. The rrApi object enables you to programmatically author scenes, such as by adding and modifying road and lanes components, using MATLAB.

    rrApi = roadrunnerAPI(rrApp);

    Extract the object for your scene from the Scene property of the authoring API object rrApi. The extracted Scene object enables you to specify the scene in which to add scene elements such as roads and lanes.

    scn = rrApi.Scene;

    Add a horizontal line-arc curve road 100 meters in length to the scene by using the addLineArcRoad function. Specify the positions of the road by specifying the positions of its control points along the X- and Y- axes of the RoadRunner local coordinate system. These control points define the positions of the start and end of the road. You can modify the positions of the control points to adjust the length and direction of the road relative to the scene origin. You can also add control points in between the start and end points of the line-arc curve to adjust the curvature and radius of the road curve.

    controlPoints = [-50 0; 50 0];
    rrHorizontalRoad = addLineArcRoad(scn,controlPoints);

    Extract the reference lane of the road from the ReferenceLane property of the road object rrHorizontalRoad. The reference lane defines the center lane, or reference line, of a road in a RoadRunner scene. This lane has no width and serves as the basis for positioning all other lanes, which RoadRunner arranges outward from the reference line.

    refLane = rrHorizontalRoad.ReferenceLane;

    Use the extracted refLane object to add lanes on either side of the reference lane of the road using the addLaneToLeft and addLaneToRight functions. Then, use the LaneType and TravelDirection properties of the added lanes to specify the type and travel direction, respectively, of each lane. First, add a driving lane to the left of the horizontal road with a forward travel direction.

    horizontalLane1 = addLaneToLeft(refLane);
    horizontalLane1.LaneType = "driving";
    horizontalLane1.TravelDirection = "forward";

    Then, add another driving lane to the right of the horizontal road with a backward travel direction.

    horizontalLane2 = addLaneToRight(refLane);
    horizontalLane2.LaneType = "driving";
    horizontalLane2.TravelDirection = "backward";

    Use the getAsset function to extract a Material object, dirtMaterial, that represents the Dirt2.rrmtl asset in the project prj.

    dirtMaterial = getAsset(prj,"Materials/Dirt2.rrmtl","Material");
    

    Create an enclosed polygon region on the lane horizontalLane2 by specifying the XYZ- coordinates of the polygon. Use the addPolygonMaterial function to apply the material on the newly created polygon.

    bounds = [
        -3.5  10  0
         0.0  10  0
         0.0  0.0 0
        -3.5  0.0 0
    ];
    polygonMaterial = addPolygonMaterial(scn,bounds,dirtMaterial); 
    

    Use the addPolygonMaterial function to create an enclosed polygon region and apply a material using the Material object on multiple lanes.

    Create a roadrunner object, specifying the path to an existing project. For example, this code shows the path to a project, on a Windows® machine, located at "C:\RR\MyProject". This code assumes that RoadRunner is installed in the default location, and returns an object, rrApp, that provides functions for performing basic tasks such as opening, closing, and saving scenes and projects.

    rrApp = roadrunner(ProjectFolder="C:\RR\MyProject");

    Note: If you are opening RoadRunner from MATLAB for the first time, or if you have changed the RoadRunner installation location since you last opened it from MATLAB, you can use the roadrunnerSetup (RoadRunner) function to specify new default project and installation folders to use when opening RoadRunner. You can save these folders between RoadRunner sessions by selecting the Across MATLAB sessions option from the corresponding drop down.

    Create a new RoadRunner scene in the current project by using the newScene function, specifying the roadrunner object rrApp.

    newScene(rrApp);

    Create an object for the RoadRunner authoring API, rrApi, that references the object for the current RoadRunner instance rrApp. The rrApi object enables you to programmatically author scenes, such as by adding and modifying road and lanes components, using MATLAB.

    rrApi = roadrunnerAPI(rrApp);

    Extract the object for your scene from the Scene property of the authoring API object rrApi. The extracted Scene object enables you to specify the scene in which to add scene elements such as roads and lanes.

    scn = rrApi.Scene;

    Add a horizontal line-arc curve road 100 meters in length to the scene by using the addLineArcRoad function. Specify the positions of the road by specifying the positions of its control points along the X- and Y-axes of the RoadRunner local coordinate system. These control points define the positions of the start and end of the road. You can modify the positions of the control points to adjust the length and direction of the road relative to the scene origin. You can also add control points in between the start and end points of the line-arc curve to adjust the curvature and radius of the road curve.

    controlPoints = [-50 0; 50 0];
    rrHorizontalRoad = addLineArcRoad(scn,controlPoints);

    Extract the reference lane of the road from the ReferenceLane property of the road object rrHorizontalRoad. The reference lane defines the center lane, or reference line, of a road in a RoadRunner scene. This lane has no width and serves as the basis for positioning all other lanes, which RoadRunner arranges outward from the reference line.

    refLane = rrHorizontalRoad.ReferenceLane;

    Use the extracted refLane object to add lanes on either side of the reference lane of the road using the addLaneToLeft and addLaneToRight functions. Then, use the LaneType and TravelDirection properties of the added lanes to specify the type and travel direction, respectively, of each lane. First, add a driving lane to the left of the horizontal road with a forward travel direction.

    horizontalLane1 = addLaneToLeft(refLane);
    horizontalLane1.LaneType = "driving";
    horizontalLane1.TravelDirection = "forward";

    Then, add another driving lane to the right of the horizontal road with a backward travel direction.

    horizontalLane2 = addLaneToRight(refLane);
    horizontalLane2.LaneType = "driving";
    horizontalLane2.TravelDirection = "backward";

    Use the getAsset function to extract a Material object, dirtMaterial, that represents the Dirt2.rrmtl asset in the project prj.

    dirtMaterial = getAsset(prj,"Materials/Dirt2.rrmtl","Material");
    

    Create an enclosed polygon region on the lane horizontalLane2 by specifying the XYZ- coordinates of the polygon. Use the addPolygonMaterial function to apply the material on the newly created polygon.

    bounds = [
         -3.5  10   0
          3.5  10   0
          3.5  0.0  0
         -3.5  0.0  0
    ];
    ;
    polygonMaterial = addPolygonMaterial(scn,bounds,dirtMaterial); 
    

    Input Arguments

    collapse all

    Scene to which to add the road, specified as a Scene object.

    Coordinates of the polygon boundaries, specified as an N-by-3 numeric matrix. N is the number of control points for the polygon boundary. Each row specifies the XYZ- coordinates of a control point in the RoadRunner local coordinate system. This argument specifies the spatial region where the material is applied.

    Material applied to lane surface, specified as a Material object.

    Name-Value Arguments

    collapse all

    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: addPolygonMaterial(scn,bounds,dirtMaterial,"SortIndex=4") applies the dirt material using the specified bounds with the sort index of the dirt material being 4.

    Layering order for overlapping materials, specified as a numeric scalar. When materials of different types overlap, RoadRunner places the material with the higher sort index at the top, followed by materials having a lower sort index value.

    Data Types: int32

    Output Arguments

    collapse all

    Polygon shaped region to which the material is applied, specified as a PolygonMaterial object.

    More About

    collapse all

    Version History

    Introduced in R2026a