00001 #ifndef IONFLUX_TOOLS_CAIRO_PATHDATA
00002 #define IONFLUX_TOOLS_CAIRO_PATHDATA
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include "cairo.h"
00030 #include "ionflux/CairoMatrix.hpp"
00031 #include "ionflux/ManagedObject.hpp"
00032
00033 namespace Ionflux
00034 {
00035
00036 namespace Tools
00037 {
00038
00039 namespace Cairo
00040 {
00041
00050 class PathData
00051 : public Ionflux::Tools::ManagedObject
00052 {
00053 private:
00054
00055 protected:
00057 cairo_path_data_t* cairoPathData;
00059 bool managePathData;
00060
00061 public:
00062
00067 PathData();
00068
00075 PathData(const PathData& initPathData);
00076
00084 PathData(cairo_path_data_t* initPathData, bool initManagePathData =
00085 false);
00086
00093 PathData(cairo_path_data_type_t initPathDataType);
00094
00099 virtual ~PathData();
00100
00107 virtual cairo_path_data_type_t getType();
00108
00115 virtual void setType(cairo_path_data_type_t newType);
00116
00123 virtual unsigned int getNumPoints();
00124
00133 virtual Point getPoint(unsigned int pointIndex = 0);
00134
00142 virtual void setPoint(const Point& source, unsigned int pointIndex = 0);
00143
00151 virtual void setCairoPathData(cairo_path_data_t* newCairoPathData, bool
00152 newManagePathData = false);
00153
00160 virtual cairo_path_data_t* getCairoPathData() const;
00161
00170 virtual PathData& operator=(const PathData& newCairoPathData);
00171
00183 virtual PathData& operator=(cairo_path_data_t* newCairoPathData);
00184
00191 virtual void setManagePathData(bool newManagePathData);
00192
00197 virtual bool getManagePathData() const;
00198 };
00199
00200 }
00201
00202 }
00203
00204 }
00205
00209 #endif