IGround

Package: inet.environment.contract

module interface IGround

Module interface for ground models that define the terrain in physical environment simulations. Provides methods to compute ground projections and normals for any position, which is necessary for accurate modeling of signal propagation and mobility over terrain. Implementations range from simple flat surfaces to terrain models based on real-world elevation data.

Usage diagram

Inheritance diagram

Implemented by

Name

Type

Description

FlatGround

compound module

Models a flat ground surface with a configurable elevation. Provides methods to compute the ground projection of a 3D position by setting its z-coordinate to the elevation value, and to compute the ground normal which is always pointing upward (0,0,1) for a flat surface.

OsgEarthGround

compound module

Models a ground surface using OsgEarth’s elevation data. Provides methods to compute ground projections and normals based on real-world terrain information. Requires OsgEarth integration to be enabled during compilation and depends on a SceneOsgEarthVisualizer for accessing the map and a coordinate system for geographic conversions.

Used in compound modules

Name

Type

Description

PhysicalEnvironment

compound module

The propagation of communication signals, the movement of communicating agents, or battery exhaustion depends on the surrounding physical environment. For example, signals can be absorbed by objects, can pass through objects, can be refracted by surfaces, can be reflected from surfaces, etc.

Properties

Name

Value

Description

display

i=block/table

Source code

//
// Module interface for ground models that define the terrain in physical
// environment simulations. Provides methods to compute ground projections and
// normals for any position, which is necessary for accurate modeling of signal
// propagation and mobility over terrain. Implementations range from simple flat
// surfaces to terrain models based on real-world elevation data.
//
moduleinterface IGround
{
    parameters:
        @display("i=block/table");
}

File: src/inet/environment/contract/IGround.ned