MapLink Pro .
Envitia MapLink Pro: The Ultimate Mapping Application Toolkit
Loading...
Searching...
No Matches
TSL3DSensor Class Reference
Inheritance diagram for TSL3DSensor:

Detailed Description

3D sensor specific access methods.

A 3D sensor represents a volume of space that is within a given radius from a point in 3D space. The azimuth and elevation angles are used to limit this volume to certain creation directions.

This class represents the access methods that are specific to a 3D sensor. They also allow setting of the various attributes.

Deprecated
Deprecated as of MapLink 11.1. Advised to use MapLink Earth SDK instead.

Public Member Functions

const TSL3DCoordcentre () const
void centre (const TSL3DCoord &coord)
bool ENURotation () const
void ENURotation (bool newValue)
bool isPointInVolume (const TSLCoord &point) const
bool isPointInVolume (const TSL3DCoord &point) const
double maximumAzimuth () const
void maximumAzimuth (double newValue)
double maximumElevation () const
void maximumElevation (double newValue)
double minimumAzimuth () const
void minimumAzimuth (double newValue)
double minimumElevation () const
void minimumElevation (double newValue)
double radius () const
void radius (double newRadius)
double xRotation () const
void xRotation (double newRotation)
double yRotation () const
void yRotation (double newRotation)
double zRotation () const
void zRotation (double newRotation)
Public Member Functions inherited from TSL3DEntity
TSL3DBoundingBox boundingBox (int surfaceID=-1) const
void boundingBox (TSL3DCoord &bottomLeft, TSL3DCoord &topRight, int surfaceID=-1) const
TSL3DCoord centroid () const
TSL3DEntityclone () const
double distance (const TSL3DCoord &point, bool useRenderedExtent=true, int drawingSurfaceID=-1) const
bool equals (const TSL3DEntity *other) const
void move (const TSL3DCoord &location, const TSL3DCoord &reference)
TSL3DEntitySetparent ()
const TSL3DEntitySetparent () const
void scale (double scaleParam, const TSL3DCoord *origin=0)
void scale (double scaleX, double scaleY, double scaleZ, const TSL3DCoord *origin=0)
double squareDistance (const TSL3DCoord &point, bool useRenderedExtent=true, int drawingSurfaceID=-1) const
void translate (double latitudeOffset, double longitudeOffset, double altitudeOffset)
Public Member Functions inherited from TSLEntityBase
bool addDataSet ()
bool addDataSet (TSLDataHandler *toUseDataHandler)
bool clearRenderingAttributes ()
TSLDataSetdataSet ()
const TSLDataSetdataSet () const
short dataSourceID () const
void dataSourceID (short dataSourceID)
bool deleteDataSet ()
void destroy ()
TSLEntityID entityID () const
void entityID (TSLEntityID value)
TSLFeatureID featureID () const
void featureID (TSLFeatureID newValue)
bool getRendering (TSLRenderingAttributeInt attribute, int *result) const
bool getRendering (TSLRenderingAttributeDouble attribute, double *result) const
bool getRendering (TSLRenderingAttributeBool attribute, bool *result) const
bool getRendering (TSLRenderingAttributes &result) const
TSL3DEntityis3DEntity ()
const TSL3DEntityis3DEntity () const
TSLEntityisEntity ()
const TSLEntityisEntity () const
bool isOptimisedEntity () const
void name (const char *newValue)
const char * name () const
void releaseResources (int surfaceID)
bool setRendering (TSLRenderingAttributeInt attribute, int value)
bool setRendering (TSLRenderingAttributeDouble attribute, double value)
bool setRendering (TSLRenderingAttributeBool attribute, bool value)
bool setRendering (const TSLRenderingAttributes &attributes)
void sourceID (int value)
int sourceID () const
TSLGeometryType type () const
void version (TSLVersion value)
TSLVersion version () const

Static Public Member Functions

