NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
gdb_feature.h
Go to the documentation of this file.
1 #ifndef SDK_GDB_FEATURE_INTERFACE_H_
11 #define SDK_GDB_FEATURE_INTERFACE_H_
12 
19 #include <datalayer/inc/senc/senc_feature_dataset_s101.h>
20 
21 SDK_GDB_BEGIN_NAMESPACE
22 
23 // Classes declared in other files.
24 class IAttribute;
26 class ITopicCategory;
27 class IFeatureDataset;
29 class IEnumFeature;
30 
31 // Classes declared in this file.
36 
41 typedef enum ObjectType {
49 } ObjectType;
50 
53 typedef enum ObjectParameter {
61 
64 typedef enum GDBGeometryFlags {
65  kGDBGeometryFlag_HasINAS = senc::GMFL_F_HAS_INAS,
66  kGDBGeometryFlag_InteriorRingCanBeSkipped = senc::GMSRS_F_IS_FILLED,
67  kGDBGeometryFlag_Is_Shared = senc::GMFL_F_IS_SHARED,
68  kGDBGeometryFlag_Has_Shared = senc::GMFL_F_HAS_SHARED,
69  kGDBGeometryFlag_Truncated = senc::GMFL_F_TRUNCATED,
70  kGDBGeometryFlag_Closed = senc::GMFL_F_CLOSED,
71  kGDBGeometryFlag_Clockwise = senc::GMFL_F_CLOCKWISE,
72  kGDBGeometryFlag_DataEdge = senc::GMFL_F_DATA_EDGE, //< Geometry belongs to a data coverage feature (actual for curves and co-curves)
73  kGDBGeometryFlag_SubGeometryHasAttributes = senc::GMFL_F_HAS_ATTR_COMP,
74  kGDBGeometryFlag_HasAttributes = senc::GMFL_F_HAS_ATTR,
75  kGDBGeometryFlag_Masked = 0x00010000UL,
78 
79 
80 typedef union OBJECT_FLAGS {
81  SDKUInt64 m_RAWF; // Flags
82  struct {
83  SDKUInt64 m_HAS_INAS : 1;
84  SDKUInt64 m_HAS_MASTER : 1;
85  SDKUInt64 m_HAS_SLAVES : 1;
86  SDKUInt64 m_ASSOCIATION_CHIEF : 1;
87  SDKUInt64 m_ASSOCIATION_MEMBER : 1;
88  SDKUInt64 m_GMTP : 3;
89  SDKUInt64 m_GATP : 2;
99  SDKUInt64 m_IS_TG1 : 1;
104  SDKUInt64 m_IS_HAZARD : 1;
105  SDKUInt64 m_IS_INOPERATIVE : 1;
106  SDKUInt64 m_UPDATE_OPERATION_CODE : 2;
107  SDKUInt64 m_UPDATE_TYPE : 2;
111  SDKUInt64 m_IS_CHILD : 1;
116  SDKUInt64 m_IS_INVISIBLE : 1;
117  SDKUInt64 m_GMTP_HIBITS : 2;
118  SDKUInt64 m_HAS_UPDATE_RELATION : 1;
119  SDKUInt64 : 8;
120  SDKInt64 m_ORNT : 2;
121  };
125 } OBJECT_FLAGS;
126 
130 class IObject : public IGDBObject {
131 public:
133  virtual GDBResult SDK_CALLTYPE GetObjectID(
134  ObjectID& oid) const throw() = 0;
135 
137  virtual GDBResult SDK_CALLTYPE GetObjectType(
138  ObjectType& type) const throw() = 0;
139 
141  virtual GDBResult SDK_CALLTYPE GetObjectClassCode(
142  ClassCode& code) const throw() = 0;
143 
145  virtual GDBResult SDK_CALLTYPE GetObjectPRSP(PRSP& prsp) const throw() = 0;
146 
158  virtual GDBResult SDK_CALLTYPE GetRelationships(
159  RelationshipClass relationship_class,
160  RelationshipRole role,
161  IRelationshipCollection** relationship) throw() = 0;
162 
171  virtual GDBResult SDK_CALLTYPE GetAttributes(
172  IAttributeCollection** attributes) throw() = 0;
173 
177  virtual GDBResult SDK_CALLTYPE GetFlags(SDKUInt64& flags) const throw() = 0;
178 
179  SDK_IMPLEMENT_IID(IObject)
180  SDK_END_INTERFACE(IObject)
181 };
182 SDK_DECLARE_IID(IObject)
183 
184 class IFeature : public IObject {
188 public:
190  virtual GDBResult SDK_CALLTYPE GetFOID(SDKAny& foid) const throw() = 0;
191 
198  virtual GDBResult SDK_CALLTYPE GetFeatureDataset(
199  IFeatureDataset** dataset) const throw() = 0;
200 
204  virtual GDBResult SDK_CALLTYPE GetShape(
205  geometry::IGeometry** shape) throw() = 0;
206 
208  virtual GDBResult SDK_CALLTYPE GetShapeType(
209  geometry::GeometryType& type) const throw() = 0;
210 
217  virtual GDBResult SDK_CALLTYPE GetShapeEnvelope(
218  geometry::IEnvelope** envelope) throw() = 0;
219 
226  virtual GDBResult SDK_CALLTYPE GetShapes(
227  IEnumGDBGeometry** geometry) throw() = 0;
228 
236  virtual GDBResult SDK_CALLTYPE GetMaster(
237  IFeature** feature) throw() = 0;
238 
246  virtual GDBResult SDK_CALLTYPE GetSlaves(
247  IEnumFeature** features) throw() = 0;
248 
250  virtual GDBResult SDK_CALLTYPE GetFeatureRCID(RCID& rcid) const noexcept = 0;
251 
252  SDK_IMPLEMENT_IID(IFeature)
253  SDK_END_INTERFACE(IFeature)
254 };
255 SDK_DECLARE_IID(IFeature)
256 
257 class IGDBGeometry : public IObject {
260 public:
267  virtual GDBResult SDK_CALLTYPE GetOwner(
268  IObject** owner) const throw() = 0;
269 
278  virtual GDBResult SDK_CALLTYPE FindGeometry(const ObjectID& oid,
279  sdk::geometry::IGeometry** geometry) throw() = 0;
280 
281  SDK_IMPLEMENT_IID(IGDBGeometry)
282  SDK_END_INTERFACE(IGDBGeometry)
283 };
284 SDK_DECLARE_IID(IGDBGeometry)
285 
286 class IEnumGDBGeometry : public IGDBObject {
289 public:
296  virtual GDBResult SDK_CALLTYPE Next(
297  geometry::IGeometry** geometry) throw() = 0;
298 
300  virtual void SDK_CALLTYPE Reset() throw() = 0;
301 
302  SDK_IMPLEMENT_IID(IEnumGDBGeometry)
303  SDK_END_INTERFACE(IEnumGDBGeometry)
304 };
305 SDK_DECLARE_IID(IEnumGDBGeometry)
306 
307 SDK_GDB_END_NAMESPACE
308 
309 #endif // SDK_GDB_FEATURE_INTERFACE_H_
gdb_dataset.h
Describes interfaces that manages a geodatabase dataset object.
IFeature::GetSlaves
virtual GDBResult SDK_CALLTYPE GetSlaves(IEnumFeature **features)=0
Returns the enumeration of slave objects. This method was introduced for performance reasons.
IFeature::GetShapes
virtual GDBResult SDK_CALLTYPE GetShapes(IEnumGDBGeometry **geometry)=0
Returns the enumerator for the shapes of the feature.
RelationshipRole
RelationshipRole
Definition of the Relation role.
Definition: gdb_const.h:305
geometry.h
Describes interfaces that manages a geometry objects.
IObject::GetFlags
virtual GDBResult SDK_CALLTYPE GetFlags(SDKUInt64 &flags) const =0
Returns The object flags. For the feature object see FEATS_TRP_FLAGS, for the geometry object see GDB...
kObjectType_Spatial
@ kObjectType_Spatial
Spatial type.
Definition: gdb_feature.h:46
gdb_attribute.h
Describes interfaces that manages an attribute objects.
kGDBGeometryFlag_Clockwise
@ kGDBGeometryFlag_Clockwise
Closed geometry (actual for curves and co-curves).
Definition: gdb_feature.h:71
kGDBGeometryFlag_Orientation
@ kGDBGeometryFlag_Orientation
Indicates initial orientation. 0 - forward, 1 - reverse.
Definition: gdb_feature.h:76
kGDBGeometryFlag_SubGeometryHasAttributes
@ kGDBGeometryFlag_SubGeometryHasAttributes
Indicates that a sub-geometry has attributes.
Definition: gdb_feature.h:73
kGDBGeometryFlag_Has_Shared
@ kGDBGeometryFlag_Has_Shared
Indicates that the composite geometry has a sub-geometry that is shared by the multiple features.
Definition: gdb_feature.h:68
kGDBGeometryFlag_InteriorRingCanBeSkipped
@ kGDBGeometryFlag_InteriorRingCanBeSkipped
Indicates that the interior ring can be skipped.
Definition: gdb_feature.h:66
IAttribute
Provides access to members that return information for an Object attribute.
Definition: gdb_attribute.h:134
ObjectType
ObjectType
The Feature constants and structures.
Definition: gdb_feature.h:41
IEnumGDBGeometry::Reset
virtual void SDK_CALLTYPE Reset()=0
Resets the enumeration sequence to the beginning.
IObject
Object is a basic entity of a geodatabase dataset. Every object in the geodatabase is uniquely identi...
Definition: gdb_feature.h:130
kObjectType_Feature
@ kObjectType_Feature
Feature.
Definition: gdb_feature.h:43
IFeature::GetShapeType
virtual GDBResult SDK_CALLTYPE GetShapeType(geometry::GeometryType &type) const =0
Returns the type of the default shape of the feature.
kObjectParameter_ID
@ kObjectParameter_ID
ObjectID.
Definition: gdb_feature.h:55
kObjectType_Thematic
@ kObjectType_Thematic
Thematic type.
Definition: gdb_feature.h:47
kObjectType_Asso
@ kObjectType_Asso
Association.
Definition: gdb_feature.h:44
IObject::GetObjectClassCode
virtual GDBResult SDK_CALLTYPE GetObjectClassCode(ClassCode &code) const =0
Returns an identifier for the class code.
kObjectParameter_ClassCode
@ kObjectParameter_ClassCode
Class code.
Definition: gdb_feature.h:59
kGDBGeometryFlag_HasAttributes
@ kGDBGeometryFlag_HasAttributes
Indicates that a geometry has attributes.
Definition: gdb_feature.h:74
IObject::GetObjectType
virtual GDBResult SDK_CALLTYPE GetObjectType(ObjectType &type) const =0
Returns the type of the object.
IGDBGeometry::GetOwner
virtual GDBResult SDK_CALLTYPE GetOwner(IObject **owner) const =0
Returns the owner of the geometry.
IEnumGDBGeometry
Enumerates shapes for the feature.
Definition: gdb_feature.h:288
kObjectParameter_FOID
@ kObjectParameter_FOID
FOID.
Definition: gdb_feature.h:56
parameters_interface.h
Provides access to members for managing a parameter set.
IObject::GetObjectID
virtual GDBResult SDK_CALLTYPE GetObjectID(ObjectID &oid) const =0
Returns the identifier of the object.
kObjectParameter_Type
@ kObjectParameter_Type
The type parameter.
Definition: gdb_feature.h:54
IFeature::GetShapeEnvelope
virtual GDBResult SDK_CALLTYPE GetShapeEnvelope(geometry::IEnvelope **envelope)=0
Returns the unique envelope that binds the default shape of the feature object.
IAttributeCollection
Provides access to members that can be used to access the individual attributes of a geometry,...
Definition: gdb_attribute.h:76
PRSP
SDKUInt32 PRSP
Product specification.
Definition: gdb_const.h:250
gdb_const.h
Geo database constants and structures.
ClassCode
SDKUInt32 ClassCode
Definition of the ClassCode types.
Definition: gdb_const.h:229
IFeature::GetFeatureRCID
virtual GDBResult SDK_CALLTYPE GetFeatureRCID(RCID &rcid) const noexcept=0
Returns feature's RCID (Record identifier)
kGDBGeometryFlag_Truncated
@ kGDBGeometryFlag_Truncated
Truncated geometry.
Definition: gdb_feature.h:69
IRelationshipCollection
Provides access to relationship collection.
Definition: gdb_relationship.h:28
IEnumGDBGeometry::Next
virtual GDBResult SDK_CALLTYPE Next(geometry::IGeometry **geometry)=0
Retrieves the next geometry in the enumeration sequence.
GDBGeometryFlags
GDBGeometryFlags
Geodatabase geometry flags.
Definition: gdb_feature.h:64
IFeature
Feature is a spatial object. A feature has an associated shape. A feature may have a shape with more ...
Definition: gdb_feature.h:187
kObjectType_Relationship
@ kObjectType_Relationship
Relationship.
Definition: gdb_feature.h:48
kGDBGeometryFlag_Is_Shared
@ kGDBGeometryFlag_Is_Shared
Indicates that the geometry is shared by the multiple features.
Definition: gdb_feature.h:67
IObject::GetRelationships
virtual GDBResult SDK_CALLTYPE GetRelationships(RelationshipClass relationship_class, RelationshipRole role, IRelationshipCollection **relationship)=0
Returns relationships that this object is a member of.
kGDBGeometryFlag_HasINAS
@ kGDBGeometryFlag_HasINAS
Has INAS.
Definition: gdb_feature.h:65
IObject::GetAttributes
virtual GDBResult SDK_CALLTYPE GetAttributes(IAttributeCollection **attributes)=0
Returns the attribute collection of the object.
ObjectParameter
ObjectParameter
Object parameters.
Definition: gdb_feature.h:53
ObjectID
Object identifier.
Definition: gdb_const.h:115
IObject::GetObjectPRSP
virtual GDBResult SDK_CALLTYPE GetObjectPRSP(PRSP &prsp) const =0
returns the product specification identifier of the object.
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
GeometryType
GeometryType
Available types of geometry objects.
Definition: geometry.h:73
kGDBGeometryFlag_Closed
@ kGDBGeometryFlag_Closed
Closed geometry (actual for curves and co-curves).
Definition: gdb_feature.h:70
IFeatureDataset
Provides access to members that supply feature dataset information. A FeatureDataset is a dataset tha...
Definition: gdb_dataset.h:483
IFeature::GetFOID
virtual GDBResult SDK_CALLTYPE GetFOID(SDKAny &foid) const =0
Returns the identifier of the feature object.
RCID
SDKUInt32 RCID
NULL object identifier.
Definition: gdb_const.h:163
RelationshipClass
RelationshipClass
Definition of the Relationship class.
Definition: gdb_const.h:313
IFeature::GetShape
virtual GDBResult SDK_CALLTYPE GetShape(geometry::IGeometry **shape)=0
Returns a reference to the default shape for the feature.
IGDBGeometry::FindGeometry
virtual GDBResult SDK_CALLTYPE FindGeometry(const ObjectID &oid, sdk::geometry::IGeometry **geometry)=0
Finds a geometry specified by the object identifier that is referenced in this geometry.
kObjectParameter_ShapeTypeMask
@ kObjectParameter_ShapeTypeMask
Shape type mask.
Definition: gdb_feature.h:58
kGDBGeometryFlag_Masked
@ kGDBGeometryFlag_Masked
Masked.
Definition: gdb_feature.h:75
IEnumFeature
Enumerates the features.
Definition: gdb_dataset.h:614
kObjectType_Object
@ kObjectType_Object
Basic object.
Definition: gdb_feature.h:42
kObjectParameter_PRSP
@ kObjectParameter_PRSP
PRSP.
Definition: gdb_feature.h:57
IFeature::GetMaster
virtual GDBResult SDK_CALLTYPE GetMaster(IFeature **feature)=0
Returns the master of the feature. This method was introduced for performance reasons.
IFeature::GetFeatureDataset
virtual GDBResult SDK_CALLTYPE GetFeatureDataset(IFeatureDataset **dataset) const =0
Returns the pointer to the feature dataset that this feature is a member of.
IGDBGeometry
Specifies an interface for a GDB Geometry object.
Definition: gdb_feature.h:259
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
kObjectType_Info
@ kObjectType_Info
Information.
Definition: gdb_feature.h:45
sdk_any_handler.h
Wrappers for work with SDKAny instance.