NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
2d_geometry_path_interface.h
Go to the documentation of this file.
1 #ifndef SDK_2D_GEOMETRY_PATH_INTERFACE_H_
11 #define SDK_2D_GEOMETRY_PATH_INTERFACE_H_
12 #pragma once
13 
14 #include <base/inc/platform.h>
15 #include <base/inc/base_types.h>
20 #include "2d_geometry_objects.h"
23 
24 namespace sdk {
25 namespace geometry {
26 
29 static const float kDefFlatteningTolerance = 0.25f;
30 
33 typedef enum GeometryPathProps
34 {
43 
53 
65 
78 
86 
93 
99 
100  //complexity
106 
108 
112 {
113 public:
115  virtual SDKResult SDK_CALLTYPE GetParent(
116  sdk::geometry::GeometryPathFactorySP& parent) const throw() = 0;
117 
121  virtual SDKResult SDK_CALLTYPE BeginEdit(
122  sdk::geometry::GeometryPathEditorSP& editor) throw() = 0;
124  virtual SDKResult SDK_CALLTYPE FinishEdit() throw() = 0;
125 
128  virtual SDKResult SDK_CALLTYPE GetPathData(const float& flattening_tolerance,
129  sdk::geometry::GeometryPathDataSP& path_data) throw() = 0;
130 
131  // Also can implement IGeometryPathTransform, IGeometryPathUtils
132 
134  SDK_IMPLEMENT_IID(I2DGeometryPath)
135  SDK_END_INTERFACE(I2DGeometryPath)
136 };
137 SDK_DECLARE_IID(I2DGeometryPath)
138 } // namespace geometry
139 } // namespace sdk
140 
141 #endif // SDK_2D_GEOMETRY_PATH_INTERFACE_H_
2d_geometry_path_data_interface.h
Describes interface for 2D geometry path data, which allows to extract the point coordinates from app...
sdk::geometry::kGeometryPathProp_PointsCount
@ kGeometryPathProp_PointsCount
Total number of points in a path Current implementations uses given property as: 1) Direct2D based g...
Definition: 2d_geometry_path_interface.h:98
sdk::geometry::kGeometryPathProp_HigherAccuracyMethodThreshold
@ kGeometryPathProp_HigherAccuracyMethodThreshold
Threshold to use higher accuracy method instead of default one See kGeometryPathProp_UseHigherAccurac...
Definition: 2d_geometry_path_interface.h:92
geometry.h
Describes interfaces that manages a geometry objects.
base_types.h
SDK base types.
sdk::geometry::I2DGeometryPath::BeginEdit
virtual SDKResult SDK_CALLTYPE BeginEdit(sdk::geometry::GeometryPathEditorSP &editor)=0
Returns the path editor, which allows to add geometric primitives to geometry path....
sdk::geometry::kGeometryPathProp_Complexity
@ kGeometryPathProp_Complexity
Complexity - ie presence in a path arcs, splines, etc. Current implementations uses given property as...
Definition: 2d_geometry_path_interface.h:105
sdk_string_handler.h
Wrappers and helper functions for SDKString.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
sdk::geometry::kGeometryPathProp_UseHigherAccuracyMethods
@ kGeometryPathProp_UseHigherAccuracyMethods
Try to use higher accuracy methods (performance issue) Current implementations uses given property as...
Definition: 2d_geometry_path_interface.h:52
sdk::geometry::I2DGeometryPath::GetPathData
virtual SDKResult SDK_CALLTYPE GetPathData(const float &flattening_tolerance, sdk::geometry::GeometryPathDataSP &path_data)=0
Returns an geometry path data object, which allows to enumerate all of path figures,...
sdk::ISDKProperties
Provides access to members that control the properties.
Definition: properties_interface.h:32
sdk::geometry::GeometryPathProps
GeometryPathProps
Generic geometry path properties.
Definition: 2d_geometry_path_interface.h:33
sdk::geometry::I2DGeometryPath::FinishEdit
virtual SDKResult SDK_CALLTYPE FinishEdit()=0
Finishes the edit process by appending new data to existing geometry path.
sdk::geometry::kGeometryPathProp_MaxAttemptsToBuildRegionFromPath
@ kGeometryPathProp_MaxAttemptsToBuildRegionFromPath
Max number of attempt to build a region for path Current implementations uses given property as: 1) ...
Definition: 2d_geometry_path_interface.h:77
sdk_component_interface.h
Common base SDK interfaces.
2d_geometry_path_editor_interface.h
Allows to edit the geometry path by adding geometric primitives, like line, Bezier curves,...
platform.h
Describes the platform constants.
sdk::geometry::kDefFlatteningTolerance
static const float kDefFlatteningTolerance
Default recommended flattening tolerance value for path operations.
Definition: 2d_geometry_path_interface.h:29
sdk::geometry::I2DGeometryPath::GetParent
virtual SDKResult SDK_CALLTYPE GetParent(sdk::geometry::GeometryPathFactorySP &parent) const =0
Returns the parent factory instance, which created the given instance.
sdk::geometry::kGeometryPathProp_CacheInternalPathStructures
@ kGeometryPathProp_CacheInternalPathStructures
Cache the internal path structures to speed up the operations Current implementations uses given prop...
Definition: 2d_geometry_path_interface.h:42
geometry_base_types.h
Geometry base types.
sdk::geometry::kGeometryPathProp_AdjustRegionRectanglesByOne
@ kGeometryPathProp_AdjustRegionRectanglesByOne
If value > 0: After converting a path to the region increase each of the region rectangles max corner...
Definition: 2d_geometry_path_interface.h:85
sdk::geometry::I2DGeometryPath
Describes interface for 2D geometry path, which supports the edit operations.
Definition: 2d_geometry_path_interface.h:111
sdk::geometry::kGeometryPathProp_MaxMemoryAmountForRegionOperations
@ kGeometryPathProp_MaxMemoryAmountForRegionOperations
Max memory amount to use for path operations (in megabytes, 128 megabytes by default) Current impleme...
Definition: 2d_geometry_path_interface.h:64