static TSL3DSensorcreate (TSLFeatureID featureID, const TSL3DCoord &coord, double radius, double minAzimuth, double maxAzimuth, double minElevation, double maxElevation, bool ENURotation=true, double rotationX=0.0, double rotationY=0.0, double rotationZ=0.0)
static TSL3DSensoris3DSensor (TSL3DEntity *entity)
static const TSL3DSensoris3DSensor (const TSL3DEntity *entity)

Additional Inherited Members

Protected Member Functions inherited from TSLEntityBase
 ~TSLEntityBase ()

Member Function Documentation

◆ centre() [1/2]

const TSL3DCoord & TSL3DSensor::centre ( ) const

Returns the 3D sensor's coord.

◆ centre() [2/2]

void TSL3DSensor::centre ( const TSL3DCoord & coord)

Sets the 3D sensor's coord.

The sensor will be drawn with its reference point at the specified position.

Parameters
coordcoord value to set

◆ create()

TSL3DSensor * TSL3DSensor::create ( TSLFeatureID featureID,
const TSL3DCoord & coord,
double radius,
double minAzimuth,
double maxAzimuth,
double minElevation,
double maxElevation,
bool ENURotation = true,
double rotationX = 0.0,
double rotationY = 0.0,
double rotationZ = 0.0 )
static

Static method for the creation of new TSL3DSensor.

This call should only be used for temporary entities. For example, this call may be used to create entities that are used in the spatial tests.

Parameters
featureIDID of the feature code to assign to the entity. This is used when rendering map features if no specific attribute set has been created for the entity.
coordCoordinate at which to place the 3d sensor
radiusRadius of the sensor in metres, this is dependent on the ENURotation flag
minAzimuthMinimum sweep angle in the unrotated z-axis, specified in radians where +ve is the same as the +ve z-axis; this is dependent on the ENURotation flag
maxAzimuthMaximum sweep angle in the unrotated z-axis, specified in radians where +ve is the same as the +ve z-axis; this is dependent on the ENURotation flag
minElevationMinimum sweep angle in the unrotated y-axis, specified in radians where +ve is the same as the +ve y-axis; this is dependent on the ENURotation flag
maxElevationMaximum sweep angle in the unrotated y-axis, specified in radians where +ve is the same as the +ve y-axis; this is dependent on the ENURotation flag
ENURotationSet whether to use geocentric coordinate space for the rotations of the sensor or Easting, Northing and Up from the sensor's coord tangentally on the earth. With this flag set to false, the sensor is created down the x-axis, rotated and then translated; set to true and the sensor is created down the easting axis, rotated and translated. This value also determines how the azimuth and elevation angles are interpreted; set to false then the azimuth and elevation sweep in the unrotated z and y axes respectively, set to true then they sweep in the unrotated Up and Northing axes respectively.
rotationXRotation about the x-axis, anti-clockwise being +ve, in radians; this is dependent on the ENURotation flag
rotationYRotation about the y-axis, anti-clockwise being +ve, in radians; this is dependent on the ENURotation flag
rotationZRotation about the z-axis, anti-clockwise being +ve, in radians; this is dependent on the ENURotation flag
Returns
NULL on error.

◆ ENURotation() [1/2]

bool TSL3DSensor::ENURotation ( ) const

Returns whether ENU rotation is used. ENU, standing for East, North and Up, determines how the rotation angles are interpreted.

If the ENURotation flag is set to true, then rotations are applied to the sensor once it has been translated so that its plane is tangental to the earth's surface. In this case the x-axis is in the east direction, the y-axis is in the north direction and the z-axis is up, or the vector from the centre of the earth to the center point of the ellipse.

If the ENURotation flag is set to false, then rotations are applied to the sensor in geocentric coordinate space. In this case the x-axis is the vector from the centre of the earth towards the geodetic location 0 degrees latitude and 0 degrees longitude, the y-axis is the vector from the centre of the earth towards the geodetic location 0 degrees latitude and 90 degrees longitude and the z-axis is the vector from the centre of the earth towards the north pole.

