ENCX SDK  5.5.0.370
Public Member Functions | Properties | List of all members
ENCX::S57Draw Class Reference

Display a continuous S-57 vector chart via a Win32 Device Context. More...

import"encxcom.idl";

Inheritance diagram for ENCX::S57Draw:
Inheritance graph
[legend]

Public Member Functions

HRESULT SetManager ([in] IS57Manager *pMgr)
 Connect to a SENC. All the S-57 data to be drawn on the device context will be obtained from pMgr. More...
 
HRESULT Draw ([in] OLE_HANDLE lHDC)
 Draw the chart to the specified device context. More...
 
HRESULT SetDisplayScale ([in] LONG nDisplayScale, [in] IPixelPoint *ipPixelPt)
 Set the nominal scale of the chart. Suitable for display to the user, but not for precise calculations. More...
 
HRESULT CalculateNewDisplayScale ([out] VARIANT_BOOL *pbAllowed, [out] LONG *pnScaleOut, [in] LONG nScaleOld, [in] LONG nChange, [in] LONG nSmallestChangeAllowed)
 Obtain the sensible next scale in the specified direction. More...
 
HRESULT SetDrawLayerCallback ([in] enum S57CallBackDrawAction callBackDrawAction, [in] IS57ProductAndUsage *iproductAndUsage, [in] BYTE Layer)
 Insert a callback into the drawing sequence. More...
 
HRESULT SetPosition ([in] IGeoPoint *geoPt, [in] IPixelPoint *pixelPt, [out, retval] VARIANT_BOOL *bRes)
 Set the geographical position at the specified pixel position on the drawing surface. More...
 
HRESULT SetPositionAndScale ([in] IGeoRect *geoRect, [out, retval] VARIANT_BOOL *bRes)
 Set the geographical position and scale so that the specified rectangle just fits on the drawing surface. More...
 
HRESULT SetDirectionOfUp ([in] DOUBLE degrees, [in] IPixelPoint *ipPixelPt, [out, retval] VARIANT_BOOL *pVal)
 The geographical orientation of the drawing surface. More...
 
HRESULT FeaturesAtPoint ([in] IPixelPoint *pixelPt, [out, retval] IS57DrawnFeatures **pVal)
 
HRESULT AdjustAreaSymbolOffsets ([in] LONG cx, [in] LONG cy)
 Call with the offset of each scrolling action. More...
 
HRESULT SetPositionAndScaleExact ([in] IGeoRect *geoRect, [out, retval] VARIANT_BOOL *bRes)
 Set the geographical position and scale so that the specified rectangle exactly. The corners of the drawing surface will correspond to the corners of the GeoRect. Use with caution - this method allows you to create some unlikely shaped charts! More...
 
HRESULT GetSize ([out, retval] IPixelSize **sz)
 The area inside the rectangle (0,0) to (Size.Width,Size.Height) will be drawn. More...
 
HRESULT SetSize ([in] IPixelSize *sz)
 The area inside the rectangle (0,0) to (Size.Width,Size.Height) will be drawn. More...
 
HRESULT DepthAtPoint ([in] IPixelPoint *pixelPt, [out] DOUBLE *depthInMetres, [out, retval] VARIANT_BOOL *succeeded)
 Get the depth at a pixel position within the view. More...
 
HRESULT HighlightFeature ([in] IS57FeatureIdentifier *featureId, [in] VARIANT_BOOL bClear)
 Highlight the feature (true to clear existing highlights, false to add the feature to the ones already highlighted) More...
 
HRESULT HighlightSounding ([in] IS57FeatureIdentifier *featureId, [in] double depthMetres, [in] VARIANT_BOOL bClear)
 Highlight the sounding (true to clear existing highlights, false to add the sounding to the ones already highlighted) More...
 
HRESULT SetVPFManager ([in] IVPFManager *pMgr)
 Connect to a VPF chart folder. All the VPF data to be drawn on the device context will be obtained from pMgr. More...
 
HRESULT VPFFeaturesAtPoint ([in] IPixelPoint *pixelPt, [out, retval] BSTR *pXML)
 Return XML describing the VPF features at a specified point. More...
 
HRESULT VPFCoveragesAtPoint ([in] IPixelPoint *pixelPt, [out, retval] BSTR *pXML)
 Return XML describing the VPF coverages at a specified point. More...
 
