The CreateArrow method creates an arrow in the 3D Window.
HRESULT CreateArrow (
[in] double HeadX,
[in] double HeadY,
[in] double Elevation,
[in] double Direction,
[in] double Length,
[in, defaultvalue(4)] int Style,
[in, defaultvalue(0x0000ff00)] long LineColor,
[in, defaultvalue(FT_NONE)] double FillOpacity,
[in, defaultvalue(0x00646464)] long FillColor,
[in, defaultvalue(HSC_PIVOT_RELATIVE)] HeightStyleCode HeightStyle,
[in, defaultvalue(0)] long GroupID,
[in, defaultvalue("")] BSTR Description,
[out, retval] ITerrainArrow5** pITerrainArrow5)
Parameters:
HeadX – The West-East coordinate of the tip of the arrow’s head represented in MPT units. You can use the ITerrain interface to retrieve information about the MPT units. If you are working in Lat-Long format, the Lat-Long values are in decimal Lat-Long.
HeadY – The North-South coordinate of the tip of the arrow’s head represented in MPT units. You can use the ITerrain interface to retrieve information about the MPT units. If you are working in Lat-Long format, the Lat-Long values are in decimal Lat-Long.
Elevation – The elevation of the arrow. The HeightStyle parameter determines how TerraExplorer interprets this parameter.
Direction – The direction the arrow is pointing. Direction, in this case, is synonymous with yaw.
Length – The length of the arrow from head to tail (in meters).
Style – The style of the
arrow. Can be one of the following:
LineColor – The color of the lines that make up the arrow. The color value is used to specify an RGB color. When specifying an explicit RGB color, the color value has the following hexadecimal form: 0x00bbggrr. The low-order byte contains a value for the relative intensity of red; the second byte contains a value for green; and the third byte contains a value for blue. The high-order byte must be zero. The maximum value for a single byte is 0xFF.
FillOpacity – Determines the opacity or transparency of the fill of the arrow. This value can be any value between 0, for transparent, and 1 for opaque.
FillColor – The color with which the arrow is filled if the FillOpacity value is greater than 0. The color value is used to specify an RGB color. When specifying an explicit RGB color, the color value has the following hexadecimal form: 0x00bbggrr. The low-order byte contains a value for the relative intensity of red; the second byte contains a value for green; and the third byte contains a value for blue. The high-order byte must be zero. The maximum value for a single byte is 0xFF.
HeightStyle – An enum determining how the arrow is placed on the terrain relative to the ground.
The HeightStyleCode enum can use any of the following values:
HSC_PIVOT_RELATIVE = 1
The height above the terrain of the tip of the arrow’s head is
determined by the elevation parameter relative to the terrain. The
rest of the arrow’s vertices are in the same plane as the head.
HSC_ON_TERRAIN = 2
All of the arrow’s vertices are placed on the terrain (the
Elevation parameter is ignored).
HSC_TERRAIN_ABSOLUTE = 3
The height above the terrain of the tip of the arrow’s head is
determined by the elevation parameter relative to the terrain
database vertical datum base ellipsoid. The rest of the arrow’s
vertices are in the same plane as the head.
Note that the HeightStyle for the arrow cannot be set to HSC_TERRAIN_RELATIVE.
GroupID – The Information Tree group in which the arrow is created. If it is set to zero, the object is created under the root. You can obtain the GroupID by one of the following methods:
Create the group the IInformationTree5::CreateGroup.
If you know the name of the group, find it using IInformationTree5::FindItem.
Traverse the Tree using IInformationTree5 methods such as GetNextItem, until you come to the desired GroupID.
Description – The name of the arrow as it appears in the Information Window. If an empty string is passed into this parameter, TerraExplorer assigns it a unique name.
pITerrainArrow5 – An interface pointer to the newly created arrow. This parameter must not be Null.
Return Values:
The return value obtained from the returned HRESULT can be one of the following:
Return value |
Meaning |
S_OK |
Success. |
E_FAIL |
Catastrophic failure. |
TE_E_MPTNOTLOADED |
An MPT file must be loaded in TerraExplorer for this method to work. |
TE_E_INFOTREE_PARENTNOTGROUP |
The group ID entered does not represent a valid group in the information tree. |
TE_E_INTERNAL |
TerraExplorer was unable to create the object. To get more information about this error use the IErrorInfo Interface. |
TE_E_NOLICENCE |
Your license does not allow the use of this feature. |
Remarks:
At creation time, the elevation parameter indicates the tip of the arrow’s head above the terrain. If the client wants to later change that (via the object’s SetPosition() method), the height is measured from the center of the arrow.