![]() |
MapLink Pro 11.1.2.0.
Envitia MapLink Pro: The Ultimate Mapping Application Toolkit
|
Classes | |
class | TSL3DCoord |
Typedefs | |
typedef int | TSL3DCoordType |
enum | TSL3DAltitudeType { TSL3DAltitudeTypeMeanSeaLevel = 0 , TSL3DAltitudeTypeHighestResolutionTerrain = 1 , TSL3DAltitudeTypeDynamicTerrain = 2 , TSL3DAltitudeTypeTerrainGroundLevel = 3 } |
enum | TSL3DInterpolation { TSL3DInterpolationNone = 0 , TSL3DInterpolationGrid = 16 , TSL3DInterpolationSpheroidCreation = 1 , TSL3DInterpolationSpheroidDisplay = 2 , TSL3DInterpolationEllipsoidCreation = 4 , TSL3DInterpolationEllipsoidDisplay = 8 } |
typedef int TSL3DCoordType |
Typedef the coordinate type.
Typedef it here so it can be changed at will later.
enum TSL3DAltitudeType |
Enumerated type for determining type of altitude used.
Point with altitude of 500m, has TSL3DAltitudeTypeDynamicTerrain set.
If the height of the terrain is 50m and exaggeration is 2.0 then the MSL height will be = ((50 * 2) + 500)) = 600m
TSL3DAltitudeTypeTerrainGroundLevel means that altitude is ignored altogether. This means that any intermediate points are also at ground level, so, if used for an extruded polyline, the 'skirt' of the polyline touches the terrain between the two points, even if the terrain dips.
Following the extruded polyline example above, TSL3DAltitudeTypeDynamic Terrain with a value of 0.0 means that the skirt of the polyline is drawn at an altitude of 0.0 only at the specified coordinates and so will NOT touch the terrain between the two points if the terrain dips.
enum TSL3DInterpolation |
Enumerated type for determining how points are interpolated by the 3D geometry that supports interpolation.
TSL3DInterpolationNone means no interpolation. Points are joined by straight lines and is thus the fastest display option.
TSL3DInterpolationGrid is the new technique replacing the previous interpolation options.
This technique uses a Stereographic projection to project the points of the object on to a flat plane.
A grid is then overlaid on top of the points. Where the lines cross the grid intersections additional points are added.
The sub-divisions making up the grid are calculated based on the lowest height of the object.
The number of sub-divisions are limited by TSL3DLODConfiguration::m_maximum PolygonLevel and TSL3DLODConfiguration::m_minimumPolygonLevel.
The maximum sensible depth is currently 8 and the minimum is 2.
The maximum size of a polygon is about 40 degrees. Larger polygons will either affect performance or suffer from distortion.
The Coordinate Systems need to have been loaded via: TSLCoordinate System::loadCoordinateSystems().
The following have been deprecated for Polygon and Extruded Polygon types:
TSL3DInterpolationSpheriodCreation/TSL3DInterpolationElliposoidCreation means that the interpolation is done at creation time. All points altitude type should be of type TSL3DAltitudeTypeMeanSeaLevel.
TSL3DInterpolationSpheriodDisplay/TSL3DInterpolationElliposoidDisplay means that the interpolation of the points is done at display time. This is the slowest display option. The altitude type is not limited to TSL3DAltitudeType MeanSeaLevel.
The Spheroid interpolation assumes that the Earth is a sphere. This is less accurate then the Ellipsoid interpolation, but is significantly quicker to calculate.
The Ellipsoid interpolation uses a geodesic WGS84 path.
The interpolation may be invalidated by either changing the type of interpolation or the parameters controlling the interpolation.
Interpolation is done using a Geodesic path (more accurate then a Great Circle path). The interpolation is done at fixed distances across the Earth's surface. Altitude does not affect the distance between the interpolation points.
The points being interpolated between should be less then 180 degrees apart.
The shortest path between the start and end points will always be calculated.
If a path of exactly 180 degrees is specified the computed path will be ambiguous and will terminate prior to the end point.
Where interpolation occurs the resulting polygonal objects will be tessellated before display.
NOTE: Due to optimisations, creation time optimisation may take place on the first render, whereas display time interpolation will take place on every render.