HRESULT OnDrawLayer (OLE_HANDLE hdc, enum S57CallBackDrawAction action, IS57ProductAndUsage *ProductAndUsage, BYTE Layer)
 Occurs before or after an S-57 layer is drawn. More...
 

Properties

LONG DisplayScale [get]
 The nominal scale of the chart. Suitable for display to the user, but not for precise calculations. More...
 
IGeoPix GeoPix [get]
 Obtain the geopix. More...
 
IGeoPoint PositionOfCentre [get]
 Obtain the geographical position of the centre of the drawing surface. More...
 
IS57DisplaySettings DisplaySettings [get, set]
 The display settings control the symbolisation (drawing style) and what types of object are drawn or excluded from the drawing. More...
 
DOUBLE PixelSizeMetres [get, set]
 The nominal size of a pixel. More...
 
DOUBLE DirectionOfUp [get]
 The geographical orientation of the drawing surface. More...
 
IGeoRect GeoExtent [get]
 The geographical rectangle of the drawing surface. More...
 
IDisplayPalette DisplayPalette [get, set]
 The colour scheme for the chart. Use to draw the chart with lower luminance for twilight and night viewing. More...
 
VARIANT_BOOL ShowPreviousCells [get, set]
 Draw the S-57 cells using the previous updates. Off by default. More...
 
S57Projection ProjectionType [get, set]
 Projection (Cylindrical, Mercator or PolarStereographic) More...
 
ScaleBarUnits Scalebar [get, set]
 The units for the scalebar. More...
 
VARIANT_BOOL DrawGrid [get, set]
 Set to true to draw a simple geodetic grid on top of S-57 data (deprecated - use GridDisplaySettings instead) More...
 
IWVSDisplaySettings WVSDisplaySettings [get, set]
 The display settings for single file WVS. More...
 
IGridDisplaySettings GridDisplaySettings [get, set]
 The display settings for the grid. More...
 
DWORD BackgroundColour [get, set]
 Get background colour. More...
 
IVPFDisplaySettings VPFDisplaySettings [get, set]
 The VPF display settings to control drawing. More...
 
SBDetailedMode ScalebarDetailedMode [get, set]
 Get scroll bar behaviour mode when display scale is less than 1:8,000. More...
 

Detailed Description

Display a continuous S-57 vector chart via a Win32 Device Context.

Supports

Properties and methods via IS57Draw.

Notifications via _IS57DrawEvents.

Definition at line 4357 of file encxcom.idl.

Member Function Documentation

◆ AdjustAreaSymbolOffsets()

HRESULT IS57Draw::AdjustAreaSymbolOffsets ( [in] LONG  cx,
[in] LONG  cy 
)
inherited

Call with the offset of each scrolling action.

Adjusts the origin used when filling an area with symbols.

If AdjustAreaSymbolOffsets is used, then area fill symbols will scroll with the area features.

If AdjustAreaSymbolOffsets is not used, then area fill symbols will be fixed with respect to the drawing surface and will appear to be moving backwards in relation to the area features.

◆ CalculateNewDisplayScale()

HRESULT IS57Draw::CalculateNewDisplayScale ( [out] VARIANT_BOOL *  pbAllowed,
[out] LONG *  pnScaleOut,
[in] LONG  nScaleOld,
[in] LONG  nChange,
[in] LONG  nSmallestChangeAllowed 
)
inherited

Obtain the sensible next scale in the specified direction.

The S57Draw will display the S-57 data at any scale. However this method provides scales that are typically as expected by a mariner.

Positive nChange values mean zooming in. Negative means zoom out. A value of 1 indicates zooming by one "notch", 2 by notches and so on.

The first out parameter (pbAllowed) is whether or not this calculation succeeded in producing a valid output scale. The second output parameter (pnScaleOut) is the suggested scale.

The scales output by CalculateNewDisplayScale are 1:1000, 1:2000, 1:4000, 1:5000, 1:7500 and similarly for other decades.

CalculateNewDisplayScale is a helper function. It does not affect the state of the S57Draw.

◆ DepthAtPoint()

HRESULT IS57Draw::DepthAtPoint ( [in] IPixelPoint pixelPt,
[out] DOUBLE *  depthInMetres,
[out, retval] VARIANT_BOOL *  succeeded 
)
inherited

Get the depth at a pixel position within the view.

◆ Draw()

