00001 // 00002 // FieldDescription.hpp 00003 // 00004 // Created on: 30.08.2011 00005 // Author: wahnfla 00006 // 00007 00008 #ifndef FIELDDESCRIPTION_HPP 00009 #define FIELDDESCRIPTION_HPP 00010 00011 #include "Polygon2D.hpp" 00012 #include <vector> 00013 #include "../BasicDatatypes.hpp" 00014 00015 namespace datatypes 00016 { 00017 00018 // 00019 // Interface for fields. 00020 // 00021 class FieldDescription : public BasicData 00022 { 00023 public: 00024 enum FieldType 00025 { 00026 Undefined = 0, 00027 Segmented = 1, 00028 Rectangle = 2, 00029 Radial = 3, 00030 Dynamic = 4 00031 }; 00032 00033 FieldDescription(); 00034 00035 virtual void computePolygon() = 0; 00036 00037 const Polygon2D& getFieldAsPolygon() const 00038 { 00039 return m_fieldPolygon; 00040 } 00041 00042 FieldType getFieldType() const 00043 { 00044 return m_fieldType; 00045 } 00046 00047 static std::string fieldTypeToString(FieldType type); 00048 protected: 00049 FieldType m_fieldType; 00050 Polygon2D m_fieldPolygon; 00051 }; 00052 00053 00054 } // namespace parameters 00055 00056 #endif // FIELDDESCRIPTION_HPP