"Safir SDK Core"
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Position.h
Go to the documentation of this file.
1 #ifndef SAFIR_GEODESY_POSITION_H_INCLUDED
2 #define SAFIR_GEODESY_POSITION_H_INCLUDED
3 
8 
9 #include <Safir/Dob/Struct.h>
11 
12 #ifdef _MSC_VER
13 #ifdef DOTS_GENERATED_CPP_EXPORTS
14 #define GENERATED_API __declspec(dllexport)
15 #else
16 #define GENERATED_API __declspec(dllimport)
17 #ifdef _DEBUG
18 #pragma comment( lib, "dots_generated-Safir-cppd.lib" )
19 #else
20 #pragma comment( lib, "dots_generated-Safir-cpp.lib" )
21 #endif
22 #endif
23 #endif
24 #ifdef __GNUC__
25 #define GENERATED_API
26 #endif
27 
31 namespace Safir
32 {
36 namespace Geodesy
37 {
38 
39  class Position; //forward declaration
40  typedef boost::shared_ptr<Position> PositionPtr;
41  typedef boost::shared_ptr<const Position> PositionConstPtr;
42 
45 
52  class GENERATED_API Position : public Safir::Dob::Struct
53  {
54  public:
55  //Constructors and Create routines
56  Position();
57  virtual Safir::Dob::Typesystem::ObjectPtr Clone() const;
58  static PositionPtr Create();
59 
63  static PositionPtr CreatePosition(
65  const Safir::Dob::Typesystem::Si64::Radian Longitude);
66 
67 
71  static PositionPtr CreatePosition(
75 
76 
77  //DummyAltitude
81  static Safir::Dob::Typesystem::Si32::Meter DummyAltitude();
82 
83  //Latitude
84  static Safir::Dob::Typesystem::MemberIndex LatitudeMemberIndex();
87 
88 
89  //Longitude
90  static Safir::Dob::Typesystem::MemberIndex LongitudeMemberIndex();
93 
94 
95  //Altitude
96  static Safir::Dob::Typesystem::MemberIndex AltitudeMemberIndex();
102 
103 
105  static const Safir::Dob::Typesystem::TypeId ClassTypeId = -8392784053659896336LL;
106 
107  //Type id for Position
108  virtual Safir::Dob::Typesystem::TypeId GetTypeId() const {return ClassTypeId;}
109 
110  //Check if anything in the object has change flags set
111  virtual bool IsChanged();
112 
113  //Recursively set all change flags in the object
114  virtual void SetChanged(const bool changed);
115 
116 
117  //Reflection part (Don't use unless you really know what you're doing!!)
120  virtual const Safir::Dob::Typesystem::ContainerBase & GetMember(const Safir::Dob::Typesystem::MemberIndex member,
121  const Safir::Dob::Typesystem::ArrayIndex index) const;
122 
123  virtual Safir::Dob::Typesystem::Int32 CalculateBlobSize() const;
124  virtual void WriteToBlob(char * blob, char * & beginningOfUnused) const;
125  explicit Position(char const * const blob);
126 
127  private:
128 
129 #ifdef _MSC_VER
130 #pragma warning (push)
131 #pragma warning (disable : 4251)
132 #endif
133 
137 
138 #ifdef _MSC_VER
139 #pragma warning (pop)
140 #endif
141  };
142 
143 } // Geodesy
144 } // Safir
145 
146 #endif
147 
Container for base types.
Definition: ValueContainers.h:60
boost::shared_ptr< Position > PositionPtr
Definition: Position.h:39
Definition: ContainerProxies.h:38
DotsC_TypeId TypeId
A unique type identifier.
Definition: Dob/Typesystem/Defs.h:221
boost::shared_ptr< const Position > PositionConstPtr
Definition: Position.h:41
Template class for all containers of automatically generated DOB objects.
Definition: ObjectContainer.h:185
boost::shared_ptr< Object > ObjectPtr
A smart pointer to an Object.
Definition: Object.h:41
DotsC_ArrayIndex ArrayIndex
Index into an array.
Definition: Dob/Typesystem/Defs.h:249
Safir::Dob::Typesystem::ArrayContainer< PositionContainer > PositionContainerArray
Definition: Position.h:44
Base class for all Containers.
Definition: ContainerBase.h:41
The definition of the Position class used throughout the system.
Definition: Position.h:52
virtual Safir::Dob::Typesystem::TypeId GetTypeId() const
Get the type id of this object.
Definition: Position.h:108
Float32 Meter
32 bit representation of Meter.
Definition: Dob/Typesystem/Defs.h:109
This class is intended to be used as baseclass for classes that in the future may be realized as low ...
Definition: Struct.h:48
STL container for arrays of DOB-containers.
Definition: ArrayContainer.h:58
DotsC_Int32 Int32
32 bit integer type.
Definition: Dob/Typesystem/Defs.h:69
DotsC_MemberIndex MemberIndex
The index of a member in an object.
Definition: Dob/Typesystem/Defs.h:240
Safir::Dob::Typesystem::ObjectContainerImpl< Position > PositionContainer
Definition: Position.h:43
static bool IsChanged(const ContainerBase &container)
Check if a container is changed.
Definition: ContainerBase.h:134
Float64 Radian
64 bit representation of Radian.
Definition: Dob/Typesystem/Defs.h:191