HRESULT IS57Draw::Draw ( [in] OLE_HANDLE  lHDC)
inherited

Draw the chart to the specified device context.

◆ FeaturesAtPoint()

HRESULT IS57Draw::FeaturesAtPoint ( [in] IPixelPoint pixelPt,
[out, retval] IS57DrawnFeatures **  pVal 
)
inherited

◆ GetSize()

HRESULT IS57Draw::GetSize ( [out, retval] IPixelSize **  sz)
inherited

The area inside the rectangle (0,0) to (Size.Width,Size.Height) will be drawn.

◆ HighlightFeature()

HRESULT IS57Draw::HighlightFeature ( [in] IS57FeatureIdentifier featureId,
[in] VARIANT_BOOL  bClear 
)
inherited

Highlight the feature (true to clear existing highlights, false to add the feature to the ones already highlighted)

◆ HighlightSounding()

HRESULT IS57Draw::HighlightSounding ( [in] IS57FeatureIdentifier featureId,
[in] double  depthMetres,
[in] VARIANT_BOOL  bClear 
)
inherited

Highlight the sounding (true to clear existing highlights, false to add the sounding to the ones already highlighted)

◆ OnDrawLayer()

HRESULT ENCX::_IS57DrawEvents::OnDrawLayer ( OLE_HANDLE  hdc,
enum S57CallBackDrawAction  action,
IS57ProductAndUsage ProductAndUsage,
BYTE  Layer 
)
inherited

Occurs before or after an S-57 layer is drawn.

◆ SetDirectionOfUp()

HRESULT IS57Draw::SetDirectionOfUp ( [in] DOUBLE  degrees,
[in] IPixelPoint ipPixelPt,
[out, retval] VARIANT_BOOL *  pVal 
)
inherited

The geographical orientation of the drawing surface.

◆ SetDisplayScale()

HRESULT IS57Draw::SetDisplayScale ( [in] LONG  nDisplayScale,
[in] IPixelPoint ipPixelPt 
)
inherited

Set the nominal scale of the chart. Suitable for display to the user, but not for precise calculations.

Set nominal scale of the chart. Suitable for display to the user, but not for precise calculations. The pixel position is the pixel position where the relationship between geographic position and pixel position is constant. When zooming in and out with the mouse wheel or a hot key and the mouse is over the chart using the mouse position is a good idea! Use -1,-1 to default to centre of the view.

◆ SetDrawLayerCallback()

HRESULT IS57Draw::SetDrawLayerCallback ( [in] enum S57CallBackDrawAction  callBackDrawAction,
[in] IS57ProductAndUsage iproductAndUsage,
[in] BYTE  Layer 
)
inherited

Insert a callback into the drawing sequence.

Results in _IS57DrawEvents::OnDrawLayer() being called during the drawing process.

Parameters
callBackDrawActionWhen the callback should occur (before the layer is drawn, after it, or both)
iproductAndUsageThe type of S-57 (e.g. ENC) and the intended usage band within that product (e.g. a navigational purpose within the ENC product).
LayerThere are 10 layers of drawing within a single product and usage. Layer 0 is the bottom, Layer 9 is the top.

◆ SetManager()

HRESULT IS57Draw::SetManager ( [in] IS57Manager pMgr)
inherited

Connect to a SENC. All the S-57 data to be drawn on the device context will be obtained from pMgr.

◆ SetPosition()

HRESULT IS57Draw::SetPosition ( [in] IGeoPoint geoPt,
[in] IPixelPoint pixelPt,
[out, retval] VARIANT_BOOL *  bRes 
)
inherited

Set the geographical position at the specified pixel position on the drawing surface.

◆ SetPositionAndScale()

HRESULT IS57Draw::SetPositionAndScale ( [in] IGeoRect geoRect,
[out, retval] VARIANT_BOOL *  bRes 
)
inherited

Set the geographical position and scale so that the specified rectangle just fits on the drawing surface.

◆ SetPositionAndScaleExact()

HRESULT IS57Draw::SetPositionAndScaleExact ( [in] IGeoRect geoRect,
[out, retval] VARIANT_BOOL *  bRes 
)
inherited

Set the geographical position and scale so that the specified rectangle exactly. The corners of the drawing surface will correspond to the corners of the GeoRect. Use with caution - this method allows you to create some unlikely shaped charts!

◆ SetSize()