This value also determines how the azimuth and elevation angles are interpreted; set to false then the azimuth and elevation sweep in the unrotated z and y axes respectively, set to true then they sweep in the unrotated Up and Northing axes respectively.

◆ ENURotation() [2/2]

void TSL3DSensor::ENURotation ( bool newValue)

Sets whether ENU rotation is used. ENU, standing for East, North and Up, determines how the rotation angles are interpreted.

If the ENURotation flag is set to true, then rotations are applied to the sensor once it has been translated so that its plane is tangental to the earth's surface. In this case the x-axis is in the east direction, the y-axis is in the north direction and the z-axis is up, or the vector from the centre of the earth to the center point of the sensor.

If the ENURotation flag is set to false, then rotations are applied to the sensor in geocentric coordinate space. In this case the x-axis is the vector from the centre of the earth towards the geodetic location 0 degrees latitude and 0 degrees longitude, the y-axis is the vector from the centre of the earth towards the geodetic location 0 degrees latitude and 90 degrees longitude and the z-axis is the vector from the centre of the earth towards the north pole.

This value also determines how the azimuth and elevation angles are interpreted; set to false then the azimuth and elevation sweep in the unrotated z and y axes respectively, set to true then they sweep in the unrotated Up and Northing axes respectively.

Parameters
newValueThe new value for the ENURotation flag.

◆ is3DSensor() [1/2]

const TSL3DSensor * TSL3DSensor::is3DSensor ( const TSL3DEntity * entity)
static

Query whether the entity is a 3d ellipse.

If this entity is a 3D ellipse, returns an accessor, otherwise returns NULL.

Parameters
entitythe entity to query.

◆ is3DSensor() [2/2]

TSL3DSensor * TSL3DSensor::is3DSensor ( TSL3DEntity * entity)
static

Query whether the entity is a 3d sensor.

If this entity is a 3D sensor, returns an accessor, otherwise returns NULL.

Parameters
entitythe entity to query.

◆ isPointInVolume() [1/2]

bool TSL3DSensor::isPointInVolume ( const TSL3DCoord & point) const

This method checks to see if the specified point is contained within the sensor volume.

This method takes a TSLCoord where the altitude is assumed to be 0 (Sea Level). The position is in TMCs.

The tests performed are as follows:

Check to see if point is the center point - if yes return true. Check to see if the point fits within the bounding sphere. If not return false. Check to see of the point fits in the elevation and azimuth angles. If it does return true, if not return false.

This does mean that if the point is on the boundary of the elevation and azimuth angles false is returned.

Argument Description:

point : A 3D position to check containment of.

Returns true if the point is in the sensor volume, false otherwise.

◆ isPointInVolume() [2/2]

bool TSL3DSensor::isPointInVolume ( const TSLCoord & point) const

This method checks to see if the specified point is contained within the sensor volume.

This method takes a TSLCoord where the altitude is assumed to be 0 (Sea Level). The position is in TMCs.

The tests performed are as follows:

Check to see if point is the center point - if yes return true. Check to see if the point fits within the bounding sphere. If not return false. Check to see of the point fits in the elevation and azimuth angles. If it does return true, if not return false.

This does mean that if the point is on the boundary of the elevation and azimuth angles false is returned.

Argument Description:

point: A 2D position represented in TMC to check containment of.

Returns true if the point is in the sensor volume, false otherwise.

◆ maximumAzimuth() [1/2]

double TSL3DSensor::maximumAzimuth ( ) const

Retrieves the maximum azimuth angle in radians. This defines the maximum sweep angle in the unrotated z-axis. If the ENURotation flag is set to true, then this value is the sweep in the unrotated Up axis.

◆ maximumAzimuth() [2/2]

void TSL3DSensor::maximumAzimuth ( double newValue)

