NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
Geometry Path

Geometry path. More...

Data Structures

class  I2DGeometryPath
 Describes interface for 2D geometry path, which supports the edit operations. More...
 
class  I2DGeometryPathTransform
 Describes interface for 2D geometry path, which allows performs a transformation operation on given geometry path. More...
 
class  I2DGeometryPathUtils
 Describes interface for 2D geometry path, which allows to get some different properties and use several utils for given path. More...
 

Enumerations

enum  GeometryPathProps {
  kGeometryPathProp_CacheInternalPathStructures = 0, kGeometryPathProp_UseHigherAccuracyMethods = 1, kGeometryPathProp_MaxMemoryAmountForRegionOperations = 2, kGeometryPathProp_MaxAttemptsToBuildRegionFromPath = 3,
  kGeometryPathProp_AdjustRegionRectanglesByOne = 4, kGeometryPathProp_HigherAccuracyMethodThreshold = 5, kGeometryPathProp_PointsCount = 10, kGeometryPathProp_Complexity = 11
}
 Generic geometry path properties. More...
 
enum  GeometryPathCombineMode {
  GeometryPathCombineMode_OR = 0x0, GeometryPathCombineMode_AND = 0x1, GeometryPathCombineMode_XOR = 0x2, GeometryPathCombineMode_EXCLUDE = 0x3,
  GeometryPathCombineMode_AND_LINE = 0x4, GeometryPathCombineMode_EXCLUDE_LINE = 0x5
}
 Possible modes for combining two geometry paths. More...
 
enum  GeometryPathCompareResult {
  GeometryPathCompareResult_Unknown = 0x0, GeometryPathCompareResult_NoIntersection = 0x1, GeometryPathCompareResult_InputPathInside = 0x2, GeometryPathCompareResult_GivenPathInside = 0x3,
  GeometryPathCompareResult_Intersection = 0x4
}
 Possible results of geometry path compare methods. More...
 

Variables

static const float kDefFlatteningTolerance = 0.25f
 Default recommended flattening tolerance value for path operations.
 

Detailed Description

Geometry path.

Enumeration Type Documentation

◆ GeometryPathProps

Generic geometry path properties.

Enumerator
kGeometryPathProp_CacheInternalPathStructures 

Cache the internal path structures to speed up the operations Current implementations uses given property as:
1) Direct2D based geometry paths: no usage, property not implemented
2) SKIA based geometry paths: Each SKIA based paths can hold a region inside, which will be used for some operations, mostly for Combine method. By default this region will be cached to speed up the performance This can take some additional memory.

kSDKAnyType_Bool

kGeometryPathProp_UseHigherAccuracyMethods 

Try to use higher accuracy methods (performance issue) Current implementations uses given property as:
Direct2D/SKIA based geometry paths, Combine method: In case Combine called with AND operation and given path bounds exceeds some predefined limits, at first given path will be intersected with bounds of input path and only after that the result of such intersection will be intersected with input path again. This will give a more accurate result but decrease performance.

kSDKAnyType_Bool

kGeometryPathProp_MaxMemoryAmountForRegionOperations 

Max memory amount to use for path operations (in megabytes, 128 megabytes by default) Current implementations uses given property as:
1) Direct2D based geometry paths: no usage, property not implemented
2) SKIA based geometry paths: Some operations require to transform path into region. Given property controls the memory allocation size for region conversion operations. The smaller amount give less accuracy, but better performance, the bigger amount increases accuracy, but lowers performance.

kSDKAnyType_Uint32

kGeometryPathProp_MaxAttemptsToBuildRegionFromPath 

Max number of attempt to build a region for path Current implementations uses given property as:
1) Direct2D based geometry paths: no usage, property not implemented
2) SKIA based geometry paths: Some operations require to transform path into region. Given property describes max number of attempts to build region for given path according to max memory to use limit. If attempt to build region will fail, the original path data accuracy will be decreased and attempt will be repeated. If number of attempts will be more, than given property value, the operation will be failed.

kSDKAnyType_Uint32

kGeometryPathProp_AdjustRegionRectanglesByOne 

If value > 0: After converting a path to the region increase each of the region rectangles max corner coordinate by one to compensate a rounding shrinking; makes the region "fatter".
If value < 0: Increase each of the region rectangles min corner coordinate by one; makes the region "thinner". If value == 0: Do nothing with a region.

kSDKAnyType_Int32

kGeometryPathProp_HigherAccuracyMethodThreshold 

Threshold to use higher accuracy method instead of default one See kGeometryPathProp_UseHigherAccuracyMethods Given value describes max width/height of path bounding box to use normal accuracy methods, if one of dimensions exceeds given threshold - higher accuracy method will be used instead.

kSDKAnyType_UInt32

kGeometryPathProp_PointsCount 

Total number of points in a path Current implementations uses given property as:
1) Direct2D based geometry paths: no usage, property not implemented
2) SKIA based geometry paths: implemented.

kSDKAnyType_Uint32

kGeometryPathProp_Complexity 

Complexity - ie presence in a path arcs, splines, etc. Current implementations uses given property as:
1) Direct2D based geometry paths: no usage, property not implemented
2) SKIA based geometry paths: implemented.

kSDKAnyType_Uint32

◆ GeometryPathCombineMode

Possible modes for combining two geometry paths.

Enumerator
GeometryPathCombineMode_OR 

Union of two paths.

GeometryPathCombineMode_AND 

Intersection of two paths.

GeometryPathCombineMode_XOR 

XOR operation for paths.

GeometryPathCombineMode_EXCLUDE 

Exclude common part of first and second paths from first path.

GeometryPathCombineMode_AND_LINE 

Intersection of two paths; the first path is considered a line.

GeometryPathCombineMode_EXCLUDE_LINE 

Exclude common part of first and second paths from first path;.

◆ GeometryPathCompareResult

Possible results of geometry path compare methods.

Enumerator
GeometryPathCompareResult_Unknown 

Can't compare two geometry paths.

GeometryPathCompareResult_NoIntersection 

Both of paths does not intersects at all.

GeometryPathCompareResult_InputPathInside 

Passed input geometry path is fully inside given geometry path.

GeometryPathCompareResult_GivenPathInside 

Given geometry path is fully inside passed input geometry path.

GeometryPathCompareResult_Intersection 

Geometry paths intersects, but neither completely contains the other.