HRESULT IS57Draw::SetSize ( [in] IPixelSize sz)
inherited

The area inside the rectangle (0,0) to (Size.Width,Size.Height) will be drawn.

◆ SetVPFManager()

HRESULT IS57Draw::SetVPFManager ( [in] IVPFManager pMgr)
inherited

Connect to a VPF chart folder. All the VPF data to be drawn on the device context will be obtained from pMgr.

◆ VPFCoveragesAtPoint()

HRESULT IS57Draw::VPFCoveragesAtPoint ( [in] IPixelPoint pixelPt,
[out, retval] BSTR *  pXML 
)
inherited

Return XML describing the VPF coverages at a specified point.

◆ VPFFeaturesAtPoint()

HRESULT IS57Draw::VPFFeaturesAtPoint ( [in] IPixelPoint pixelPt,
[out, retval] BSTR *  pXML 
)
inherited

Return XML describing the VPF features at a specified point.

Property Documentation

◆ BackgroundColour

DWORD IS57Draw::BackgroundColour
getsetpropertyinherited

Get background colour.

Set background colour.

◆ DirectionOfUp

DOUBLE IS57Draw::DirectionOfUp
getinherited

The geographical orientation of the drawing surface.

◆ DisplayPalette

IDisplayPalette IS57Draw::DisplayPalette
getsetinherited

The colour scheme for the chart. Use to draw the chart with lower luminance for twilight and night viewing.

◆ DisplayScale

LONG IS57Draw::DisplayScale
getinherited

The nominal scale of the chart. Suitable for display to the user, but not for precise calculations.

◆ DisplaySettings

IS57DisplaySettings IS57Draw::DisplaySettings
getsetinherited

The display settings control the symbolisation (drawing style) and what types of object are drawn or excluded from the drawing.

◆ DrawGrid

VARIANT_BOOL IS57Draw::DrawGrid
getsetinherited

Set to true to draw a simple geodetic grid on top of S-57 data (deprecated - use GridDisplaySettings instead)

◆ GeoExtent

IGeoRect IS57Draw::GeoExtent
getpropertyinherited

The geographical rectangle of the drawing surface.

The result returned is a snapshot of the extent rather than a live reference to the internal state of the S57Draw object. in .NET ReferenceEquals(draw.GeoExtent, draw.GeoExtent) == false

◆ GeoPix

IGeoPix IS57Draw::GeoPix
getinherited

Obtain the geopix.

The IGeoPix can be used to draw geo-referenced information on top of the S-57 data and to obtain a geographical position from a pixel position.

◆ GridDisplaySettings

IGridDisplaySettings IS57Draw::GridDisplaySettings
getsetinherited

The display settings for the grid.

◆ PixelSizeMetres

DOUBLE IS57Draw::PixelSizeMetres
getsetinherited

The nominal size of a pixel.

The approximate distance on the ground can be obtained from PixelSizeMetres * IGeoPix::DisplayScale().

◆ PositionOfCentre

IGeoPoint IS57Draw::PositionOfCentre
getinherited

Obtain the geographical position of the centre of the drawing surface.

The result returned is a snapshot of the centre position rather than a live reference to the internal state of the S57Draw object. in .NET ReferenceEquals(draw.PositionOfCentre, draw.PositionOfCentre) == false

◆ ProjectionType

S57Projection IS57Draw::ProjectionType
getsetinherited

Projection (Cylindrical, Mercator or PolarStereographic)

◆ Scalebar

ScaleBarUnits IS57Draw::Scalebar
getsetinherited

The units for the scalebar.

◆ ScalebarDetailedMode

SBDetailedMode IS57Draw::ScalebarDetailedMode
getsetinherited

Get scroll bar behaviour mode when display scale is less than 1:8,000.

Set scroll bar behaviour mode when display scale is less than 1:8,000.

◆ ShowPreviousCells

VARIANT_BOOL IS57Draw::ShowPreviousCells
getsetpropertyinherited

Draw the S-57 cells using the previous updates. Off by default.

Change to true to draw each cell as it was before that cell was last updated.

◆ VPFDisplaySettings

IVPFDisplaySettings IS57Draw::VPFDisplaySettings
getsetinherited

The VPF display settings to control drawing.

◆ WVSDisplaySettings

IWVSDisplaySettings IS57Draw::WVSDisplaySettings
getsetinherited

The display settings for single file WVS.