Sets the maximum azimuth angle in radians. This defines the maximum sweep angle in the unrotated z-axis. If the ENURotation flag is set to true, then this value is the sweep in the unrotated Up axis.

◆ maximumElevation() [1/2]

double TSL3DSensor::maximumElevation ( ) const

Retrieves the maximum elevation angle in radians. This defines the maximum sweep angle in the unrotated y-axis. If the ENURotation flag is set to true, then this value is the sweep in the unrotated Northing axis.

◆ maximumElevation() [2/2]

void TSL3DSensor::maximumElevation ( double newValue)

Sets the maximum elevation angle in radians. This defines the maximum sweep angle in the unrotated y-axis. If the ENURotation flag is set to true, then this value is the sweep in the unrotated Northing axis.

◆ minimumAzimuth() [1/2]

double TSL3DSensor::minimumAzimuth ( ) const

Retrieves the minimum azimuth angle in radians. This defines the minimum sweep angle in the unrotated z-axis. If the ENURotation flag is set to true, then this value is the sweep in the unrotated Up axis.

◆ minimumAzimuth() [2/2]

void TSL3DSensor::minimumAzimuth ( double newValue)

Sets the minimum azimuth angle in radians. This defines the minimum sweep angle in the unrotated z-axis. If the ENURotation flag is set to true, then this value is the sweep in the unrotated Up axis.

◆ minimumElevation() [1/2]

double TSL3DSensor::minimumElevation ( ) const

Retrieves the minimum elevation angle in radians. This defines the minimum sweep angle in the unrotated y-axis. If the ENURotation flag is set to true, then this value is the sweep in the unrotated Northing axis.

◆ minimumElevation() [2/2]

void TSL3DSensor::minimumElevation ( double newValue)

Sets the minimum elevation angle in radians. This defines the minimum sweep angle in the unrotated y-axis. If the ENURotation flag is set to true, then this value is the sweep in the unrotated Northing axis.

◆ radius() [1/2]

double TSL3DSensor::radius ( ) const

Returns the 3D Sensor's radius.

◆ radius() [2/2]

void TSL3DSensor::radius ( double newRadius)

Sets the 3D Sensor's radius.

Parameters
newRadiusThe new sensor radius in metres

◆ xRotation() [1/2]

double TSL3DSensor::xRotation ( ) const

Returns the 3D Sensor's rotation about the x-axis, anti-clockwise being +ve, in radians. If the ENURotation flag is set to true, then this value is about the Easting axis.

◆ xRotation() [2/2]

void TSL3DSensor::xRotation ( double newRotation)

Sets the 3D Sensor's rotation about the x-axis, anti-clockwise being +ve, in radians. If the ENURotation flag is set to true, then this value is about the Easting axis.

Parameters
newRotationThe new rotation value.

◆ yRotation() [1/2]

double TSL3DSensor::yRotation ( ) const

Returns the 3D Sensor's rotation about the y-axis, anti-clockwise being +ve, in radians. If the ENURotation flag is set to true, then this value is about the Northing axis.

◆ yRotation() [2/2]

void TSL3DSensor::yRotation ( double newRotation)

Sets the 3D Sensor's rotation about the y-axis, anti-clockwise being +ve, in radians. If the ENURotation flag is set to true, then this value is about the Northing axis.

Parameters
newRotationThe new rotation value.

◆ zRotation() [1/2]

double TSL3DSensor::zRotation ( ) const

Returns the 3D Sensor's rotation about the z-axis, anti-clockwise being +ve, in radians. If the ENURotation flag is set to true, then this value is about the Up axis.

◆ zRotation() [2/2]

void TSL3DSensor::zRotation ( double newRotation)

Sets the 3D Sensor's rotation about the z-axis, anti-clockwise being +ve, in radians. If the ENURotation flag is set to true, then this value is about the Up axis.

Parameters
newRotationThe new rotation value.